2017-03-05 01:44:52 +00:00
/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
2017-03-28 22:07:46 +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-21 22:03:40 +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>
2017-04-09 04:07:43 +00:00
function gfn3 ( v ) { 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 ( / ^
2017-04-21 22:03:40 +00:00
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
function rgbify ( arr ) { return arr . map ( function ( x ) { return [ x >> 16 & 255 , x >> 8 & 255 , x & 255 ] } ) } var XLSIcv = rgbify ( [ 0 , 16777215 , 16711680 , 65280 , 255 , 16776960 , 16711935 , 65535 , 0 , 16777215 , 16711680 , 65280 , 255 , 16776960 , 16711935 , 65535 , 8388608 , 32768 , 128 , 8421376 , 8388736 , 32896 , 12632256 , 8421504 , 10066431 , 10040166 , 16777164 , 13434879 , 6684774 , 16744576 , 26316 , 13421823 , 128 , 16711935 , 16776960 , 65535 , 8388736 , 8388608 , 32896 , 255 , 52479 , 13434879 , 13434828 , 16777113 , 10079487 , 16751052 , 13408767 , 16764057 , 3368703 , 3394764 , 10079232 , 16763904 , 16750848 , 16737792 , 6710937 , 9868950 , 13158 , 3381606 , 13056 , 3355392 , 10040064 , 10040166 , 3355545 , 3355443 , 16777215 , 0 ] ) ; var ct2type = { "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" : "workbooks" , "application/vnd.ms-excel.binIndexWs" : "TODO" , "application/vnd.ms-excel.intlmacrosheet" : "TODO" , "application/vnd.ms-excel.binIndexMs" : "TODO" , "application/vnd.openxmlformats-package.core-properties+xml" : "coreprops" , "application/vnd.openxmlformats-officedocument.custom-properties+xml" : "custprops" , "application/vnd.openxmlformats-officedocument.extended-properties+xml" : "extprops" , "application/vnd.openxmlformats-officedocument.customXmlProperties+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty" : "TODO" , "application/vnd.ms-excel.pivotTable" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml" : "TODO" , "application/vnd.ms-office.chartcolorstyle+xml" : "TODO" , "application/vnd.ms-office.chartstyle+xml" : "TODO" , "application/vnd.ms-excel.calcChain" : "calcchains" , "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml" : "calcchains" , "application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings" : "TODO" , "application/vnd.ms-office.activeX" : "TODO" , "application/vnd.ms-office.activeX+xml" : "TODO" , "application/vnd.ms-excel.attachedToolbars" : "TODO" , "application/vnd.ms-excel.connections" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml" : "TODO" , "application/vnd.ms-excel.externalLink" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml" : "TODO" , "application/vnd.ms-excel.sheetMetadata" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml" : "TODO" , "application/vnd.ms-excel.pivotCacheDefinition" : "TODO" , "application/vnd.ms-excel.pivotCacheRecords" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml" : "TODO" , "application/vnd.ms-excel.queryTable" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml" : "TODO" , "application/vnd.ms-excel.userNames" : "TODO" , "application/vnd.ms-excel.revisionHeaders" : "TODO" , "application/vnd.ms-excel.revisionLog" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml" : "TODO" , "application/vnd.ms-excel.tableSingleCells" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml" : "TODO" , "application/vnd.ms-excel.slicer" : "TODO" , "application/vnd.ms-excel.slicerCache" : "TODO" , "application/vnd.ms-excel.slicer+xml" : "TODO" , "application/vnd.ms-excel.slicerCache+xml" : "TODO" , "application/vnd.ms-excel.wsSortMap" : "TODO" , "application/vnd.ms-excel.table" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml" : "TODO" , "application/vnd.openxmlformats-officedocument.theme+xml" : "themes" , "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" , " appli
var rw = blob . read _shift ( 2 ) ; var col = blob . read _shift ( 2 ) ; var ixfe = blob . read _shift ( 2 ) ; return { r : rw , c : col , ixfe : ixfe } } function parse _frtHeader ( blob ) { var rt = blob . read _shift ( 2 ) ; var flags = blob . read _shift ( 2 ) ; blob . l += 8 ; return { type : rt , flags : flags } } function parse _OptXLUnicodeString ( blob , length , opts ) { return length === 0 ? "" : parse _XLUnicodeString2 ( blob , length , opts ) } var HIDEOBJENUM = [ "SHOWALL" , "SHOWPLACEHOLDER" , "HIDEALL" ] ; var parse _HideObjEnum = parseuint16 ; function parse _XTI ( blob , length ) { var iSupBook = blob . read _shift ( 2 ) , itabFirst = blob . read _shift ( 2 , "i" ) , itabLast = blob . read _shift ( 2 , "i" ) ; return [ iSupBook , itabFirst , itabLast ] } function parse _RkRec ( blob , length ) { var ixfe = blob . read _shift ( 2 ) ; var RK = parse _RkNumber ( blob ) ; return [ ixfe , RK ] } function parse _AddinUdf ( blob , length , opts ) { blob . l += 4 ; length -= 4 ; var l = blob . l + length ; var udfName = parse _ShortXLUnicodeString ( blob , length , opts ) ; var cb = blob . read _shift ( 2 ) ; l -= blob . l ; if ( cb !== l ) throw new Error ( "Malformed AddinUdf: padding = " + l + " != " + cb ) ; blob . l += cb ; return udfName } function parse _Ref8U ( blob , length ) { var rwFirst = blob . read _shift ( 2 ) ; var rwLast = blob . read _shift ( 2 ) ; var colFirst = blob . read _shift ( 2 ) ; var colLast = blob . read _shift ( 2 ) ; return { s : { c : colFirst , r : rwFirst } , e : { c : colLast , r : rwLast } } } function parse _RefU ( blob , length ) { var rwFirst = blob . read _shift ( 2 ) ; var rwLast = blob . read _shift ( 2 ) ; var colFirst = blob . read _shift ( 1 ) ; var colLast = blob . read _shift ( 1 ) ; return { s : { c : colFirst , r : rwFirst } , e : { c : colLast , r : rwLast } } } var parse _Ref = parse _RefU ; function parse _FtCmo ( blob , length ) { blob . l += 4 ; var ot = blob . read _shift ( 2 ) ; var id = blob . read _shift ( 2 ) ; var flags = blob . read _shift ( 2 ) ; blob . l += 12 ; return [ id , ot , flags ] } function parse _FtNts ( blob , length ) { var out = { } ; blob . l += 4 ; blob . l += 16 ; out . fSharedNote = blob . read _shift ( 2 ) ; blob . l += 4 ; return out } function parse _FtCf ( blob , length ) { var out = { } ; blob . l += 4 ; blob . cf = blob . read _shift ( 2 ) ; return out } var FtTab = { 21 : parse _FtCmo , 19 : parsenoop , 18 : function ( blob , length ) { blob . l += 12 } , 17 : function ( blob , length ) { blob . l += 8 } , 16 : parsenoop , 15 : parsenoop , 13 : parse _FtNts , 12 : function ( blob , length ) { blob . l += 24 } , 11 : function ( blob , length ) { blob . l += 10 } , 10 : function ( blob , length ) { blob . l += 16 } , 9 : parsenoop , 8 : function ( blob , length ) { blob . l += 6 } , 7 : parse _FtCf , 6 : function ( blob , length ) { blob . l += 6 } , 4 : parsenoop , 0 : function ( blob , length ) { blob . l += 4 } } ; function parse _FtArray ( blob , length , ot ) { var s = blob . l ; var fts = [ ] ; while ( blob . l < s + length ) { var ft = blob . read _shift ( 2 ) ; blob . l -= 2 ; try { fts . push ( FtTab [ ft ] ( blob , s + length - blob . l ) ) } catch ( e ) { blob . l = s + length ; return fts } } if ( blob . l != s + length ) blob . l = s + length ; return fts } var parse _FontIndex = parseuint16 ; function parse _BOF ( blob , length ) { var o = { BIFFVer : 0 , dt : 0 } ; o . BIFFVer = blob . read _shift ( 2 ) ; length -= 2 ; if ( length >= 2 ) { o . dt = blob . read _shift ( 2 ) ; blob . l -= 2 } switch ( o . BIFFVer ) { case 1536 : case 1280 : case 2 : case 7 : break ; default : if ( length > 6 ) throw new Error ( "Unexpected BIFF Ver " + o . BIFFVer ) } blob . read _shift ( length ) ; return o } function parse _InterfaceHdr ( blob , length ) { if ( length === 0 ) return 1200 ; var q ; if ( ( q = blob . read _shift ( 2 ) ) !== 1200 ) { } return 1200 } function parse _WriteAccess ( blob , length , opts ) { if ( opts . enc ) { blob . l += length ; return "" } var l = blob . l ; var UserName = parse _XLUnicodeString ( blob , 0 , opts ) ; blob . read _shift ( length + l - blob . l ) ; return UserName } function parse _BoundSheet8 ( blob , length , opts ) { var pos = blob . read _shift ( 4 ) ; var hidden = blob . read _shift ( 1 ) & 3 ; var dt = blob . read _shift ( 1 ) ; switch ( dt ) { case 0 : dt = "Worksheet" ; break ; case 1 : dt = "Macrosheet" ; break ; case 2 : dt = "Chartsheet" ; break ; case 6 : dt = "VBAModule" ; break } var name = parse _ShortXLUnicodeString ( blob , 0 , opts ) ; if ( name . length === 0 ) name = "Sheet1" ; return { pos : pos , hs : hidden , dt : dt , name : name } } function parse _SST ( blob , length ) { var cnt = blob . read _shift ( 4 ) ; var ucnt = blob . read _shift ( 4 ) ; var strs = [ ] ; for ( var i = 0 ; i != ucnt ; ++ i ) { strs . push ( parse _XLUnicodeRichExtendedString ( blob ) ) } strs . Count = cnt ; strs . Unique = ucnt ; return strs } function parse _ExtSST ( blob , length ) { var extsst = { } ; extsst . dsst = blob . read _shift ( 2 ) ; blob . l += length - 2 ; return extsst } function parse _Row ( blob , length ) { var rw = blob . read _shift ( 2 ) , col = blob . read _shift ( 2 ) , Col = blob . read _shift ( 2 ) , rht = blob . read _shift ( 2 ) ; blob . read _shift ( 4 ) ; var flags = blob . read _shift ( 1 ) ; blob . read _shift ( 1 ) ; blob . read _shift ( 2 ) ; return { r : rw , c : col , cnt : Col - col } } function parse _ForceFullCalculat
break ; case "s" : push _value ( o , 1 , 0 , cell . v ) ; break ; default : push _value ( o , 1 , 0 , "" ) } } } push _value ( o , - 1 , 0 , "EOD" ) ; var RS = "\r\n" ; var oo = o . join ( RS ) ; return oo } } ( ) ; return { to _workbook : dif _to _workbook , to _sheet : dif _to _sheet , from _sheet : sheet _to _dif } } ( ) ; var PRN = function ( ) { function set _text _arr ( data , arr , R , C ) { if ( data === "TRUE" ) arr [ R ] [ C ] = true ; else if ( data === "FALSE" ) arr [ R ] [ C ] = false ; else if ( data === "" ) { } else if ( + data == + data ) arr [ R ] [ C ] = + data ; else arr [ R ] [ C ] = data } function prn _to _aoa _str ( f , opts ) { var arr = [ ] ; if ( ! f || f . length === 0 ) return arr ; var lines = f . split ( /[\r\n]/ ) ; var L = lines . length - 1 ; while ( L >= 0 && lines [ L ] . length === 0 ) -- L ; var start = 10 , idx = 0 ; var R = 0 ; for ( ; R <= L ; ++ R ) { idx = lines [ R ] . indexOf ( " " ) ; if ( idx == - 1 ) idx = lines [ R ] . length ; else idx ++ ; start = Math . max ( start , idx ) } for ( R = 0 ; R <= L ; ++ R ) { arr [ R ] = [ ] ; var C = 0 ; set _text _arr ( lines [ R ] . slice ( 0 , start ) . trim ( ) , arr , R , C ) ; for ( C = 1 ; C <= ( lines [ R ] . length - start ) / 10 + 1 ; ++ C ) set _text _arr ( lines [ R ] . slice ( start + ( C - 1 ) * 10 , start + C * 10 ) . trim ( ) , arr , R , C ) } return arr } function dsv _to _sheet _str ( str , opts ) { var o = opts || { } ; var sep = "" ; if ( DENSE != null && o . dense == null ) o . dense = DENSE ; var ws = o . dense ? [ ] : { } ; var range = { s : { c : 0 , r : 0 } , e : { c : 0 , r : 0 } } ; if ( str . substr ( 0 , 4 ) == "sep=" && str . charCodeAt ( 5 ) == 10 ) { sep = str . charAt ( 4 ) ; str = str . substr ( 6 ) } if ( str . substr ( 0 , 1024 ) . indexOf ( "\t" ) == - 1 ) sep = "," ; else sep = "\t" ; var R = 0 , C = 0 , v = 0 ; var start = 0 , end = 0 , sepcc = sep . charCodeAt ( 0 ) , instr = false , cc = 0 ; str = str . replace ( /\r\n/g , "\n" ) ; for ( ; end < str . length ; ++ end ) switch ( cc = str . charCodeAt ( end ) ) { case 34 : instr = ! instr ; break ; case sepcc : case 10 : if ( instr ) break ; var s = str . slice ( start , end ) ; var cell = { } ; if ( s . charCodeAt ( 0 ) == 61 ) { cell . t = "n" ; cell . f = s . substr ( 1 ) } else if ( s == "TRUE" ) { cell . t = "b" ; cell . v = true } else if ( s == "FALSE" ) { cell . t = "b" ; cell . v = false } else if ( ! isNaN ( v = parseFloat ( s ) ) ) { cell . t = "n" ; cell . w = s ; cell . v = v } else { cell . t = "s" ; cell . v = s . replace ( /^"/ , "" ) . replace ( /"$/ , "" ) . replace ( /""/g , '"' ) } if ( o . dense ) { if ( ! ws [ R ] ) ws [ R ] = [ ] ; ws [ R ] [ C ] = cell } else ws [ encode _cell ( { c : C , r : R } ) ] = cell ; start = end + 1 ; if ( range . e . c < C ) range . e . c = C ; if ( range . e . r < R ) range . e . r = R ; if ( cc == sepcc ) ++ C ; else { C = 0 ; ++ R } break ; default : break } ws [ "!ref" ] = encode _range ( range ) ; return ws } function prn _to _sheet _str ( str , opts ) { if ( str . substr ( 0 , 4 ) == "sep=" ) return dsv _to _sheet _str ( str , opts ) ; if ( str . indexOf ( "\t" ) >= 0 || str . indexOf ( "," ) >= 0 ) return dsv _to _sheet _str ( str , opts ) ; return aoa _to _sheet ( prn _to _aoa _str ( str , opts ) , opts ) } function prn _to _sheet ( d , opts ) { switch ( opts . type ) { case "base64" : return prn _to _sheet _str ( Base64 . decode ( d ) , opts ) ; case "binary" : return prn _to _sheet _str ( d , opts ) ; case "buffer" : return prn _to _sheet _str ( d . toString ( "binary" ) , opts ) ; case "array" : return prn _to _sheet _str ( cc2str ( d ) , opts ) } throw new Error ( "Unrecognized type " + opts . type ) } function prn _to _workbook ( str , opts ) { return sheet _to _workbook ( prn _to _sheet ( str , opts ) , opts ) } function sheet _to _prn ( ws , opts ) { var o = [ ] ; var r = decode _range ( ws [ "!ref" ] ) , cell ; var dense = Array . isArray ( ws ) ; for ( var R = r . s . r ; R <= r . e . r ; ++ R ) { var oo = [ ] ; for ( var C = r . s . c ; C <= r . e . c ; ++ C ) { var coord = encode _cell ( { r : R , c : C } ) ; cell = dense ? ( ws [ R ] || [ ] ) [ C ] : ws [ coord ] ; if ( ! cell || cell . v == null ) { oo . push ( " " ) ; continue } var w = ( cell . w || ( format _cell ( cell ) , cell . w ) || "" ) . substr ( 0 , 10 ) ; while ( w . length < 10 ) w += " " ; oo . push ( w + ( C == 0 ? " " : "" ) ) } o . push ( oo . join ( "" ) ) } return o . join ( "\n" ) } return { to _workbook : prn _to _workbook , to _sheet : prn _to _sheet , from _sheet : sheet _to _prn } } ( ) ; var WK _ = function ( ) { function lotushopper ( data , cb , opts ) { if ( ! data ) return ; prep _blob ( data , data . l || 0 ) ; var Enum = opts . Enum || WK1Enum ; while ( data . l < data . length ) { var RT = data . read _shift ( 2 ) ; var R = Enum [ RT ] || Enum [ 255 ] ; var length = data . read _shift ( 2 ) ; var tgt = data . l + length ; var d = R . f ( data , length , opts ) ; data . l = tgt ; if ( cb ( d , R . n , RT ) ) return } } function lotus _to _workbook ( d , opts ) { switch ( opts . type ) { case "base64" : return lotus _to _workbook _buf ( s2a ( Base64 . decode ( d ) ) , opts ) ; case "binary" : return lotus _to _workbook _buf ( s2a ( d ) , opts ) ; case "buffer" : case "array" : return lotus _to _workbook _buf ( d , opts ) } throw "Unsupported type " + opts . type } function lotus _to _workbook _buf ( d , opts ) { if ( ! d ) return d ; var o = opts || { } ; if ( DENSE != null && o . dense == null ) o . dense = DENSE ; var s = o . dense ? [ ] : { } , n = "Sheet1" , sidx = 0 ; var sheets = { } , snames = [ n ] ; var refguess = { s : { r : 0 , c : 0 } , e : { r : 0 , c : 0 } } ; if ( d [ 2 ] == 2 ) o . Enum = WK1Enum ; else if ( d [ 2 ] == 26 ) o . Enum = WK3Enum ; else if ( d [ 2 ] == 14 ) { o . Enum = W
count : o . length - 2 } ) . replace ( "/>" , ">" ) ; return o . join ( "" ) } var parse _sty _xml = function make _pstyx ( ) { var numFmtRegex = /<numFmts([^>]*)>.*<\/numFmts>/ ; var cellXfRegex = /<cellXfs([^>]*)>.*<\/cellXfs>/ ; var fillsRegex = /<fills([^>]*)>.*<\/fills>/ ; var fontsRegex = /<fonts([^>]*)>.*<\/fonts>/ ; var bordersRegex = /<borders([^>]*)>.*<\/borders>/ ; return function parse _sty _xml ( data , themes , opts ) { var styles = { } ; if ( ! data ) return styles ; var t ; if ( t = data . match ( numFmtRegex ) ) parse _numFmts ( t , styles , opts ) ; if ( t = data . match ( fontsRegex ) ) parse _fonts ( t , styles , themes , opts ) ; if ( t = data . match ( fillsRegex ) ) parse _fills ( t , styles , themes , opts ) ; if ( t = data . match ( bordersRegex ) ) parse _borders ( t , styles , themes , opts ) ; if ( t = data . match ( cellXfRegex ) ) parse _cellXfs ( t , styles , opts ) ; return styles } } ( ) ; var STYLES _XML _ROOT = writextag ( "styleSheet" , null , { xmlns : XMLNS . main [ 0 ] , "xmlns:vt" : XMLNS . vt } ) ; RELS . STY = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" ; function write _sty _xml ( wb , opts ) { var o = [ XML _HEADER , STYLES _XML _ROOT ] , w ; if ( wb . SSF && ( w = write _numFmts ( wb . SSF ) ) != null ) o [ o . length ] = w ; o [ o . length ] = '<fonts count="1"><font><sz val="12"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font></fonts>' ; o [ o . length ] = '<fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills>' ; o [ o . length ] = '<borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders>' ; o [ o . length ] = '<cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs>' ; if ( w = write _cellXfs ( opts . cellXfs ) ) o [ o . length ] = w ; o [ o . length ] = '<cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles>' ; o [ o . length ] = '<dxfs count="0"/>' ; o [ o . length ] = '<tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4"/>' ; if ( o . length > 2 ) { o [ o . length ] = "</styleSheet>" ; o [ 1 ] = o [ 1 ] . replace ( "/>" , ">" ) } return o . join ( "" ) } function parse _BrtFmt ( data , length ) { var ifmt = data . read _shift ( 2 ) ; var stFmtCode = parse _XLWideString ( data , length - 2 ) ; return [ ifmt , stFmtCode ] } function parse _BrtFont ( data , length ) { var out = { flags : { } } ; out . dyHeight = data . read _shift ( 2 ) ; out . grbit = parse _FontFlags ( data , 2 ) ; out . bls = data . read _shift ( 2 ) ; out . sss = data . read _shift ( 2 ) ; out . uls = data . read _shift ( 1 ) ; out . bFamily = data . read _shift ( 1 ) ; out . bCharSet = data . read _shift ( 1 ) ; data . l ++ ; out . brtColor = parse _BrtColor ( data , 8 ) ; out . bFontScheme = data . read _shift ( 1 ) ; out . name = parse _XLWideString ( data , length - 21 ) ; out . flags . Bold = out . bls === 700 ; out . flags . Italic = out . grbit . fItalic ; out . flags . Strikeout = out . grbit . fStrikeout ; out . flags . Outline = out . grbit . fOutline ; out . flags . Shadow = out . grbit . fShadow ; out . flags . Condense = out . grbit . fCondense ; out . flags . Extend = out . grbit . fExtend ; out . flags . Sub = out . sss & 2 ; out . flags . Sup = out . sss & 1 ; return out } function parse _BrtXF ( data , length ) { var ixfeParent = data . read _shift ( 2 ) ; var ifmt = data . read _shift ( 2 ) ; parsenoop ( data , length - 4 ) ; return { ixfe : ixfeParent , ifmt : ifmt } } function parse _sty _bin ( data , themes , opts ) { var styles = { } ; styles . NumberFmt = [ ] ; for ( var y in SSF . _table ) styles . NumberFmt [ y ] = SSF . _table [ y ] ; styles . CellXf = [ ] ; styles . Fonts = [ ] ; var state = [ ] ; var pass = false ; recordhopper ( data , function hopper _sty ( val , R _n , RT ) { switch ( RT ) { case 44 : styles . NumberFmt [ val [ 0 ] ] = val [ 1 ] ; SSF . load ( val [ 1 ] , val [ 0 ] ) ; break ; case 43 : styles . Fonts . push ( val ) ; break ; case 1025 : break ; case 45 : break ; case 46 : break ; case 47 : if ( state [ state . length - 1 ] == "BrtBeginCellXFs" ) { styles . CellXf . push ( val ) } break ; case 48 : case 507 : case 572 : case 475 : break ; case 1171 : case 2102 : case 1130 : case 512 : case 2095 : break ; case 35 : pass = true ; break ; case 36 : pass = false ; break ; case 37 : state . push ( R _n ) ; break ; case 38 : state . pop ( ) ; break ; default : if ( ( R _n || "" ) . indexOf ( "Begin" ) > 0 ) state . push ( R _n ) ; else if ( ( R _n || "" ) . indexOf ( "End" ) > 0 ) state . pop ( ) ; else if ( ! pass || opts . WTF ) throw new Error ( "Unexpected record " + RT + " " + R _n ) } } ) ; return styles } function write _sty _bin ( data , opts ) { var ba = buf _array ( ) ; write _record ( ba , "BrtBeginStyleSheet" ) ; write _record ( ba , "BrtEndStyleSheet" ) ; return ba . end ( ) } RELS . THEME = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" ; function parse _clrScheme ( t , themes , opts ) { themes . themeElements . clrScheme = [ ] ; var co
var ptg = blob [ blob . l ] & 31 ; var type = ( blob [ blob . l ] & 96 ) >> 5 ; blob . l += 1 ; var iftab = blob . read _shift ( opts && opts . biff <= 3 ? 1 : 2 ) ; return [ FtabArgc [ iftab ] , Ftab [ iftab ] , type ] } function parse _PtgFuncVar ( blob , length , opts ) { blob . l ++ ; var cparams = blob . read _shift ( 1 ) , tab = opts && opts . biff <= 3 ? [ 0 , blob . read _shift ( 1 ) ] : parsetab ( blob ) ; return [ cparams , ( tab [ 0 ] === 0 ? Ftab : Cetab ) [ tab [ 1 ] ] ] } function parsetab ( blob , length ) { return [ blob [ blob . l + 1 ] >> 7 , blob . read _shift ( 2 ) & 32767 ] } function parse _PtgAttrSum ( blob , length , opts ) { blob . l += opts && opts . biff == 2 ? 3 : 4 ; return } var parse _PtgConcat = parseread1 ; function parse _PtgExp ( blob , length , opts ) { blob . l ++ ; if ( opts && opts . biff == 12 ) return [ blob . read _shift ( 4 , "i" ) , 0 ] ; var row = blob . read _shift ( 2 ) ; var col = blob . read _shift ( opts && opts . biff == 2 ? 1 : 2 ) ; return [ row , col ] } function parse _PtgErr ( blob , length ) { blob . l ++ ; return BErr [ blob . read _shift ( 1 ) ] } function parse _PtgInt ( blob , length ) { blob . l ++ ; return blob . read _shift ( 2 ) } function parse _PtgBool ( blob , length ) { blob . l ++ ; return blob . read _shift ( 1 ) !== 0 } function parse _PtgNum ( blob , length ) { blob . l ++ ; return parse _Xnum ( blob , 8 ) } function parse _PtgStr ( blob , length , opts ) { blob . l ++ ; return parse _ShortXLUnicodeString ( blob , length - 1 , opts ) } function parse _SerAr ( blob , biff ) { var val = [ blob . read _shift ( 1 ) ] ; if ( biff == 12 ) switch ( val [ 0 ] ) { case 2 : val [ 0 ] = 4 ; break ; case 4 : val [ 0 ] = 16 ; break ; case 0 : val [ 0 ] = 1 ; break ; case 1 : val [ 0 ] = 2 ; break } switch ( val [ 0 ] ) { case 4 : val [ 1 ] = parsebool ( blob , 1 ) ? "TRUE" : "FALSE" ; blob . l += 7 ; break ; case 16 : val [ 1 ] = BErr [ blob [ blob . l ] ] ; blob . l += 8 ; break ; case 0 : blob . l += 8 ; break ; case 1 : val [ 1 ] = parse _Xnum ( blob , 8 ) ; break ; case 2 : val [ 1 ] = parse _XLUnicodeString2 ( blob , 0 , { biff : biff > 0 && biff < 8 ? 2 : biff } ) ; break } return val } function parse _PtgExtraMem ( blob , cce ) { var count = blob . read _shift ( 2 ) ; var out = [ ] ; for ( var i = 0 ; i != count ; ++ i ) out . push ( parse _Ref8U ( blob , 8 ) ) ; return out } function parse _PtgExtraArray ( blob , length , opts ) { var rows = 0 , cols = 0 ; if ( opts . biff == 12 ) { rows = blob . read _shift ( 4 ) ; cols = blob . read _shift ( 4 ) } else { cols = 1 + blob . read _shift ( 1 ) ; rows = 1 + blob . read _shift ( 2 ) } if ( opts . biff >= 2 && opts . biff < 8 ) { -- rows ; if ( -- cols == 0 ) cols = 256 } for ( var i = 0 , o = [ ] ; i != rows && ( o [ i ] = [ ] ) ; ++ i ) for ( var j = 0 ; j != cols ; ++ j ) o [ i ] [ j ] = parse _SerAr ( blob , opts . biff ) ; return o } function parse _PtgName ( blob , length , opts ) { var type = blob . read _shift ( 1 ) >>> 5 & 3 ; var w = ! opts || opts . biff >= 8 ? 4 : 2 ; var nameindex = blob . read _shift ( w ) ; switch ( opts . biff ) { case 2 : blob . l += 5 ; break ; case 3 : case 4 : blob . l += 8 ; break ; case 5 : blob . l += 12 ; break } return [ type , 0 , nameindex ] } function parse _PtgNameX ( blob , length , opts ) { if ( opts . biff == 5 ) return parse _PtgNameX _BIFF5 ( blob , length , opts ) ; var type = blob . read _shift ( 1 ) >>> 5 & 3 ; var ixti = blob . read _shift ( 2 ) ; var nameindex = blob . read _shift ( 4 ) ; return [ type , ixti , nameindex ] } function parse _PtgNameX _BIFF5 ( blob , length , opts ) { var type = blob . read _shift ( 1 ) >>> 5 & 3 ; var ixti = blob . read _shift ( 2 , "i" ) ; blob . l += 8 ; var nameindex = blob . read _shift ( 2 ) ; blob . l += 12 ; return [ type , ixti , nameindex ] } function parse _PtgMemArea ( blob , length , opts ) { var type = blob . read _shift ( 1 ) >>> 5 & 3 ; blob . l += opts && opts . biff == 2 ? 3 : 4 ; var cce = blob . read _shift ( opts && opts . biff == 2 ? 1 : 2 ) ; return [ type , cce ] } function parse _PtgMemFunc ( blob , length , opts ) { var type = blob . read _shift ( 1 ) >>> 5 & 3 ; var cce = blob . read _shift ( opts && opts . biff == 2 ? 1 : 2 ) ; return [ type , cce ] } function parse _PtgRefErr ( blob , length , opts ) { var type = blob . read _shift ( 1 ) >>> 5 & 3 ; blob . l += 4 ; if ( opts . biff == 12 ) blob . l += 2 ; return [ type ] } function parse _PtgRefErr3d ( blob , length , opts ) { var type = ( blob [ blob . l ++ ] & 96 ) >> 5 ; var ixti = blob . read _shift ( 2 ) ; var w = 4 ; if ( opts ) switch ( opts . biff ) { case 5 : throw new Error ( "PtgRefErr3d -- 5" ) ; case 12 : w = 6 ; break } blob . l += w ; return [ type , ixti ] } var parse _PtgAdd = parseread1 ; var parse _PtgDiv = parseread1 ; var parse _PtgEq = parseread1 ; var parse _PtgGe = parseread1 ; var parse _PtgGt = parseread1 ; var parse _PtgIsect = parseread1 ; var parse _PtgLe = parseread1 ; var parse _PtgLt = parseread1 ; var parse _PtgMissArg = parseread1 ; var parse _PtgMul = parseread1 ; var parse _PtgNe = parseread1 ; var parse _PtgParen = parseread1 ; var parse _PtgPercent = parseread1 ; var parse _PtgPower = parseread1 ; var parse _PtgRange = parseread1 ; var parse _PtgSub = parseread1 ; var parse _PtgUminus = parseread1 ; var parse _PtgUnion = parseread1 ; var parse _PtgUplus = parseread1 ; var parse _PtgMemErr = parsenoop ; var parse _PtgMemNoMem = parsenoop ; var parse _PtgTbl = parsenoop ; var PtgTypes = {
"_xlfn.F.DIST.RT" : "F.DIST.RT" , "_xlfn.F.INV" : "F.INV" , "_xlfn.F.INV.RT" : "F.INV.RT" , "_xlfn.F.TEST" : "F.TEST" , "_xlfn.FILTERXML" : "FILTERXML" , "_xlfn.FLOOR.MATH" : "FLOOR.MATH" , "_xlfn.FLOOR.PRECISE" : "FLOOR.PRECISE" , "_xlfn.FORMULATEXT" : "FORMULATEXT" , "_xlfn.GAMMA" : "GAMMA" , "_xlfn.GAMMA.DIST" : "GAMMA.DIST" , "_xlfn.GAMMA.INV" : "GAMMA.INV" , "_xlfn.GAMMALN.PRECISE" : "GAMMALN.PRECISE" , "_xlfn.GAUSS" : "GAUSS" , "_xlfn.HYPGEOM.DIST" : "HYPGEOM.DIST" , "_xlfn.IFNA" : "IFNA" , "_xlfn.IFERROR" : "IFERROR" , "_xlfn.IMCOSH" : "IMCOSH" , "_xlfn.IMCOT" : "IMCOT" , "_xlfn.IMCSC" : "IMCSC" , "_xlfn.IMCSCH" : "IMCSCH" , "_xlfn.IMSEC" : "IMSEC" , "_xlfn.IMSECH" : "IMSECH" , "_xlfn.IMSINH" : "IMSINH" , "_xlfn.IMTAN" : "IMTAN" , "_xlfn.ISFORMULA" : "ISFORMULA" , "_xlfn.ISO.CEILING" : "ISO.CEILING" , "_xlfn.ISOWEEKNUM" : "ISOWEEKNUM" , "_xlfn.LOGNORM.DIST" : "LOGNORM.DIST" , "_xlfn.LOGNORM.INV" : "LOGNORM.INV" , "_xlfn.MODE.MULT" : "MODE.MULT" , "_xlfn.MODE.SNGL" : "MODE.SNGL" , "_xlfn.MUNIT" : "MUNIT" , "_xlfn.NEGBINOM.DIST" : "NEGBINOM.DIST" , "_xlfn.NETWORKDAYS.INTL" : "NETWORKDAYS.INTL" , "_xlfn.NIGBINOM" : "NIGBINOM" , "_xlfn.NORM.DIST" : "NORM.DIST" , "_xlfn.NORM.INV" : "NORM.INV" , "_xlfn.NORM.S.DIST" : "NORM.S.DIST" , "_xlfn.NORM.S.INV" : "NORM.S.INV" , "_xlfn.NUMBERVALUE" : "NUMBERVALUE" , "_xlfn.PDURATION" : "PDURATION" , "_xlfn.PERCENTILE.EXC" : "PERCENTILE.EXC" , "_xlfn.PERCENTILE.INC" : "PERCENTILE.INC" , "_xlfn.PERCENTRANK.EXC" : "PERCENTRANK.EXC" , "_xlfn.PERCENTRANK.INC" : "PERCENTRANK.INC" , "_xlfn.PERMUTATIONA" : "PERMUTATIONA" , "_xlfn.PHI" : "PHI" , "_xlfn.POISSON.DIST" : "POISSON.DIST" , "_xlfn.QUARTILE.EXC" : "QUARTILE.EXC" , "_xlfn.QUARTILE.INC" : "QUARTILE.INC" , "_xlfn.QUERYSTRING" : "QUERYSTRING" , "_xlfn.RANK.AVG" : "RANK.AVG" , "_xlfn.RANK.EQ" : "RANK.EQ" , "_xlfn.RRI" : "RRI" , "_xlfn.SEC" : "SEC" , "_xlfn.SECH" : "SECH" , "_xlfn.SHEET" : "SHEET" , "_xlfn.SHEETS" : "SHEETS" , "_xlfn.SKEW.P" : "SKEW.P" , "_xlfn.STDEV.P" : "STDEV.P" , "_xlfn.STDEV.S" : "STDEV.S" , "_xlfn.SUMIFS" : "SUMIFS" , "_xlfn.T.DIST" : "T.DIST" , "_xlfn.T.DIST.2T" : "T.DIST.2T" , "_xlfn.T.DIST.RT" : "T.DIST.RT" , "_xlfn.T.INV" : "T.INV" , "_xlfn.T.INV.2T" : "T.INV.2T" , "_xlfn.T.TEST" : "T.TEST" , "_xlfn.UNICHAR" : "UNICHAR" , "_xlfn.UNICODE" : "UNICODE" , "_xlfn.VAR.P" : "VAR.P" , "_xlfn.VAR.S" : "VAR.S" , "_xlfn.WEBSERVICE" : "WEBSERVICE" , "_xlfn.WEIBULL.DIST" : "WEIBULL.DIST" , "_xlfn.WORKDAY.INTL" : "WORKDAY.INTL" , "_xlfn.XOR" : "XOR" , "_xlfn.Z.TEST" : "Z.TEST" } ; function ods _to _csf _formula ( f ) { if ( f . substr ( 0 , 3 ) == "of:" ) f = f . substr ( 3 ) ; if ( f . charCodeAt ( 0 ) == 61 ) { f = f . substr ( 1 ) ; if ( f . charCodeAt ( 0 ) == 61 ) f = f . substr ( 1 ) } f = f . replace ( /COM\.MICROSOFT\./g , "" ) ; f = f . replace ( /\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g , function ( $$ , $1 ) { return $1 . replace ( /\./g , "" ) } ) ; f = f . replace ( /\[.(#[A-Z]*[?!])\]/g , "$1" ) ; return f . replace ( /[;~]/g , "," ) . replace ( /\|/g , ";" ) } function csf _to _ods _formula ( f ) { var o = "of:=" + f . replace ( crefregex , "$1[.$2$3$4$5]" ) . replace ( /\]:\[/g , ":" ) ; return o . replace ( /;/g , "|" ) . replace ( /,/g , ";" ) } function ods _to _csf _range _3D ( r ) { var a = r . split ( ":" ) ; var s = a [ 0 ] . split ( "." ) [ 0 ] ; return [ s , a [ 0 ] . split ( "." ) [ 1 ] + ":" + a [ 1 ] . split ( "." ) [ 1 ] ] } var strs = { } ; var _ssfopts = { } ; RELS . WS = [ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" , "http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet" ] ; function get _sst _id ( sst , str ) { for ( var i = 0 , len = sst . length ; i < len ; ++ i ) if ( sst [ i ] . t === str ) { sst . Count ++ ; return i } sst [ len ] = { t : str } ; sst . Count ++ ; sst . Unique ++ ; return len } function col _obj _w ( C , col ) { var p = { min : C + 1 , max : C + 1 } ; var width = - 1 ; if ( col . MDW ) MDW = col . MDW ; if ( col . width != null ) p . customWidth = 1 ; else if ( col . wpx != null ) width = px2char ( col . wpx ) ; else if ( col . wch != null ) width = col . wch ; if ( width > - 1 ) { p . width = char2width ( width ) ; p . customWidth = 1 } else p . width = col . width ; return p } function default _margins ( margins , mode ) { if ( ! margins ) return ; var defs = [ . 7 , . 7 , . 75 , . 75 , . 3 , . 3 ] ; if ( mode == "xlml" ) defs = [ 1 , 1 , 1 , 1 , . 5 , . 5 ] ; if ( margins . left == null ) margins . left = defs [ 0 ] ; if ( margins . right == null ) margins . right = defs [ 1 ] ; if ( margins . top == null ) margins . top = defs [ 2 ] ; if ( margins . bottom == null ) margins . bottom = defs [ 3 ] ; if ( margins . header == null ) margins . header = defs [ 4 ] ; if ( margins . footer == null ) margins . footer = defs [ 5 ] } function get _cell _style ( styles , cell , opts ) { var z = opts . revssf [ cell . z != null ? cell . z : "General" ] ; for ( var i = 0 , len = styles . length ; i != len ; ++ i ) if ( styles [ i ] . numFmtId === z ) return i ; styles [ len ] = { numFmtId : z , fontId : 0
ws [ "!legacy" ] = rId } } function write _AUTOFILTER ( ba , ws ) { if ( ! ws [ "!autofilter" ] ) return ; write _record ( ba , "BrtBeginAFilter" , write _UncheckedRfX ( decode _range ( ws [ "!autofilter" ] . ref ) ) ) ; write _record ( ba , "BrtEndAFilter" ) } function write _SHEETPROTECT ( ba , ws ) { if ( ! ws [ "!protect" ] ) return ; write _record ( ba , "BrtSheetProtection" , write _BrtSheetProtection ( ws [ "!protect" ] ) ) } function write _ws _bin ( idx , opts , wb , rels ) { var ba = buf _array ( ) ; var s = wb . SheetNames [ idx ] , ws = wb . Sheets [ s ] || { } ; var r = safe _decode _range ( ws [ "!ref" ] || "A1" ) ; ws [ "!links" ] = [ ] ; ws [ "!comments" ] = [ ] ; write _record ( ba , "BrtBeginSheet" ) ; write _record ( ba , "BrtWsProp" , write _BrtWsProp ( s ) ) ; write _record ( ba , "BrtWsDim" , write _BrtWsDim ( r ) ) ; write _COLINFOS ( ba , ws , idx , opts , wb ) ; write _CELLTABLE ( ba , ws , idx , opts , wb ) ; write _SHEETPROTECT ( ba , ws ) ; write _AUTOFILTER ( ba , ws ) ; write _MERGECELLS ( ba , ws ) ; write _HLINKS ( ba , ws , rels ) ; if ( ws [ "!margins" ] ) write _record ( ba , "BrtMargins" , write _BrtMargins ( ws [ "!margins" ] ) ) ; write _LEGACYDRAWING ( ba , ws , idx , rels ) ; write _record ( ba , "BrtEndSheet" ) ; return ba . end ( ) } function parse _numCache ( data ) { var col = [ ] ; ( data . match ( /<c:pt idx="(\d*)">(.*?)<\/c:pt>/gm ) || [ ] ) . forEach ( function ( pt ) { var q = pt . match ( /<c:pt idx="(.*?)"><c:v>(.*)<\/c:v><\/c:pt>/ ) ; if ( ! q ) return ; col [ + q [ 1 ] ] = + q [ 2 ] } ) ; var nf = unescapexml ( ( data . match ( /<c:formatCode>(.*?)<\/c:formatCode>/ ) || [ "" , "General" ] ) [ 1 ] ) ; return [ col , nf ] } function parse _chart ( data , name , opts , rels , wb , csheet ) { var cs = csheet || { "!type" : "chart" } ; if ( ! data ) return csheet ; var C = 0 , R = 0 , col = "A" ; var refguess = { s : { r : 2e6 , c : 2e6 } , e : { r : 0 , c : 0 } } ; ( data . match ( /<c:numCache>.*?<\/c:numCache>/gm ) || [ ] ) . forEach ( function ( nc ) { var cache = parse _numCache ( nc ) ; refguess . s . r = refguess . s . c = 0 ; refguess . e . c = C ; col = encode _col ( C ) ; cache [ 0 ] . forEach ( function ( n , i ) { cs [ col + encode _row ( i ) ] = { t : "n" , v : n , z : cache [ 1 ] } ; R = i } ) ; if ( refguess . e . r < R ) refguess . e . r = R ; ++ C } ) ; if ( C > 0 ) cs [ "!ref" ] = encode _range ( refguess ) ; return cs } RELS . CS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet" ; var CS _XML _ROOT = writextag ( "chartsheet" , null , { xmlns : XMLNS . main [ 0 ] , "xmlns:r" : XMLNS . r } ) ; function parse _cs _xml ( data , opts , rels , wb , themes , styles ) { if ( ! data ) return data ; if ( ! rels ) rels = { "!id" : { } } ; var s = { "!type" : "chart" , "!chart" : null , "!rel" : "" } ; var m ; if ( m = data . match ( /drawing r:id="(.*?)"/ ) ) s [ "!rel" ] = m [ 1 ] ; if ( rels [ "!id" ] [ s [ "!rel" ] ] ) s [ "!chart" ] = rels [ "!id" ] [ s [ "!rel" ] ] ; return s } function write _cs _xml ( idx , opts , wb , rels ) { var o = [ XML _HEADER , CS _XML _ROOT ] ; o [ o . length ] = writextag ( "drawing" , null , { "r:id" : "rId1" } ) ; add _rels ( rels , - 1 , "../drawings/drawing" + ( idx + 1 ) + ".xml" , RELS . DRAW ) ; if ( o . length > 2 ) { o [ o . length ] = "</chartsheet>" ; o [ 1 ] = o [ 1 ] . replace ( "/>" , ">" ) } return o . join ( "" ) } function parse _cs _bin ( data , opts , rels , wb , themes , styles ) { if ( ! data ) return data ; if ( ! rels ) rels = { "!id" : { } } ; var s = { "!type" : "chart" , "!chart" : null , "!rel" : "" } ; var state = [ ] ; var pass = false ; recordhopper ( data , function cs _parse ( val , R _n , RT ) { switch ( RT ) { case 550 : s [ "!rel" ] = val ; break ; case 562 : case 652 : case 651 : case 669 : case 679 : case 551 : case 552 : case 476 : break ; case 35 : pass = true ; break ; case 36 : pass = false ; break ; case 37 : state . push ( R _n ) ; break ; case 38 : state . pop ( ) ; break ; default : if ( ( R _n || "" ) . indexOf ( "Begin" ) > 0 ) state . push ( R _n ) ; else if ( ( R _n || "" ) . indexOf ( "End" ) > 0 ) state . pop ( ) ; else if ( ! pass || opts . WTF ) throw new Error ( "Unexpected record " + RT + " " + R _n ) } } , opts ) ; if ( rels [ "!id" ] [ s [ "!rel" ] ] ) s [ "!chart" ] = rels [ "!id" ] [ s [ "!rel" ] ] ; return s } function write _cs _bin ( idx , opts , wb , rels ) { var ba = buf _array ( ) ; write _record ( ba , "BrtBeginSheet" ) ; write _record ( ba , "BrtEndSheet" ) ; return ba . end ( ) } var WBPropsDef = [ [ "allowRefreshQuery" , "0" ] , [ "autoCompressPictures" , "1" ] , [ "backupFile" , "0" ] , [ "checkCompatibility" , "0" ] , [ "codeName" , "" ] , [ "date1904" , "0" ] , [ "dateCompatibility" , "1" ] , [ "filterPrivacy" , "0" ] , [ "hidePivotFieldList" , "0" ] , [ "promptedSolutions" , "0" ] , [ "publishItems" , "0" ] , [ "refreshAllConnections" , false ] , [ "saveExternalLinkValues" , "1" ] , [ "showBorderUnselectedTables" , "1" ] , [ "showInkAnnotation" , "1" ] , [ "showObjects" , "all" ] , [ "showPivotChartFilter" , "0" ] ] ; var WBViewDef = [ [ "activeTab" , "0" ] , [ "autoFilterDateGrouping" , "1" ] , [ "firstSheet" , "0" ] , [ "minimized" , "0" ] , [ "showHorizontalScroll" , "1" ] , [ "showSheetTabs" , "1" ] , [ "showVerticalScroll" , "1" ] , [ "tabRatio" , "600" ] , [ "visibility" , "visible" ] ] ; var SheetDef = [ ] ; var CalcPrDef = [ [ " calcComple
break ; case "DoNotDisplayOutline" : break ; case "NoOrientation" : break ; case "AllowUsePivotTables" : break ; case "ZeroHeight" : break ; case "ViewableRange" : break ; case "Selection" : break ; case "ProtectContents" : break ; default : seen = false } break ; case "PivotTable" : case "PivotCache" : switch ( Rn [ 3 ] ) { case "ImmediateItemsOnDrop" : break ; case "ShowPageMultipleItemLabel" : break ; case "CompactRowIndent" : break ; case "Location" : break ; case "PivotField" : break ; case "Orientation" : break ; case "LayoutForm" : break ; case "LayoutSubtotalLocation" : break ; case "LayoutCompactRow" : break ; case "Position" : break ; case "PivotItem" : break ; case "DataType" : break ; case "DataField" : break ; case "SourceName" : break ; case "ParentField" : break ; case "PTLineItems" : break ; case "PTLineItem" : break ; case "CountOfSameItems" : break ; case "Item" : break ; case "ItemType" : break ; case "PTSource" : break ; case "CacheIndex" : break ; case "ConsolidationReference" : break ; case "FileName" : break ; case "Reference" : break ; case "NoColumnGrand" : break ; case "NoRowGrand" : break ; case "BlankLineAfterItems" : break ; case "Hidden" : break ; case "Subtotal" : break ; case "BaseField" : break ; case "MapChildItems" : break ; case "Function" : break ; case "RefreshOnFileOpen" : break ; case "PrintSetTitles" : break ; case "MergeLabels" : break ; case "DefaultVersion" : break ; case "RefreshName" : break ; case "RefreshDate" : break ; case "RefreshDateCopy" : break ; case "VersionLastRefresh" : break ; case "VersionLastUpdate" : break ; case "VersionUpdateableMin" : break ; case "VersionRefreshableMin" : break ; case "Calculation" : break ; default : seen = false } break ; case "PageBreaks" : switch ( Rn [ 3 ] ) { case "ColBreaks" : break ; case "ColBreak" : break ; case "RowBreaks" : break ; case "RowBreak" : break ; case "ColStart" : break ; case "ColEnd" : break ; case "RowEnd" : break ; default : seen = false } break ; case "AutoFilter" : switch ( Rn [ 3 ] ) { case "AutoFilterColumn" : break ; case "AutoFilterCondition" : break ; case "AutoFilterAnd" : break ; case "AutoFilterOr" : break ; default : seen = false } break ; case "QueryTable" : switch ( Rn [ 3 ] ) { case "Id" : break ; case "AutoFormatFont" : break ; case "AutoFormatPattern" : break ; case "QuerySource" : break ; case "QueryType" : break ; case "EnableRedirections" : break ; case "RefreshedInXl9" : break ; case "URLString" : break ; case "HTMLTables" : break ; case "Connection" : break ; case "CommandText" : break ; case "RefreshInfo" : break ; case "NoTitles" : break ; case "NextId" : break ; case "ColumnInfo" : break ; case "OverwriteCells" : break ; case "DoNotPromptForFile" : break ; case "TextWizardSettings" : break ; case "Source" : break ; case "Number" : break ; case "Decimal" : break ; case "ThousandSeparator" : break ; case "TrailingMinusNumbers" : break ; case "FormatSettings" : break ; case "FieldType" : break ; case "Delimiters" : break ; case "Tab" : break ; case "Comma" : break ; case "AutoFormatName" : break ; case "VersionLastEdit" : break ; case "VersionLastRefresh" : break ; default : seen = false } break ; case "Sorting" : case "ConditionalFormatting" : case "DataValidation" : switch ( Rn [ 3 ] ) { case "Range" : break ; case "Type" : break ; case "Min" : break ; case "Max" : break ; case "Sort" : break ; case "Descending" : break ; case "Order" : break ; case "CaseSensitive" : break ; case "Value" : break ; case "ErrorStyle" : break ; case "ErrorMessage" : break ; case "ErrorTitle" : break ; case "CellRangeList" : break ; case "InputMessage" : break ; case "InputTitle" : break ; case "ComboHide" : break ; case "InputHide" : break ; case "Condition" : break ; case "Qualifier" : break ; case "UseBlank" : break ; case "Value1" : break ; case "Value2" : break ; case "Format" : break ; default : seen = false } break ; case "MapInfo" : case "Schema" : case "data" : switch ( Rn [ 3 ] ) { case "Map" : break ; case "Entry" : break ; case "Range" : break ; case "XPath" : break ; case "Field" : break ; case "XSDType" : break ; case "FilterOn" : break ; case "Aggregate" : break ; case "ElementType" : break ; case "AttributeType" : break ; case "schema" : case "element" : case "complexType" : case "datatype" : case "all" : case "attribute" : case "extends" : break ; case "row" : break ; default : seen = false } break ; case "SmartTags" : break ; default : seen = false ; break } if ( seen ) break ; if ( ! state [ state . length - 1 ] [ 1 ] ) throw "Unrecognized tag: " + Rn [ 3 ] + "|" + state . join ( "|" ) ; if ( state [ state . length - 1 ] [ 0 ] === "CustomDocumentProperties" ) { if ( Rn [ 0 ] . slice ( - 2 ) === "/>" ) break ; else if ( Rn [ 1 ] === "/" ) xlml _set _custprop ( Custprops , Rn , cp , str . slice ( pidx , Rn . index ) ) ; else { cp = Rn ; pidx = Rn . index + Rn [ 0 ] . length } break } if ( opts . WTF ) throw "Unrecognized tag: " + Rn [ 3 ] + "|" + state . join ( "|" ) } var out = { } ; if ( ! opts . bookSheets && ! opts . bookProps ) out . Sheets = sheets ; ou
f : parsenoop } , 158 : { n : "BrtBookView" , f : parsenoop } , 159 : { n : "BrtBeginSst" , f : parse _BrtBeginSst } , 160 : { n : "BrtEndSst" , f : parsenoop } , 161 : { n : "BrtBeginAFilter" , f : parse _UncheckedRfX } , 162 : { n : "BrtEndAFilter" , f : parsenoop } , 163 : { n : "BrtBeginFilterColumn" , f : parsenoop } , 164 : { n : "BrtEndFilterColumn" , f : parsenoop } , 165 : { n : "BrtBeginFilters" , f : parsenoop } , 166 : { n : "BrtEndFilters" , f : parsenoop } , 167 : { n : "BrtFilter" , f : parsenoop } , 168 : { n : "BrtColorFilter" , f : parsenoop } , 169 : { n : "BrtIconFilter" , f : parsenoop } , 170 : { n : "BrtTop10Filter" , f : parsenoop } , 171 : { n : "BrtDynamicFilter" , f : parsenoop } , 172 : { n : "BrtBeginCustomFilters" , f : parsenoop } , 173 : { n : "BrtEndCustomFilters" , f : parsenoop } , 174 : { n : "BrtCustomFilter" , f : parsenoop } , 175 : { n : "BrtAFilterDateGroupItem" , f : parsenoop } , 176 : { n : "BrtMergeCell" , f : parse _BrtMergeCell } , 177 : { n : "BrtBeginMergeCells" , f : parsenoop } , 178 : { n : "BrtEndMergeCells" , f : parsenoop } , 179 : { n : "BrtBeginPivotCacheDef" , f : parsenoop } , 180 : { n : "BrtEndPivotCacheDef" , f : parsenoop } , 181 : { n : "BrtBeginPCDFields" , f : parsenoop } , 182 : { n : "BrtEndPCDFields" , f : parsenoop } , 183 : { n : "BrtBeginPCDField" , f : parsenoop } , 184 : { n : "BrtEndPCDField" , f : parsenoop } , 185 : { n : "BrtBeginPCDSource" , f : parsenoop } , 186 : { n : "BrtEndPCDSource" , f : parsenoop } , 187 : { n : "BrtBeginPCDSRange" , f : parsenoop } , 188 : { n : "BrtEndPCDSRange" , f : parsenoop } , 189 : { n : "BrtBeginPCDFAtbl" , f : parsenoop } , 190 : { n : "BrtEndPCDFAtbl" , f : parsenoop } , 191 : { n : "BrtBeginPCDIRun" , f : parsenoop } , 192 : { n : "BrtEndPCDIRun" , f : parsenoop } , 193 : { n : "BrtBeginPivotCacheRecords" , f : parsenoop } , 194 : { n : "BrtEndPivotCacheRecords" , f : parsenoop } , 195 : { n : "BrtBeginPCDHierarchies" , f : parsenoop } , 196 : { n : "BrtEndPCDHierarchies" , f : parsenoop } , 197 : { n : "BrtBeginPCDHierarchy" , f : parsenoop } , 198 : { n : "BrtEndPCDHierarchy" , f : parsenoop } , 199 : { n : "BrtBeginPCDHFieldsUsage" , f : parsenoop } , 200 : { n : "BrtEndPCDHFieldsUsage" , f : parsenoop } , 201 : { n : "BrtBeginExtConnection" , f : parsenoop } , 202 : { n : "BrtEndExtConnection" , f : parsenoop } , 203 : { n : "BrtBeginECDbProps" , f : parsenoop } , 204 : { n : "BrtEndECDbProps" , f : parsenoop } , 205 : { n : "BrtBeginECOlapProps" , f : parsenoop } , 206 : { n : "BrtEndECOlapProps" , f : parsenoop } , 207 : { n : "BrtBeginPCDSConsol" , f : parsenoop } , 208 : { n : "BrtEndPCDSConsol" , f : parsenoop } , 209 : { n : "BrtBeginPCDSCPages" , f : parsenoop } , 210 : { n : "BrtEndPCDSCPages" , f : parsenoop } , 211 : { n : "BrtBeginPCDSCPage" , f : parsenoop } , 212 : { n : "BrtEndPCDSCPage" , f : parsenoop } , 213 : { n : "BrtBeginPCDSCPItem" , f : parsenoop } , 214 : { n : "BrtEndPCDSCPItem" , f : parsenoop } , 215 : { n : "BrtBeginPCDSCSets" , f : parsenoop } , 216 : { n : "BrtEndPCDSCSets" , f : parsenoop } , 217 : { n : "BrtBeginPCDSCSet" , f : parsenoop } , 218 : { n : "BrtEndPCDSCSet" , f : parsenoop } , 219 : { n : "BrtBeginPCDFGroup" , f : parsenoop } , 220 : { n : "BrtEndPCDFGroup" , f : parsenoop } , 221 : { n : "BrtBeginPCDFGItems" , f : parsenoop } , 222 : { n : "BrtEndPCDFGItems" , f : parsenoop } , 223 : { n : "BrtBeginPCDFGRange" , f : parsenoop } , 224 : { n : "BrtEndPCDFGRange" , f : parsenoop } , 225 : { n : "BrtBeginPCDFGDiscrete" , f : parsenoop } , 226 : { n : "BrtEndPCDFGDiscrete" , f : parsenoop } , 227 : { n : "BrtBeginPCDSDTupleCache" , f : parsenoop } , 228 : { n : "BrtEndPCDSDTupleCache" , f : parsenoop } , 229 : { n : "BrtBeginPCDSDTCEntries" , f : parsenoop } , 230 : { n : "BrtEndPCDSDTCEntries" , f : parsenoop } , 231 : { n : "BrtBeginPCDSDTCEMembers" , f : parsenoop } , 232 : { n : "BrtEndPCDSDTCEMembers" , f : parsenoop } , 233 : { n : "BrtBeginPCDSDTCEMember" , f : parsenoop } , 234 : { n : "BrtEndPCDSDTCEMember" , f : parsenoop } , 235 : { n : "BrtBeginPCDSDTCQueries" , f : parsenoop } , 236 : { n : "BrtEndPCDSDTCQueries" , f : parsenoop } , 237 : { n : "BrtBeginPCDSDTCQuery" , f : parsenoop } , 238 : { n : "BrtEndPCDSDTCQuery" , f : parsenoop } , 239 : { n : "BrtBeginPCDSDTCSets" , f : parsenoop } , 240 : { n : "BrtEndPCDSDTCSets" , f : parsenoop } , 241 : { n : "BrtBeginPCDSDTCSet" , f : parsenoop } , 242 : { n : "BrtEndPCDSDTCSet" , f : parsenoop } , 243 : { n : "BrtBeginPCDCalcItems" , f : parsenoop } , 244 : { n : "BrtEndPCDCalcItems" , f : parsenoop } , 245 : { n : "BrtBeginPCDCalcItem" , f : parsenoop } , 246 : { n : "BrtEndPCDCalcItem" , f : parsenoop } , 247 : { n : "BrtBeginPRule" , f : parsenoop } , 248 : { n : "BrtEndPRule" , f : parsenoop } , 249 : { n : "BrtBeginPRFilters" , f : parsenoop } , 250 : { n : "BrtEndPRFilters" , f : parsenoop } , 251 : { n : "BrtBeginPRFilter" , f : parsenoop } , 252 : { n : "BrtEndPRFilter" , f : parsenoop } , 253 : { n : "BrtBeginPNames" , f : parsenoop } , 254 : { n : "BrtEndPNames" , f : parsenoop } , 255 : { n : "BrtBeginPName" , f : parsenoop } , 256 : { n : "BrtEndPName" , f : parsenoop } , 257 : { n : "BrtBeginPNPairs" , f : parsenoop } , 258 : { n : "BrtEndPNPairs" , f : parsenoop } , 259 : { n : " BrtBeginPN
n : "MulBlank" , f : parse _MulBlank } , 193 : { n : "Mms" , f : parse _Mms } , 197 : { n : "SXDI" , f : parse _SXDI } , 198 : { n : "SXDB" , f : parse _SXDB } , 199 : { n : "SXFDB" , f : parse _SXFDB } , 200 : { n : "SXDBB" , f : parse _SXDBB } , 201 : { n : "SXNum" , f : parse _SXNum } , 202 : { n : "SxBool" , f : parse _SxBool } , 203 : { n : "SxErr" , f : parse _SxErr } , 204 : { n : "SXInt" , f : parse _SXInt } , 205 : { n : "SXString" , f : parse _SXString } , 206 : { n : "SXDtr" , f : parse _SXDtr } , 207 : { n : "SxNil" , f : parse _SxNil } , 208 : { n : "SXTbl" , f : parse _SXTbl } , 209 : { n : "SXTBRGIITM" , f : parse _SXTBRGIITM } , 210 : { n : "SxTbpg" , f : parse _SxTbpg } , 211 : { n : "ObProj" , f : parse _ObProj } , 213 : { n : "SXStreamID" , f : parse _SXStreamID } , 215 : { n : "DBCell" , f : parse _DBCell } , 216 : { n : "SXRng" , f : parse _SXRng } , 217 : { n : "SxIsxoper" , f : parse _SxIsxoper } , 218 : { n : "BookBool" , f : parse _BookBool } , 220 : { n : "DbOrParamQry" , f : parse _DbOrParamQry } , 221 : { n : "ScenarioProtect" , f : parse _ScenarioProtect } , 222 : { n : "OleObjectSize" , f : parse _OleObjectSize } , 224 : { n : "XF" , f : parse _XF } , 225 : { n : "InterfaceHdr" , f : parse _InterfaceHdr } , 226 : { n : "InterfaceEnd" , f : parse _InterfaceEnd } , 227 : { n : "SXVS" , f : parse _SXVS } , 229 : { n : "MergeCells" , f : parse _MergeCells } , 233 : { n : "BkHim" , f : parse _BkHim } , 235 : { n : "MsoDrawingGroup" , f : parse _MsoDrawingGroup } , 236 : { n : "MsoDrawing" , f : parse _MsoDrawing } , 237 : { n : "MsoDrawingSelection" , f : parse _MsoDrawingSelection } , 239 : { n : "PhoneticInfo" , f : parse _PhoneticInfo } , 240 : { n : "SxRule" , f : parse _SxRule } , 241 : { n : "SXEx" , f : parse _SXEx } , 242 : { n : "SxFilt" , f : parse _SxFilt } , 244 : { n : "SxDXF" , f : parse _SxDXF } , 245 : { n : "SxItm" , f : parse _SxItm } , 246 : { n : "SxName" , f : parse _SxName } , 247 : { n : "SxSelect" , f : parse _SxSelect } , 248 : { n : "SXPair" , f : parse _SXPair } , 249 : { n : "SxFmla" , f : parse _SxFmla } , 251 : { n : "SxFormat" , f : parse _SxFormat } , 252 : { n : "SST" , f : parse _SST } , 253 : { n : "LabelSst" , f : parse _LabelSst } , 255 : { n : "ExtSST" , f : parse _ExtSST } , 256 : { n : "SXVDEx" , f : parse _SXVDEx } , 259 : { n : "SXFormula" , f : parse _SXFormula } , 290 : { n : "SXDBEx" , f : parse _SXDBEx } , 311 : { n : "RRDInsDel" , f : parse _RRDInsDel } , 312 : { n : "RRDHead" , f : parse _RRDHead } , 315 : { n : "RRDChgCell" , f : parse _RRDChgCell } , 317 : { n : "RRTabId" , f : parse _RRTabId } , 318 : { n : "RRDRenSheet" , f : parse _RRDRenSheet } , 319 : { n : "RRSort" , f : parse _RRSort } , 320 : { n : "RRDMove" , f : parse _RRDMove } , 330 : { n : "RRFormat" , f : parse _RRFormat } , 331 : { n : "RRAutoFmt" , f : parse _RRAutoFmt } , 333 : { n : "RRInsertSh" , f : parse _RRInsertSh } , 334 : { n : "RRDMoveBegin" , f : parse _RRDMoveBegin } , 335 : { n : "RRDMoveEnd" , f : parse _RRDMoveEnd } , 336 : { n : "RRDInsDelBegin" , f : parse _RRDInsDelBegin } , 337 : { n : "RRDInsDelEnd" , f : parse _RRDInsDelEnd } , 338 : { n : "RRDConflict" , f : parse _RRDConflict } , 339 : { n : "RRDDefName" , f : parse _RRDDefName } , 340 : { n : "RRDRstEtxp" , f : parse _RRDRstEtxp } , 351 : { n : "LRng" , f : parse _LRng } , 352 : { n : "UsesELFs" , f : parse _UsesELFs } , 353 : { n : "DSF" , f : parse _DSF } , 401 : { n : "CUsr" , f : parse _CUsr } , 402 : { n : "CbUsr" , f : parse _CbUsr } , 403 : { n : "UsrInfo" , f : parse _UsrInfo } , 404 : { n : "UsrExcl" , f : parse _UsrExcl } , 405 : { n : "FileLock" , f : parse _FileLock } , 406 : { n : "RRDInfo" , f : parse _RRDInfo } , 407 : { n : "BCUsrs" , f : parse _BCUsrs } , 408 : { n : "UsrChk" , f : parse _UsrChk } , 425 : { n : "UserBView" , f : parse _UserBView } , 426 : { n : "UserSViewBegin" , f : parse _UserSViewBegin } , 427 : { n : "UserSViewEnd" , f : parse _UserSViewEnd } , 428 : { n : "RRDUserView" , f : parse _RRDUserView } , 429 : { n : "Qsi" , f : parse _Qsi } , 430 : { n : "SupBook" , f : parse _SupBook } , 431 : { n : "Prot4Rev" , f : parse _Prot4Rev } , 432 : { n : "CondFmt" , f : parse _CondFmt } , 433 : { n : "CF" , f : parse _CF } , 434 : { n : "DVal" , f : parse _DVal } , 437 : { n : "DConBin" , f : parse _DConBin } , 438 : { n : "TxO" , f : parse _TxO } , 439 : { n : "RefreshAll" , f : parse _RefreshAll } , 440 : { n : "HLink" , f : parse _HLink } , 441 : { n : "Lel" , f : parse _Lel } , 442 : { n : "CodeName" , f : parse _XLSCodeName } , 443 : { n : "SXFDBType" , f : parse _SXFDBType } , 444 : { n : "Prot4RevPass" , f : parse _Prot4RevPass } , 445 : { n : "ObNoMacros" , f : parse _ObNoMacros } , 446 : { n : "Dv" , f : parse _Dv } , 448 : { n : "Excel9File" , f : parse _Excel9File } , 449 : { n : "RecalcId" , f : parse _RecalcId , r : 2 } , 450 : { n : "EntExU2" , f : parse _EntExU2 } , 512 : { n : "Dimensions" , f : parse _Dimensions } , 513 : { n : "Blank" , f : parse _Blank } , 515 : { n : "Number" , f : parse _Number } , 516 : { n : "Label" , f : parse _Label } , 517 : { n : "BoolErr" , f : parse _BoolErr } , 518 : { n : "Formula" , f : parse _Formula } , 519 : { n : "String" , f : parse _String } , 520 : { n : "Row" , f : parse _Row } , 523 : { n : "Index" , f : parse _Index } , 545 : { n : "Array" , f : parse _Array } , 549 : { n : "DefaultRowHeight" , f : parse _DefaultRowHeight } , 566 : { n : "Table" , f : parse _Table } , 574 : { n : "Window2" , f : parse _Window2 } , 638 : { n : "RK" , f : parse _RK } , 659 : { n : "Style" , f : parse _Style } , 1030 : { n : "Formula" , f : par
o . push ( " <office:spreadsheet>\n" ) ; for ( var i = 0 ; i != wb . SheetNames . length ; ++ i ) o . push ( write _ws ( wb . Sheets [ wb . SheetNames [ i ] ] , wb , i , opts ) ) ; o . push ( " </office:spreadsheet>\n" ) ; o . push ( " </office:body>\n" ) ; if ( opts . bookType == "fods" ) o . push ( "</office:document>" ) ; else o . push ( "</office:document-content>" ) ; return o . join ( "" ) } } ( ) ; function write _obj _str ( factory ) { return function write _str ( wb , o ) { var idx = 0 ; for ( var i = 0 ; i < wb . SheetNames . length ; ++ i ) if ( wb . SheetNames [ i ] == o . sheet ) idx = i ; if ( idx == 0 && ! ! o . sheet && wb . SheetNames [ 0 ] != o . sheet ) throw new Error ( "Sheet not found: " + o . sheet ) ; return factory . from _sheet ( wb . Sheets [ wb . SheetNames [ idx ] ] , o ) } } var write _htm _str = write _obj _str ( HTML _ ) ; var write _csv _str = write _obj _str ( { from _sheet : sheet _to _csv } ) ; var write _slk _str = write _obj _str ( SYLK ) ; var write _dif _str = write _obj _str ( DIF ) ; var write _prn _str = write _obj _str ( PRN ) ; var write _txt _str = write _obj _str ( { from _sheet : sheet _to _txt } ) ; function parse _ods ( zip , opts ) { opts = opts || { } ; var ods = ! ! safegetzipfile ( zip , "objectdata" ) ; if ( ods ) var manifest = parse _manifest ( getzipdata ( zip , "META-INF/manifest.xml" ) , opts ) ; var content = getzipstr ( zip , "content.xml" ) ; if ( ! content ) throw new Error ( "Missing content.xml in " + ( ods ? "ODS" : "UOF" ) + " file" ) ; return parse _content _xml ( ods ? content : utf8read ( content ) , opts ) } function parse _fods ( data , opts ) { return parse _content _xml ( data , opts ) } function write _ods ( wb , opts ) { if ( opts . bookType == "fods" ) return write _content _xml ( wb , opts ) ; var zip = new jszip ; var f = "" ; var manifest = [ ] ; var rdf = [ ] ; f = "mimetype" ; zip . file ( f , "application/vnd.oasis.opendocument.spreadsheet" ) ; f = "content.xml" ; zip . file ( f , write _content _xml ( wb , opts ) ) ; manifest . push ( [ f , "text/xml" ] ) ; rdf . push ( [ f , "ContentFile" ] ) ; f = "manifest.rdf" ; zip . file ( f , write _rdf ( rdf , opts ) ) ; manifest . push ( [ f , "application/rdf+xml" ] ) ; f = "META-INF/manifest.xml" ; zip . file ( f , write _manifest ( manifest , opts ) ) ; return zip } function fix _opts _func ( defaults ) { return function fix _opts ( opts ) { for ( var i = 0 ; i != defaults . length ; ++ i ) { var d = defaults [ i ] ; if ( opts [ d [ 0 ] ] === undefined ) opts [ d [ 0 ] ] = d [ 1 ] ; if ( d [ 2 ] === "n" ) opts [ d [ 0 ] ] = Number ( opts [ d [ 0 ] ] ) } } } var fix _read _opts = fix _opts _func ( [ [ "cellNF" , false ] , [ "cellHTML" , true ] , [ "cellFormula" , true ] , [ "cellStyles" , false ] , [ "cellText" , true ] , [ "cellDates" , false ] , [ "sheetStubs" , false ] , [ "sheetRows" , 0 , "n" ] , [ "bookDeps" , false ] , [ "bookSheets" , false ] , [ "bookProps" , false ] , [ "bookFiles" , false ] , [ "bookVBA" , false ] , [ "password" , "" ] , [ "WTF" , false ] ] ) ; var fix _write _opts = fix _opts _func ( [ [ "cellDates" , false ] , [ "bookSST" , false ] , [ "bookType" , "xlsx" ] , [ "compression" , false ] , [ "WTF" , false ] ] ) ; function get _sheet _type ( n ) { if ( RELS . WS . indexOf ( n ) > - 1 ) return "sheet" ; if ( RELS . CS && n == RELS . CS ) return "chart" ; if ( RELS . DS && n == RELS . DS ) return "dialog" ; if ( RELS . MS && n == RELS . MS ) return "macro" ; if ( ! n || ! n . length ) return "sheet" ; return n } function safe _parse _wbrels ( wbrels , sheets ) { if ( ! wbrels ) return 0 ; try { wbrels = sheets . map ( function pwbr ( w ) { if ( ! w . id ) w . id = w . strRelID ; return [ w . name , wbrels [ "!id" ] [ w . id ] . Target , get _sheet _type ( wbrels [ "!id" ] [ w . id ] . Type ) ] } ) } catch ( e ) { return null } return ! wbrels || wbrels . length === 0 ? null : wbrels } function safe _parse _sheet ( zip , path , relsPath , sheet , sheetRels , sheets , stype , opts , wb , themes , styles ) { try { sheetRels [ sheet ] = parse _rels ( getzipstr ( zip , relsPath , true ) , path ) ; var data = getzipdata ( zip , path ) ; switch ( stype ) { case "sheet" : sheets [ sheet ] = parse _ws ( data , path , opts , sheetRels [ sheet ] , wb , themes , styles ) ; break ; case "chart" : var cs = parse _cs ( data , path , opts , sheetRels [ sheet ] , wb , themes , styles ) ; sheets [ sheet ] = cs ; if ( ! cs || ! cs [ "!chart" ] ) break ; var dfile = resolve _path ( cs [ "!chart" ] . Target , path ) ; var drelsp = get _rels _path ( dfile ) ; var draw = parse _drawing ( getzipstr ( zip , dfile , true ) , parse _rels ( getzipstr ( zip , drelsp , true ) , dfile ) ) ; var chartp = resolve _path ( draw , dfile ) ; var crelsp = get _rels _path ( chartp ) ; cs = parse _chart ( getzipstr ( zip , chartp , true ) , chartp , opts , parse _rels ( getzipstr ( zip , crelsp , true ) , chartp ) , wb , cs ) ; break ; case "macro" : sheets [ sheet ] = parse _ms ( data , path , opts , sheetRels [ sheet ] , wb , themes , styles ) ; break ; case "dialog" : sheets [ sheet ] = parse _ds ( data , path , opts , sheetRels [ sheet ] , wb , themes , styles ) ; break } } catch ( e ) { if ( opts . WTF ) throw e } } var nodirs = function nodirs ( x ) { return x . slice ( - 1 ) != "/" } ; function parse _zip ( zip , opts ) { make _ssf ( SSF ) ; opts = opts || { } ; fix _read _opts ( opts ) ; reset _cp ( ) ; if ( safe