2016-12-31 08:20:45 +00:00
/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
2017-03-28 22:03:03 +00:00
! function ( e ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = e ( ) ; else if ( "function" == typeof define && define . amd ) { JSZip = e ( ) ; define ( [ ] , e ) } else { var f ; "undefined" != typeof window ? f = window : "undefined" != typeof global ? f = global : "undefined" != typeof $ && $ . global ? f = $ . global : "undefined" != typeof self && ( f = self ) , f . JSZip = e ( ) } } ( function ( ) { var define , module , exports ; return function e ( t , n , r ) { function s ( o , u ) { if ( ! n [ o ] ) { if ( ! t [ o ] ) { var a = typeof require == "function" && require ; if ( ! u && a ) return a ( o , ! 0 ) ; if ( i ) return i ( o , ! 0 ) ; throw new Error ( "Cannot find module '" + o + "'" ) } var f = n [ o ] = { exports : { } } ; t [ o ] [ 0 ] . call ( f . exports , function ( e ) { var n = t [ o ] [ 1 ] [ e ] ; return s ( n ? n : e ) } , f , f . exports , e , t , n , r ) } return n [ o ] . exports } var i = typeof require == "function" && require ; for ( var o = 0 ; o < r . length ; o ++ ) s ( r [ o ] ) ; return s } ( { 1 : [ function ( _dereq _ , module , exports ) { "use strict" ; var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" ; exports . encode = function ( input , utf8 ) { var output = "" ; var chr1 , chr2 , chr3 , enc1 , enc2 , enc3 , enc4 ; var i = 0 ; while ( i < input . length ) { chr1 = input . charCodeAt ( i ++ ) ; chr2 = input . charCodeAt ( i ++ ) ; chr3 = input . charCodeAt ( i ++ ) ; enc1 = chr1 >> 2 ; enc2 = ( chr1 & 3 ) << 4 | chr2 >> 4 ; enc3 = ( chr2 & 15 ) << 2 | chr3 >> 6 ; enc4 = chr3 & 63 ; if ( isNaN ( chr2 ) ) { enc3 = enc4 = 64 } else if ( isNaN ( chr3 ) ) { enc4 = 64 } output = output + _keyStr . charAt ( enc1 ) + _keyStr . charAt ( enc2 ) + _keyStr . charAt ( enc3 ) + _keyStr . charAt ( enc4 ) } return output } ; exports . decode = function ( input , utf8 ) { var output = "" ; var chr1 , chr2 , chr3 ; var enc1 , enc2 , enc3 , enc4 ; var i = 0 ; input = input . replace ( /[^A-Za-z0-9\+\/\=]/g , "" ) ; while ( i < input . length ) { enc1 = _keyStr . indexOf ( input . charAt ( i ++ ) ) ; enc2 = _keyStr . indexOf ( input . charAt ( i ++ ) ) ; enc3 = _keyStr . indexOf ( input . charAt ( i ++ ) ) ; enc4 = _keyStr . indexOf ( input . charAt ( i ++ ) ) ; chr1 = enc1 << 2 | enc2 >> 4 ; chr2 = ( enc2 & 15 ) << 4 | enc3 >> 2 ; chr3 = ( enc3 & 3 ) << 6 | enc4 ; output = output + String . fromCharCode ( chr1 ) ; if ( enc3 != 64 ) { output = output + String . fromCharCode ( chr2 ) } if ( enc4 != 64 ) { output = output + String . fromCharCode ( chr3 ) } } return output } } , { } ] , 2 : [ function ( _dereq _ , module , exports ) { "use strict" ; function CompressedObject ( ) { this . compressedSize = 0 ; this . uncompressedSize = 0 ; this . crc32 = 0 ; this . compressionMethod = null ; this . compressedContent = null } CompressedObject . prototype = { getContent : function ( ) { return null } , getCompressedContent : function ( ) { return null } } ; module . exports = CompressedObject } , { } ] , 3 : [ function ( _dereq _ , module , exports ) { "use strict" ; exports . STORE = { magic : "\0\0" , compress : function ( content ) { return content } , uncompress : function ( content ) { return content } , compressInputType : null , uncompressInputType : null } ; exports . DEFLATE = _dereq _ ( "./flate" ) } , { "./flate" : 8 } ] , 4 : [ function ( _dereq _ , module , exports ) { "use strict" ; var utils = _dereq _ ( "./utils" ) ; var table = [ 0 , 1996959894 , 3993919788 , 2567524794 , 124634137 , 1886057615 , 3915621685 , 2657392035 , 249268274 , 2044508324 , 3772115230 , 2547177864 , 162941995 , 2125561021 , 3887607047 , 2428444049 , 498536548 , 1789927666 , 4089016648 , 2227061214 , 450548861 , 1843258603 , 4107580753 , 2211677639 , 325883990 , 1684777152 , 4251122042 , 2321926636 , 335633487 , 1661365465 , 4195302755 , 2366115317 , 997073096 , 1281953886 , 3579855332 , 2724688242 , 1006888145 , 1258607687 , 3524101629 , 2768942443 , 901097722 , 1119000684 , 3686517206 , 2898065728 , 853044451 , 1172266101 , 3705015759 , 2882616665 , 651767980 , 1373503546 , 3369554304 , 3218104598 , 565507253 , 1454621731 , 3485111705 , 3099436303 , 671266974 , 1594198024 , 3322730930 , 2970347812 , 795835527 , 1483230225 , 3244367275 , 3060149565 , 1994146192 , 31158534 , 2563907772 , 4023717930 , 1907459465 , 112637215 , 2680153253 , 3904427059 , 2013776290 , 251722036 , 2517215374 , 3775830040 , 2137656763 , 141376813 , 2439277719 , 3865271297 , 1802195444 , 476864866 , 2238001368 , 4066508878 , 1812370925 , 453092731 , 2181625025 , 4111451223 , 1706088902 , 314042704 , 2344532202 , 4240017532 , 1658658271 , 366619977 , 2362670323 , 4224994405 , 1303535960 , 984961486 , 2747007092 , 3569037538 , 1256170817 , 1037604311 , 2765210733 , 3554079995 , 1131014506 , 879679996 , 2909243462 , 3663771856 , 1141124467 , 855842277 , 2852801631 , 3708648649 , 1342533948 , 654459306 , 3188396048 , 3373015174 , 1466479909 , 544179635 , 3110523913 , 3462522015 , 1591671054 , 702138776 , 2966460450 , 3352799412 , 1504918807 , 783551873 , 3082640443 , 3233442989 , 3988292384 , 2596254646 , 62317068 , 1957810842 , 3939845945 , 2647816111 , 81470997 , 1943803523 , 3814918930 , 2489596804 , 2
} return res } ; exports . findCompression = function ( compressionMethod ) { for ( var method in compressions ) { if ( ! compressions . hasOwnProperty ( method ) ) { continue } if ( compressions [ method ] . magic === compressionMethod ) { return compressions [ method ] } } return null } ; exports . isRegExp = function ( object ) { return Object . prototype . toString . call ( object ) === "[object RegExp]" } } , { "./compressions" : 3 , "./nodeBuffer" : 11 , "./support" : 17 } ] , 22 : [ function ( _dereq _ , module , exports ) { "use strict" ; var StringReader = _dereq _ ( "./stringReader" ) ; var NodeBufferReader = _dereq _ ( "./nodeBufferReader" ) ; var Uint8ArrayReader = _dereq _ ( "./uint8ArrayReader" ) ; var utils = _dereq _ ( "./utils" ) ; var sig = _dereq _ ( "./signature" ) ; var ZipEntry = _dereq _ ( "./zipEntry" ) ; var support = _dereq _ ( "./support" ) ; var jszipProto = _dereq _ ( "./object" ) ; function ZipEntries ( data , loadOptions ) { this . files = [ ] ; this . loadOptions = loadOptions ; if ( data ) { this . load ( data ) } } ZipEntries . prototype = { checkSignature : function ( expectedSignature ) { var signature = this . reader . readString ( 4 ) ; if ( signature !== expectedSignature ) { throw new Error ( "Corrupted zip or bug : unexpected signature " + "(" + utils . pretty ( signature ) + ", expected " + utils . pretty ( expectedSignature ) + ")" ) } } , readBlockEndOfCentral : function ( ) { this . diskNumber = this . reader . readInt ( 2 ) ; this . diskWithCentralDirStart = this . reader . readInt ( 2 ) ; this . centralDirRecordsOnThisDisk = this . reader . readInt ( 2 ) ; this . centralDirRecords = this . reader . readInt ( 2 ) ; this . centralDirSize = this . reader . readInt ( 4 ) ; this . centralDirOffset = this . reader . readInt ( 4 ) ; this . zipCommentLength = this . reader . readInt ( 2 ) ; this . zipComment = this . reader . readString ( this . zipCommentLength ) ; this . zipComment = jszipProto . utf8decode ( this . zipComment ) } , readBlockZip64EndOfCentral : function ( ) { this . zip64EndOfCentralSize = this . reader . readInt ( 8 ) ; this . versionMadeBy = this . reader . readString ( 2 ) ; this . versionNeeded = this . reader . readInt ( 2 ) ; this . diskNumber = this . reader . readInt ( 4 ) ; this . diskWithCentralDirStart = this . reader . readInt ( 4 ) ; this . centralDirRecordsOnThisDisk = this . reader . readInt ( 8 ) ; this . centralDirRecords = this . reader . readInt ( 8 ) ; this . centralDirSize = this . reader . readInt ( 8 ) ; this . centralDirOffset = this . reader . readInt ( 8 ) ; this . zip64ExtensibleData = { } ; var extraDataSize = this . zip64EndOfCentralSize - 44 , index = 0 , extraFieldId , extraFieldLength , extraFieldValue ; while ( index < extraDataSize ) { extraFieldId = this . reader . readInt ( 2 ) ; extraFieldLength = this . reader . readInt ( 4 ) ; extraFieldValue = this . reader . readString ( extraFieldLength ) ; this . zip64ExtensibleData [ extraFieldId ] = { id : extraFieldId , length : extraFieldLength , value : extraFieldValue } } } , readBlockZip64EndOfCentralLocator : function ( ) { this . diskWithZip64CentralDirStart = this . reader . readInt ( 4 ) ; this . relativeOffsetEndOfZip64CentralDir = this . reader . readInt ( 8 ) ; this . disksCount = this . reader . readInt ( 4 ) ; if ( this . disksCount > 1 ) { throw new Error ( "Multi-volumes zip are not supported" ) } } , readLocalFiles : function ( ) { var i , file ; for ( i = 0 ; i < this . files . length ; i ++ ) { file = this . files [ i ] ; this . reader . setIndex ( file . localHeaderOffset ) ; this . checkSignature ( sig . LOCAL _FILE _HEADER ) ; file . readLocalPart ( this . reader ) ; file . handleUTF8 ( ) } } , readCentralDir : function ( ) { var file ; this . reader . setIndex ( this . centralDirOffset ) ; while ( this . reader . readString ( 4 ) === sig . CENTRAL _FILE _HEADER ) { file = new ZipEntry ( { zip64 : this . zip64 } , this . loadOptions ) ; file . readCentralPart ( this . reader ) ; this . files . push ( file ) } } , readEndOfCentral : function ( ) { var offset = this . reader . lastIndexOfSignature ( sig . CENTRAL _DIRECTORY _END ) ; if ( offset === - 1 ) { throw new Error ( "Corrupted zip : can't find end of central directory" ) } this . reader . setIndex ( offset ) ; this . checkSignature ( sig . CENTRAL _DIRECTORY _END ) ; this . readBlockEndOfCentral ( ) ; if ( this . diskNumber === utils . MAX _VALUE _16BITS || this . diskWithCentralDirStart === utils . MAX _VALUE _16BITS || this . centralDirRecordsOnThisDisk === utils . MAX _VALUE _16BITS || this . centralDirRecords === utils . MAX _VALUE _16BITS || this . centralDirSize === utils . MAX _VALUE _32BITS || this . centralDirOffset === utils . MAX _VALUE _32BITS ) { this . zip64 = true ; offset = this . reader . lastIndexOfSignature ( sig . ZIP64 _CENTRAL _DIRECTORY _LOCATOR ) ; if ( offset === - 1 ) { throw new Error ( "Corrupted zip : can't find the ZIP64 end of central directory locator" ) } this . reader . setIndex ( offset ) ; this . checkSignature ( sig . ZIP64 _CENTRAL _D
var bflush ; for ( ; ; ) { if ( s . lookahead === 0 ) { fill _window ( s ) ; if ( s . lookahead === 0 ) { if ( flush === Z _NO _FLUSH ) { return BS _NEED _MORE } break } } s . match _length = 0 ; bflush = trees . _tr _tally ( s , 0 , s . window [ s . strstart ] ) ; s . lookahead -- ; s . strstart ++ ; if ( bflush ) { flush _block _only ( s , false ) ; if ( s . strm . avail _out === 0 ) { return BS _NEED _MORE } } } s . insert = 0 ; if ( flush === Z _FINISH ) { flush _block _only ( s , true ) ; if ( s . strm . avail _out === 0 ) { return BS _FINISH _STARTED } return BS _FINISH _DONE } if ( s . last _lit ) { flush _block _only ( s , false ) ; if ( s . strm . avail _out === 0 ) { return BS _NEED _MORE } } return BS _BLOCK _DONE } var Config = function ( good _length , max _lazy , nice _length , max _chain , func ) { this . good _length = good _length ; this . max _lazy = max _lazy ; this . nice _length = nice _length ; this . max _chain = max _chain ; this . func = func } ; var configuration _table ; configuration _table = [ new Config ( 0 , 0 , 0 , 0 , deflate _stored ) , new Config ( 4 , 4 , 8 , 4 , deflate _fast ) , new Config ( 4 , 5 , 16 , 8 , deflate _fast ) , new Config ( 4 , 6 , 32 , 32 , deflate _fast ) , new Config ( 4 , 4 , 16 , 16 , deflate _slow ) , new Config ( 8 , 16 , 32 , 32 , deflate _slow ) , new Config ( 8 , 16 , 128 , 128 , deflate _slow ) , new Config ( 8 , 32 , 128 , 256 , deflate _slow ) , new Config ( 32 , 128 , 258 , 1024 , deflate _slow ) , new Config ( 32 , 258 , 258 , 4096 , deflate _slow ) ] ; function lm _init ( s ) { s . window _size = 2 * s . w _size ; zero ( s . head ) ; s . max _lazy _match = configuration _table [ s . level ] . max _lazy ; s . good _match = configuration _table [ s . level ] . good _length ; s . nice _match = configuration _table [ s . level ] . nice _length ; s . max _chain _length = configuration _table [ s . level ] . max _chain ; s . strstart = 0 ; s . block _start = 0 ; s . lookahead = 0 ; s . insert = 0 ; s . match _length = s . prev _length = MIN _MATCH - 1 ; s . match _available = 0 ; s . ins _h = 0 } function DeflateState ( ) { this . strm = null ; this . status = 0 ; this . pending _buf = null ; this . pending _buf _size = 0 ; this . pending _out = 0 ; this . pending = 0 ; this . wrap = 0 ; this . gzhead = null ; this . gzindex = 0 ; this . method = Z _DEFLATED ; this . last _flush = - 1 ; this . w _size = 0 ; this . w _bits = 0 ; this . w _mask = 0 ; this . window = null ; this . window _size = 0 ; this . prev = null ; this . head = null ; this . ins _h = 0 ; this . hash _size = 0 ; this . hash _bits = 0 ; this . hash _mask = 0 ; this . hash _shift = 0 ; this . block _start = 0 ; this . match _length = 0 ; this . prev _match = 0 ; this . match _available = 0 ; this . strstart = 0 ; this . match _start = 0 ; this . lookahead = 0 ; this . prev _length = 0 ; this . max _chain _length = 0 ; this . max _lazy _match = 0 ; this . level = 0 ; this . strategy = 0 ; this . good _match = 0 ; this . nice _match = 0 ; this . dyn _ltree = new utils . Buf16 ( HEAP _SIZE * 2 ) ; this . dyn _dtree = new utils . Buf16 ( ( 2 * D _CODES + 1 ) * 2 ) ; this . bl _tree = new utils . Buf16 ( ( 2 * BL _CODES + 1 ) * 2 ) ; zero ( this . dyn _ltree ) ; zero ( this . dyn _dtree ) ; zero ( this . bl _tree ) ; this . l _desc = null ; this . d _desc = null ; this . bl _desc = null ; this . bl _count = new utils . Buf16 ( MAX _BITS + 1 ) ; this . heap = new utils . Buf16 ( 2 * L _CODES + 1 ) ; zero ( this . heap ) ; this . heap _len = 0 ; this . heap _max = 0 ; this . depth = new utils . Buf16 ( 2 * L _CODES + 1 ) ; zero ( this . depth ) ; this . l _buf = 0 ; this . lit _bufsize = 0 ; this . last _lit = 0 ; this . d _buf = 0 ; this . opt _len = 0 ; this . static _len = 0 ; this . matches = 0 ; this . insert = 0 ; this . bi _buf = 0 ; this . bi _valid = 0 } function deflateResetKeep ( strm ) { var s ; if ( ! strm || ! strm . state ) { return err ( strm , Z _STREAM _ERROR ) } strm . total _in = strm . total _out = 0 ; strm . data _type = Z _UNKNOWN ; s = strm . state ; s . pending = 0 ; s . pending _out = 0 ; if ( s . wrap < 0 ) { s . wrap = - s . wrap } s . status = s . wrap ? INIT _STATE : BUSY _STATE ; strm . adler = s . wrap === 2 ? 0 : 1 ; s . last _flush = Z _NO _FLUSH ; trees . _tr _init ( s ) ; return Z _OK } function deflateReset ( strm ) { var ret = deflateResetKeep ( strm ) ; if ( ret === Z _OK ) { lm _init ( strm . state ) } return ret } function deflateSetHeader ( strm , head ) { if ( ! strm || ! strm . state ) { return Z _STREAM _ERROR } if ( strm . state . wrap !== 2 ) { return Z _STREAM _ERROR } strm . state . gzhead = head ; return Z _OK } function deflateInit2 ( strm , level , method , windowBits , memLevel , strategy ) { if ( ! strm ) { return Z _STREAM _ERROR } var wrap = 1 ; if ( level === Z _DEFAULT _COMPRESSION ) { level = 6 } if ( windowBits < 0 ) { wrap = 0 ; windowBits = - windowBits } else if ( windowBits > 15 ) { wrap = 2 ; windowBits -= 16 } if ( memLevel < 1 || memLevel > MAX _MEM _LEVEL || method !== Z _DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z _FIXED ) { return err ( strm , Z _STREAM _ERROR ) } if ( windowBits === 8 ) { windowBits = 9 } var s = new DeflateState ; strm . state = s ; s . strm = strm ; s . wrap = wrap ; s . gzhead = null ; s . w _bits = windowBits ; s . w _size = 1 << s . w _bits ; s . w _mask = s . w _size - 1 ; s . hash _bits = memLevel + 7 ; s . hash _size = 1 << s . hash _bits ; s . hash _mask = s . hash _size - 1 ; s . hash _shift = ~ ~ ( ( s . hash _b
exports . inflateInfo = "pako inflate (from Nodeca project)" } , { "../utils/common" : 27 , "./adler32" : 29 , "./crc32" : 31 , "./inffast" : 34 , "./inftrees" : 36 } ] , 36 : [ function ( _dereq _ , module , exports ) { "use strict" ; var utils = _dereq _ ( "../utils/common" ) ; var MAXBITS = 15 ; var ENOUGH _LENS = 852 ; var ENOUGH _DISTS = 592 ; var CODES = 0 ; var LENS = 1 ; var DISTS = 2 ; var lbase = [ 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 13 , 15 , 17 , 19 , 23 , 27 , 31 , 35 , 43 , 51 , 59 , 67 , 83 , 99 , 115 , 131 , 163 , 195 , 227 , 258 , 0 , 0 ] ; var lext = [ 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 17 , 17 , 17 , 17 , 18 , 18 , 18 , 18 , 19 , 19 , 19 , 19 , 20 , 20 , 20 , 20 , 21 , 21 , 21 , 21 , 16 , 72 , 78 ] ; var dbase = [ 1 , 2 , 3 , 4 , 5 , 7 , 9 , 13 , 17 , 25 , 33 , 49 , 65 , 97 , 129 , 193 , 257 , 385 , 513 , 769 , 1025 , 1537 , 2049 , 3073 , 4097 , 6145 , 8193 , 12289 , 16385 , 24577 , 0 , 0 ] ; var dext = [ 16 , 16 , 16 , 16 , 17 , 17 , 18 , 18 , 19 , 19 , 20 , 20 , 21 , 21 , 22 , 22 , 23 , 23 , 24 , 24 , 25 , 25 , 26 , 26 , 27 , 27 , 28 , 28 , 29 , 29 , 64 , 64 ] ; module . exports = function inflate _table ( type , lens , lens _index , codes , table , table _index , work , opts ) { var bits = opts . bits ; var len = 0 ; var sym = 0 ; var min = 0 , max = 0 ; var root = 0 ; var curr = 0 ; var drop = 0 ; var left = 0 ; var used = 0 ; var huff = 0 ; var incr ; var fill ; var low ; var mask ; var next ; var base = null ; var base _index = 0 ; var end ; var count = new utils . Buf16 ( MAXBITS + 1 ) ; var offs = new utils . Buf16 ( MAXBITS + 1 ) ; var extra = null ; var extra _index = 0 ; var here _bits , here _op , here _val ; for ( len = 0 ; len <= MAXBITS ; len ++ ) { count [ len ] = 0 } for ( sym = 0 ; sym < codes ; sym ++ ) { count [ lens [ lens _index + sym ] ] ++ } root = bits ; for ( max = MAXBITS ; max >= 1 ; max -- ) { if ( count [ max ] !== 0 ) { break } } if ( root > max ) { root = max } if ( max === 0 ) { table [ table _index ++ ] = 1 << 24 | 64 << 16 | 0 ; table [ table _index ++ ] = 1 << 24 | 64 << 16 | 0 ; opts . bits = 1 ; return 0 } for ( min = 1 ; min < max ; min ++ ) { if ( count [ min ] !== 0 ) { break } } if ( root < min ) { root = min } left = 1 ; for ( len = 1 ; len <= MAXBITS ; len ++ ) { left <<= 1 ; left -= count [ len ] ; if ( left < 0 ) { return - 1 } } if ( left > 0 && ( type === CODES || max !== 1 ) ) { return - 1 } offs [ 1 ] = 0 ; for ( len = 1 ; len < MAXBITS ; len ++ ) { offs [ len + 1 ] = offs [ len ] + count [ len ] } for ( sym = 0 ; sym < codes ; sym ++ ) { if ( lens [ lens _index + sym ] !== 0 ) { work [ offs [ lens [ lens _index + sym ] ] ++ ] = sym } } if ( type === CODES ) { base = extra = work ; end = 19 } else if ( type === LENS ) { base = lbase ; base _index -= 257 ; extra = lext ; extra _index -= 257 ; end = 256 } else { base = dbase ; extra = dext ; end = - 1 } huff = 0 ; sym = 0 ; len = min ; next = table _index ; curr = root ; drop = 0 ; low = - 1 ; used = 1 << root ; mask = used - 1 ; if ( type === LENS && used > ENOUGH _LENS || type === DISTS && used > ENOUGH _DISTS ) { return 1 } var i = 0 ; for ( ; ; ) { i ++ ; here _bits = len - drop ; if ( work [ sym ] < end ) { here _op = 0 ; here _val = work [ sym ] } else if ( work [ sym ] > end ) { here _op = extra [ extra _index + work [ sym ] ] ; here _val = base [ base _index + work [ sym ] ] } else { here _op = 32 + 64 ; here _val = 0 } incr = 1 << len - drop ; fill = 1 << curr ; min = fill ; do { fill -= incr ; table [ next + ( huff >> drop ) + fill ] = here _bits << 24 | here _op << 16 | here _val | 0 } while ( fill !== 0 ) ; incr = 1 << len - 1 ; while ( huff & incr ) { incr >>= 1 } if ( incr !== 0 ) { huff &= incr - 1 ; huff += incr } else { huff = 0 } sym ++ ; if ( -- count [ len ] === 0 ) { if ( len === max ) { break } len = lens [ lens _index + work [ sym ] ] } if ( len > root && ( huff & mask ) !== low ) { if ( drop === 0 ) { drop = root } next += min ; curr = len - drop ; left = 1 << curr ; while ( curr + drop < max ) { left -= count [ curr + drop ] ; if ( left <= 0 ) { break } curr ++ ; left <<= 1 } used += 1 << curr ; if ( type === LENS && used > ENOUGH _LENS || type === DISTS && used > ENOUGH _DISTS ) { return 1 } low = huff & mask ; table [ low ] = root << 24 | curr << 16 | next - table _index | 0 } } if ( huff !== 0 ) { table [ next + huff ] = len - drop << 24 | 64 << 16 | 0 } opts . bits = root ; return 0 } } , { "../utils/common" : 27 } ] , 37 : [ function ( _dereq _ , module , exports ) { "use strict" ; module . exports = { 2 : "need dictionary" , 1 : "stream end" , 0 : "" , "-1" : "file error" , "-2" : "stream error" , "-3" : "data error" , "-4" : "insufficient memory" , "-5" : "buffer error" , "-6" : "incompatible version" } } , { } ] , 38 : [ function ( _dereq _ , module , exports ) { "use strict" ; var utils = _dereq _ ( "../utils/common" ) ; var Z _FIXED = 4 ; var Z _BINARY = 0 ; var Z _TEXT = 1 ; var Z _UNKNOWN = 2 ; function zero ( buf ) { var len = buf . length ; while ( -- len >= 0 ) { buf [ len ] = 0 } } var STORED _BLOCK = 0 ; var STATIC _TREES = 1 ; var DYN _TREES = 2 ; var MIN _MATCH = 3 ; var MAX _MATCH = 258 ; var LENGTH _CODES = 29 ; var LITERALS = 256 ; var L _CODES = LITERALS + 1 + LENGTH _CODES ; var D _CODES = 30 ; var BL _CODES = 19 ; var HEAP _SIZE = 2 * L _CODES + 1 ; var MAX _BITS = 15 ; var Buf _size = 16 ; var MAX _BL _BITS = 7 ; var END _BLOCK = 256 ; var REP _3 _6 = 16 ; var REPZ _3 _10 = 17 ; var REPZ _11 _138 = 18 ; var extra _lbits = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 5 , 5 , 5 , 5 , 0 ] ; var extra _dbits = [ 0 , 0 , 0 , 0 , 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 6 , 6 , 7 , 7 , 8 , 8 , 9 , 9 , 10 , 10 , 11 , 11 , 12 , 12 , 13 , 13 ] ; var extra _blbits = [ 0 , 0 , 0
for ( j = 0 ; j != D [ 225 ] . length ; ++ j ) if ( D [ 225 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 225 ] [ j ] ] = 57600 + j ; d [ 57600 + j ] = D [ 225 ] [ j ] } D [ 226 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰<E7AB88> 窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆<E7B3BA> <E7B486> <EFBFBD> " . split ( "" ) ; for ( j = 0 ; j != D [ 226 ] . length ; ++ j ) if ( D [ 226 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 226 ] [ j ] ] = 57856 + j ; d [ 57856 + j ] = D [ 226 ] [ j ] } D [ 227 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷<E7B983> 縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋<E884AF> <E8858B> <EFBFBD> " . split ( "" ) ; for ( j = 0 ; j != D [ 227 ] . length ; ++ j ) if ( D [ 227 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 227 ] [ j ] ] = 58112 + j ; d [ 58112 + j ] = D [ 227 ] [ j ] } D [ 228 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤<E8899F> 艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈<E89598> <E89588> <EFBFBD> " . split ( "" ) ; for ( j = 0 ; j != D [ 228 ] . length ; ++ j ) if ( D [ 228 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 228 ] [ j ] ] = 58368 + j ; d [ 58368 + j ] = D [ 228 ] [ j ] } D [ 229 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬<E89BA9> 蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞<E8A5A0> <E8A59E> <EFBFBD> " . split ( "" ) ; for ( j = 0 ; j != D [ 229 ] . length ; ++ j ) if ( D [ 229 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 229 ] [ j ] ] = 58624 + j ; d [ 58624 + j ] = D [ 229 ] [ j ] } D [ 230 ] = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧 <EFBFBD> 諤諱謔諠諢 <EFBFBD>
for ( j = 0 ; j != D [ 197 ] . length ; ++ j ) if ( D [ 197 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 197 ] [ j ] ] = 50432 + j ; d [ 50432 + j ] = D [ 197 ] [ j ] } D [ 198 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸<E88BB6> 苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐<E8AEAB> " . split ( "" ) ; for ( j = 0 ; j != D [ 198 ] . length ; ++ j ) if ( D [ 198 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 198 ] [ j ] ] = 50688 + j ; d [ 50688 + j ] = D [ 198 ] [ j ] } D [ 199 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮<E88EAD> 莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠<E9A9B1> " . split ( "" ) ; for ( j = 0 ; j != D [ 199 ] . length ; ++ j ) if ( D [ 199 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 199 ] [ j ] ] = 50944 + j ; d [ 50944 + j ] = D [ 199 ] [ j ] } D [ 200 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉<E89188> 葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁<E4B889> " . split ( "" ) ; for ( j = 0 ; j != D [ 200 ] . length ; ++ j ) if ( D [ 200 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 200 ] [ j ] ] = 51200 + j ; d [ 51200 + j ] = D [ 200 ] [ j ] } D [ 201 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗<E89395> 蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳<E58D87> " . split ( "" ) ; for ( j = 0 ; j != D [ 201 ] . length ; ++ j ) if ( D [ 201 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 201 ] [ j ] ] = 51456 + j ; d [ 51456 + j ] = D [ 201 ] [ j ] } D [ 202 ] = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕 <EFBFBD> 蕗蕘蕚蕛蕜 <EFBFBD>
for ( j = 0 ; j != D [ 154 ] . length ; ++ j ) if ( D [ 154 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 154 ] [ j ] ] = 39424 + j ; d [ 39424 + j ] = D [ 154 ] [ j ] } D [ 155 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲<EC8CB1> <EC8CB2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍<EC8D8C> <EC8D8D> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚<EC8F97> " . split ( "" ) ; for ( j = 0 ; j != D [ 155 ] . length ; ++ j ) if ( D [ 155 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 155 ] [ j ] ] = 39680 + j ; d [ 39680 + j ] = D [ 155 ] [ j ] } D [ 156 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾<EC8FBD> <EC8FBE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚<EC9099> <EC909A> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩<EC92A8> " . split ( "" ) ; for ( j = 0 ; j != D [ 156 ] . length ; ++ j ) if ( D [ 156 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 156 ] [ j ] ] = 39936 + j ; d [ 39936 + j ] = D [ 156 ] [ j ] } D [ 157 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅<EC9384> <EC9385> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟<EC939E> <EC939F> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔<EC9693> " . split ( "" ) ; for ( j = 0 ; j != D [ 157 ] . length ; ++ j ) if ( D [ 157 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 157 ] [ j ] ] = 40192 + j ; d [ 40192 + j ] = D [ 157 ] [ j ] } D [ 158 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶<EC96B3> <EC96B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧<EC97A6> <EC97A7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦<EC9AA3> " . split ( "" ) ; for ( j = 0 ; j != D [ 158 ] . length ; ++ j ) if ( D [ 158 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 158 ] [ j ] ] = 40448 + j ; d [ 40448 + j ] = D [ 158 ] [ j ] } D [ 159 ] = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 웳웴웵웶 <EFBFBD>
for ( j = 0 ; j != D [ 239 ] . length ; ++ j ) if ( D [ 239 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 239 ] [ j ] ] = 61184 + j ; d [ 61184 + j ] = D [ 239 ] [ j ] } D [ 240 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫<E7B8B1> " . split ( "" ) ; for ( j = 0 ; j != D [ 240 ] . length ; ++ j ) if ( D [ 240 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 240 ] [ j ] ] = 61440 + j ; d [ 61440 + j ] = D [ 240 ] [ j ] } D [ 241 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只<E4B98B> " . split ( "" ) ; for ( j = 0 ; j != D [ 241 ] . length ; ++ j ) if ( D [ 241 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 241 ] [ j ] ] = 61696 + j ; d [ 61696 + j ] = D [ 241 ] [ j ] } D [ 242 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯<E7B79D> " . split ( "" ) ; for ( j = 0 ; j != D [ 242 ] . length ; ++ j ) if ( D [ 242 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 242 ] [ j ] ] = 61952 + j ; d [ 61952 + j ] = D [ 242 ] [ j ] } D [ 243 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策<E69FB5> " . split ( "" ) ; for ( j = 0 ; j != D [ 243 ] . length ; ++ j ) if ( D [ 243 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 243 ] [ j ] ] = 62208 + j ; d [ 62208 + j ] = D [ 243 ] [ j ] } D [ 244 ] = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2017-04-03 06:02:02 +00:00
for ( j = 0 ; j != D [ 231 ] . length ; ++ j ) if ( D [ 231 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 231 ] [ j ] ] = 59136 + j ; d [ 59136 + j ] = D [ 231 ] [ j ] } D [ 232 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓<E98B91> <E98B93> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮<E599A0> " . split ( "" ) ; for ( j = 0 ; j != D [ 232 ] . length ; ++ j ) if ( D [ 232 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 232 ] [ j ] ] = 59392 + j ; d [ 59392 + j ] = D [ 232 ] [ j ] } D [ 233 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺<E6878C> <E686BA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸<E6BEBF> " . split ( "" ) ; for ( j = 0 ; j != D [ 233 ] . length ; ++ j ) if ( D [ 233 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 233 ] [ j ] ] = 59648 + j ; d [ 59648 + j ] = D [ 233 ] [ j ] } D [ 234 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙<E79E95> <E79E99> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘<E895A1> " . split ( "" ) ; for ( j = 0 ; j != D [ 234 ] . length ; ++ j ) if ( D [ 234 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 234 ] [ j ] ] = 59904 + j ; d [ 59904 + j ] = D [ 234 ] [ j ] } D [ 235 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠<E8A7B1> <E8ABA0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌<E98C94> " . split ( "" ) ; for ( j = 0 ; j != D [ 235 ] . length ; ++ j ) if ( D [ 235 ] [ j ] . charCodeAt ( 0 ) !== 65533 ) { e [ D [ 235 ] [ j ] ] = 60160 + j ; d [ 60160 + j ] = D [ 235 ] [ j ] } D [ 236 ] = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
var o = v . toFixed ( 11 ) . replace ( gnr1 , ".$1" ) ; if ( o . length > ( v < 0 ? 12 : 11 ) ) o = v . toPrecision ( 6 ) ; return o } function gfn4 ( o ) { for ( var i = 0 ; i != o . length ; ++ i ) if ( ( o . charCodeAt ( i ) | 32 ) === 101 ) return o . replace ( gnr4 , ".$1" ) . replace ( gnr5 , "E" ) . replace ( "e" , "E" ) . replace ( gnr6 , "$10$2" ) ; return o } function gfn5 ( o ) { return o . indexOf ( "." ) > - 1 ? o . replace ( gnr2 , "" ) . replace ( gnr1 , ".$1" ) : o } return function general _fmt _num ( v , opts ) { var V = Math . floor ( Math . log ( Math . abs ( v ) ) * Math . LOG10E ) , o ; if ( V >= - 4 && V <= - 1 ) o = v . toPrecision ( 10 + V ) ; else if ( Math . abs ( V ) <= 9 ) o = gfn2 ( v ) ; else if ( V === 10 ) o = v . toFixed ( 10 ) . substr ( 0 , 12 ) ; else o = gfn3 ( v ) ; return gfn5 ( gfn4 ( o ) ) } } ( ) ; SSF . _general _num = general _fmt _num ; function general _fmt ( v , opts ) { switch ( typeof v ) { case "string" : return v ; case "boolean" : return v ? "TRUE" : "FALSE" ; case "number" : return ( v | 0 ) === v ? general _fmt _int ( v , opts ) : general _fmt _num ( v , opts ) } throw new Error ( "unsupported value in General format: " + v ) } SSF . _general = general _fmt ; function fix _hijri ( date , o ) { return 0 } function parse _date _code ( v , opts , b2 ) { if ( v > 2958465 || v < 0 ) return null ; var date = v | 0 , time = Math . floor ( 86400 * ( v - date ) ) , dow = 0 ; var dout = [ ] ; var out = { D : date , T : time , u : 86400 * ( v - date ) - time , y : 0 , m : 0 , d : 0 , H : 0 , M : 0 , S : 0 , q : 0 } ; if ( Math . abs ( out . u ) < 1e-6 ) out . u = 0 ; fixopts ( opts != null ? opts : opts = [ ] ) ; if ( opts . date1904 ) date += 1462 ; if ( out . u > . 999 ) { out . u = 0 ; if ( ++ time == 86400 ) { time = 0 ; ++ date } } if ( date === 60 ) { dout = b2 ? [ 1317 , 10 , 29 ] : [ 1900 , 2 , 29 ] ; dow = 3 } else if ( date === 0 ) { dout = b2 ? [ 1317 , 8 , 29 ] : [ 1900 , 1 , 0 ] ; dow = 6 } else { if ( date > 60 ) -- date ; var d = new Date ( 1900 , 0 , 1 ) ; d . setDate ( d . getDate ( ) + date - 1 ) ; dout = [ d . getFullYear ( ) , d . getMonth ( ) + 1 , d . getDate ( ) ] ; dow = d . getDay ( ) ; if ( date < 60 ) dow = ( dow + 6 ) % 7 ; if ( b2 ) dow = fix _hijri ( d , dout ) } out . y = dout [ 0 ] ; out . m = dout [ 1 ] ; out . d = dout [ 2 ] ; out . S = time % 60 ; time = Math . floor ( time / 60 ) ; out . M = time % 60 ; time = Math . floor ( time / 60 ) ; out . H = time ; out . q = dow ; return out } SSF . parse _date _code = parse _date _code ; function write _date ( type , fmt , val , ss0 ) { var o = "" , ss = 0 , tt = 0 , y = val . y , out , outl = 0 ; switch ( type ) { case 98 : y = val . y + 543 ; case 121 : switch ( fmt . length ) { case 1 : case 2 : out = y % 100 ; outl = 2 ; break ; default : out = y % 1e4 ; outl = 4 ; break } break ; case 109 : switch ( fmt . length ) { case 1 : case 2 : out = val . m ; outl = fmt . length ; break ; case 3 : return months [ val . m - 1 ] [ 1 ] ; case 5 : return months [ val . m - 1 ] [ 0 ] ; default : return months [ val . m - 1 ] [ 2 ] } break ; case 100 : switch ( fmt . length ) { case 1 : case 2 : out = val . d ; outl = fmt . length ; break ; case 3 : return days [ val . q ] [ 0 ] ; default : return days [ val . q ] [ 1 ] } break ; case 104 : switch ( fmt . length ) { case 1 : case 2 : out = 1 + ( val . H + 11 ) % 12 ; outl = fmt . length ; break ; default : throw "bad hour format: " + fmt } break ; case 72 : switch ( fmt . length ) { case 1 : case 2 : out = val . H ; outl = fmt . length ; break ; default : throw "bad hour format: " + fmt } break ; case 77 : switch ( fmt . length ) { case 1 : case 2 : out = val . M ; outl = fmt . length ; break ; default : throw "bad minute format: " + fmt } break ; case 115 : if ( val . u === 0 ) switch ( fmt ) { case "s" : case "ss" : return pad0 ( val . S , fmt . length ) ; case ".0" : case ".00" : case ".000" : } switch ( fmt ) { case "s" : case "ss" : case ".0" : case ".00" : case ".000" : if ( ss0 >= 2 ) tt = ss0 === 3 ? 1e3 : 100 ; else tt = ss0 === 1 ? 10 : 1 ; ss = Math . round ( tt * ( val . S + val . u ) ) ; if ( ss >= 60 * tt ) ss = 0 ; if ( fmt === "s" ) return ss === 0 ? "0" : "" + ss / tt ; o = pad0 ( ss , 2 + ss0 ) ; if ( fmt === "ss" ) return o . substr ( 0 , 2 ) ; return "." + o . substr ( 2 , fmt . length - 1 ) ; default : throw "bad second format: " + fmt } case 90 : switch ( fmt ) { case "[h]" : case "[hh]" : out = val . D * 24 + val . H ; break ; case "[m]" : case "[mm]" : out = ( val . D * 24 + val . H ) * 60 + val . M ; break ; case "[s]" : case "[ss]" : out = ( ( val . D * 24 + val . H ) * 60 + val . M ) * 60 + Math . round ( val . S + val . u ) ; break ; default : throw "bad abstime format: " + fmt } outl = fmt . length === 3 ? 1 : 2 ; break ; case 101 : out = y ; outl = 1 } if ( outl > 0 ) return pad0 ( out , outl ) ; else return "" } function commaify ( s ) { if ( s . length <= 3 ) return s ; var j = s . length % 3 , o = s . substr ( 0 , j ) ; for ( ; j != s . length ; j += 3 ) o += ( o . length > 0 ? "," : "" ) + s . substr ( j , 3 ) ; return o } var write _num = function make _write _num ( ) { var pct1 = /%/g ; function write _num _pct ( type , fmt , val ) { var sfmt = fmt . replace ( pct1 , "" ) , mul = fmt . length - sfmt . length ; return write _num ( type , sfmt , val * Math . pow ( 10 , 2 * mul ) ) + fill ( "%" , mul ) } function write _num _cm ( type , fmt , val ) { var idx = fmt . length - 1 ; while ( fmt . charCodeAt ( idx - 1 ) === 44 ) -- idx ; return write _num ( type , fmt . substr ( 0 , idx ) , val / Math . pow ( 10 , 3 * ( fmt . length - idx ) ) ) } function write _num _exp ( fmt , val ) { var o ; var idx = fmt . indexOf ( "E" ) - fmt . indexOf ( "." ) - 1 ; if ( fmt . match ( /^#+0.0E\+0$/ ) ) { var
module . exports = CFB } function isval ( x ) { return x !== undefined && x !== null } function keys ( o ) { return Object . keys ( o ) } function evert _key ( obj , key ) { var o = [ ] , K = keys ( obj ) ; for ( var i = 0 ; i !== K . length ; ++ i ) o [ obj [ K [ i ] ] [ key ] ] = K [ i ] ; return o } function evert ( obj ) { var o = [ ] , K = keys ( obj ) ; for ( var i = 0 ; i !== K . length ; ++ i ) o [ obj [ K [ i ] ] ] = K [ i ] ; return o } function evert _num ( obj ) { var o = [ ] , K = keys ( obj ) ; for ( var i = 0 ; i !== K . length ; ++ i ) o [ obj [ K [ i ] ] ] = parseInt ( K [ i ] , 10 ) ; return o } function evert _arr ( obj ) { var o = [ ] , K = keys ( obj ) ; for ( var i = 0 ; i !== K . length ; ++ i ) { if ( o [ obj [ K [ i ] ] ] == null ) o [ obj [ K [ i ] ] ] = [ ] ; o [ obj [ K [ i ] ] ] . push ( K [ i ] ) } return o } function datenum ( v , date1904 ) { var epoch = v . getTime ( ) ; if ( date1904 ) epoch += 1462 * 24 * 60 * 60 * 1e3 ; return ( epoch + 22091616e5 ) / ( 24 * 60 * 60 * 1e3 ) } function numdate ( v ) { var date = SSF . parse _date _code ( v ) ; var val = new Date ; if ( date == null ) throw new Error ( "Bad Date Code: " + v ) ; val . setUTCDate ( date . d ) ; val . setUTCMonth ( date . m - 1 ) ; val . setUTCFullYear ( date . y ) ; val . setUTCHours ( date . H ) ; val . setUTCMinutes ( date . M ) ; val . setUTCSeconds ( date . S ) ; return val } function parse _isodur ( s ) { var sec = 0 , mt = 0 , time = false ; var m = s . match ( /P([0-9\.]+Y)?([0-9\.]+M)?([0-9\.]+D)?T([0-9\.]+H)?([0-9\.]+M)?([0-9\.]+S)?/ ) ; if ( ! m ) throw new Error ( "|" + s + "| is not an ISO8601 Duration" ) ; for ( var i = 1 ; i != m . length ; ++ i ) { if ( ! m [ i ] ) continue ; mt = 1 ; if ( i > 3 ) time = true ; switch ( m [ i ] . substr ( m [ i ] . length - 1 ) ) { case "Y" : throw new Error ( "Unsupported ISO Duration Field: " + m [ i ] . substr ( m [ i ] . length - 1 ) ) ; case "D" : mt *= 24 ; case "H" : mt *= 60 ; case "M" : if ( ! time ) throw new Error ( "Unsupported ISO Duration Field: M" ) ; else mt *= 60 ; case "S" : break } sec += mt * parseInt ( m [ i ] , 10 ) } return sec } var good _pd _date = new Date ( "2017-02-19T19:06:09.000Z" ) ; var good _pd = good _pd _date . getFullYear ( ) == 2017 ; function parseDate ( str ) { if ( good _pd ) return new Date ( str ) ; if ( str instanceof Date ) return str ; var n = str . match ( /\d+/g ) || [ "2017" , "2" , "19" , "0" , "0" , "0" ] ; return new Date ( Date . UTC ( + n [ 0 ] , + n [ 1 ] - 1 , + n [ 2 ] , + n [ 3 ] , + n [ 4 ] , + n [ 5 ] ) ) } function cc2str ( arr ) { var o = "" ; for ( var i = 0 ; i != arr . length ; ++ i ) o += String . fromCharCode ( arr [ i ] ) ; return o } function str2cc ( str ) { var o = [ ] ; for ( var i = 0 ; i != str . length ; ++ i ) o . push ( str . charCodeAt ( i ) ) ; return o } function dup ( o ) { if ( typeof JSON != "undefined" && ! Array . isArray ( o ) ) return JSON . parse ( JSON . stringify ( o ) ) ; if ( typeof o != "object" || o == null ) return o ; var out = { } ; for ( var k in o ) if ( o . hasOwnProperty ( k ) ) out [ k ] = dup ( o [ k ] ) ; return out } function fill ( c , l ) { var o = "" ; while ( o . length < l ) o += c ; return o } function getdatastr ( data ) { if ( ! data ) return null ; if ( data . data ) return debom ( data . data ) ; if ( data . asNodeBuffer && has _buf ) return debom ( data . asNodeBuffer ( ) . toString ( "binary" ) ) ; if ( data . asBinary ) return debom ( data . asBinary ( ) ) ; if ( data . _data && data . _data . getContent ) return debom ( cc2str ( Array . prototype . slice . call ( data . _data . getContent ( ) , 0 ) ) ) ; return null } function getdatabin ( data ) { if ( ! data ) return null ; if ( data . data ) return char _codes ( data . data ) ; if ( data . asNodeBuffer && has _buf ) return data . asNodeBuffer ( ) ; if ( data . _data && data . _data . getContent ) { var o = data . _data . getContent ( ) ; if ( typeof o == "string" ) return str2cc ( o ) ; return Array . prototype . slice . call ( o ) } return null } function getdata ( data ) { return data && data . name . slice ( - 4 ) === ".bin" ? getdatabin ( data ) : getdatastr ( data ) } function safegetzipfile ( zip , file ) { var k = keys ( zip . files ) ; var f = file . toLowerCase ( ) , g = f . replace ( /\//g , "\\" ) ; for ( var i = 0 ; i < k . length ; ++ i ) { var n = k [ i ] . toLowerCase ( ) ; if ( f == n || g == n ) return zip . files [ k [ i ] ] } return null } function getzipfile ( zip , file ) { var o = safegetzipfile ( zip , file ) ; if ( o == null ) throw new Error ( "Cannot find file " + file + " in zip" ) ; return o } function getzipdata ( zip , file , safe ) { if ( ! safe ) return getdata ( getzipfile ( zip , file ) ) ; if ( ! file ) return null ; try { return getzipdata ( zip , file ) } catch ( e ) { return null } } function getzipstr ( zip , file , safe ) { if ( ! safe ) return getdatastr ( getzipfile ( zip , file ) ) ; if ( ! file ) return null ; try { return getzipstr ( zip , file ) } catch ( e ) { return null } } var _fs , jszip ; if ( typeof JSZip !== "undefined" ) jszip = JSZip ; if ( typeof exports !== "undefined" ) { if ( typeof module !== "undefined" && module . exports ) { if ( typeof jszip === "undefined" ) jszip = require ( "./jszip.js" ) ; _fs = require ( "fs" ) } } function resolve _path ( path , base ) { var result = base . split ( "/" ) ; if ( base . slice ( - 1 ) != "/" ) result . pop ( ) ; var target = path . split ( "/" ) ; while ( target . length !== 0 ) { var step = target . sh
"application/vnd.openxmlformats-officedocument.themeOverride+xml" : "TODO" , "application/vnd.ms-excel.Timeline+xml" : "TODO" , "application/vnd.ms-excel.TimelineCache+xml" : "TODO" , "application/vnd.ms-office.vbaProject" : "vba" , "application/vnd.ms-office.vbaProjectSignature" : "vba" , "application/vnd.ms-office.volatileDependencies" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml" : "TODO" , "application/vnd.ms-excel.controlproperties+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.model+data" : "TODO" , "application/vnd.ms-excel.Survey+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.drawing+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.drawingml.chart+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.vmlDrawing" : "TODO" , "application/vnd.openxmlformats-package.relationships+xml" : "rels" , "application/vnd.openxmlformats-officedocument.oleObject" : "TODO" , "image/png" : "TODO" , sheet : "js" } ; var CT _LIST = function ( ) { var o = { workbooks : { xlsx : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" , xlsm : "application/vnd.ms-excel.sheet.macroEnabled.main+xml" , xlsb : "application/vnd.ms-excel.sheet.binary.macroEnabled.main" , xltx : "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml" } , strs : { xlsx : "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml" , xlsb : "application/vnd.ms-excel.sharedStrings" } , comments : { xlsx : "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml" , xlsb : "application/vnd.ms-excel.comments" } , sheets : { xlsx : "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" , xlsb : "application/vnd.ms-excel.worksheet" } , charts : { xlsx : "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml" , xlsb : "application/vnd.ms-excel.chartsheet" } , dialogs : { xlsx : "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml" , xlsb : "application/vnd.ms-excel.dialogsheet" } , macros : { xlsx : "application/vnd.ms-excel.macrosheet+xml" , xlsb : "application/vnd.ms-excel.macrosheet" } , styles : { xlsx : "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" , xlsb : "application/vnd.ms-excel.styles" } } ; keys ( o ) . forEach ( function ( k ) { if ( ! o [ k ] . xlsm ) o [ k ] . xlsm = o [ k ] . xlsx } ) ; keys ( o ) . forEach ( function ( k ) { keys ( o [ k ] ) . forEach ( function ( v ) { ct2type [ o [ k ] [ v ] ] = k } ) } ) ; return o } ( ) ; var type2ct = evert _arr ( ct2type ) ; XMLNS . CT = "http://schemas.openxmlformats.org/package/2006/content-types" ; function parse _ct ( data , opts ) { var ct = { workbooks : [ ] , sheets : [ ] , charts : [ ] , dialogs : [ ] , macros : [ ] , rels : [ ] , strs : [ ] , comments : [ ] , coreprops : [ ] , extprops : [ ] , custprops : [ ] , themes : [ ] , styles : [ ] , calcchains : [ ] , vba : [ ] , TODO : [ ] , xmlns : "" } ; if ( ! data || ! data . match ) return ct ; var ctext = { } ; ( data . match ( tagregex ) || [ ] ) . forEach ( function ( x ) { var y = parsexmltag ( x ) ; switch ( y [ 0 ] . replace ( nsregex , "<" ) ) { case "<?xml" : break ; case "<Types" : ct . xmlns = y [ "xmlns" + ( y [ 0 ] . match ( /<(\w+):/ ) || [ "" , "" ] ) [ 1 ] ] ; break ; case "<Default" : ctext [ y . Extension ] = y . ContentType ; break ; case "<Override" : if ( ct [ ct2type [ y . ContentType ] ] !== undefined ) ct [ ct2type [ y . ContentType ] ] . push ( y . PartName ) ; break } } ) ; if ( ct . xmlns !== XMLNS . CT ) throw new Error ( "Unknown Namespace: " + ct . xmlns ) ; ct . calcchain = ct . calcchains . length > 0 ? ct . calcchains [ 0 ] : "" ; ct . sst = ct . strs . length > 0 ? ct . strs [ 0 ] : "" ; ct . style = ct . styles . length > 0 ? ct . styles [ 0 ] : "" ; ct . defaults = ctext ; delete ct . calcchains ; return ct } var CTYPE _XML _ROOT = writextag ( "Types" , null , { xmlns : XMLNS . CT , "xmlns:xsd" : XMLNS . xsd , "xmlns:xsi" : XMLNS . xsi } ) ; var CTYPE _DEFAULTS = [ [ "xml" , "application/xml" ] , [ "bin" , "application/vnd.ms-excel.sheet.binary.macroEnabled.main" ] , [ "vml" , "application/vnd.openxmlformats-officedocument.vmlDrawing" ] , [ "bmp" , "image/bmp" ] , [ "png" , "image/png" ] , [ "gif" , "image/gif" ] , [ "emf" , " image
return { r : rw , c : col , cnt : Col - col } } function parse _ForceFullCalculation ( blob , length ) { var header = parse _frtHeader ( blob ) ; if ( header . type != 2211 ) throw new Error ( "Invalid Future Record " + header . type ) ; var fullcalc = blob . read _shift ( 4 ) ; return fullcalc !== 0 } var parse _CompressPictures = parsenoop2 ; function parse _RecalcId ( blob , length ) { blob . read _shift ( 2 ) ; return blob . read _shift ( 4 ) } function parse _DefaultRowHeight ( blob , length ) { var f = blob . read _shift ( 2 ) ; var fl = { Unsynced : f & 1 , DyZero : ( f & 2 ) >> 1 , ExAsc : ( f & 4 ) >> 2 , ExDsc : ( f & 8 ) >> 3 } ; var miyRw = blob . read _shift ( 2 ) ; return [ fl , miyRw ] } function parse _Window1 ( blob , length ) { var xWn = blob . read _shift ( 2 ) , yWn = blob . read _shift ( 2 ) , dxWn = blob . read _shift ( 2 ) , dyWn = blob . read _shift ( 2 ) ; var flags = blob . read _shift ( 2 ) , iTabCur = blob . read _shift ( 2 ) , iTabFirst = blob . read _shift ( 2 ) ; var ctabSel = blob . read _shift ( 2 ) , wTabRatio = blob . read _shift ( 2 ) ; return { Pos : [ xWn , yWn ] , Dim : [ dxWn , dyWn ] , Flags : flags , CurTab : iTabCur , FirstTab : iTabFirst , Selected : ctabSel , TabRatio : wTabRatio } } function parse _Font ( blob , length , opts ) { blob . l += 14 ; var name = parse _ShortXLUnicodeString ( blob , 0 , opts ) ; return name } function parse _LabelSst ( blob , length ) { var cell = parse _XLSCell ( blob ) ; cell . isst = blob . read _shift ( 4 ) ; return cell } function parse _Label ( blob , length , opts ) { var target = blob . l + length ; var cell = parse _XLSCell ( blob , 6 ) ; if ( opts . biff == 2 ) blob . l ++ ; var str = parse _XLUnicodeString ( blob , target - blob . l , opts ) ; cell . val = str ; return cell } function parse _Format ( blob , length , opts ) { var ifmt = blob . read _shift ( 2 ) ; var fmtstr = parse _XLUnicodeString2 ( blob , 0 , opts ) ; return [ ifmt , fmtstr ] } var parse _BIFF2Format = parse _XLUnicodeString2 ; function parse _Dimensions ( blob , length , opts ) { var end = blob . l + length ; var w = opts . biff == 8 || ! opts . biff ? 4 : 2 ; var r = blob . read _shift ( w ) , R = blob . read _shift ( w ) , c = blob . read _shift ( 2 ) , C = blob . read _shift ( 2 ) ; blob . l = end ; return { s : { r : r , c : c } , e : { r : R , c : C } } } function parse _RK ( blob , length ) { var rw = blob . read _shift ( 2 ) , col = blob . read _shift ( 2 ) ; var rkrec = parse _RkRec ( blob ) ; return { r : rw , c : col , ixfe : rkrec [ 0 ] , rknum : rkrec [ 1 ] } } function parse _MulRk ( blob , length ) { var target = blob . l + length - 2 ; var rw = blob . read _shift ( 2 ) , col = blob . read _shift ( 2 ) ; var rkrecs = [ ] ; while ( blob . l < target ) rkrecs . push ( parse _RkRec ( blob ) ) ; if ( blob . l !== target ) throw new Error ( "MulRK read error" ) ; var lastcol = blob . read _shift ( 2 ) ; if ( rkrecs . length != lastcol - col + 1 ) throw new Error ( "MulRK length mismatch" ) ; return { r : rw , c : col , C : lastcol , rkrec : rkrecs } } function parse _MulBlank ( blob , length ) { var target = blob . l + length - 2 ; var rw = blob . read _shift ( 2 ) , col = blob . read _shift ( 2 ) ; var ixfes = [ ] ; while ( blob . l < target ) ixfes . push ( blob . read _shift ( 2 ) ) ; if ( blob . l !== target ) throw new Error ( "MulBlank read error" ) ; var lastcol = blob . read _shift ( 2 ) ; if ( ixfes . length != lastcol - col + 1 ) throw new Error ( "MulBlank length mismatch" ) ; return { r : rw , c : col , C : lastcol , ixfe : ixfes } } function parse _CellStyleXF ( blob , length , style , opts ) { var o = { } ; var a = blob . read _shift ( 4 ) , b = blob . read _shift ( 4 ) ; var c = blob . read _shift ( 4 ) , d = blob . read _shift ( 2 ) ; o . patternType = XLSFillPattern [ c >> 26 ] ; if ( ! opts . cellStyles ) return o ; o . alc = a & 7 ; o . fWrap = a >> 3 & 1 ; o . alcV = a >> 4 & 7 ; o . fJustLast = a >> 7 & 1 ; o . trot = a >> 8 & 255 ; o . cIndent = a >> 16 & 15 ; o . fShrinkToFit = a >> 20 & 1 ; o . iReadOrder = a >> 22 & 2 ; o . fAtrNum = a >> 26 & 1 ; o . fAtrFnt = a >> 27 & 1 ; o . fAtrAlc = a >> 28 & 1 ; o . fAtrBdr = a >> 29 & 1 ; o . fAtrPat = a >> 30 & 1 ; o . fAtrProt = a >> 31 & 1 ; o . dgLeft = b & 15 ; o . dgRight = b >> 4 & 15 ; o . dgTop = b >> 8 & 15 ; o . dgBottom = b >> 12 & 15 ; o . icvLeft = b >> 16 & 127 ; o . icvRight = b >> 23 & 127 ; o . grbitDiag = b >> 30 & 3 ; o . icvTop = c & 127 ; o . icvBottom = c >> 7 & 127 ; o . icvDiag = c >> 14 & 127 ; o . dgDiag = c >> 21 & 15 ; o . icvFore = d & 127 ; o . icvBack = d >> 7 & 127 ; o . fsxButton = d >> 14 & 1 ; return o } function parse _CellXF ( blob , length , opts ) { return parse _CellStyleXF ( blob , length , 0 , opts ) } function parse _StyleXF ( blob , length , opts ) { return parse _CellStyleXF ( blob , length , 1 , opts ) } function parse _XF ( blob , length , opts ) { var o = { } ; o . ifnt = blob . read _shift ( 2 ) ; o . ifmt = blob . read _shift ( 2 ) ; o . flags = blob . read _shift ( 2 ) ; o . fStyle = o . flags >> 2 & 1 ; length -= 6 ; o . data = parse _CellStyleXF ( blob , length , o . fStyle , opts ) ; return o } function parse _Guts ( blob , length ) { blob . l += 4 ; var out = [ blob . read _shift ( 2 ) , blob . read _shift ( 2 ) ] ; if ( out [ 0 ] !== 0 ) out [ 0 ] -- ; if ( out [ 1 ] !== 0 ) out [ 1 ] -- ; if ( out [ 0 ] > 7 || out [ 1 ] > 7 ) throw new Error ( "Bad Gutters: " + out . join ( "|" ) ) ; return out } function parse _BoolErr ( blob , length , opts ) { var cell = parse _XLSCell ( blob , 6 ) ; if (
outro . push ( "</span>" ) ; return cp } ; function parse _r ( r ) { var terms = [ [ ] , "" , [ ] ] ; var t = r . match ( tregex ) , cp = 65001 ; if ( ! isval ( t ) ) return "" ; terms [ 1 ] = t [ 1 ] ; var rpr = r . match ( rpregex ) ; if ( isval ( rpr ) ) cp = parse _rpr ( rpr [ 1 ] , terms [ 0 ] , terms [ 2 ] ) ; return terms [ 0 ] . join ( "" ) + terms [ 1 ] . replace ( nlregex , "<br/>" ) + terms [ 2 ] . join ( "" ) } return function parse _rs ( rs ) { return rs . replace ( rregex , "" ) . split ( rend ) . map ( parse _r ) . join ( "" ) } } ( ) ; var sitregex = /<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g , sirregex = /<(?:\w+:)?r>/ ; var sirphregex = /<(?:\w+:)?rPh.*?>(.*?)<\/(?:\w+:)?rPh>/g ; function parse _si ( x , opts ) { var html = opts ? opts . cellHTML : true ; var z = { } ; if ( ! x ) return null ; var y ; if ( x . match ( /^\s*<(?:\w+:)?t[^>]*>/ ) ) { z . t = utf8read ( unescapexml ( x . substr ( x . indexOf ( ">" ) + 1 ) . split ( /<\/(?:\w+:)?t>/ ) [ 0 ] ) ) ; z . r = utf8read ( x ) ; if ( html ) z . h = z . t } else if ( y = x . match ( sirregex ) ) { z . r = utf8read ( x ) ; z . t = utf8read ( unescapexml ( ( x . replace ( sirphregex , "" ) . match ( sitregex ) || [ ] ) . join ( "" ) . replace ( tagregex , "" ) ) ) ; if ( html ) z . h = parse _rs ( z . r ) } return z } var sstr0 = /<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/ ; var sstr1 = /<(?:\w+:)?(?:si|sstItem)>/g ; var sstr2 = /<\/(?:\w+:)?(?:si|sstItem)>/ ; function parse _sst _xml ( data , opts ) { var s = [ ] , ss = "" ; if ( ! data ) return s ; var sst = data . match ( sstr0 ) ; if ( isval ( sst ) ) { ss = sst [ 2 ] . replace ( sstr1 , "" ) . split ( sstr2 ) ; for ( var i = 0 ; i != ss . length ; ++ i ) { var o = parse _si ( ss [ i ] . trim ( ) , opts ) ; if ( o != null ) s [ s . length ] = o } sst = parsexmltag ( sst [ 1 ] ) ; s . Count = sst . count ; s . Unique = sst . uniqueCount } return s } RELS . SST = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" ; var straywsregex = /^\s|\s$|[\t\n\r]/ ; function write _sst _xml ( sst , opts ) { if ( ! opts . bookSST ) return "" ; var o = [ XML _HEADER ] ; o [ o . length ] = writextag ( "sst" , null , { xmlns : XMLNS . main [ 0 ] , count : sst . Count , uniqueCount : sst . Unique } ) ; for ( var i = 0 ; i != sst . length ; ++ i ) { if ( sst [ i ] == null ) continue ; var s = sst [ i ] ; var sitag = "<si>" ; if ( s . r ) sitag += s . r ; else { sitag += "<t" ; if ( ! s . t ) s . t = "" ; if ( s . t . match ( straywsregex ) ) sitag += ' xml:space="preserve"' ; sitag += ">" + escapexml ( s . t ) + "</t>" } sitag += "</si>" ; o [ o . length ] = sitag } if ( o . length > 2 ) { o [ o . length ] = "</sst>" ; o [ 1 ] = o [ 1 ] . replace ( "/>" , ">" ) } return o . join ( "" ) } function parse _BrtBeginSst ( data , length ) { return [ data . read _shift ( 4 ) , data . read _shift ( 4 ) ] } function parse _sst _bin ( data , opts ) { var s = [ ] ; var pass = false ; recordhopper ( data , function hopper _sst ( val , R , RT ) { switch ( R . n ) { case "BrtBeginSst" : s . Count = val [ 0 ] ; s . Unique = val [ 1 ] ; break ; case "BrtSSTItem" : s . push ( val ) ; break ; case "BrtEndSst" : return true ; case "BrtFRTBegin" : pass = true ; break ; case "BrtFRTEnd" : pass = false ; break ; default : if ( ! pass || opts . WTF ) throw new Error ( "Unexpected record " + RT + " " + R . n ) } } ) ; return s } function write _BrtBeginSst ( sst , o ) { if ( ! o ) o = new _buf ( 8 ) ; o . write _shift ( 4 , sst . Count ) ; o . write _shift ( 4 , sst . Unique ) ; return o } var write _BrtSSTItem = write _RichStr ; function write _sst _bin ( sst , opts ) { var ba = buf _array ( ) ; write _record ( ba , "BrtBeginSst" , write _BrtBeginSst ( sst ) ) ; for ( var i = 0 ; i < sst . length ; ++ i ) write _record ( ba , "BrtSSTItem" , write _BrtSSTItem ( sst [ i ] ) ) ; write _record ( ba , "BrtEndSst" ) ; return ba . end ( ) } function _JS2ANSI ( str ) { if ( typeof cptable !== "undefined" ) return cptable . utils . encode ( 1252 , str ) ; var o = [ ] , oo = str . split ( "" ) ; for ( var i = 0 ; i < oo . length ; ++ i ) o [ i ] = oo [ i ] . charCodeAt ( 0 ) ; return o } function parse _Version ( blob , length ) { var o = { } ; o . Major = blob . read _shift ( 2 ) ; o . Minor = blob . read _shift ( 2 ) ; return o } function parse _EncryptionHeader ( blob , length ) { var o = { } ; o . Flags = blob . read _shift ( 4 ) ; var tmp = blob . read _shift ( 4 ) ; if ( tmp !== 0 ) throw "Unrecognized SizeExtra: " + tmp ; o . AlgID = blob . read _shift ( 4 ) ; switch ( o . AlgID ) { case 0 : case 26625 : case 26126 : case 26127 : case 26128 : break ; default : throw "Unrecognized encryption algorithm: " + o . AlgID } parsenoop ( blob , length - 12 ) ; return o } function parse _EncryptionVerifier ( blob , length ) { return parsenoop ( blob , length ) } function parse _RC4CryptoHeader ( blob , length ) { var o = { } ; var vers = o . EncryptionVersionInfo = parse _Version ( blob , 4 ) ; length -= 4 ; if ( vers . Minor != 2 ) throw "unrecognized minor version code: " + vers . Minor ; if ( vers . Major > 4 || vers . Major < 2 ) throw "unrecognized major version code: " + vers . Major ; o . Flags = blob . read _shift ( 4 ) ; length -= 4 ; var sz = blob . read _shift ( 4 ) ; length -= 4 ; o . EncryptionHeader = parse _EncryptionHeader ( blob , sz ) ; length -= sz ; o . EncryptionVerifier = parse _EncryptionVerifier ( blob , length ) ; ret
o [ o . length ] = "</a:effectStyle>" ; o [ o . length ] = "</a:effectStyleLst>" ; o [ o . length ] = "<a:bgFillStyleLst>" ; o [ o . length ] = '<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>' ; o [ o . length ] = '<a:gradFill rotWithShape="1">' ; o [ o . length ] = "<a:gsLst>" ; o [ o . length ] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs>' ; o [ o . length ] = '<a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs>' ; o [ o . length ] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs>' ; o [ o . length ] = "</a:gsLst>" ; o [ o . length ] = '<a:path path="circle"><a:fillToRect l="50000" t="-80000" r="50000" b="180000"/></a:path>' ; o [ o . length ] = "</a:gradFill>" ; o [ o . length ] = '<a:gradFill rotWithShape="1">' ; o [ o . length ] = "<a:gsLst>" ; o [ o . length ] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs>' ; o [ o . length ] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs>' ; o [ o . length ] = "</a:gsLst>" ; o [ o . length ] = '<a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path>' ; o [ o . length ] = "</a:gradFill>" ; o [ o . length ] = "</a:bgFillStyleLst>" ; o [ o . length ] = "</a:fmtScheme>" ; o [ o . length ] = "</a:themeElements>" ; o [ o . length ] = "<a:objectDefaults>" ; o [ o . length ] = "<a:spDef>" ; o [ o . length ] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx="1"><a:schemeClr val="accent1"/></a:lnRef><a:fillRef idx="3"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef idx="2"><a:schemeClr val="accent1"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="lt1"/></a:fontRef></a:style>' ; o [ o . length ] = "</a:spDef>" ; o [ o . length ] = "<a:lnDef>" ; o [ o . length ] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx="2"><a:schemeClr val="accent1"/></a:lnRef><a:fillRef idx="0"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef idx="1"><a:schemeClr val="accent1"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="tx1"/></a:fontRef></a:style>' ; o [ o . length ] = "</a:lnDef>" ; o [ o . length ] = "</a:objectDefaults>" ; o [ o . length ] = "<a:extraClrSchemeLst/>" ; o [ o . length ] = "</a:theme>" ; return o . join ( "" ) } function parse _Theme ( blob , length , opts ) { var dwThemeVersion = blob . read _shift ( 4 ) ; if ( dwThemeVersion === 124226 ) return ; blob . l += length - 4 } function parse _ColorTheme ( blob , length ) { return blob . read _shift ( 4 ) } function parse _FullColorExt ( blob , length ) { var o = { } ; o . xclrType = blob . read _shift ( 2 ) ; o . nTintShade = blob . read _shift ( 2 ) ; switch ( o . xclrType ) { case 0 : blob . l += 4 ; break ; case 1 : o . xclrValue = parse _IcvXF ( blob , 4 ) ; break ; case 2 : o . xclrValue = parse _LongRGBA ( blob , 4 ) ; break ; case 3 : o . xclrValue = parse _ColorTheme ( blob , 4 ) ; break ; case 4 : blob . l += 4 ; break } blob . l += 8 ; return o } function parse _IcvXF ( blob , length ) { return parsenoop ( blob , length ) } function parse _XFExtGradient ( blob , length ) { return parsenoop ( blob , length ) } function parse _ExtProp ( blob , length ) { var extType = blob . read _shift ( 2 ) ; var cb = blob . read _shift ( 2 ) ; var o = [ extType ] ; switch ( extType ) { case 4 : case 5 : case 7 : case 8 : case 9 : case 10 : case 11 : case 13 : o [ 1 ] = parse _FullColorExt ( blob , cb ) ; break ; case 6 : o [ 1 ] = parse _XFExtGradient ( blob , cb ) ; break ; case 14 : case 15 : o [ 1 ] = blob . read _shift ( cb === 5 ? 1 : 2 ) ; break ; default : throw new Error ( "Unrecognized ExtProp type: " + extType + " " + cb ) } return o } function parse _XFExt ( blob , length ) { var end = blob . l + length ; blob . l += 2 ; var ixfe = blob . read _shift ( 2 ) ; blob . l += 2 ; var cexts = blob . read _shift ( 2 ) ; var ext = [ ] ; while ( cexts -- > 0 ) ext . push ( parse _ExtProp ( blob , end - blob . l ) ) ; return { ixfe : ixfe , ext : ext } } function update _xfext ( xf , xfext ) { xfext . forEach ( function ( xfe ) { switch ( xfe [ 0 ] ) { case 4 : break ; case 5 : break ; case 6 : break ; case 7 : break ; case 8 : break ; case 9 : break ; case 10 : break ; case 11 : break ; case 13 : break ; case 14 : break ; case 15 : break } } ) } function parse _cc _xml ( data , opts ) { var d = [ ] ; if ( ! data ) return d ; var l = 0 , i = 1 ; ( data . match ( tagregex ) || [ ] ) . forEach ( function ( x ) { var y = parsexmltag ( x ) ; switch ( y [ 0 ] ) { case "<?xml" : break ; case "<calcChain" : case "<calcChain>" : case "</calcChain>" : break ; case "<c" : delete y [ 0 ] ; if ( y . i ) i = y . i ; else y . i = i ; d . push ( y ) ; break } } ) ; return d } function write _cc _xml ( data , opts ) { } function parse _BrtCalcChainItem$ ( d
} var PtgNonDisp = [ "PtgAttrSpace" , "PtgAttrSpaceSemi" , "PtgAttrGoto" ] ; if ( last _sp >= 0 && PtgNonDisp . indexOf ( formula [ 0 ] [ ff ] [ 0 ] ) == - 1 ) { f = formula [ 0 ] [ last _sp ] ; var _left = true ; switch ( f [ 1 ] [ 0 ] ) { case 4 : _left = false ; case 0 : sp = fill ( " " , f [ 1 ] [ 1 ] ) ; break ; case 5 : _left = false ; case 1 : sp = fill ( "\r" , f [ 1 ] [ 1 ] ) ; break ; default : sp = "" ; if ( opts . WTF ) throw new Error ( "Unexpected PtgAttrSpaceType " + f [ 1 ] [ 0 ] ) } stack . push ( ( _left ? sp : "" ) + stack . pop ( ) + ( _left ? "" : sp ) ) ; last _sp = - 1 } } if ( stack . length > 1 && opts . WTF ) throw new Error ( "bad formula stack" ) ; return stack [ 0 ] } function parse _XLSBParsedFormula ( data , length , opts ) { var end = data . l + length ; var cce = data . read _shift ( 4 ) ; var rgce = parse _Rgce ( data , cce , opts ) ; var cb = data . read _shift ( 4 ) ; var rgcb = cb > 0 ? parse _RgbExtra ( data , cb , rgce , opts ) : null ; return [ rgce , rgcb ] } var parse _XLSBArrayParsedFormula = parse _XLSBParsedFormula ; var parse _XLSBCellParsedFormula = parse _XLSBParsedFormula ; var parse _XLSBNameParsedFormula = parse _XLSBParsedFormula ; var parse _XLSBSharedParsedFormula = parse _XLSBParsedFormula ; var PtgDataType = { 1 : "REFERENCE" , 2 : "VALUE" , 3 : "ARRAY" } ; var Cetab = { 0 : "BEEP" , 1 : "OPEN" , 2 : "OPEN.LINKS" , 3 : "CLOSE.ALL" , 4 : "SAVE" , 5 : "SAVE.AS" , 6 : "FILE.DELETE" , 7 : "PAGE.SETUP" , 8 : "PRINT" , 9 : "PRINTER.SETUP" , 10 : "QUIT" , 11 : "NEW.WINDOW" , 12 : "ARRANGE.ALL" , 13 : "WINDOW.SIZE" , 14 : "WINDOW.MOVE" , 15 : "FULL" , 16 : "CLOSE" , 17 : "RUN" , 22 : "SET.PRINT.AREA" , 23 : "SET.PRINT.TITLES" , 24 : "SET.PAGE.BREAK" , 25 : "REMOVE.PAGE.BREAK" , 26 : "FONT" , 27 : "DISPLAY" , 28 : "PROTECT.DOCUMENT" , 29 : "PRECISION" , 30 : "A1.R1C1" , 31 : "CALCULATE.NOW" , 32 : "CALCULATION" , 34 : "DATA.FIND" , 35 : "EXTRACT" , 36 : "DATA.DELETE" , 37 : "SET.DATABASE" , 38 : "SET.CRITERIA" , 39 : "SORT" , 40 : "DATA.SERIES" , 41 : "TABLE" , 42 : "FORMAT.NUMBER" , 43 : "ALIGNMENT" , 44 : "STYLE" , 45 : "BORDER" , 46 : "CELL.PROTECTION" , 47 : "COLUMN.WIDTH" , 48 : "UNDO" , 49 : "CUT" , 50 : "COPY" , 51 : "PASTE" , 52 : "CLEAR" , 53 : "PASTE.SPECIAL" , 54 : "EDIT.DELETE" , 55 : "INSERT" , 56 : "FILL.RIGHT" , 57 : "FILL.DOWN" , 61 : "DEFINE.NAME" , 62 : "CREATE.NAMES" , 63 : "FORMULA.GOTO" , 64 : "FORMULA.FIND" , 65 : "SELECT.LAST.CELL" , 66 : "SHOW.ACTIVE.CELL" , 67 : "GALLERY.AREA" , 68 : "GALLERY.BAR" , 69 : "GALLERY.COLUMN" , 70 : "GALLERY.LINE" , 71 : "GALLERY.PIE" , 72 : "GALLERY.SCATTER" , 73 : "COMBINATION" , 74 : "PREFERRED" , 75 : "ADD.OVERLAY" , 76 : "GRIDLINES" , 77 : "SET.PREFERRED" , 78 : "AXES" , 79 : "LEGEND" , 80 : "ATTACH.TEXT" , 81 : "ADD.ARROW" , 82 : "SELECT.CHART" , 83 : "SELECT.PLOT.AREA" , 84 : "PATTERNS" , 85 : "MAIN.CHART" , 86 : "OVERLAY" , 87 : "SCALE" , 88 : "FORMAT.LEGEND" , 89 : "FORMAT.TEXT" , 90 : "EDIT.REPEAT" , 91 : "PARSE" , 92 : "JUSTIFY" , 93 : "HIDE" , 94 : "UNHIDE" , 95 : "WORKSPACE" , 96 : "FORMULA" , 97 : "FORMULA.FILL" , 98 : "FORMULA.ARRAY" , 99 : "DATA.FIND.NEXT" , 100 : "DATA.FIND.PREV" , 101 : "FORMULA.FIND.NEXT" , 102 : "FORMULA.FIND.PREV" , 103 : "ACTIVATE" , 104 : "ACTIVATE.NEXT" , 105 : "ACTIVATE.PREV" , 106 : "UNLOCKED.NEXT" , 107 : "UNLOCKED.PREV" , 108 : "COPY.PICTURE" , 109 : "SELECT" , 110 : "DELETE.NAME" , 111 : "DELETE.FORMAT" , 112 : "VLINE" , 113 : "HLINE" , 114 : "VPAGE" , 115 : "HPAGE" , 116 : "VSCROLL" , 117 : "HSCROLL" , 118 : "ALERT" , 119 : "NEW" , 120 : "CANCEL.COPY" , 121 : "SHOW.CLIPBOARD" , 122 : "MESSAGE" , 124 : "PASTE.LINK" , 125 : "APP.ACTIVATE" , 126 : "DELETE.ARROW" , 127 : "ROW.HEIGHT" , 128 : "FORMAT.MOVE" , 129 : "FORMAT.SIZE" , 130 : "FORMULA.REPLACE" , 131 : "SEND.KEYS" , 132 : "SELECT.SPECIAL" , 133 : "APPLY.NAMES" , 134 : "REPLACE.FONT" , 135 : "FREEZE.PANES" , 136 : "SHOW.INFO" , 137 : "SPLIT" , 138 : "ON.WINDOW" , 139 : "ON.DATA" , 140 : "DISABLE.INPUT" , 142 : "OUTLINE" , 143 : "LIST.NAMES" , 144 : "FILE.CLOSE" , 145 : "SAVE.WORKBOOK" , 146 : "DATA.FORM" , 147 : "COPY.CHART" , 148 : "ON.TIME" , 149 : "WAIT" , 150 : "FORMAT.FONT" , 151 : "FILL.UP" , 152 : "FILL.LEFT" , 153 : "DELETE.OVERLAY" , 155 : "SHORT.MENUS" , 159 : "SET.UPDATE.STATUS" , 161 : "COLOR.PALETTE" , 162 : "DELETE.STYLE" , 163 : "WINDOW.RESTORE" , 164 : "WINDOW.MAXIMIZE" , 166 : "CHANGE.LINK" , 167 : "CALCULATE.DOCUMENT" , 168 : "ON.KEY" , 169 : "APP.RESTORE" , 170 : "APP.MOVE" , 171 : "APP.SIZE" , 172 : "APP.MINIMIZE" , 173 : "APP.MAXIMIZE" , 174 : "BRING.TO.FRONT" , 175 : "SEND.TO.BACK" , 185 : "MAIN.CHART.TYPE" , 186 : "OVERLAY.CHART.TYPE" , 187 : "SELECT.END" , 188 : "OPEN.MAIL" , 189 : "SEND.MAIL" , 190 : "STANDARD.FONT" , 191 : "CONSOLIDATE" , 192 : "SORT.SPECIAL" , 193 : "GALLERY.3D.AREA" , 194 : "GALLERY.3D.COLUMN" , 195 : "GALLERY.3D.LINE" , 196 : "GALLERY.3D.PIE" , 197 : "VIEW.3D" , 198 : "GOAL.SEEK" , 199 : "WORKGROUP" , 200 : "FILL.GROUP" , 201 : "UPDATE.LINK" , 202 : "PROMOTE" , 203 : "DEMOTE" , 204 : "SHOW.DETAIL" , 206 : "UNGROUP" , 207 : "OBJECT.PROPERTIES" , 208 : "SAVE.NEW.OBJECT" , 209 : "SHARE" , 210 : "SHARE.NAME" , 211 :
if ( l [ 1 ] . Tooltip ) rel . tooltip = escapexml ( l [ 1 ] . Tooltip ) ; o [ o . length ] = writextag ( "hyperlink" , null , rel ) } ) ; o [ o . length ] = "</hyperlinks>" } delete ws [ "!links" ] ; if ( ws [ "!comments" ] . length > 0 ) { rId = add _rels ( rels , - 1 , "../drawings/vmlDrawing" + ( idx + 1 ) + ".vml" , RELS . VML ) ; o [ o . length ] = writextag ( "legacyDrawing" , null , { "r:id" : "rId" + rId } ) ; ws [ "!legacy" ] = rId } if ( o . length > 2 ) { o [ o . length ] = "</worksheet>" ; o [ 1 ] = o [ 1 ] . replace ( "/>" , ">" ) } return o . join ( "" ) } function parse _BrtRowHdr ( data , length ) { var z = [ ] ; z . r = data . read _shift ( 4 ) ; data . l += length - 4 ; return z } function write _BrtRowHdr ( R , range , ws ) { var o = new _buf ( 17 + 8 * 16 ) ; o . write _shift ( 4 , R ) ; o . write _shift ( 4 , 0 ) ; o . write _shift ( 2 , 320 ) ; o . write _shift ( 2 , 0 ) ; o . write _shift ( 1 , 0 ) ; var ncolspan = 0 , lcs = o . l ; o . l += 4 ; var caddr = { r : R , c : 0 } ; for ( var i = 0 ; i < 16 ; ++ i ) { if ( range . s . c > i + 1 << 10 || range . e . c < i << 10 ) continue ; var first = - 1 , last = - 1 ; for ( var j = i << 10 ; j < i + 1 << 10 ; ++ j ) { caddr . c = j ; if ( ws [ encode _cell ( caddr ) ] ) { if ( first < 0 ) first = j ; last = j } } if ( first < 0 ) continue ; ++ ncolspan ; o . write _shift ( 4 , first ) ; o . write _shift ( 4 , last ) } var l = o . l ; o . l = lcs ; o . write _shift ( 4 , ncolspan ) ; o . l = l ; return o . length > o . l ? o . slice ( 0 , o . l ) : o } function write _row _header ( ba , ws , range , R ) { var o = write _BrtRowHdr ( R , range , ws ) ; if ( o . length > 17 ) write _record ( ba , "BrtRowHdr" , o ) } var parse _BrtWsDim = parse _UncheckedRfX ; var write _BrtWsDim = write _UncheckedRfX ; function parse _BrtWsProp ( data , length ) { var z = { } ; data . l += 19 ; z . name = parse _XLSBCodeName ( data , length - 19 ) ; return z } function write _BrtWsProp ( str , o ) { if ( o == null ) o = new _buf ( 80 + 4 * str . length ) ; for ( var i = 0 ; i < 11 ; ++ i ) o . write _shift ( 1 , 0 ) ; o . write _shift ( - 4 , - 1 ) ; o . write _shift ( - 4 , - 1 ) ; write _XLSBCodeName ( str , o ) ; return o . slice ( 0 , o . l ) } function parse _BrtCellBlank ( data , length ) { var cell = parse _XLSBCell ( data ) ; return [ cell ] } function write _BrtCellBlank ( cell , ncell , o ) { if ( o == null ) o = new _buf ( 8 ) ; return write _XLSBCell ( ncell , o ) } function parse _BrtCellBool ( data , length ) { var cell = parse _XLSBCell ( data ) ; var fBool = data . read _shift ( 1 ) ; return [ cell , fBool , "b" ] } function write _BrtCellBool ( cell , ncell , o ) { if ( o == null ) o = new _buf ( 9 ) ; write _XLSBCell ( ncell , o ) ; o . write _shift ( 1 , cell . v ? 1 : 0 ) ; return o } function parse _BrtCellError ( data , length ) { var cell = parse _XLSBCell ( data ) ; var bError = data . read _shift ( 1 ) ; return [ cell , bError , "e" ] } function parse _BrtCellIsst ( data , length ) { var cell = parse _XLSBCell ( data ) ; var isst = data . read _shift ( 4 ) ; return [ cell , isst , "s" ] } function write _BrtCellIsst ( cell , ncell , o ) { if ( o == null ) o = new _buf ( 12 ) ; write _XLSBCell ( ncell , o ) ; o . write _shift ( 4 , ncell . v ) ; return o } function parse _BrtCellReal ( data , length ) { var cell = parse _XLSBCell ( data ) ; var value = parse _Xnum ( data ) ; return [ cell , value , "n" ] } function write _BrtCellReal ( cell , ncell , o ) { if ( o == null ) o = new _buf ( 16 ) ; write _XLSBCell ( ncell , o ) ; write _Xnum ( cell . v , o ) ; return o } function parse _BrtCellRk ( data , length ) { var cell = parse _XLSBCell ( data ) ; var value = parse _RkNumber ( data ) ; return [ cell , value , "n" ] } function write _BrtCellRk ( cell , ncell , o ) { if ( o == null ) o = new _buf ( 12 ) ; write _XLSBCell ( ncell , o ) ; write _RkNumber ( cell . v , o ) ; return o } function parse _BrtCellSt ( data , length ) { var cell = parse _XLSBCell ( data ) ; var value = parse _XLWideString ( data ) ; return [ cell , value , "str" ] } function write _BrtCellSt ( cell , ncell , o ) { if ( o == null ) o = new _buf ( 12 + 4 * cell . v . length ) ; write _XLSBCell ( ncell , o ) ; write _XLWideString ( cell . v , o ) ; return o . length > o . l ? o . slice ( 0 , o . l ) : o } function parse _BrtFmlaBool ( data , length , opts ) { var end = data . l + length ; var cell = parse _XLSBCell ( data ) ; cell . r = opts [ "!row" ] ; var value = data . read _shift ( 1 ) ; var o = [ cell , value , "b" ] ; if ( opts . cellFormula ) { data . l += 2 ; var formula = parse _XLSBCellParsedFormula ( data , end - data . l , opts ) ; o [ 3 ] = stringify _formula ( formula , null , cell , opts . supbooks , opts ) } else data . l = end ; return o } function parse _BrtFmlaError ( data , length , opts ) { var end = data . l + length ; var cell = parse _XLSBCell ( data ) ; cell . r = opts [ "!row" ] ; var value = data . read _shift ( 1 ) ; var o = [ cell , value , "e" ] ; if ( opts . cellFormula ) { data . l += 2 ; var formula = parse _XLSBCellParsedFormula ( data , end - data . l , opts ) ; o [ 3 ] = stringify _formula ( formula , null , cell , opts . supbooks , opts ) } else data . l = end ; return o } function parse _BrtFmlaNum ( data , length , opts ) { var end = data . l + length ; var cell = parse _XLSBCell ( data ) ; cell . r = opts [ "!row" ] ; var value = parse _Xnum ( data ) ; var o = [ cell , value , "n" ] ; if ( opts . cellFormula ) { data . l += 2 ; var formula = parse _XLSBCellParsedFormula ( data , end -
break ; default : throw new Error ( "bad custprop:" + cp [ 0 ] ) } Custprops [ unescapexml ( Rn [ 3 ] ) ] = oval } function safe _format _xlml ( cell , nf , o ) { if ( cell . t === "z" ) return ; try { if ( cell . t === "e" ) { cell . w = cell . w || BErr [ cell . v ] } else if ( nf === "General" ) { if ( cell . t === "n" ) { if ( ( cell . v | 0 ) === cell . v ) cell . w = SSF . _general _int ( cell . v ) ; else cell . w = SSF . _general _num ( cell . v ) } else cell . w = SSF . _general ( cell . v ) } else cell . w = xlml _format ( nf || "General" , cell . v ) ; var z = XLMLFormatMap [ nf ] || nf || "General" ; if ( o . cellNF ) cell . z = z ; if ( o . cellDates && cell . t == "n" && SSF . is _date ( z ) ) { var _d = SSF . parse _date _code ( cell . v ) ; if ( _d ) { cell . t = "d" ; cell . v = new Date ( Date . UTC ( _d . y , _d . m - 1 , _d . d , _d . H , _d . M , _d . S , _d . u ) ) } } } catch ( e ) { if ( o . WTF ) throw e } } function process _style _xlml ( styles , stag , opts ) { if ( opts . cellStyles ) { if ( stag . Interior ) { var I = stag . Interior ; if ( I . Pattern ) I . patternType = XLMLPatternTypeMap [ I . Pattern ] || I . Pattern } } styles [ stag . ID ] = stag } function parse _xlml _data ( xml , ss , data , cell , base , styles , csty , row , arrayf , o ) { var nf = "General" , sid = cell . StyleID , S = { } ; o = o || { } ; var interiors = [ ] ; var i = 0 ; if ( sid === undefined && row ) sid = row . StyleID ; if ( sid === undefined && csty ) sid = csty . StyleID ; while ( styles [ sid ] !== undefined ) { if ( styles [ sid ] . nf ) nf = styles [ sid ] . nf ; if ( styles [ sid ] . Interior ) interiors . push ( styles [ sid ] . Interior ) ; if ( ! styles [ sid ] . Parent ) break ; sid = styles [ sid ] . Parent } switch ( data . Type ) { case "Boolean" : cell . t = "b" ; cell . v = parsexmlbool ( xml ) ; break ; case "String" : cell . t = "s" ; cell . r = xlml _fixstr ( unescapexml ( xml ) ) ; cell . v = xml . indexOf ( "<" ) > - 1 ? unescapexml ( ss ) : cell . r ; break ; case "DateTime" : cell . v = ( parseDate ( xml ) - new Date ( Date . UTC ( 1899 , 11 , 30 ) ) ) / ( 24 * 60 * 60 * 1e3 ) ; if ( cell . v !== cell . v ) cell . v = unescapexml ( xml ) ; else if ( cell . v < 60 ) cell . v = cell . v - 1 ; if ( ! nf || nf == "General" ) nf = "yyyy-mm-dd" ; case "Number" : if ( cell . v === undefined ) cell . v = + xml ; if ( ! cell . t ) cell . t = "n" ; break ; case "Error" : cell . t = "e" ; cell . v = RBErr [ xml ] ; cell . w = xml ; break ; default : cell . t = "s" ; cell . v = xlml _fixstr ( ss || xml ) ; break } safe _format _xlml ( cell , nf , o ) ; if ( o . cellFormula != null ) { if ( cell . Formula ) { var fstr = unescapexml ( cell . Formula ) ; if ( fstr . charCodeAt ( 0 ) == 61 ) fstr = fstr . substr ( 1 ) ; cell . f = rc _to _a1 ( fstr , base ) ; delete cell . Formula ; if ( cell . ArrayRange == "RC" ) cell . F = rc _to _a1 ( "RC:RC" , base ) ; else if ( cell . ArrayRange ) { cell . F = rc _to _a1 ( cell . ArrayRange , base ) ; arrayf . push ( [ safe _decode _range ( cell . F ) , cell . F ] ) } } else { for ( i = 0 ; i < arrayf . length ; ++ i ) if ( base . r >= arrayf [ i ] [ 0 ] . s . r && base . r <= arrayf [ i ] [ 0 ] . e . r ) if ( base . c >= arrayf [ i ] [ 0 ] . s . c && base . c <= arrayf [ i ] [ 0 ] . e . c ) cell . F = arrayf [ i ] [ 1 ] } } if ( o . cellStyles ) { interiors . forEach ( function ( x ) { if ( ! S . patternType && x . patternType ) S . patternType = x . patternType } ) ; cell . s = S } cell . ixfe = cell . StyleID !== undefined ? cell . StyleID : "Default" } function xlml _clean _comment ( comment ) { comment . t = comment . v || "" ; comment . t = comment . t . replace ( /\r\n/g , "\n" ) . replace ( /\r/g , "\n" ) ; comment . v = comment . w = comment . ixfe = undefined } function xlml _normalize ( d ) { if ( has _buf && Buffer . isBuffer ( d ) ) return d . toString ( "utf8" ) ; if ( typeof d === "string" ) return d ; throw new Error ( "Bad input format: expected Buffer or string" ) } var xlmlregex = /<(\/?)([^\s?>!\/:]*:|)([^\s?>]*[^\s?>\/])[^>]*>/gm ; function parse _xlml _xml ( d , opts ) { make _ssf ( SSF ) ; var str = debom ( xlml _normalize ( d ) ) ; if ( opts && opts . type == "binary" && typeof cptable !== "undefined" ) str = cptable . utils . decode ( 65001 , char _codes ( str ) ) ; if ( str . substr ( 0 , 1e3 ) . indexOf ( "<html" ) >= 0 ) return parse _html ( str , opts ) ; var Rn ; var state = [ ] , tmp ; var sheets = { } , sheetnames = [ ] , cursheet = { } , sheetname = "" ; var table = { } , cell = { } , row = { } ; var dtag = xlml _parsexmltag ( '<Data ss:Type="String">' ) , didx = 0 ; var c = 0 , r = 0 ; var refguess = { s : { r : 2e6 , c : 2e6 } , e : { r : 0 , c : 0 } } ; var styles = { } , stag = { } ; var ss = "" , fidx = 0 ; var mergecells = [ ] ; var Props = { } , Custprops = { } , pidx = 0 , cp = { } ; var comments = [ ] , comment = { } ; var cstys = [ ] , csty , seencol = false ; var arrayf = [ ] ; var rowinfo = [ ] ; var Workbook = { Sheets : [ ] } , wsprops = { } ; xlmlregex . lastIndex = 0 ; str = str . replace ( /<!--([^\u2603]*?)-->/gm , "" ) ; while ( Rn = xlmlregex . exec ( str ) ) switch ( Rn [ 3 ] ) { case "Data" : if ( state [ state . length - 1 ] [ 1 ] ) break ; if ( Rn [ 1 ] === "/" ) parse _xlml _data ( str . slice ( didx , Rn . index ) , ss , dtag , state [ state . length - 1 ] [ 0 ] == "Comment" ? comment : cell , { c : c , r : r } , styles , cstys [ c ] , row , arrayf , opts ) ; else { ss = "" ; dtag = xlml _parsexmltag ( Rn [ 0 ] ) ; didx = Rn . index + Rn [ 0 ] . length } break ; case "Cell" : if ( Rn [ 1 ] === "/" ) { if ( comments . length > 0 ) cell . c = comments ;
addcell ( { c : val . c , r : val . r } , temp _val , options ) ; break ; case "Dimensions" : { if ( file _depth === 1 ) range = val } break ; case "SST" : { sst = val } break ; case "Format" : { SSF . load ( val [ 1 ] , val [ 0 ] ) } break ; case "BIFF2FORMAT" : { SSF . load ( val , BIFF2Fmt ++ ) } break ; case "MergeCells" : mergecells = mergecells . concat ( val ) ; break ; case "Obj" : objects [ val . cmo [ 0 ] ] = opts . lastobj = val ; break ; case "TxO" : opts . lastobj . TxO = val ; break ; case "HLink" : { for ( rngR = val [ 0 ] . s . r ; rngR <= val [ 0 ] . e . r ; ++ rngR ) for ( rngC = val [ 0 ] . s . c ; rngC <= val [ 0 ] . e . c ; ++ rngC ) if ( out [ encode _cell ( { c : rngC , r : rngR } ) ] ) out [ encode _cell ( { c : rngC , r : rngR } ) ] . l = val [ 1 ] } break ; case "HLinkTooltip" : { for ( rngR = val [ 0 ] . s . r ; rngR <= val [ 0 ] . e . r ; ++ rngR ) for ( rngC = val [ 0 ] . s . c ; rngC <= val [ 0 ] . e . c ; ++ rngC ) if ( out [ encode _cell ( { c : rngC , r : rngR } ) ] ) out [ encode _cell ( { c : rngC , r : rngR } ) ] . l . Tooltip = val [ 1 ] } break ; case "Note" : { if ( opts . biff <= 5 && opts . biff >= 2 ) break ; cc = out [ encode _cell ( val [ 0 ] ) ] ; var noteobj = objects [ val [ 2 ] ] ; if ( ! cc ) break ; if ( ! cc . c ) cc . c = [ ] ; cmnt = { a : val [ 1 ] , t : noteobj . TxO . t } ; cc . c . push ( cmnt ) } break ; default : switch ( R . n ) { case "ClrtClient" : break ; case "XFExt" : update _xfext ( XFs [ val . ixfe ] , val . ext ) ; break ; case "DefColWidth" : defwidth = val ; break ; case "DefaultRowHeight" : defheight = val [ 1 ] ; break ; case "ColInfo" : { if ( ! opts . cellStyles ) break ; while ( val . e >= val . s ) { colinfo [ val . e -- ] = { width : val . w / 256 } ; if ( ! seencol ) { seencol = true ; find _mdw _colw ( val . w / 256 ) } process _col ( colinfo [ val . e + 1 ] ) } } break ; case "Row" : break ; case "NameCmt" : break ; case "Header" : break ; case "Footer" : break ; case "HCenter" : break ; case "VCenter" : break ; case "Pls" : break ; case "Setup" : break ; case "GCW" : break ; case "LHRecord" : break ; case "DBCell" : break ; case "EntExU2" : break ; case "SxView" : break ; case "Sxvd" : break ; case "SXVI" : break ; case "SXVDEx" : break ; case "SxIvd" : break ; case "SXDI" : break ; case "SXLI" : break ; case "SXEx" : break ; case "QsiSXTag" : break ; case "Selection" : break ; case "Feat" : break ; case "FeatHdr" : case "FeatHdr11" : break ; case "Feature11" : case "Feature12" : case "List12" : break ; case "Country" : country = val ; break ; case "RecalcId" : break ; case "DxGCol" : break ; case "Fbi" : case "Fbi2" : case "GelFrame" : break ; case "Font" : break ; case "XFCRC" : break ; case "Style" : break ; case "StyleExt" : break ; case "Palette" : palette = val ; break ; case "Theme" : break ; case "ScenarioProtect" : break ; case "ObjProtect" : break ; case "CondFmt12" : break ; case "Table" : break ; case "TableStyles" : break ; case "TableStyle" : break ; case "TableStyleElement" : break ; case "SXStreamID" : break ; case "SXVS" : break ; case "DConRef" : break ; case "SXAddl" : break ; case "DConBin" : break ; case "DConName" : break ; case "SXPI" : break ; case "SxFormat" : break ; case "SxSelect" : break ; case "SxRule" : break ; case "SxFilt" : break ; case "SxItm" : break ; case "SxDXF" : break ; case "ScenMan" : break ; case "DCon" : break ; case "CellWatch" : break ; case "PrintRowCol" : break ; case "PrintGrid" : break ; case "PrintSize" : break ; case "XCT" : break ; case "CRN" : break ; case "Scl" : { } break ; case "SheetExt" : { } break ; case "SheetExtOptional" : { } break ; case "ObNoMacros" : { } break ; case "ObProj" : { } break ; case "CodeName" : { } break ; case "GUIDTypeLib" : { } break ; case "WOpt" : break ; case "PhoneticInfo" : break ; case "OleObjectSize" : break ; case "DXF" : case "DXFN" : case "DXFN12" : case "DXFN12List" : case "DXFN12NoCB" : break ; case "Dv" : case "DVal" : break ; case "BRAI" : case "Series" : case "SeriesText" : break ; case "DConn" : break ; case "DbOrParamQry" : break ; case "DBQueryExt" : break ; case "IFmtRecord" : break ; case "CondFmt" : case "CF" : case "CF12" : case "CFEx" : break ; case "Excel9File" : break ; case "Units" : break ; case "InterfaceHdr" : case "Mms" : case "InterfaceEnd" : case "DSF" : case "BuiltInFnGroupCount" : case "Window1" : case "Window2" : case "HideObj" : case "GridSet" : case "Guts" : case "UserBView" : case "UserSViewBegin" : case "UserSViewEnd" : case "Pane" : break ; default : switch ( R . n ) { case "Dat" : case "Begin" : case "End" : case "StartBlock" : case "EndBlock" : case "Frame" : case "Area" : case "Axis" : case "AxisLine" : case "Tick" : break ; case "AxesUsed" : case "CrtLayout12" : case "CrtLayout12A" : case "CrtLink" : case "CrtLine" : case "CrtMlFrt" : case "CrtMlFrtContinue" : break ; case "LineFormat" : case "AreaFormat" : case "Chart" : case "Chart3d" : case "Chart3DBarShape" : case "ChartFormat" : case "ChartFrtInfo" : break ; case "PlotArea" : case "PlotGrowth" : break ; case "SeriesList" : case "SerParent" : case "SerAuxTrend" : break ; case "DataFormat" : case "SerToCrt" : case "FontX" : break ; case "CatSerRange" : case "AxcExt" : case "SerFmt" : break ; case "ShtProps" : break ; case "DefaultText" : case "Text" : case "CatLab" : break ; case " D
n : "BrtEndSlicerCacheDef" , f : parsenoop } , 1079 : { n : "BrtBeginSlicersEx" , f : parsenoop } , 1080 : { n : "BrtEndSlicersEx" , f : parsenoop } , 1081 : { n : "BrtBeginSlicerEx" , f : parsenoop } , 1082 : { n : "BrtEndSlicerEx" , f : parsenoop } , 1083 : { n : "BrtBeginSlicer" , f : parsenoop } , 1084 : { n : "BrtEndSlicer" , f : parsenoop } , 1085 : { n : "BrtSlicerCachePivotTables" , f : parsenoop } , 1086 : { n : "BrtBeginSlicerCacheOlapImpl" , f : parsenoop } , 1087 : { n : "BrtEndSlicerCacheOlapImpl" , f : parsenoop } , 1088 : { n : "BrtBeginSlicerCacheLevelsData" , f : parsenoop } , 1089 : { n : "BrtEndSlicerCacheLevelsData" , f : parsenoop } , 1090 : { n : "BrtBeginSlicerCacheLevelData" , f : parsenoop } , 1091 : { n : "BrtEndSlicerCacheLevelData" , f : parsenoop } , 1092 : { n : "BrtBeginSlicerCacheSiRanges" , f : parsenoop } , 1093 : { n : "BrtEndSlicerCacheSiRanges" , f : parsenoop } , 1094 : { n : "BrtBeginSlicerCacheSiRange" , f : parsenoop } , 1095 : { n : "BrtEndSlicerCacheSiRange" , f : parsenoop } , 1096 : { n : "BrtSlicerCacheOlapItem" , f : parsenoop } , 1097 : { n : "BrtBeginSlicerCacheSelections" , f : parsenoop } , 1098 : { n : "BrtSlicerCacheSelection" , f : parsenoop } , 1099 : { n : "BrtEndSlicerCacheSelections" , f : parsenoop } , 1100 : { n : "BrtBeginSlicerCacheNative" , f : parsenoop } , 1101 : { n : "BrtEndSlicerCacheNative" , f : parsenoop } , 1102 : { n : "BrtSlicerCacheNativeItem" , f : parsenoop } , 1103 : { n : "BrtRangeProtection14" , f : parsenoop } , 1104 : { n : "BrtRangeProtectionIso14" , f : parsenoop } , 1105 : { n : "BrtCellIgnoreEC14" , f : parsenoop } , 1111 : { n : "BrtList14" , f : parsenoop } , 1112 : { n : "BrtCFIcon" , f : parsenoop } , 1113 : { n : "BrtBeginSlicerCachesPivotCacheIDs" , f : parsenoop } , 1114 : { n : "BrtEndSlicerCachesPivotCacheIDs" , f : parsenoop } , 1115 : { n : "BrtBeginSlicers" , f : parsenoop } , 1116 : { n : "BrtEndSlicers" , f : parsenoop } , 1117 : { n : "BrtWbProp14" , f : parsenoop } , 1118 : { n : "BrtBeginSXEdit" , f : parsenoop } , 1119 : { n : "BrtEndSXEdit" , f : parsenoop } , 1120 : { n : "BrtBeginSXEdits" , f : parsenoop } , 1121 : { n : "BrtEndSXEdits" , f : parsenoop } , 1122 : { n : "BrtBeginSXChange" , f : parsenoop } , 1123 : { n : "BrtEndSXChange" , f : parsenoop } , 1124 : { n : "BrtBeginSXChanges" , f : parsenoop } , 1125 : { n : "BrtEndSXChanges" , f : parsenoop } , 1126 : { n : "BrtSXTupleItems" , f : parsenoop } , 1128 : { n : "BrtBeginSlicerStyle" , f : parsenoop } , 1129 : { n : "BrtEndSlicerStyle" , f : parsenoop } , 1130 : { n : "BrtSlicerStyleElement" , f : parsenoop } , 1131 : { n : "BrtBeginStyleSheetExt14" , f : parsenoop } , 1132 : { n : "BrtEndStyleSheetExt14" , f : parsenoop } , 1133 : { n : "BrtBeginSlicerCachesPivotCacheID" , f : parsenoop } , 1134 : { n : "BrtEndSlicerCachesPivotCacheID" , f : parsenoop } , 1135 : { n : "BrtBeginConditionalFormattings" , f : parsenoop } , 1136 : { n : "BrtEndConditionalFormattings" , f : parsenoop } , 1137 : { n : "BrtBeginPCDCalcMemExt" , f : parsenoop } , 1138 : { n : "BrtEndPCDCalcMemExt" , f : parsenoop } , 1139 : { n : "BrtBeginPCDCalcMemsExt" , f : parsenoop } , 1140 : { n : "BrtEndPCDCalcMemsExt" , f : parsenoop } , 1141 : { n : "BrtPCDField14" , f : parsenoop } , 1142 : { n : "BrtBeginSlicerStyles" , f : parsenoop } , 1143 : { n : "BrtEndSlicerStyles" , f : parsenoop } , 1144 : { n : "BrtBeginSlicerStyleElements" , f : parsenoop } , 1145 : { n : "BrtEndSlicerStyleElements" , f : parsenoop } , 1146 : { n : "BrtCFRuleExt" , f : parsenoop } , 1147 : { n : "BrtBeginSXCondFmt14" , f : parsenoop } , 1148 : { n : "BrtEndSXCondFmt14" , f : parsenoop } , 1149 : { n : "BrtBeginSXCondFmts14" , f : parsenoop } , 1150 : { n : "BrtEndSXCondFmts14" , f : parsenoop } , 1152 : { n : "BrtBeginSortCond14" , f : parsenoop } , 1153 : { n : "BrtEndSortCond14" , f : parsenoop } , 1154 : { n : "BrtEndDVals14" , f : parsenoop } , 1155 : { n : "BrtEndIconSet14" , f : parsenoop } , 1156 : { n : "BrtEndDatabar14" , f : parsenoop } , 1157 : { n : "BrtBeginColorScale14" , f : parsenoop } , 1158 : { n : "BrtEndColorScale14" , f : parsenoop } , 1159 : { n : "BrtBeginSxrules14" , f : parsenoop } , 1160 : { n : "BrtEndSxrules14" , f : parsenoop } , 1161 : { n : "BrtBeginPRule14" , f : parsenoop } , 1162 : { n : "BrtEndPRule14" , f : parsenoop } , 1163 : { n : "BrtBeginPRFilters14" , f : parsenoop } , 1164 : { n : "BrtEndPRFilters14" , f : parsenoop } , 1165 : { n : "BrtBeginPRFilter14" , f : parsenoop } , 1166 : { n : "BrtEndPRFilter14" , f : parsenoop } , 1167 : { n : "BrtBeginPRFItem14" , f : parsenoop } , 1168 : { n : "BrtEndPRFItem14" , f : parsenoop } , 1169 : { n : "BrtBeginCellIgnoreECs14" , f : parsenoop } , 1170 : { n : "BrtEndCellIgnoreECs14" , f : parsenoop } , 1171 : { n : "BrtDxf14" , f : parsenoop } , 1172 : { n : "BrtBeginDxF14s" , f : parsenoop } , 1173 : { n : "BrtEndDxf14s" , f : parsenoop } , 1177 : { n : "BrtFilter14" , f : parsenoop } , 1178 : { n : "BrtBeginCustomFilters14" , f : parsenoop } , 1180 : { n : "BrtCustomFilter14" , f : parsenoop } , 1181 : { n : "BrtIconFilter14" , f : parsenoop } , 1182 : { n : "BrtPivotCacheConnectionName" , f : parsenoop } , 2048 : { n : " BrtBeginDecoup
break ; case "table-properties" : break ; case "table-column-properties" : break ; case "table-row-properties" : break ; case "table-cell-properties" : break ; case "number" : switch ( state [ state . length - 1 ] [ 0 ] ) { case "time-style" : case "date-style" : tag = parsexmltag ( Rn [ 0 ] , false ) ; NF += number _formats [ Rn [ 3 ] ] [ tag . style === "long" ? 1 : 0 ] ; break } break ; case "fraction" : break ; case "day" : case "month" : case "year" : case "era" : case "day-of-week" : case "week-of-year" : case "quarter" : case "hours" : case "minutes" : case "seconds" : case "am-pm" : switch ( state [ state . length - 1 ] [ 0 ] ) { case "time-style" : case "date-style" : tag = parsexmltag ( Rn [ 0 ] , false ) ; NF += number _formats [ Rn [ 3 ] ] [ tag . style === "long" ? 1 : 0 ] ; break } break ; case "boolean-style" : break ; case "boolean" : break ; case "text-style" : break ; case "text" : if ( Rn [ 0 ] . slice ( - 2 ) === "/>" ) break ; else if ( Rn [ 1 ] === "/" ) switch ( state [ state . length - 1 ] [ 0 ] ) { case "number-style" : case "date-style" : case "time-style" : NF += str . slice ( pidx , Rn . index ) ; break } else pidx = Rn . index + Rn [ 0 ] . length ; break ; case "text-content" : break ; case "text-properties" : break ; case "body" : case "电子表格" : break ; case "forms" : break ; case "table-column" : break ; case "null-date" : break ; case "graphic-properties" : break ; case "calculation-settings" : break ; case "named-expressions" : break ; case "named-range" : break ; case "named-expression" : break ; case "sort" : break ; case "sort-by" : break ; case "sort-groups" : break ; case "span" : break ; case "line-break" : break ; case "p" : case "文本串" : if ( Rn [ 1 ] === "/" ) textp = ( textp . length > 0 ? textp + "\n" : "" ) + parse _text _p ( str . slice ( textpidx , Rn . index ) , textptag ) ; else { textptag = parsexmltag ( Rn [ 0 ] , false ) ; textpidx = Rn . index + Rn [ 0 ] . length } break ; case "s" : break ; case "date" : break ; case "object" : break ; case "title" : case "标题" : break ; case "desc" : break ; case "table-source" : break ; case "iteration" : break ; case "content-validations" : break ; case "content-validation" : break ; case "error-message" : break ; case "database-ranges" : break ; case "database-range" : break ; case "filter" : break ; case "filter-and" : break ; case "filter-or" : break ; case "filter-condition" : break ; case "list-level-style-bullet" : break ; case "list-level-style-number" : break ; case "list-level-properties" : break ; case "sender-firstname" : case "sender-lastname" : case "sender-initials" : case "sender-title" : case "sender-position" : case "sender-email" : case "sender-phone-private" : case "sender-fax" : case "sender-company" : case "sender-phone-work" : case "sender-street" : case "sender-city" : case "sender-postal-code" : case "sender-country" : case "sender-state-or-province" : case "author-name" : case "author-initials" : case "chapter" : case "file-name" : case "template-name" : case "sheet-name" : break ; case "event-listener" : case "initial-creator" : case "creation-date" : case "generator" : case "document-statistic" : case "user-defined" : break ; case "config-item" : break ; case "page-number" : break ; case "page-count" : break ; case "time" : break ; case "data-pilot-table" : case "source-cell-range" : case "source-service" : case "data-pilot-field" : case "data-pilot-level" : case "data-pilot-subtotals" : case "data-pilot-subtotal" : case "data-pilot-members" : case "data-pilot-member" : case "data-pilot-display-info" : case "data-pilot-sort-info" : case "data-pilot-layout-info" : case "data-pilot-field-reference" : case "data-pilot-groups" : case "data-pilot-group" : case "data-pilot-group-member" : break ; case "rect" : break ; case "dde-connection-decls" : case "dde-connection-decl" : case "dde-link" : case "dde-source" : break ; case "properties" : break ; case "property" : break ; case "a" : break ; case "table-protection" : break ; case "data-pilot-grand-total" : break ; default : if ( Rn [ 2 ] === "dc:" ) break ; if ( Rn [ 2 ] === "draw:" ) break ; if ( Rn [ 2 ] === "style:" ) break ; if ( Rn [ 2 ] === "calcext:" ) break ; if ( Rn [ 2 ] === "loext:" ) break ; if ( Rn [ 2 ] === "uof:" ) break ; if ( Rn [ 2 ] === "表:" ) break ; if ( Rn [ 2 ] === "字:" ) break ; if ( opts . WTF ) throw new Error ( Rn ) } var out = { Sheets : Sheets , SheetNames : SheetNames } ; return out } } ( ) ; var write _content _xml = function ( ) { var null _cell _xml = " <table:table-cell />\n" ; var covered _cell _xml = " <table:covered-table-cell/>\n" ; var cell _begin = " <table:table-cell " , cell _end = "</table:table-cell>\n" ; var vt = "office:value-type=" ; var p _begin = "<text:p>" , p _end = "</text:p>" ; var write _ws = function ( ws , wb , i , opts ) { var o = [ ] ; o . push ( ' <table:table table:name="' + escapexml ( wb . SheetNames [ i ] ) + '">\n' ) ; var R = 0 , C = 0 , range = decode _range ( ws [ "!ref" ] ) ; var