{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/xlsx/xlsx.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/xlsx/jszip.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/xlsx/dist/cpexcel.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/lodash/lodash.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/vue-slider-component/dist/vue-slider-component.umd.min.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/register-service-worker/index.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js"],"names":["wellKnownSymbol","TO_STRING_TAG","test","module","exports","String","aFunction","fn","that","length","undefined","call","a","b","c","apply","arguments","toIndexedObject","nativeGetOwnPropertyNames","f","toString","windowNames","window","Object","getOwnPropertyNames","getWindowNames","it","error","slice","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","$","$values","values","target","stat","fails","createElement","defineProperty","get","IS_PURE","ITERATOR","url","URL","searchParams","result","pathname","forEach","value","key","toJSON","sort","href","URLSearchParams","username","host","hash","make_xlsx_lib","XLSX","version","current_codepage","current_ansi","cptable","global","VALID_ANSI","i","push","CS2CP","0","1","2","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","cp","indexOf","reset_ansi","set_cp","reset_cp","char_codes","data","o","len","charCodeAt","utf16leread","fromCharCode","join","utf16beread","debom","c1","c2","_getchar","x","_getansi","utils","decode","DENSE","DIF_XL","Base64","map","encode","input","c3","e1","e2","e3","e4","isNaN","charAt","replace","has_buf","Buffer","process","versions","node","Buffer_from","nbfs","from","e","buf","enc","bind","alloc","n","allocUnsafe","new_raw_buf","Array","new_unsafe_buf","s2a","s","split","s2ab","ArrayBuffer","view","Uint8Array","a2s","isArray","a2u","Error","ab2a","bconcat","bufs","concat","chr0","chr1","SSF","make_ssf","_strrev","fill","l","pad0","v","d","t","pad_","rpad_","pad0r1","Math","round","pad0r2","p2_32","pow","pad0r","isgeneral","days","months","init_table","table_fmt","frac","D","mixed","sgn","B","P_2","P_1","Q_2","Q_1","Q","A","floor","q","parse_date_code","opts","b2","date","time","dow","dout","out","T","u","y","m","H","M","S","abs","date1904","Date","setDate","getDate","getFullYear","getMonth","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","_general_int","general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","w","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","LOG10E","substr","general_fmt","format","write_date","type","fmt","val","ss0","ss","tt","outl","commaify","j","_general_num","_general","write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","match","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","parseInt","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dd","dec","carry","flr","write_num_flt","ffmt","ri","ff","oa","min","max","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","lastIndexOf","split_fmt","in_str","_split","abstime","fmt_is_date","toUpperCase","eval_fmt","flen","dt","lst","hr","toLowerCase","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","is_date","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","dateNF","table","load_entry","load","_table","get_table","load_table","tbl","XLMLFormatMap","SSFImplicit","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","datestr","timestr","CRC32","DO_NOT_EXPORT_CFB","factory","signed_crc_table","Int32Array","crc32_bstr","bstr","seed","C","L","crc32_buf","crc32_buf_8","crc32_str","_fs","CFB","fs","namecmp","R","Z","dirname","p","filename","write_dos_date","hms","getHours","getMinutes","getSeconds","write_shift","ymd","parse_dos_date","read_shift","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_extra_field","blob","prep_blob","flags","sz","tgt","mtime","atime","ctime","mt","get_fs","parse","file","options","parse_zip","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","mv","check_get_mver","header","check_shifts","dir_cnt","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","name","ENDOFCHAIN","files","Paths","FileIndex","FullPaths","read_directory","build_full_paths","shift","raw","HEADER_SIGNATURE","nsectors","ceil","FI","FP","pl","dad","get_mfat_entry","entry","payload","mini","start","size","MSSZ","__readInt32LE","new_buf","cnt","sector","get_sector_list","chkd","buf_chain","modulus","addr","nodes","__toBuffer","sl","k","minifat_store","namelen","__utf16le","color","clsid","state","ct","read_date","storage","content","offset","__readUInt32LE","read_file","readFileSync","read","init_cfb","cfb","root","CLSID","seed_cfb","nm","find","rebuild_cfb","gc","_file","pop","now","HEADER_CLSID","elt","_write","_opts","fileType","write_zip","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","path","UCFullPaths","UCPaths","UCPath","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","write","use_zlib","zlib","InflateRaw","InflRaw","_processChunk","_finishFlushFlag","bytesRead","console","message","_inflateRawSync","usz","_inflate","_deflateRawSync","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","h","read_bits_3","read_bits_4","read_bits_5","read_bits_7","read_bits_n","realloc","copy","set","zero_fill_array","_deflateRaw","boff","off","build_tree","clens","cmap","MAX","maxlen","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","next_code","hcodes","h1","h2","inflate","outbuf","woff","OL","max_len_1","max_len_2","bits","code","len_eb","dst_eb","dst","warn_or_throw","wrn","msg","fcnt","start_cd","csz","efsz","fcsz","EF","parse_local_file","meth","crc32","_csz","_usz","ef","_crc32","cfb_add","unsafe","cdirs","method","compression","desc","fp","fi","crcs","sz_cd","namebuf","cfb_new","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","_inflateRaw","blobify","write_dl","fname","utf8write","IE_SaveFile","Blob","navigator","msSaveBlob","saveAs","document","createObjectURL","chrome","downloads","download","revokeObjectURL","setTimeout","body","appendChild","click","removeChild","File","Folder","open","encoding","close","read_binary","infile","keys","ks","o2","hasOwnProperty","evert_key","obj","K","evert","evert_num","evert_arr","datenum","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","arr","dup","JSON","stringify","fuzzynum","Number","wt","fuzzydate","NaN","getYear","jszip","safe_split_regex","split_regex","re","def","getdatastr","asNodeBuffer","asBinary","_data","getContent","prototype","getdatabin","getdata","safegetzipfile","zip","g","getzipfile","getzipdata","safe","getzipstr","zipentries","zip_add_file","zip_new","zip_read","base64","resolve_path","step","JSZipSync","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","skip_LC","z","eq","quot","trim","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","text","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","escapexlml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","orig","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","matches","baseType","res","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XMLNS","XLMLNS","read_double_le","Infinity","write_double_le","bs","av","isFinite","LN2","__lpp4","___lpp4","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__double","___double","__8lpp4","___8lpp4","is_buf","isBuffer","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","this","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","end","hexstr","fld","pos","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","next","_bufs","write_record","ba","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_row","encode_col","OFFCRYPTO","make_offcrypto","_crypto","crypto","rc4","md5","hex","createHash","update","digest","decode_row","rowstr","unfix_row","row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","splt","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","ws","_R","_C","origin","_origin","_range","__R","__C","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr","RBErr","parse_BrtColor","xColorType","index","nTS","bR","bG","bB","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","extend","parse_ClipboardFormatOrString","ClipFmt","3","8","14","parse_ClipboardFormatOrAnsiString","parse_ClipboardFormatOrUnicodeString","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_LPSTR","VT_FILETIME","VT_BLOB","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","SpecialProperties","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","rgbify","_XLSIcv","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","styles","type2ct","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","CT","calcchain","sst","style","defaults","CTYPE_XML_ROOT","xsd","xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","VBA","get_rels_path","parse_rels","currentFilePath","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","CT_ODS","parse_manifest","Rn","FEtag","xlml_normalize","xlmlregex","exec","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","dc","dcterms","dcmitype","cp_doit","write_core_props","Props","CreatedDate","ModifiedDate","EXT_PROPS","PseudoPropsPairs","load_props_pairs","HP","TOP","props","hp","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","parse_ext_props","xml","HeadingPairs","TitlesOfParts","EXT_PROPS_XML_ROOT","vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","parse_FILETIME","dwLowDateTime","dwHighDateTime","write_FILETIME","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","ret","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","bytes","parse_ClipboardData","Size","write_TypedPropertyValue","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","entries","RE","hdr","piao","prop","pr","pio","unshift","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","rval","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","fHighByte","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","width","cRun","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_ControlInfo","accel","parse_URLMoniker","extra","parse_FileMoniker","ansiPath","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","guid","fileTime","Loc","Tooltip","write_Hyperlink","hl","F","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","write_XLSCell","parse_frtHeader","rt","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","id","parse_FtNts","fSharedNote","parse_FtCf","cf","parse_FtSkip","FtTab","parse_FtArray","fts","ft","parse_BOF","BIFFVer","write_BOF","wb","parse_InterfaceHdr","parse_WriteAccess","UserName","write_WriteAccess","b8","parse_WsBool","fDialog","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","parse_ExtSST","extsst","dsst","parse_Row","miyRw","level","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Window2","RTL","write_Window2","parse_Pane","parse_Font","dyHeight","write_Font","b5","parse_LabelSst","isst","parse_Label","write_Label","os","parse_Format","fmtstr","write_Format","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_XF","fStyle","write_XF","ixfeP","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","comment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","write_MergeCells","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","parse_TxO","texts","lastobj","cchText","parse_HLink","hlink","write_HLink","parse_HLinkTooltip","wzTooltip","write_HLinkTooltip","TT","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","crc","parse_ColInfo","coldx","parse_Setup","footer","parse_ShtProps","area","write_RRTabId","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF2STR","parse_BIFF2NUM","num","write_BIFF2NUM","write_BIFF2Cell","parse_BIFF2INT","write_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_aoa","memo","vfp","l7","nrow","fpos","rlen","current_cp","fields","field","hend","sheetRows","dbf_to_sheet","dbf_to_workbook","_RLEN","sheet_to_dbf","codepage","aoa","sheet_to_json","headers","hcnt","coltypes","guess","_guess","hf","_f","hb","rout","_s","to_workbook","to_sheet","from_sheet","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","5","6","7","sylk_char_regex","sylk_char_fn","_","decode_sylk_char","newcc","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","C_seen_K","C_seen_X","formula","rc_to_a1","F_seen","wch","process_col","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_workbook","write_ws_cell_sylk","a1_to_rc","write_ws_cols_sylk","cols","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","preamble","RS","coord","DIF","dif_to_aoa","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","topic","push_value","ETH","eth_to_aoa","eth_to_sheet","eth_to_workbook","sep","meta","sheet_to_eth_data","sheet_to_eth","PRN","set_text_arr","prn_to_aoa_str","lines","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","sepcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","outer","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","sidx","snames","refguess","WK3Enum","qpro","vers","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","parse_rpr","rpr","pass","uval","family","valign","parse_rs","tregex","rpregex","parse_r","rregex","rend","rs","filter","rs_to_html","nlregex","parse_rpr2","intro","outro","align","r_to_html","terms","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","count","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","main","sitag","parse_BrtBeginSst","parse_sst_bin","R_n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceVersionInfo","U","parse_DataSpaceMapEntry","comps","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","ename","cmode","parse_EncryptionHeader","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","KeyData","encryptedHmacKey","encryptedHmacValue","encs","uri","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordByte","Intermediate1","Intermediate2","Intermediate3","PasswordDecoded","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Temp","PasswordLastChar","PadIndex","Index","ObfuscationArray","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","insitu","parse_FilePassHeader","Info","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","X","h6","rgb_tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","delta","_MDW","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","parse_borders","Borders","border","diagonalUp","diagonalDown","parse_fills","Fills","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","underline","vertAlign","scheme","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","xf","CellXf","alignment","vertical","horizontal","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","STY","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","flow","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_COLORPALETTE_bin","write_sty_bin","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","THEME","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","themeXML","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xfext","xfe","parse_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","parse_xlink_xml","parse_xlink_bin","parse_drawing","IMG","DRAW","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","shadata","on","fillcolor","strokecolor","sheet_insert_comments","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","textMatch","CMNT","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","write_comments_bin","CT_VBA","make_vba_xls","newcfb","newpath","fill_vba_xls","VBAFMTS","parse_ds_bin","parse_ds_xml","parse_ms_bin","parse_ms_xml","DS","MS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_str","shift_formula_xlsx","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","parse_PtgList","coltype","parse_PtgSxName","parse_PtgSheet","parse_PtgEndSheet","parse_PtgMemAreaN","parse_PtgMemNoMemN","parse_PtgAttrNoop","PtgTypes","PtgDupes","Ptg18","Ptg19","parse_RgbExtra","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","XTI","SID","get_ixti","stringify_formula","stack","nameidx","last_sp","sp","fflen","argc","func","args","lbl","names","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","write_FormulaValue","parse_Formula","cbf","shared","write_Formula","o1","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_3D","csf_to_ods_3D","_ssfopts","WS","browser_has_Map","Map","get_sst_id","revarr","col_obj_w","default_margins","margins","mode","defs","left","right","top","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","svsregex","parse_ws_xml","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","ridx","svs","parse_ws_xml_sheetviews","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","_merge","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","codeName","CodeName","write_ws_xml_sheetpr","needed","vbaraw","cname","Workbook","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_protection","location","Rel","tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","Names","Sheet","Ref","sviewregex","Views","rightToLeft","write_ws_xml_sheetviews","sview","workbookViewId","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","sstr","ftag","cells","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","rslice","cellFormula","si","_tag","_r","write_ws_xml_data","params","height","_cell","customHeight","WS_XML_ROOT","write_ws_xml","rdata","_drawing","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","ignoreEC","numberStoredAsText","sqref","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","first","last","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtCellError","bError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtCellSt","write_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtPane","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","parse_BrtBeginWsView","write_BrtBeginWsView","write_BrtCellIgnoreEC","write_BrtSheetProtection","parse_BrtDVal","parse_BrtDVal14","parse_ws_bin","ai","af","aii","_d","write_ws_bin_cell","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_IGNOREECS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_Cache","nf","parse_chart","csheet","nc","cache","CHART","CHARTEX","CS","parse_cs_xml","parse_BrtCsProp","parse_cs_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","safe1904","badchars","check_ws_name","_good","check_wb_names","N","codes","cn","check_wb","wbnsregex","parse_wb_xml","dname","dnstart","Hidden","Comment","localSheetId","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_BrtName","Ptg","parse_wb_bin","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cmnt","parse_cc","parse_xlink","write_wb","write_ws","write_sty","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","lastIndex","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","seen","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_name_xlml","write_names_xlml","write_ws_xlml_names","write_ws_xlml_wsopts","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","write_ws_xlml_cell","attr","mi","_v","write_ws_xlml_row","write_ws_xlml_table","skip","write_ws_xlml","write_xlml","parse_compobj","AnsiUserType","AnsiClipboardFormat","Reserved1","UnicodeClipboardFormat","Reserved2","slurp","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","lastcell","cmnt","rngC","rngR","temp_val","country","Directory","last_formula","cur_sheet","Preamble","last_cell","cell_valid","XFs","palette","get_rgb","process_cell_style","line","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","ExternCount","tmpri","fakebs8","_fr","_fc","_fe","_arraystart","_j","_ixfe","b4idx","b2idx","TxO","ImData","noteobj","Encryption","Metadata","Country","PSCLSID","SI","DSI","UDI","parse_xls_props","DocSummary","Summary","write_xls_props","Keys","DSEntries","SEntries","CEntries","CEntries2","parse_xlscfb","CompObj","WorkbookP","bookVBA","bookFiles","write_xlscfb","wbpath","write_biff_buf","XLSRE","write_biff_rec","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_FONTS_biff8","write_FMTS_biff8","write_FEAT","write_CELLXFS_biff8","write_ws_biff8_hlinks","HL","write_ws_biff8_cell","write_ws_biff8","_WB","_sheet","MAX_ROWS","write_biff8_global","_sheets","_wb","blen","write_biff8_buf","fix_write_opts","html_to_sheet","mtch2","hd","midx","colspan","rowspan","_t","html_to_book","make_html_row","editable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","parse_dom_table","getElementsByTagName","is_dom_element_hidden","elts","innerHTML","getAttribute","table_to_book","element","get_computed_style","get_get_computed_style_function","getPropertyValue","ownerDocument","defaultView","getComputedStyle","parse_content_xml","parse_text_p","fixed","number_formats","day","month","year","hours","minutes","seconds","era","quarter","sheetag","rowtag","textptag","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","ods","write_styles_ods","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","_Fref","text_p","_tgt","write_automatic_styles_ods","fods","write_ods","write_sheet_index","write_obj_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","fix_opts_func","get_sheet_type","safe_parse_wbrels","wbrels","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","draw","chartp","crelsp","strip_front_slash","binname","dir","link","propdata","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","dsm","seds","einfo","decrypt_agile","decrypt_std76","foo","vbafmt","_sn","_i","wsrels","_type","need_vml","rId1","read_cfb","read_zip","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","ab","vu","write_cfb_ctr","write_zip_type","oopts","generate","encrypt_agile","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","writeSync","resolve_book_type","_BT","writeFileAsync","_cb","Function","make_json_row","defval","isempty","enumerable","__rowNum__","outi","counter","CC","blankrows","qreg","make_csv_row","FS","txt","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","sheet_get_cell","json_to_sheet","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","RC","wb_sheet_idx","sh","book_new","book_append_sheet","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","Readable","write_csv_stream","stream","BOM","_read","write_html_stream","write_json_stream","objectMode","to_json","to_html","to_csv","readFile","is","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","proto","forced","reduce","callbackfn","classof","regexpExec","TypeError","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","DO_NOT_EXPORT_JSZIP","self","require","_dereq_","_keyStr","utf8","chr2","chr3","enc1","enc2","enc3","enc4","output","CompressedObject","compressedSize","uncompressedSize","compressionMethod","compressedContent","getCompressedContent","STORE","magic","compress","uncompress","compressInputType","uncompressInputType","DEFLATE","4","getTypeOf","iTop","DataReader","checkOffset","checkIndex","newIndex","setIndex","byteAt","readInt","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","binary","createFolders","string2binary","string2Uint8Array","uint8Array2String","array","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object","USE_TYPEDARRAY","Uint32Array","pako","deflateRaw","inflateRaw","9","clone","newObj","support","compressions","10","ZipEntries","zipEntries","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","11","12","Uint8ArrayReader","NodeBufferReader","13","signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asText","asUint8Array","asArrayBuffer","decToHex","prepareFileAttrs","fileAdd","parent","dataType","parentFolder","folderAdd","substring","lastSlash","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","search","relativePath","fileClone","regexp","folder","arg","newFolder","remove","kids","writer","zipData","localDirLength","centralDirLength","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","append","finalize","string","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","16","17","arraybuffer","uint8array","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob","18","sig0","sig1","sig2","sig3","subarray","19","20","_utf8len","string2buf","m_pos","str_len","buf_len","utf8border","buf2string","c_len","utf16buf","applyFromCharCode","chunk","nextBoundary","21","identity","stringToArrayLike","arrayLikeToString","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","byteLength","inputType","supported","22","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraFieldId","extraFieldLength","extraFieldValue","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","assign","deflate","constants","25","zlib_deflate","strings","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","chunkSize","windowBits","memLevel","strategy","to","opt","gzip","err","ended","chunks","strm","avail_out","status","deflateInit2","deflateSetHeader","deflator","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","26","zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","inflator","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","ungzip","27","TYPED_OK","sources","source","fnTyped","dest","src","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","__","29","adler32","adler","s1","s2","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","31","makeTable","crcTable","32","trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","configuration_table","Config","good_length","max_lazy","nice_length","max_chain","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","hcrc","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","33","GZheader","xflags","extra_len","done","34","BAD","TYPE","_in","_out","dmax","wsize","whave","wnext","hold","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","35","inflate_fast","inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","InflateState","havedict","check","total","wbits","ncode","nlen","ndist","have","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","lenfix","distfix","virgin","fixedtables","sym","updatewindow","put","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","order","inf_leave","inflateInfo","36","MAXBITS","lbase","lext","dbase","dext","lens_index","table_index","incr","low","mask","curr","drop","used","huff","base_index","offs","extra_index","37","38","STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","xbits","stree","overflow","gen_codes","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","scan_tree","curlen","prevlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb","39","ZStream","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","$forEach","Constructor","getBuiltIn","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","userAgent","V8_VERSION","SPECIES","METHOD_NAME","constructor","Boolean","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","DO_NOT_EXPORT_CODEPAGE","cpt","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","mdl","mdb","make_EE","E","EE","sbcs_encode","ofmt","sbcs_decode","DD","dbcs_encode","dbcs_decode","utf8_d","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","SetD","isstr","dash","o64","hascp","anObject","isArrayIteratorMethod","toLength","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterate","iterable","AS_ENTRIES","IS_ITERATOR","iterator","iterFn","boundFunction","stop","toInteger","integer","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","noTargetGet","sham","internalObjectKeys","enumBugKeys","hiddenKeys","getInternetExplorerVersion","ua","msie","trident","rv","edge","isIE","initCompat","init","ResizeObserver","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","staticRenderFns","_scopeId","methods","compareAndNotify","_w","$el","offsetWidth","offsetHeight","$emit","addResizeHandlers","_resizeObject","contentDocument","addEventListener","removeResizeHandlers","onload","removeEventListener","mounted","_this","$nextTick","setAttribute","beforeDestroy","install","Vue","component","plugin","GlobalVue","use","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","definePropertyModule","CONSTRUCTOR_NAME","configurable","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","_arrayWithoutHoles","arr2","_iterableToArray","iter","Symbol","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","emptyObject","freeze","isUndef","isDef","isTrue","isFalse","isPrimitive","isObject","_toString","isPlainObject","isValidArrayIndex","isPromise","then","catch","toNumber","makeMap","expectsLowerCase","create","list","isReservedAttribute","item","hasOwn","cached","hit","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","polyfillBind","ctx","boundFn","_length","nativeBind","toArray","_from","toObject","noop","no","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","keysA","keysB","looseIndexOf","once","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","writable","bailRE","parsePath","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","isIE9","isEdge","isIOS","isFF","nativeWatch","watch","supportsPassive","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","clear","uid","Dep","subs","addSub","sub","removeSub","depend","addDep","notify","targetStack","pushTarget","popTarget","VNode","children","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","defineProperties","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","original","inserted","ob","__ob__","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","__proto__","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","property","getter","setter","childOb","dependArray","newVal","del","items","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","hooks","mergeAssets","key$1","inject","computed","provide","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","default","_props","getType","isSameType","expectedTypes","handleError","info","$parent","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","handler","_handled","logError","timerFunc","isUsingMicroTask","callbacks","flushCallbacks","copies","Promise","resolve","MutationObserver","setImmediate","observer","textNode","createTextNode","characterData","nextTick","_resolve","seenObjects","traverse","_traverse","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","old","event","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","altKey","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","fallback","bindObject","scopedSlotFn","$scopedSlots","$slots","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_l","_q","_m","_k","_b","_e","_u","_g","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","_isMounted","callHook","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","callback","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","class","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","_render","ensureCtor","comp","__esModule","toStringTag","errorComp","resolved","owner","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","clearTimeout","reject","reason","delay","timeout","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","cbs","setActiveInstance","prevActiveInstance","initLifecycle","$children","$refs","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","mountComponent","el","updateComponent","Watcher","before","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","isInInactiveTree","handlers","queue","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","createEvent","timeStamp","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","emit","queueWatcher","uid$2","expOrFn","isRenderWatcher","deep","user","lazy","active","dirty","newDeps","depIds","newDepIds","expression","cleanupDeps","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_init","_uid","initInternalComponent","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","modified","latest","sealed","sealedOptions","initUse","installedPlugins","_installedPlugins","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","current","cached$$1","patternTypes","KeepAlive","include","exclude","created","destroyed","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","delete","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","parentNode","childNode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","query","selected","querySelector","createElement$1","tagName","multiple","createElementNS","namespace","createComment","insertBefore","newNode","referenceNode","nextSibling","setTextContent","textContent","setStyleScope","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","modules","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","childrenMatch","firstChild","fullInvoke","isInitialPatch","isRealElement","nodeType","hasAttribute","removeAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","change","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","currentTarget","updateDOMListeners","svgContainer","events","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","activeElement","_vModifiers","number","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","addClass","classList","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","trigger","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","some","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","unbind","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","getBoundingClientRect","updated","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","cloneNode","newPos","oldPos","dx","dy","platformComponents","EOF","USE_NATIVE_URL","anInstance","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","NativeURL","getInternalSearchParamsState","getState","setInternalState","getInternalURLState","getterFor","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","ipv4","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","pointer","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","encodeURIComponent","specialSchemes","ftp","http","https","wss","includesCredentials","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","second","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","port","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","updateSearchParams","updateURL","serializeURL","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","nativeRevokeObjectURL","defer","channel","IS_IOS","clearImmediate","MessageChannel","Dispatch","ONREADYSTATECHANGE","runner","listener","post","postMessage","port2","port1","onmessage","importScripts","v8","VERSION","LARGE_ARRAY_SIZE","CORE_ERROR_TEXT","FUNC_ERROR_TEXT","HASH_UNDEFINED","MAX_MEMOIZE_SIZE","PLACEHOLDER","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","WRAP_BIND_FLAG","WRAP_BIND_KEY_FLAG","WRAP_CURRY_BOUND_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","HOT_COUNT","HOT_SPAN","LAZY_FILTER_FLAG","LAZY_MAP_FLAG","LAZY_WHILE_FLAG","INFINITY","MAX_SAFE_INTEGER","MAX_INTEGER","NAN","MAX_ARRAY_LENGTH","MAX_ARRAY_INDEX","HALF_MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","asyncTag","boolTag","dateTag","domExcTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","promiseTag","proxyTag","regexpTag","setTag","stringTag","symbolTag","undefinedTag","weakMapTag","weakSetTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrim","reTrimStart","reTrimEnd","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","deburredLetters","htmlEscapes","htmlUnescapes","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","types","nodeIsArrayBuffer","isArrayBuffer","nodeIsDate","isDate","nodeIsMap","isMap","nodeIsRegExp","nodeIsSet","isSet","nodeIsTypedArray","isTypedArray","thisArg","arrayAggregator","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","predicate","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","asciiToArray","asciiWords","baseFindKey","collection","eachFunc","baseFindIndex","fromIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseSortBy","comparer","baseTimes","baseToPairs","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","hasUnicode","hasUnicodeWord","iteratorToArray","mapToArray","overArg","replaceHolders","setToArray","setToPairs","strictLastIndexOf","stringSize","unicodeSize","stringToArray","unicodeToArray","unescapeHtmlChar","unicodeWords","runInContext","pick","funcProto","objectProto","coreJsData","funcToString","idCounter","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","getPrototype","getPrototypeOf","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","symToStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","random","nativeReverse","reverse","DataView","WeakMap","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","lazyClone","copyArray","lazyReverse","lazyValue","isArr","isRight","arrLength","getView","iteratees","iterLength","takeCount","baseWrapperValue","iterIndex","Hash","hashClear","__data__","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","SetCache","setCacheAdd","setCacheHas","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","assignMergeValue","baseAssignValue","assignValue","objValue","baseAggregator","baseEach","baseAssign","copyObject","baseAssignIn","keysIn","baseAt","paths","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","copySymbols","initCloneByTag","stacked","subValue","keysFunc","getAllKeysIn","getAllKeys","baseConforms","baseConformsTo","baseDelay","wait","baseDifference","includes","isCommon","valuesLength","valuesIndex","templateSettings","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFill","baseFilter","baseFlatten","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","isFunction","baseGet","castPath","toKey","baseGetAllKeys","symbolsFunc","baseGetTag","getRawTag","objectToString","baseGt","other","baseHas","baseHasIn","baseInRange","baseIntersection","arrays","othLength","othIndex","caches","baseInverter","baseInvoke","baseIsArguments","baseIsArrayBuffer","baseIsDate","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsMap","baseIsMatch","matchData","noCustomizer","srcValue","baseIsNative","isMasked","baseIsRegExp","baseIsSet","baseIsTypedArray","isLength","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","baseMergeDeep","newValue","safeGet","mergeFunc","isTyped","isArrayLikeObject","cloneTypedArray","toPlainObject","baseNth","baseOrderBy","orders","getIteratee","criteria","compareMultiple","basePick","basePickBy","baseSet","basePropertyDeep","basePullAll","basePullAt","indexes","previous","baseUnset","baseRange","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","actions","action","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","byteOffset","cloneRegExp","cloneSymbol","typedArray","compareAscending","valIsDefined","valIsReflexive","objCriteria","othCriteria","ordersLength","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","getSymbols","getSymbolsIn","createAggregator","initializer","createAssigner","assigner","guard","isIterateeCall","createBind","isBind","createCtor","wrapper","createCaseFirst","methodName","trailing","createCompounder","deburr","thisBinding","createCurry","arity","getHolder","createRecurry","createHybrid","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","getFuncName","funcName","isLaziable","plant","partialsRight","holdersRight","argPos","ary","isAry","isBindKey","isFlip","holdersCount","newHolders","reorder","createInverter","toIteratee","createMathOperation","operator","defaultValue","createOver","arrayFunc","createPadding","chars","charsLength","createPartial","createRange","toFinite","createRelationalOperation","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","newData","setData","setWrapToString","createRound","precision","pair","createToPairs","createWrap","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","isPartial","arrValue","othValue","compared","convert","objProps","objLength","othProps","skipCtor","objCtor","othCtor","flatten","otherFunc","isKeyable","isOwn","unmasked","stubArray","transforms","getWrapDetails","hasPath","hasFunc","insertWrapDetails","details","ctorString","isMaskable","stubFalse","memoizeCapped","memoize","srcBitmask","newBitmask","isCombo","otherArgs","oldArray","shortOut","reference","updateWrapDetails","lastCalled","stamp","remaining","rand","quote","subString","compact","difference","differenceBy","differenceWith","dropRight","dropRightWhile","dropWhile","findIndex","findLastIndex","flattenDeep","flattenDepth","fromPairs","intersection","mapped","intersectionBy","intersectionWith","separator","nth","pull","pullAll","pullAllBy","pullAllWith","pullAt","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sortedUniq","sortedUniqBy","take","takeRight","takeRightWhile","takeWhile","union","unionBy","unionWith","uniq","uniqBy","uniqWith","unzip","group","unzipWith","without","xor","xorBy","xorWith","zipObject","zipObjectDeep","zipWith","chain","tap","interceptor","wrapperAt","wrapperChain","wrapperCommit","wrapperNext","wrapperToIterator","wrapperPlant","wrapperReverse","wrapped","wrapperValue","countBy","findLast","flatMap","flatMapDeep","flatMapDepth","forEachRight","groupBy","isString","invokeMap","keyBy","orderBy","partition","reduceRight","negate","sample","sampleSize","shuffle","sortBy","after","bindKey","curry","curryRight","debounce","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","debounced","isInvoking","flip","resolver","memoized","Cache","overArgs","funcsLength","partial","partialRight","rearg","rest","spread","throttle","unary","castArray","cloneWith","cloneDeep","cloneDeepWith","conformsTo","gt","gte","isBoolean","isElement","isEmpty","isEqual","isEqualWith","isError","isInteger","isMatch","isMatchWith","isNumber","isNull","isNil","isSafeInteger","isUndefined","isWeakMap","isWeakSet","lt","lte","remainder","isBinary","toSafeInteger","assignIn","assignInWith","assignWith","at","properties","propsIndex","propsLength","defaultsDeep","mergeWith","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","functions","functionsIn","invert","invertBy","invoke","mapKeys","mapValues","merge","omit","omitBy","pickBy","setWith","toPairs","toPairsIn","isArrLike","unset","updateWith","valuesIn","clamp","inRange","floating","temp","camelCase","word","upperFirst","endsWith","position","escape","escapeRegExp","kebabCase","lowerCase","lowerFirst","strLength","padEnd","padStart","repeat","snakeCase","startCase","startsWith","template","settings","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","attempt","toLower","toUpper","trimEnd","trimStart","truncate","omission","newEnd","unescape","upperCase","bindAll","methodNames","cond","conforms","defaultTo","flowRight","matchesProperty","methodOf","noConflict","nthArg","over","overEvery","overSome","propertyOf","rangeRight","stubObject","stubString","stubTrue","times","toPath","uniqueId","prefix","augend","addend","divide","dividend","divisor","maxBy","mean","meanBy","minBy","multiply","multiplier","multiplicand","subtract","minuend","subtrahend","sum","sumBy","entriesIn","extendWith","each","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","commit","applyMixin","vuexInit","store","$store","devtoolHook","devtoolPlugin","_devtoolHook","targetState","replaceState","subscribe","mutation","forEachValue","Module","rawModule","runtime","_children","_rawModule","rawState","namespaced","addChild","getChild","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","targetModule","newModule","getNamespace","rawChildModule","unregister","Store","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","dispatch","installModule","resetStoreVM","useDevtools","prototypeAccessors$1","genericSubscribe","resetStore","hot","oldVm","wrappedGetters","$$state","enableStrictMode","_withCommit","rootState","parentState","getNestedState","moduleName","local","makeLocalContext","namespacedType","registerMutation","registerAction","registerGetter","noNamespace","_payload","_options","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","rootGetters","rawGetter","_Vue","all","subscribeAction","registerModule","preserveState","unregisterModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","isValidMap","helper","index_esm","Iterators","objectKeys","Properties","defineIterator","STRING_ITERATOR","getInternalState","iterated","point","arch","execPath","title","browser","argv","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","UNSCOPABLES","ArrayPrototype","defaultConstructor","2350","btoa","sourceRoot","2638","media","sourceMap","DEBUG","styleSheet","ssrId","locals","defineMetadata","getOwnMetadataKeys","getOwnMetadata","__decorators__","registerHooks","createDecorator","ae61","d5ac","df80","fb15","currentScript","decorate","ReferenceError","setPrototypeOf","disabled","dotClasses","mousedown","dragStart","touchstart","dot","handleClasses","dotStyle","tooltipClasses","tooltipInnerClasses","tooltipStyle","tooltipValue","focus","tooltipPlacement","showTooltip","tooltipFormatter","validator","required","stopPropagation","mark","marksClasses","stepClasses","stepStyle","stepActiveStyle","activeStyle","hideLabel","label","labelClasses","labelStyle","labelActiveStyle","labelClickHandle","documentElement","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","targetTouches","pageX","pageY","keyCode","UP","direction","RIGHT","DOWN","LEFT","HOME","PAGE_UP","PAGE_DOWN","getDecimalLen","getExponent","safeRoundUp","decimal","J","et","nt","st","VALUE","INTERVAL","MIN","ORDER","dotsPos","dotsValue","cacheRangeDir","interval","marks","included","adsorb","dotOptions","onError","minRange","maxRange","enableCross","emitError","setValue","setDotsValue","syncDotsPos","getValueByPos","parsePos","markList","parseValue","minus","plus","getValidPos","getFixedChangePosArr","getLimitRangeChangePosArr","setDotsPos","changePos","minRangeDir","maxRangeDir","isPos","valuePosRange","gap","getValueByIndex","processArray","isActiveByPos","getValues","getRangeDir","getDotRange","getIndexByValue","ut","yt","xt","kt","Ot","Pt","St","Rt","Et","Dt","At","jt","Vt","None","Drag","Focus","Mt","scale","focusDotIndex","isNotSync","control","initControl","bindEvent","unbindEvent","dragMove","dragEnd","blurHandle","keydownHandle","isHorizontal","isDiff","dragOnClick","setScale","getPosByEvent","getRecentDot","dots","setDotPos","syncValueByPos","preventDefault","isCrossDot","canSort","dragRange","useKeyboard","container","contains","clickable","setValueByPos","dotsIndex","keydownHook","isReverse","containerClasses","containerStyles","clickHandle","dragStartOnProcess","railStyle","tailSize","mainDirection","pressLabel","disabledStyle","focusStyle","tooltipDisabledStyle","tooltipFocusStyle","tooltipDirections","dotBaseStyle","animateTime","dotSize","padding","contained","processStyle","VueSliderDot","VueSliderMark","Ct","Lt","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","createProperty","arrayLike","argumentsLength","mapfn","mapping","iteratorMethod","argument","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","requireObjectCoercible","whitespaces","whitespace","ltrim","rtrim","bitmap","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","ucs2decode","digitToBasic","digit","adapt","numPoints","firstTime","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","qMinusT","baseMinusT","labels","IndexedObject","nativeAssign","alphabet","webpackPolyfill","deprecate","CONVERT_TO_STRING","originalArray","NATIVE_WEAK_MAP","objectHas","sharedKey","enforce","wmget","wmhas","wmset","STATE","inspectSource","enforceInternalState","TEMPLATE","simple","TO_ENTRIES","dummy","Wrapper","NewTarget","NewTargetPrototype","wrappedWellKnownSymbolModule","activeXDocument","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","contentWindow","NullProtoObject","domain","ActiveXObject","$find","addToUnscopables","FIND","SKIPS_HOLES","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","propertyKey","fixRegExpWellKnownSymbolLogic","sameValue","regExpExec","SEARCH","nativeSearch","maybeCallNative","searcher","rx","previousLastIndex","functionToString","condition","isExtendedError","_name","View","routerView","route","$route","_routerViewCache","inactive","_routerRoot","vnodeData","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","matched","registerRouteInstance","instances","propsToPass","resolveProps","encodeReserveRE","encodeReserveReplacer","commaRE","decodeURIComponent","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","param","stringifyQuery","val2","trailingSlashRE","createRoute","redirectedFrom","router","fullPath","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","bKeys","aVal","bVal","isIncludedRoute","queryIncludes","resolvePath","relative","firstChar","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","escaped","modifier","asterisk","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encodeAsterisk","token","attachKeys","sensitive","regexpToRegexp","groups","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","Link","exact","exactActiveClass","$router","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","navigate","isActive","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","metaKey","ctrlKey","shiftKey","defaultPrevented","button","installed","registerInstance","callVal","_router","history","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","childMatchAs","alias","aliases","aliasRoute","createMatcher","addRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","_key","getStateKey","setStateKey","positionStore","setupScroll","protocolAndPath","absolutePath","saveScrollPosition","handleScroll","isPop","app","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","selector","getElementById","scrollTo","supportsPushState","pushState","stateCopy","runQueue","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","NavigationDuplicated","normalizedLocation","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","activated","deactivated","extractGuards","guards","instance","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","isValid","bindEnterGuard","poll","listen","onReady","errorCb","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","abort","beforeHooks","postEnterCbs","enterGuards","resolveHooks","afterHooks","HTML5History","expectScroll","supportsScroll","initLocation","getLocation","go","fromRoute","getCurrentLocation","decodeURI","HashHistory","checkFallback","ensureSlash","setupListeners","replaceHash","pushHash","searchIndex","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","registerHook","createHref","setupHashListener","beforeEach","beforeResolve","afterEach","forward","getMatchedComponents","normalizedTo","postfix","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","regexpFlags","stickyHelpers","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","sticky","charsAdded","strCopy","multiline","isLocalhost","swUrl","registrationOptions","checkValidServiceWorker","serviceWorker","registration","registerValidSW","onupdatefound","installingWorker","installing","onstatechange","controller","fetch","response","onLine","replacement","feature","detection","POLYFILL","NATIVE","redefineAll","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","sequences","percentSequence","percentDecode","sequence","deserialize","replacer","serialize","parseSearchParams","attribute","attributes","validateArgumentsLength","passed","URLSearchParamsIterator","kind","URLSearchParamsConstructor","entryIterator","entryNext","URLSearchParamsPrototype","getAll","found","entriesIndex","sliceIndex","arraySpeciesCreate","IS_CONCAT_SPREADABLE","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","spreadable","returnMethod","nativeDefineProperty","Attributes","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","space","$replacer","checkCorrectnessOfIteration","INCORRECT_ITERATION","NativePromise","speciesConstructor","promiseResolve","NON_GENERIC","real","onFinally","numberFormatKeys","OBJECT_STRING","parseArgs","locale","looseClone","_i18n","$t","i18n","$i18n","_getMessages","$tc","choice","_tc","$te","_te","$d","$n","__i18n","VueI18n","localeMessages","resource","mergeLocaleMessage","_i18nWatcher","watchI18nData","formatter","fallbackLocale","formatFallbackMessages","silentTranslationWarn","silentFallbackWarn","pluralizationRules","preserveDirectiveContent","localeMessages$1","messages","sharedMessages","_localeWatcher","watchLocale","subscribeDataChanging","_subscribing","unsubscribeDataChanging","destroyVM","interpolationComponent","places","onlyHasDefaultPlace","useLegacyPlaces","createParamsFromPlaces","everyPlace","vnodeHasPlaceAttribute","assignChildPlace","assignChildIndex","place","numberComponent","acc","_ntp","assert","oldVNode","localeEqual","_localeMessage","getLocaleMessage","_vt","_locale","ref$2","tc","makeParams","BaseFormatter","_caches","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","isClosed","compiled","APPEND","PUSH","INC_SUB_PATH_DEPTH","PUSH_SUB_PATH","BEFORE_PATH","IN_PATH","BEFORE_IDENT","IN_IDENT","IN_SUB_PATH","IN_SINGLE_QUOTE","IN_DOUBLE_QUOTE","AFTER_PATH","ERROR","pathStateMachine","literalValueRE","isLiteral","exp","stripQuotes","getPathCharType","formatSubPath","trimmed","parse$1","newChar","typeMap","subPathDepth","maybeUnescapeQuote","nextChar","I18nPath","_cache","getPathValue","availabilities","htmlTagMatcher","linkKeyMatcher","linkKeyPrefixMatcher","bracketsMatcher","defaultModifiers","toLocaleUpperCase","toLocaleLowerCase","defaultFormatter","dateTimeFormats","numberFormats","_formatter","_modifiers","_missing","missing","_root","_sync","_fallbackRoot","fallbackRoot","_formatFallbackMessages","_silentTranslationWarn","_silentFallbackWarn","_dateTimeFormatters","_numberFormatters","_path","_dataListeners","_preserveDirectiveContent","_warnHtmlInMessage","warnHtmlInMessage","_exist","_checkLocaleMessage","_initVM","availableLocales","_getDateTimeFormats","_getNumberFormats","orgLevel","_warnDefault","missingRet","parsedArgs","_isFallbackRoot","_isSilentFallbackWarn","_isSilentFallback","_isSilentTranslationWarn","_interpolate","interpolateMode","visitedLinkStack","pathRet","_link","linkKeyPrefixMatches","linkPrefix","formatterName","linkPlaceholder","translated","_translate","predefined","fetchChoice","choices","getChoiceIndex","choicesLength","defaultImpl","_choice","_choicesLength","te","setLocaleMessage","getDateTimeFormat","setDateTimeFormat","mergeDateTimeFormat","_localizeDateTime","Intl","DateTimeFormat","getNumberFormat","setNumberFormat","mergeNumberFormat","_getNumberFormatter","NumberFormat","numberFormat","formatToParts","intlDefined","dateTimeFormat","inheritIfRequired","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","maxCode","digits","NumberWrapper","ignoreCase","dotAll","unicode","_defineProperty","thrower","ACCESSORS","argument0","argument1","PrototypeOfArrayIteratorPrototype","arrayIterator","TO_STRING_TAG_SUPPORT","toggle","promise","macrotask","WebKitMutationObserver","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","task","createWellKnownSymbol","withoutSetter","ieee754","typedArraySupport","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","fromArrayBuffer","fromString","fromObject","assertSize","checked","isEncoding","fromArrayLike","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","valLength","readUInt16BE","foundIndex","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","_arr","MAX_ARGUMENTS_LENGTH","toHex","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","FAILS_ON_PRIMITIVES","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","PREFERRED_STRING","SHARED","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","EXISTS","newPromiseCapability","promiseCapability","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","TAG","IS_RIGHT","REPLACE_SUPPORTS_NAMED_GROUPS","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","$map","globalThis","getOwnPropertyDescriptors","ArrayIteratorMethods","ArrayValues","normalizeArray","allowAboveRoot","up","basename","matchedSlash","xs","resolvedAbsolute","isAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","hasRoot","extname","startDot","startPart","preDotState","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","native","CORRECT_PROTOTYPE_GETTER","ARRAY_ITERATOR","Arguments","_typeof","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","enumerableOnly","symbols","_objectSpread2","SVGAnimatedString","convertToArray","addClasses","newClasses","className","baseVal","newClass","SVGElement","removeClasses","_listCacheClear","eq_1","_assocIndexOf","_listCacheDelete","_listCacheGet","_listCacheHas","_listCacheSet","_ListCache","_stackClear","_stackDelete","_stackGet","_stackHas","commonjsGlobal","createCommonjsModule","_freeGlobal","Symbol$1","_Symbol","_getRawTag","objectProto$1","nativeObjectToString$1","_objectToString","symToStringTag$1","_baseGetTag","isObject_1","isFunction_1","_coreJsData","_isMasked","_toSource","funcProto$1","objectProto$2","funcToString$1","hasOwnProperty$1","_baseIsNative","_getValue","_getNative","_Map","_nativeCreate","_hashClear","_hashDelete","objectProto$3","hasOwnProperty$2","_hashGet","objectProto$4","hasOwnProperty$3","_hashHas","HASH_UNDEFINED$1","_hashSet","_Hash","_mapCacheClear","_isKeyable","_getMapData","_mapCacheDelete","_mapCacheGet","_mapCacheHas","_mapCacheSet","_MapCache","_stackSet","_Stack","HASH_UNDEFINED$2","_setCacheAdd","_setCacheHas","_SetCache","_arraySome","_cacheHas","_equalArrays","_Uint8Array","_mapToArray","_setToArray","COMPARE_PARTIAL_FLAG$1","COMPARE_UNORDERED_FLAG$1","_equalByTag","_arrayPush","isArray_1","_baseGetAllKeys","_arrayFilter","stubArray_1","objectProto$5","_getSymbols","_baseTimes","isObjectLike_1","_baseIsArguments","objectProto$6","hasOwnProperty$4","propertyIsEnumerable$1","isArguments_1","stubFalse_1","isBuffer_1","_isIndex","MAX_SAFE_INTEGER$1","isLength_1","argsTag$1","boolTag$1","dateTag$1","errorTag$1","funcTag$1","mapTag$1","numberTag$1","regexpTag$1","setTag$1","stringTag$1","arrayBufferTag$1","dataViewTag$1","_baseIsTypedArray","_baseUnary","_nodeUtil","isTypedArray_1","objectProto$7","hasOwnProperty$5","_arrayLikeKeys","objectProto$8","_isPrototype","_overArg","_nativeKeys","objectProto$9","hasOwnProperty$6","_baseKeys","isArrayLike_1","keys_1","_getAllKeys","COMPARE_PARTIAL_FLAG$2","objectProto$a","hasOwnProperty$7","_equalObjects","_DataView","Promise$1","_Promise","_WeakMap","mapTag$2","objectTag$1","setTag$2","weakMapTag$1","dataViewTag$2","_getTag","COMPARE_PARTIAL_FLAG$3","argsTag$2","arrayTag$1","objectTag$2","objectProto$b","hasOwnProperty$8","_baseIsEqualDeep","_baseIsEqual","isEqual_1","DEFAULT_OPTIONS","placement","openTooltips","_reference","evt","relatedreference","toElement","relatedTarget","evt2","relatedreference2","_tooltipNode","_scheduleHide","jquery","hide","_isOpen","_show","_hide","_dispose","_classes","_setContent","classesUpdated","defaultClass","setClasses","getOptions","needPopperUpdate","needRestart","isOpen","dispose","popperInstance","_isDisposed","_enableDocumentTouch","_setEventListeners","$_originalTitle","tooltipGenerator","tooltipNode","autoHide","_this2","asyncContent","_applyContent","_this3","allowHtml","rootNode","titleNode","innerSelector","loadingClass","loadingContent","asyncResult","innerText","_disposeTimer","updateClasses","_ensureShown","_this4","enableEventListeners","_create","_findContainer","_append","popperOptions","arrow","arrowSelector","boundariesElement","preventOverflow","_this5","_noLongerOpen","disableEventListeners","disposeTime","disposeTimeout","_removeTooltipNode","_this6","_ref","removeOnDestroy","_this7","directEvents","oppositeEvents","hideOnTargetClick","usedByTooltip","_scheduleShow","_this8","computedDelay","_scheduleTimer","_this9","_setTooltipNodeEvent","_onDocumentTouch","enabled","positions","defaultOptions","defaultPlacement","defaultTargetClass","defaultHtml","defaultTemplate","defaultArrowSelector","defaultInnerSelector","defaultDelay","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","defaultPopperOptions","defaultLoadingClass","defaultLoadingContent","defaultHideOnTargetClick","popover","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultOpenClass","defaultAutoHide","defaultHandleResize","typeofOffset","getPlacement","createTooltip","_tooltip","_vueEl","targetClasses","_tooltipTargetClasses","destroyTooltip","_tooltipOldShow","setContent","setOptions","addListeners","onClick","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","changedTouches","touch","$_vclosepopover_touchPoint","firstTouch","screenY","screenX","vclosepopover","_ref2","getDefault","MSStream","openPopovers","Element","script","popoverClass","popoverBaseClass","popoverInnerClass","popoverWrapperClass","popoverArrowClass","handleResize","openGroup","openClass","cssClass","popoverId","oldVal","popoverNode","$_findContainer","scheduleUpdate","$_removeEventListeners","$_addEventListeners","$_updatePopper","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","_ref2$force","skipDelay","$_scheduleShow","$_beingShowed","_ref3","$_scheduleHide","$_show","$_disposeTimer","$_getOffset","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref4","$_restartPopper","$_handleGlobalClose","$_handleResize","handleGlobalClick","handleGlobalClose","handleGlobalTouchend","_loop","isFunctionalTemplate","createInjector","createInjectorSSR","createInjectorShadow","__vue_script__","__vue_render__","tabindex","visibility","keyup","__vue_staticRenderFns__","_withStripped","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","__vue_component__","_defineProperty$1","_baseAssignValue","_assignMergeValue","_createBaseFor","_baseFor","_cloneBuffer","_cloneArrayBuffer","_cloneTypedArray","_copyArray","_baseCreate","_getPrototype","_initCloneObject","isArrayLikeObject_1","objectTag$3","funcProto$2","objectProto$c","funcToString$2","hasOwnProperty$9","isPlainObject_1","_safeGet","objectProto$d","hasOwnProperty$a","_assignValue","_copyObject","_nativeKeysIn","objectProto$e","hasOwnProperty$b","_baseKeysIn","keysIn_1","toPlainObject_1","_baseMergeDeep","_baseMerge","identity_1","_apply","_overRest","constant_1","_baseSetToString","_shortOut","_setToString","_baseRest","_isIterateeCall","_createAssigner","merge_1","styleInject","insertAt","finalOptions","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","setSpecies","microtask","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","GLOBAL_CORE_JS_PROMISE","PromiseRejectionEvent","FakePromise","isThenable","isReject","notified","reactions","ok","exited","reaction","rejection","onHandleUnhandled","onUnhandled","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","capability","$promiseResolve","alreadyCalled","race","PromiseCapability","$$resolve","$$reject","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","taskDebounce","scheduled","supportsMicroTasks","functionToCheck","getStyleComputedProperty","getParentNode","nodeName","getScrollParent","_getStyleComputedProp","overflowX","overflowY","getReferenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","findCommonOffsetParent","element1","element2","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","_extends","getClientRect","offsets","sizes","clientWidth","clientHeight","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","modifiersToRun","isDestroyed","arrowStyles","flipped","positionFixed","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","removeEventListeners","cancelAnimationFrame","isNumeric","setStyles","unit","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","mergeWithPrevious","index2","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","Utils","PopperUtils","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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Q,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAA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","file":"js/chunk-vendors.ea23827a.js","sourcesContent":["var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */\nvar XLSX = {};\nfunction make_xlsx_lib(XLSX){\nXLSX.version = '0.15.5';\nvar current_codepage = 1200, current_ansi = 1252;\n/*global cptable:true, window */\nif(typeof module !== \"undefined\" && typeof require !== 'undefined') {\n\tif(typeof cptable === 'undefined') {\n\t\tif(typeof global !== 'undefined') global.cptable = require('./dist/cpexcel.js');\n\t\telse if(typeof window !== 'undefined') window.cptable = require('./dist/cpexcel.js');\n\t}\n}\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950 ];\nfor(var i = 0; i <= 8; ++i) VALID_ANSI.push(1250 + i);\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n0: 1252, /* ANSI */\n1: 65001, /* DEFAULT */\n2: 65001, /* SYMBOL */\n77: 10000, /* MAC */\n128: 932, /* SHIFTJIS */\n129: 949, /* HANGUL */\n130: 1361, /* JOHAB */\n134: 936, /* GB2312 */\n136: 950, /* CHINESEBIG5 */\n161: 1253, /* GREEK */\n162: 1254, /* TURKISH */\n163: 1258, /* VIETNAMESE */\n177: 1255, /* HEBREW */\n178: 1256, /* ARABIC */\n186: 1257, /* BALTIC */\n204: 1251, /* RUSSIAN */\n222: 874, /* THAI */\n238: 1250, /* EASTEUROPE */\n255: 1252, /* OEM */\n69: 6969 /* MISC */\n});\n\nvar set_ansi = function(cp) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data) {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x) { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x) { return String.fromCharCode(x); };\nif(typeof cptable !== 'undefined') {\n\tset_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x) {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x) {\n\t\treturn cptable.utils.decode(current_ansi, [x])[0];\n\t};\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64 = (function make_b64(){\n\tvar map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\treturn {\n\t\tencode: function(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tfor(var i = 0; i < input.length; ) {\n\t\t\t\tc1 = input.charCodeAt(i++);\n\t\t\t\te1 = (c1 >> 2);\n\n\t\t\t\tc2 = input.charCodeAt(i++);\n\t\t\t\te2 = ((c1 & 3) << 4) | (c2 >> 4);\n\n\t\t\t\tc3 = input.charCodeAt(i++);\n\t\t\t\te3 = ((c2 & 15) << 2) | (c3 >> 6);\n\t\t\t\te4 = (c3 & 63);\n\t\t\t\tif (isNaN(c2)) { e3 = e4 = 64; }\n\t\t\t\telse if (isNaN(c3)) { e4 = 64; }\n\t\t\t\to += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);\n\t\t\t}\n\t\t\treturn o;\n\t\t},\n\t\tdecode: function b64_decode(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tinput = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n\t\t\tfor(var i = 0; i < input.length;) {\n\t\t\t\te1 = map.indexOf(input.charAt(i++));\n\t\t\t\te2 = map.indexOf(input.charAt(i++));\n\t\t\t\tc1 = (e1 << 2) | (e2 >> 4);\n\t\t\t\to += String.fromCharCode(c1);\n\n\t\t\t\te3 = map.indexOf(input.charAt(i++));\n\t\t\t\tc2 = ((e2 & 15) << 4) | (e3 >> 2);\n\t\t\t\tif (e3 !== 64) { o += String.fromCharCode(c2); }\n\n\t\t\t\te4 = map.indexOf(input.charAt(i++));\n\t\t\t\tc3 = ((e3 & 3) << 6) | e4;\n\t\t\t\tif (e4 !== 64) { o += String.fromCharCode(c3); }\n\t\t\t}\n\t\t\treturn o;\n\t\t}\n\t};\n})();\nvar has_buf = (typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node);\n\nvar Buffer_from = function(){};\n\nif(typeof Buffer !== 'undefined') {\n\tvar nbfs = !Buffer.from;\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\n\t// $FlowIgnore\n\tif(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\n}\n\nfunction new_raw_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.alloc(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.allocUnsafe(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s) {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x){ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s) {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data) {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data) {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data) {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\nvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = function(bufs) { return [].concat.apply([], bufs); };\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nvar SSF = ({});\nvar make_ssf = function make_ssf(SSF){\nSSF.version = '0.10.2';\nfunction _strrev(x) { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\nfunction pad0(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v,d){var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v,d){var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v,d){var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = Math.pow(2,32);\nfunction pad0r(v,d){if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\nfunction isgeneral(s, i) { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction init_table(t) {\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\tt[65535]= 'General';\n}\n\nvar table_fmt = {};\ninit_table(table_fmt);\nfunction frac(x, D, mixed) {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction parse_date_code(v,opts,b2) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nSSF.parse_date_code = parse_date_code;\nvar basedate = new Date(1899, 11, 31, 0, 0, 0);\nvar dnthresh = basedate.getTime();\nvar base1904 = new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= base1904) epoch += 24*60*60*1000;\n\treturn (epoch - (dnthresh + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\nfunction general_fmt_int(v) { return v.toString(10); }\nSSF._general_int = general_fmt_int;\nvar general_fmt_num = (function make_general_fmt_num() {\nvar gnr1 = /\\.(\\d*[1-9])0+$/, gnr2 = /\\.0*$/, gnr4 = /\\.(\\d*[1-9])0+/, gnr5 = /\\.0*[Ee]/, gnr6 = /(E[+-])(\\d)$/;\nfunction gfn2(v) {\n\tvar w = (v<0?12:11);\n\tvar o = gfn5(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\nfunction gfn3(v) {\n\tvar o = v.toFixed(11).replace(gnr1,\".$1\");\n\tif(o.length > (v<0?12:11)) o = v.toPrecision(6);\n\treturn o;\n}\nfunction gfn4(o) {\n\tfor(var i = 0; i != o.length; ++i) if((o.charCodeAt(i) | 0x20) === 101) return o.replace(gnr4,\".$1\").replace(gnr5,\"E\").replace(\"e\",\"E\").replace(gnr6,\"$10$2\");\n\treturn o;\n}\nfunction gfn5(o) {\n\treturn o.indexOf(\".\") > -1 ? o.replace(gnr2,\"\").replace(gnr1,\".$1\") : o;\n}\nreturn function general_fmt_num(v) {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = gfn2(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = gfn3(v);\n\treturn gfn5(gfn4(o));\n};})();\nSSF._general_num = general_fmt_num;\nfunction general_fmt(v, opts) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? general_fmt_int(v) : general_fmt_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\nSSF._general = general_fmt;\nfunction fix_hijri() { return 0; }\n/*jshint -W086 */\nfunction write_date(type, fmt, val, ss0) {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\nif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1;\n\t}\n\tif(outl > 0) return pad0(out, outl); else return \"\";\n}\n/*jshint +W086 */\nfunction commaify(s) {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar write_num = (function make_write_num(){\nvar pct1 = /%/g;\nfunction write_num_pct(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_cm(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_exp(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r, aval, sign) {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r, aval, sign) {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str) {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val, d) { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val, d) {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 0;\n\t}\n\treturn Math.round((val-Math.floor(val))*Math.pow(10,d));\n}\nfunction carry(val, d) {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val) { if(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0)); return \"\"+Math.floor(val); }\nfunction write_num_flt(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\no = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\nreturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\nSSF.is_date = fmt_is_date;\nfunction eval_fmt(fmt, v, opts, flen) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(abstime)) {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while((++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && i < fmt.length - 2 && \"0#\".indexOf(fmt.charAt(i+2))>-1)) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\nout[i].v = write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '(': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('(', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?('.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?('.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\nSSF._eval = eval_fmt;\nvar cfregex = /\\[[=<>]/;\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f, v) {\n\tvar fmt = split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(cfregex) != null || fmt[1].match(cfregex) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction format(fmt,v,o) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table) : table_fmt)[fmt];\n\t\t\tbreak;\n\t}\n\tif(isgeneral(sfmt,0)) return general_fmt(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(isgeneral(f[1])) return general_fmt(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction load_entry(fmt, idx) {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\nfor(var i = 0; i < 0x0188; ++i) {\nif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\nif(idx < 0) idx = 0x187;\n\t}\ntable_fmt[idx] = fmt;\n\treturn idx;\n}\nSSF.load = load_entry;\nSSF._table = table_fmt;\nSSF.get_table = function get_table() { return table_fmt; };\nSSF.load_table = function load_table(tbl) {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) load_entry(tbl[i], i);\n};\nSSF.init_table = init_table;\nSSF.format = format;\n};\nmake_ssf(SSF);\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*{[string]:string}*/ = ({\n\t\"General Number\": \"General\",\n\t\"General Date\": SSF._table[22],\n\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\"Medium Date\": SSF._table[15],\n\t\"Short Date\": SSF._table[14],\n\t\"Long Time\": SSF._table[19],\n\t\"Medium Time\": SSF._table[18],\n\t\"Short Time\": SSF._table[20],\n\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"Fixed\": SSF._table[2],\n\t\"Standard\": SSF._table[4],\n\t\"Percent\": SSF._table[10],\n\t\"Scientific\": SSF._table[11],\n\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n});\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n});\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF) {\n\tvar fmt = typeof dateNF == \"number\" ? SSF._table[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str, dateNF, match) {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\nvar DO_NOT_EXPORT_CFB = true;\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global module, require:false, process:false, Buffer:false, Uint8Array:false, Uint16Array:false */\n\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tfactory(CRC32 = {});\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T = signed_crc_table();\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1, L = bstr.length - 1;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t}\n\tif(i === L) C = (C>>>8) ^ T[(C ^ bstr.charCodeAt(i))&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf(buf, seed) {\n\tif(buf.length > 10000) return crc32_buf_8(buf, seed);\n\tvar C = seed ^ -1, L = buf.length - 3;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+3) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf_8(buf, seed) {\n\tvar C = seed ^ -1, L = buf.length - 7;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+7) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L=str.length, c, d; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T[(C ^ c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn C ^ -1;\n}\nCRC32.table = T;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\n}));\n/* [MS-CFB] v20171201 */\nvar CFB = (function _CFB(){\nvar exports = {};\nexports.version = '1.1.3';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l, r) {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf, date) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf) {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob) {\n\tprep_blob(blob, 0);\n\tvar o = {};\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs;\nfunction get_fs() { return fs || (fs = require('fs')); }\nfunction parse(file, options) {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob = file.slice(0,512);\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files = {}, Paths = [], FileIndex = [], FullPaths = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob) {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob, mver) {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file, ssz) {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI, FP, Paths) {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad = [], q = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry, payload, mini) {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size));\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0));\n\treturn (bconcat(o).slice(0, entry.size));\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {\n\tvar q = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors, start, fat_addrs, ssz, chkd) {\n\tvar buf = [], buf_chain = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors, dir_start, fat_addrs, ssz) {\n\tvar sl = sectors.length, sector_list = ([]);\n\tvar chkd = [], buf = [], buf_chain = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])});\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob = sector.slice(i, i+128);\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size));\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob, offset) {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename, options) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob, options) {\n\tswitch(options && options.type || \"base64\") {\n\t\tcase \"file\": return read_file(blob, options);\n\t\tcase \"base64\": return parse(s2a(Base64.decode(blob)), options);\n\t\tcase \"binary\": return parse(s2a(blob), options);\n\t}\n\treturn parse(blob, options);\n}\n\nfunction init_cfb(cfb, opts) {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 });\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb) {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb, f) {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\tvar data = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = false;\n\t\tfor(j = 0; j < data.length; ++j) if(data[j][0] === dad) s = true;\n\t\tif(!s) data.push([dad, ({\n\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\ttype: 1,\n\t\t\tclsid: HEADER_CLSID,\n\t\t\tct: now, mt: now,\n\t\t\tcontent: null\n\t\t})]);\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb, options) {\n\tvar _opts = options || {};\n\trebuild_cfb(cfb);\n\tif(_opts.fileType == 'zip') return write_zip(cfb, _opts);\n\tvar L = (function(cfb){\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\nvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w) {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size > 0 && file.size < 0x1000) {\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\twhile(o.l < o.length) o.write_shift(1, 0);\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb, path) {\n\tvar UCFullPaths = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath = path.toUpperCase();\n\tvar w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb, filename, options) {\n\tget_fs();\n\tvar o = _write(cfb, options);\nfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o) {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb, options) {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type) {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o)); return o;\n\t\tcase \"binary\": return a2s(o);\n\t\tcase \"base64\": return Base64.encode(a2s(o));\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 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 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 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 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < b.length; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}var _deflate = (function() {\nvar _deflateRaw = (function() {\n\treturn function deflateRaw(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\t/* TODO: this is only type 0 stored */\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t};\n})();\n\nreturn function(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n};\n})();\n/* modified inflate function also moves original read head */\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX) {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\tif(typeof data.copy === 'function') {\n\t\t\t\t// $FlowIgnore\n\t\t\t\tdata.copy(outbuf, woff, boff>>>3, (boff>>>3)+sz);\n\t\t\t\twoff += sz; boff += 8*sz;\n\t\t\t} else while(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\tcontinue;\n\t\t} else if((header >>> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\treturn [usz ? outbuf : outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file, options) {\n\tvar blob = file;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex = [], FullPaths = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(blob.slice(blob.l+namelen, blob.l+namelen+efsz));\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob, csz, usz, o, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(blob.slice(blob.l, blob.l + efsz));\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break;\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\tvar _crc32 = CRC32.buf(data, 0);\n\tif((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb, options) {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(fi.content, 0);\n\n\t\tvar outbuf = fi.content;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: encryption header ? */\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, fi.content.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out)), bconcat(cdirs), o]));\n}\nfunction cfb_new(opts) {\n\tvar o = ({});\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb, name, content, opts) {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2});\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\nfile.content = (content);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb, name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb, old_name, new_name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb) { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nif(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }\nvar _fs;\nif(typeof require !== 'undefined') try { _fs = require('fs'); } catch(e) {}\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname, payload, enc) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, URL, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\nif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\nif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\nif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\nif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\na.download = fname; a.href = url; document.body.appendChild(a); a.click();\ndocument.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o) {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(o.hasOwnProperty(ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj, key) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nvar dnthresh = basedate.getTime() + (new Date().getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\nfunction datenum(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nfunction numdate(v) {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date = new Date('2017-02-19T19:06:09.000Z');\nif(isNaN(good_pd_date.getFullYear())) good_pd_date = new Date('2/19/17');\nvar good_pd = good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str, fixdate) {\n\tvar d = new Date(str);\n\tif(good_pd) {\nif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr) {\n\tvar o = \"\";\n\tfor(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);\n\treturn o;\n}\n\nfunction dup(o) {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(o.hasOwnProperty(k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s) {\n\tvar v = Number(s);\n\tif(!isNaN(v)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nfunction fuzzydate(s) {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\nfunction split_regex(str, re, def) {\n\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\tvar p = str.split(re), o = [p[0]];\n\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\treturn o;\n}\nfunction getdatastr(data) {\n\tif(!data) return null;\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\tif(data.content && data.type) return debom(cc2str(data.content));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase(), g = f.replace(/\\//g,'\\\\');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s?[\\/\\?]?>/g;\n\nif(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root, skip_LC) {\n\tvar z = ({});\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x) { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml = (function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/g, coderegex = /_x([\\da-fA-F]{4})_/g;\n\treturn function unescapexml(text) {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text){ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr = (function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str) { return str.replace(entregex,entrepl); };\n})();\nvar xlml_unfixstr = (function() {\n\treturn function xlml_unfixstr(str) { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); };\n})();\n\nfunction parsexmlbool(value) {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nvar utf8read = function utf8reada(orig) {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n};\n\nvar utf8write = function(orig) {\n\tvar out = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\nif(has_buf) {\n\tvar utf8readb = function utf8readb(data) {\n\t\tvar out = Buffer.alloc(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\t\tfor(i = 0; i < data.length; i+=j) {\n\t\t\tj = 1;\n\t\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\t\telse { j = 4;\n\t\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t\t}\n\t\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t\t}\n\t\treturn out.slice(0,k).toString('ucs2');\n\t};\n\tvar corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\n\tif(utf8read(corpus) == utf8readb(corpus)) utf8read = utf8readb;\n\tvar utf8readc = function utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); };\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\n\n\tutf8write = function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); };\n}\n\n// matches ... extracts content\nvar matchtag = (function() {\n\tvar mtcache = ({});\n\treturn function matchtag(f,g) {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\"))));\n\t};\n})();\n\nvar htmldecode = (function() {\n\tvar entities = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x) { return [new RegExp('&' + x[0] + ';', \"g\"), x[1]]; });\n\treturn function htmldecode(str) {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = (function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)' + g + ''; }\n\nfunction wxt_helper(h) { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f,g,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d, t) { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s) {\n\tswitch(typeof s) {\n\t\tcase 'string': return writextag('vt:lpwstr', escapexml(s));\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nvar XMLNS = ({\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n});\n\nXMLNS.main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n});\nfunction read_double_le(b, idx) {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b, v, idx) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar __toBuffer = function(bufs) { var x=[],w=10240; for(var i=0;i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpstr = __lpstr;\nvar __cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___cpstr = __cpstr;\nvar __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpwstr = __lpwstr;\nvar __lpp4, ___lpp4;\n__lpp4 = ___lpp4 = function lpp4_(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar ___8lpp4 = __8lpp4;\nvar __double, ___double;\n__double = ___double = function(b, idx) { return read_double_le(b, idx);};\nvar is_buf = function is_buf_a(a) { return Array.isArray(a); };\n\nif(has_buf) {\n\t__utf16le = function(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; };\n\t__hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); };\n\t__lpstr = function lpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b, i) { if(!Buffer.isBuffer(b)) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__utf8 = function utf8_b(b, s, e) { return (Buffer.isBuffer(b)) ? b.toString('utf8',s,e) : ___utf8(b,s,e); };\n\t__toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);};\n\tbconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); };\n\t__double = function double_(b, i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); };\n}\n\n/* from js-xls */\nif(typeof cptable !== 'undefined') {\n\t__utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\n\nvar __readUInt8 = function(b, idx) { return b[idx]; };\nvar __readUInt16LE = function(b, idx) { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b, idx) { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b, idx) { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size, t) {\n\tvar o=\"\", oI, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof cptable !== 'undefined') o = cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof cptable !== 'undefined') {\n\t\t\t\to = cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t, val, f) {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\nfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\nfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\nval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\nfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\nthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\nvar end = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr, fld) {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos) {\n\tblob.l = pos;\n\tblob.read_shift = ReadShift;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length) { blob.l += length; }\n\nfunction new_buf(sz) {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb, opts) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R.n, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array() {\n\tvar bufs = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz) {\n\t\tvar o = (new_buf(sz));\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz) {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn __toBuffer([bufs]);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs });\n}\n\nfunction write_record(ba, type, payload, length) {\n\tvar t = +XLSBRE[type], l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell, tgt, opts) {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c, biff) {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts) {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0xFFFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nvar OFFCRYPTO = {};\n\nvar make_offcrypto = function(O, _crypto) {\n\tvar crypto;\n\tif(typeof _crypto !== 'undefined') crypto = _crypto;\n\telse if(typeof require !== 'undefined') {\n\t\ttry { crypto = require('crypto'); }\n\t\tcatch(e) { crypto = null; }\n\t}\n\n\tO.rc4 = function(key, data) {\n\t\tvar S = new Array(256);\n\t\tvar c = 0, i = 0, j = 0, t = 0;\n\t\tfor(i = 0; i != 256; ++i) S[i] = i;\n\t\tfor(i = 0; i != 256; ++i) {\n\t\t\tj = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t}\n\t\t// $FlowIgnore\n\t\ti = j = 0; var out = Buffer(data.length);\n\t\tfor(c = 0; c != data.length; ++c) {\n\t\t\ti = (i + 1)&255;\n\t\t\tj = (j + S[i])%256;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t\tout[c] = (data[c] ^ S[(S[i]+S[j])&255]);\n\t\t}\n\t\treturn out;\n\t};\n\n\tO.md5 = function(hex) {\n\t\tif(!crypto) throw new Error(\"Unsupported crypto\");\n\t\treturn crypto.createHash('md5').update(hex).digest('hex');\n\t};\n};\n/*global crypto:true */\nmake_offcrypto(OFFCRYPTO, typeof crypto !== \"undefined\" ? crypto : undefined);\n\nfunction decode_row(rowstr) { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row) { return \"\" + (row + 1); }\nfunction fix_row(cstr) { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr) { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr) { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col) { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr) { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr) { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr) { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\nfunction decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\nfunction decode_range(range) { var x =range.split(\":\").map(decode_cell); return {s:x[0],e:x[x.length-1]}; }\nfunction encode_range(cs,ce) {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\nreturn encode_range(cs.s, cs.e);\n\t}\nif(typeof cs !== 'string') cs = encode_cell((cs));\n\tif(typeof ce !== 'string') ce = encode_cell((ce));\nreturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range) {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || range.charCodeAt(++i) === 58) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell, v) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF.format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF.format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell, v, o) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet, opts) {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws, data, opts) {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws = _ws || (dense ? ([]) : ({}));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar range = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell = ({v: data[R][C] });\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) { if(cell.f) cell.t = 'n'; else if(!o.sheetStubs) continue; else cell.t = 'z'; }\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF.format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF.format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data, opts) { return sheet_add_aoa(null, data, opts); }\n\nfunction write_UInt32LE(x, o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data, o) {\n\tvar _null = false; if(o == null) { _null = true; o = new_buf(4+2*data.length); }\n\to.write_shift(4, data.length);\n\tif(data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length) {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str });\n\tif((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor(var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ich:0, ifnt:0}];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if(o == null) { _null = true; o = new_buf(15+4*str.t.length); }\n\to.write_shift(1,0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if(o == null) { _null = true; o = new_buf(23+4*str.t.length); }\n\to.write_shift(1,1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4,1);\n\twrite_StrRun({ich:0,ifnt:0}, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data) {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell, o) {\n\tif(o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data, o) {\n\tvar _null = false; if(o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif(data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data) {\n\tvar b = data.slice(data.l, data.l+4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l+=4;\n\tb[0] &= 0xFC; // b[0] &= ~3;\n\tvar RK = fInt === 0 ? __double([0,0,0,0,b[0],b[1],b[2],b[3]],0) : __readInt32LE(b,0)>>2;\n\treturn fX100 ? (RK/100) : RK;\n}\nfunction write_RkNumber(data, o) {\n\tif(o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif((data == (data | 0)) && (data >= -(1<<29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if((d100 == (d100 | 0)) && (d100 >= -(1<<29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif(fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data ) {\n\tvar cell = ({s: {}, e: {}});\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data) { return data.read_shift(8, 'f'); }\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n0x00: \"#NULL!\",\n0x07: \"#DIV/0!\",\n0x0F: \"#VALUE!\",\n0x17: \"#REF!\",\n0x1D: \"#NAME?\",\n0x24: \"#NUM!\",\n0x2A: \"#N/A\",\n0x2B: \"#GETTING_DATA\",\n0xFF: \"#WTF?\"\n};\nvar RBErr = evert_num(BErr);\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch(xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif(icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif(nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif(!o) o = new_buf(8);\n\tif(!color||color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif(color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if(color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif(nTS > 0) nTS *= 32767;\n\telse if(nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif(!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif(typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0,2),16));\n\t\to.write_shift(1, parseInt(rgb.slice(2,4),16));\n\t\to.write_shift(1, parseInt(rgb.slice(4,6),16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif(!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w) {\n\t// $FlowIgnore\n\tvar ClipFmt = {2:\"BITMAP\",3:\"METAFILEPICT\",8:\"DIB\",14:\"ENHMETAFILE\"};\n\tvar m = o.read_shift(4);\n\tswitch(m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)]||\"\";\n\t}\n\tif(m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Category', t: VT_STRING },\n0x03: { n: 'PresentationFormat', t: VT_STRING },\n0x04: { n: 'ByteCount', t: VT_I4 },\n0x05: { n: 'LineCount', t: VT_I4 },\n0x06: { n: 'ParagraphCount', t: VT_I4 },\n0x07: { n: 'SlideCount', t: VT_I4 },\n0x08: { n: 'NoteCount', t: VT_I4 },\n0x09: { n: 'HiddenCount', t: VT_I4 },\n0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n0x0b: { n: 'ScaleCrop', t: VT_BOOL },\n0x0c: { n: 'HeadingPairs', t: VT_VECTOR | VT_VARIANT },\n0x0d: { n: 'TitlesOfParts', t: VT_VECTOR | VT_LPSTR },\n0x0e: { n: 'Manager', t: VT_STRING },\n0x0f: { n: 'Company', t: VT_STRING },\n0x10: { n: 'LinksUpToDate', t: VT_BOOL },\n0x11: { n: 'CharacterCount', t: VT_I4 },\n0x13: { n: 'SharedDoc', t: VT_BOOL },\n0x16: { n: 'HyperlinksChanged', t: VT_BOOL },\n0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n0x18: { n: 'DigSig', t: VT_BLOB },\n0x1A: { n: 'ContentType', t: VT_STRING },\n0x1B: { n: 'ContentStatus', t: VT_STRING },\n0x1C: { n: 'Language', t: VT_STRING },\n0x1D: { n: 'Version', t: VT_STRING },\n0xFF: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Title', t: VT_STRING },\n0x03: { n: 'Subject', t: VT_STRING },\n0x04: { n: 'Author', t: VT_STRING },\n0x05: { n: 'Keywords', t: VT_STRING },\n0x06: { n: 'Comments', t: VT_STRING },\n0x07: { n: 'Template', t: VT_STRING },\n0x08: { n: 'LastAuthor', t: VT_STRING },\n0x09: { n: 'RevNumber', t: VT_STRING },\n0x0A: { n: 'EditTime', t: VT_FILETIME },\n0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n0x0E: { n: 'PageCount', t: VT_I4 },\n0x0F: { n: 'WordCount', t: VT_I4 },\n0x10: { n: 'CharCount', t: VT_I4 },\n0x11: { n: 'Thumbnail', t: VT_CF },\n0x12: { n: 'Application', t: VT_STRING },\n0x13: { n: 'DocSecurity', t: VT_I4 },\n0xFF: {}\n};\n\n/* [MS-OLEPS] 2.18 */\nvar SpecialProperties = {\n0x80000000: { n: 'Locale', t: VT_UI4 },\n0x80000003: { n: 'Behavior', t: VT_UI4 },\n0x72627262: {}\n};\n\n(function() {\n\tfor(var y in SpecialProperties) if(SpecialProperties.hasOwnProperty(y))\n\tDocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y];\n})();\n\nvar DocSummaryRE = evert_key(DocSummaryPIDDSI, \"n\");\nvar SummaryRE = evert_key(SummaryPIDSI, \"n\");\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n0x0001: \"US\", // United States\n0x0002: \"CA\", // Canada\n0x0003: \"\", // Latin America (except Brazil)\n0x0007: \"RU\", // Russia\n0x0014: \"EG\", // Egypt\n0x001E: \"GR\", // Greece\n0x001F: \"NL\", // Netherlands\n0x0020: \"BE\", // Belgium\n0x0021: \"FR\", // France\n0x0022: \"ES\", // Spain\n0x0024: \"HU\", // Hungary\n0x0027: \"IT\", // Italy\n0x0029: \"CH\", // Switzerland\n0x002B: \"AT\", // Austria\n0x002C: \"GB\", // United Kingdom\n0x002D: \"DK\", // Denmark\n0x002E: \"SE\", // Sweden\n0x002F: \"NO\", // Norway\n0x0030: \"PL\", // Poland\n0x0031: \"DE\", // Germany\n0x0034: \"MX\", // Mexico\n0x0037: \"BR\", // Brazil\n0x003d: \"AU\", // Australia\n0x0040: \"NZ\", // New Zealand\n0x0042: \"TH\", // Thailand\n0x0051: \"JP\", // Japan\n0x0052: \"KR\", // Korea\n0x0054: \"VN\", // Viet Nam\n0x0056: \"CN\", // China\n0x005A: \"TR\", // Turkey\n0x0069: \"JS\", // Ramastan\n0x00D5: \"DZ\", // Algeria\n0x00D8: \"MA\", // Morocco\n0x00DA: \"LY\", // Libya\n0x015F: \"PT\", // Portugal\n0x0162: \"IS\", // Iceland\n0x0166: \"FI\", // Finland\n0x01A4: \"CZ\", // Czech Republic\n0x0376: \"TW\", // Taiwan\n0x03C1: \"LB\", // Lebanon\n0x03C2: \"JO\", // Jordan\n0x03C3: \"SY\", // Syria\n0x03C4: \"IQ\", // Iraq\n0x03C5: \"KW\", // Kuwait\n0x03C6: \"SA\", // Saudi Arabia\n0x03CB: \"AE\", // United Arab Emirates\n0x03CC: \"IL\", // Israel\n0x03CE: \"QA\", // Qatar\n0x03D5: \"IR\", // Iran\n0xFFFF: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = dup(_XLSIcv);\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* Metadata */\n\t\"application/vnd.ms-excel.sheetMetadata\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"TODO\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"vba\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n});\n\nvar CT_LIST = (function(){\n\tvar o = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n\t};\n\tkeys(o).forEach(function(k) { [\"xlsm\", \"xlam\"].forEach(function(v) { if(!o[k][v]) o[k][v] = o[k].xlsx; }); });\n\tkeys(o).forEach(function(k){ keys(o[k]).forEach(function(v) { ct2type[o[k][v]] = k; }); });\n\treturn o;\n})();\n\nvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\nXMLNS.CT = 'http://schemas.openxmlformats.org/package/2006/content-types';\n\nfunction new_ct() {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [],\n\t\tTODO:[], xmlns: \"\" });\n}\n\nfunction parse_ct(data) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nvar CTYPE_XML_ROOT = writextag('Types', null, {\n\t'xmlns': XMLNS.CT,\n\t'xmlns:xsd': XMLNS.xsd,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nvar CTYPE_DEFAULTS = [\n\t['xml', 'application/xml'],\n\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t/* from test files */\n\t['bmp', 'image/bmp'],\n\t['png', 'image/png'],\n\t['gif', 'image/gif'],\n\t['emf', 'image/x-emf'],\n\t['wmf', 'image/x-wmf'],\n\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t['pdf', 'application/pdf'],\n\t['rels', type2ct.rels[0]]\n].map(function(x) {\n\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n});\n\nfunction write_ct(ct, opts) {\n\tvar o = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (CTYPE_XML_ROOT);\n\to = o.concat(CTYPE_DEFAULTS);\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('drawings');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n});\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file) {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data, currentFilePath) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nvar RELS_EXTERN = [RELS.HLINK, RELS.XPATH, RELS.XMISS];\nfunction add_rels(rels, rId, f, type, relobj, targetmode) {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(rId < 0) for(rId = 1; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if(RELS_EXTERN.indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file, res, tag) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nvar write_meta_ods = (function() {\n\tvar payload = 'Sheet' + 'JS ' + XLSX.version + '';\n\treturn function wmo() {\n\t\treturn payload;\n\t};\n})();\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nXMLNS.CORE_PROPS = \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";\nRELS.CORE_PROPS = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties';\n\nvar CORE_PROPS_REGEX = (function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nvar CORE_PROPS_XML_ROOT = writextag('cp:coreProperties', null, {\n\t//'xmlns': XMLNS.CORE_PROPS,\n\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t'xmlns:dc': XMLNS.dc,\n\t'xmlns:dcterms': XMLNS.dcterms,\n\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, CORE_PROPS_XML_ROOT], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nXMLNS.EXT_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";\nRELS.EXT_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties';\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": p[f[1]] = unescapexml(xml||\"\"); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nvar EXT_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.EXT_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_ext_props(cp) {\n\tvar o = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (EXT_PROPS_XML_ROOT);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nXMLNS.CUST_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";\nRELS.CUST_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties';\n\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM = evert(XLMLDocPropsMap);\n\nfunction xlml_set_prop(Props, tag, val) {\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o = [];\n\tif(Props) keys(Props).forEach(function(k) {\nif(!Props.hasOwnProperty(k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\nif(!Custprops.hasOwnProperty(k)) return;\n\t\tif(Props && Props.hasOwnProperty(k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob) {\n\tvar length = blob.read_shift(4);\n\tvar ret = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */\nfunction parse_VtVecUnalignedLpstr(blob) {\n\treturn parse_VtVecUnalignedLpstrValue(blob);\n}\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */\nfunction parse_VtVecHeadingPair(blob) {\n\t// NOTE: When invoked, wType & padding were already consumed\n\treturn parse_VtVecHeadingPairValue(blob);\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict = ({});\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type, _opts) {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob);\n\t\tcase 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\np = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj = ({});\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2));\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ].concat(PseudoPropsPairs);\nfunction guess_property_type(val) {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI)[idx];\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\nvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({});\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier });\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI, entries2, clsid2) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob) {\n\tblob.l += 2; //var cAnti = blob.read_shift(2);\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length) {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tvar out = ({Target:target});\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tvar F = Target.indexOf(\"#\") > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tout.write_shift(4, 2*(Target.length + 1));\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(1, Target.charCodeAt(i) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob) {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe});\n}\nfunction write_XLSCell(R, C, ixfe, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n0x00: parse_FtSkip, /* FtEnd */\n0x04: parse_FtSkip, /* FtMacro */\n0x05: parse_FtSkip, /* FtButton */\n0x06: parse_FtSkip, /* FtGmo */\n0x07: parse_FtCf, /* FtCf */\n0x08: parse_FtSkip, /* FtPioGrbit */\n0x09: parse_FtSkip, /* FtPictFmla */\n0x0A: parse_FtSkip, /* FtCbls */\n0x0B: parse_FtSkip, /* FtRbo */\n0x0C: parse_FtSkip, /* FtSbs */\n0x0D: parse_FtNts, /* FtNts */\n0x0E: parse_FtSkip, /* FtSbsFmla */\n0x0F: parse_FtSkip, /* FtGboData */\n0x10: parse_FtSkip, /* FtEdoData */\n0x11: parse_FtSkip, /* FtRboData */\n0x12: parse_FtSkip, /* FtCblsData */\n0x13: parse_FtSkip, /* FtLbsData */\n0x14: parse_FtSkip, /* FtCblsFmla */\n0x15: parse_FtCmo\n};\nfunction parse_FtArray(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb, t, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length) {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs = ([]);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({});\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1() {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 8) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R, C, v, os, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i, f, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R, C, v, os, opts, t) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R, C, v, os) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t});\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\tvar rgce = target == blob.l || cce === 0 ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length) {\n\tvar merges = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = [];\nparse_BIFF5OT[0x08] = function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts);\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob) {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags});\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r, c, val) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r, c, val) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF = (function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n\n\t/* shapefile DBF extension */\n0x00: 20127, 0x08: 865,\n0x09: 437, 0x0A: 850,\n0x0B: 437, 0x0D: 437,\n0x0E: 850, 0x0F: 437,\n0x10: 850, 0x11: 437,\n0x12: 850, 0x13: 932,\n0x14: 850, 0x15: 437,\n0x16: 850, 0x17: 865,\n0x18: 437, 0x19: 437,\n0x1A: 850, 0x1B: 437,\n0x1C: 863, 0x1D: 850,\n0x1F: 852, 0x22: 852,\n0x23: 852, 0x24: 860,\n0x25: 850, 0x26: 866,\n0x37: 850, 0x40: 852,\n0x4D: 936, 0x4E: 949,\n0x4F: 950, 0x50: 874,\n0x57: 1252, 0x58: 1252,\n0x59: 1252,\n\n0xFF: 16969\n};\nvar dbf_reverse_map = evert({\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n0x00: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts) {\n\tvar out = [];\n\t/* TODO: browser based */\n\tvar d = (new_raw_buf(1));\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64.decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = false;\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: case 0x03: break;\n\t\tcase 0x30: vfp = true; memo = true; break;\n\t\tcase 0x31: vfp = true; break;\n\t\tcase 0x83: memo = true; break;\n\t\tcase 0x8B: memo = true; break;\n\t\tcase 0x8C: memo = true; l7 = true; break;\n\t\tcase 0xF5: memo = true; break;\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\tvar /*filedate = new Date(),*/ nrow = 0, fpos = 0;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\t/*filedate = new Date(d.read_shift(1) + 1900, d.read_shift(1) - 1, d.read_shift(1));*/d.l += 3;\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(ft != 0x02) fpos = d.read_shift(2);\n\tvar rlen = d.read_shift(2);\n\n\tvar /*flags = 0,*/ current_cp = 1252;\n\tif(ft != 0x02) {\n\td.l+=16;\n\t/*flags = */d.read_shift(1);\n\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t/* codepage present in FoxPro */\n\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\td.l+=1;\n\n\td.l+=2;\n\t}\n\tif(l7) d.l += 36;\nvar fields = [], field = ({});\n\tvar hend = fpos - 10 - (vfp ? 264 : 0), ww = l7 ? 32 : 11;\n\twhile(ft == 0x02 ? d.l < d.length && d[d.l] != 0x0d: d.l < hend) {\n\t\tfield = ({});\n\t\tfield.name = cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // VFP Double\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General\n\t\t\tcase 'P': // Picture\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'C': // character\n\t\t\tcase 'D': // date\n\t\t\tcase 'F': // floating point\n\t\t\tcase 'I': // long\n\t\t\tcase 'L': // boolean\n\t\t\tcase 'M': // memo\n\t\t\tcase 'N': // number\n\t\t\tcase 'O': // double\n\t\t\tcase 'T': // datetime\n\t\t\tcase 'Y': // currency\n\t\t\tcase '0': // VFP _NullFlags\n\t\t\tcase '@': // timestamp\n\t\t\tcase '+': // autoincrement\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\telse if(ft == 0x02) d.l = 0x209;\n\tif(ft != 0x02) {\n\t\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\t\td.l = fpos;\n\t}\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) { d.l+=rlen; continue; }\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\tout[R][C] = cptable.utils.decode(current_cp, dd);\n\t\t\t\t\tout[R][C] = out[R][C].trim();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase ' ': case '?': out[R][C] = false; break; /* NOTE: technically uninitialized */\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N': out[R][C] = +s.replace(/\\u0000/g,\"\").trim(); break;\n\t\t\t\tcase '@': out[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400); break;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4; break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts) {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\treturn aoa_to_sheet(dbf_to_aoa(buf, o), o);\n}\n\nfunction dbf_to_workbook(buf, opts) {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws, opts) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1);\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(i == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar col = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tvar guess = '', _guess = '';\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\tif(guess == 'C') break;\n\t\t}\n\t\trlen += _RLEN[guess] || 0;\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[current_ansi] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += _RLEN[coltypes[i]] || 0;\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t});\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str, opts) {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr = [];\n\t\tvar formats = [];\n\t\tvar next_cell_format = null;\n\t\tvar sht = {}, rowinfo = [], colinfo = [], cw = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d, opts) {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d, opts) { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell, ws, R, C) {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number') col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number') col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out, rows) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws, opts) {\n\t\tvar preamble = [\"ID;PWXL;N;E\"], o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = (function() {\n\tfunction dif_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri].trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str, opts) { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str, opts) { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = (function() {\n\t\tvar push_field = function pf(o, topic, v, n, s) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o, type, v, s) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws) {\n\t\t\tvar o = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF.format(cell.z || SSF._table[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = (function() {\n\tfunction decode(s) { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s) { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d, opts) { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d, opts) { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws) {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o = [], oo = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF.format(cell.z || SSF._table[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws) {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = (function() {\n\tfunction set_text_arr(data, arr, R, C, o) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f, opts) {\n\t\tvar o = opts || {};\n\t\tvar arr = ([]);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n0x2C: ',',\n0x09: \"\\t\",\n0x3B: ';'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n0x2C: 3,\n0x09: 2,\n0x3B: 1\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( cnt.hasOwnProperty(end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( cnt.hasOwnProperty(end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]];\n\t}\n\n\tfunction dsv_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\tif(str.slice(0,4) == \"sep=\" && str.charCodeAt(5) == 10) { sep = str.charAt(4); str = str.slice(6); }\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0;\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({});\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF.format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1;\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str, opts) {\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d, opts) {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64.decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8');\n\t\t\t\telse if(opts.codepage && typeof cptable !== 'undefined') str = cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = d.toString('binary');\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if((opts.type == 'binary') && typeof cptable !== 'undefined' && opts.codepage) str = cptable.utils.decode(opts.codepage, cptable.utils.encode(1252,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d, opts) { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws) {\n\t\tvar o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = (function() {\n\tfunction lotushopper(data, cb, opts) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R.n, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64.decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts) {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s = ((o.dense ? [] : {})), n = \"Sheet1\", sidx = 0;\n\t\tvar sheets = {}, snames = [n];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x02) o.Enum = WK1Enum;\n\t\telse if(d[2] == 0x1a) o.Enum = WK3Enum;\n\t\telse if(d[2] == 0x0e) { o.Enum = WK3Enum; o.qpro = true; d.l = 0; }\n\t\telse throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\tlotushopper(d, function(val, Rn, RT) {\n\t\t\tif(d[2] == 0x02) switch(RT) {\n\t\t\t\tcase 0x00:\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || SSF._table[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t} else switch(RT) {\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t}, o);\n\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[n] = s;\n\t\treturn { SheetNames: snames, Sheets:sheets };\n\t}\n\n\tfunction parse_RANGE(blob) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_cell_3(blob) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\t/* TODO: figure out all of the corner cases */\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t\tdefault: throw \"unknown NUMBER_18 encoding \" + (v & 0x07);\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) { o[1].v = 0; return o; }\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (s*2 - 1) * ((e > 0 ? (v2 << e) : (v2 >>> -e)) + (e > -32 ? (v1 << (e + 32)) : (v1 >>> -(e + 32))));\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tvar WK1Enum = {\n0x0000: { n:\"BOF\", f:parseuint16 },\n0x0001: { n:\"EOF\" },\n0x0002: { n:\"CALCMODE\" },\n0x0003: { n:\"CALCORDER\" },\n0x0004: { n:\"SPLIT\" },\n0x0005: { n:\"SYNC\" },\n0x0006: { n:\"RANGE\", f:parse_RANGE },\n0x0007: { n:\"WINDOW1\" },\n0x0008: { n:\"COLW1\" },\n0x0009: { n:\"WINTWO\" },\n0x000A: { n:\"COLW2\" },\n0x000B: { n:\"NAME\" },\n0x000C: { n:\"BLANK\" },\n0x000D: { n:\"INTEGER\", f:parse_INTEGER },\n0x000E: { n:\"NUMBER\", f:parse_NUMBER },\n0x000F: { n:\"LABEL\", f:parse_LABEL },\n0x0010: { n:\"FORMULA\", f:parse_FORMULA },\n0x0018: { n:\"TABLE\" },\n0x0019: { n:\"ORANGE\" },\n0x001A: { n:\"PRANGE\" },\n0x001B: { n:\"SRANGE\" },\n0x001C: { n:\"FRANGE\" },\n0x001D: { n:\"KRANGE1\" },\n0x0020: { n:\"HRANGE\" },\n0x0023: { n:\"KRANGE2\" },\n0x0024: { n:\"PROTEC\" },\n0x0025: { n:\"FOOTER\" },\n0x0026: { n:\"HEADER\" },\n0x0027: { n:\"SETUP\" },\n0x0028: { n:\"MARGINS\" },\n0x0029: { n:\"LABELFMT\" },\n0x002A: { n:\"TITLES\" },\n0x002B: { n:\"SHEETJS\" },\n0x002D: { n:\"GRAPH\" },\n0x002E: { n:\"NGRAPH\" },\n0x002F: { n:\"CALCCOUNT\" },\n0x0030: { n:\"UNFORMATTED\" },\n0x0031: { n:\"CURSORW12\" },\n0x0032: { n:\"WINDOW\" },\n0x0033: { n:\"STRING\", f:parse_LABEL },\n0x0037: { n:\"PASSWORD\" },\n0x0038: { n:\"LOCKED\" },\n0x003C: { n:\"QUERY\" },\n0x003D: { n:\"QUERYNAME\" },\n0x003E: { n:\"PRINT\" },\n0x003F: { n:\"PRINTNAME\" },\n0x0040: { n:\"GRAPH2\" },\n0x0041: { n:\"GRAPHNAME\" },\n0x0042: { n:\"ZOOM\" },\n0x0043: { n:\"SYMSPLIT\" },\n0x0044: { n:\"NSROWS\" },\n0x0045: { n:\"NSCOLS\" },\n0x0046: { n:\"RULER\" },\n0x0047: { n:\"NNAME\" },\n0x0048: { n:\"ACOMM\" },\n0x0049: { n:\"AMACRO\" },\n0x004A: { n:\"PARSE\" },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\n\tvar WK3Enum = {\n0x0000: { n:\"BOF\" },\n0x0001: { n:\"EOF\" },\n0x0003: { n:\"??\" },\n0x0004: { n:\"??\" },\n0x0005: { n:\"??\" },\n0x0006: { n:\"??\" },\n0x0007: { n:\"??\" },\n0x0009: { n:\"??\" },\n0x000a: { n:\"??\" },\n0x000b: { n:\"??\" },\n0x000c: { n:\"??\" },\n0x000e: { n:\"??\" },\n0x000f: { n:\"??\" },\n0x0010: { n:\"??\" },\n0x0011: { n:\"??\" },\n0x0012: { n:\"??\" },\n0x0013: { n:\"??\" },\n0x0015: { n:\"??\" },\n0x0016: { n:\"LABEL16\", f:parse_LABEL_16},\n0x0017: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n0x0018: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n0x0019: { n:\"FORMULA19\", f:parse_FORMULA_19},\n0x001a: { n:\"??\" },\n0x001b: { n:\"??\" },\n0x001c: { n:\"??\" },\n0x001d: { n:\"??\" },\n0x001e: { n:\"??\" },\n0x001f: { n:\"??\" },\n0x0021: { n:\"??\" },\n0x0025: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n0x0027: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n0x0028: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\treturn {\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return null;\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\t// TODO: parse\n\t\tif(!str.match(/\\\\trowd/)) throw new Error(\"RTF missing table\");\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme.push(color);\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles || !jszip) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = new jszip(data); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ' 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = rt.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"\" + a + \"\");\n\t}); });\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('');\n\t\t});\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)([1-9]\\d{0,5}|10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6])(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif(sname.indexOf(\" \") > -1) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\treturn formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts), opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2, c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = get_ixti_raw(supbooks, bookidx, opts).split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : rev.hasOwnProperty(str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!rev.hasOwnProperty(str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = data.codeName;\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = escapexml(cname);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCountpassword\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t} else {\n\t\t\tval.Target = \"#\" + val.location;\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && cell.f === undefined || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ >]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.slice(0,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=_xlfn(unescapexml(utf8read(cref[1])));\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, _xlfn(unescapexml(utf8read(cref[1]))), tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!opts.sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!opts.sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!opts.sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect'] != null) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tfor(var i = 0; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\n\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws) {\n\tif(cell.v === undefined) return;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\twrite_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\twrite_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\treturn;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\twrite_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn;\n\t\tcase 'e': /* TODO: error */ o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, cell, R, C, opts, ws);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = y.codeName;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews */\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', String(n.Ref).replace(//g, \">\"), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml) : cell.r;\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault: cell.t = 's'; cell.v = xlml_fixstr(ss||xml); break;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>!\\/:]*:|)([^\\s?>:\\/]+)[^>]*>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'Data':\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==\"Comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'Cell':\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:cell.HRef});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Row':\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Worksheet': /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Table':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'Style':\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'NumberFormat':\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'Column':\n\t\t\tif(state[state.length-1][0] !== 'Table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'NamedRange':\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'NamedCell': break;\n\t\tcase 'B': break;\n\t\tcase 'I': break;\n\t\tcase 'U': break;\n\t\tcase 'S': break;\n\t\tcase 'Sub': break;\n\t\tcase 'Sup': break;\n\t\tcase 'Span': break;\n\t\tcase 'Alignment':\n\t\t\tbreak;\n\t\tcase 'Borders': break;\n\t\tcase 'Border': break;\n\t\tcase 'Font':\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'Interior':\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'Protection': break;\n\n\t\tcase 'Author':\n\t\tcase 'Title':\n\t\tcase 'Description':\n\t\tcase 'Created':\n\t\tcase 'Keywords':\n\t\tcase 'Subject':\n\t\tcase 'Category':\n\t\tcase 'Company':\n\t\tcase 'LastAuthor':\n\t\tcase 'LastSaved':\n\t\tcase 'LastPrinted':\n\t\tcase 'Version':\n\t\tcase 'Revision':\n\t\tcase 'TotalTime':\n\t\tcase 'HyperlinkBase':\n\t\tcase 'Manager':\n\t\tcase 'ContentStatus':\n\t\tcase 'Identifier':\n\t\tcase 'Language':\n\t\tcase 'AppName':\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, Rn[3], str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'Paragraphs': break;\n\n\t\tcase 'Styles':\n\t\tcase 'Workbook':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'Comment':\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'AutoFilter':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'Name': break;\n\n\t\tcase 'DataValidation':\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'ComponentOptions':\n\t\tcase 'DocumentProperties':\n\t\tcase 'CustomDocumentProperties':\n\t\tcase 'OfficeDocumentSettings':\n\t\tcase 'PivotTable':\n\t\tcase 'PivotCache':\n\t\tcase 'Names':\n\t\tcase 'MapInfo':\n\t\tcase 'PageBreaks':\n\t\tcase 'QueryTable':\n\t\tcase 'Sorting':\n\t\tcase 'Schema':\n\t\tcase 'data':\n\t\tcase 'ConditionalFormatting':\n\t\tcase 'SmartTagType':\n\t\tcase 'SmartTags':\n\t\tcase 'ExcelWorkbook':\n\t\tcase 'WorkbookOptions':\n\t\tcase 'WorksheetOptions':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"UOF\") return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'OfficeDocumentSettings': switch(Rn[3]) {\n\t\t\t\t\tcase 'AllowPNG': break;\n\t\t\t\t\tcase 'RemovePersonalInformation': break;\n\t\t\t\t\tcase 'DownloadComponents': break;\n\t\t\t\t\tcase 'LocationOfComponents': break;\n\t\t\t\t\tcase 'Colors': break;\n\t\t\t\t\tcase 'Color': break;\n\t\t\t\t\tcase 'Index': break;\n\t\t\t\t\tcase 'RGB': break;\n\t\t\t\t\tcase 'PixelsPerInch': break; // TODO: set PPI\n\t\t\t\t\tcase 'TargetScreenSize': break;\n\t\t\t\t\tcase 'ReadOnlyRecommended': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'ComponentOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'Toolbar': break;\n\t\t\t\t\tcase 'HideOfficeLogo': break;\n\t\t\t\t\tcase 'SpreadsheetAutoFit': break;\n\t\t\t\t\tcase 'Label': break;\n\t\t\t\t\tcase 'Caption': break;\n\t\t\t\t\tcase 'MaxHeight': break;\n\t\t\t\t\tcase 'MaxWidth': break;\n\t\t\t\t\tcase 'NextSheetNumber': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'ExcelWorkbook': switch(Rn[3]) {\n\t\t\t\t\tcase 'Date1904':\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'WindowHeight': break;\n\t\t\t\t\tcase 'WindowWidth': break;\n\t\t\t\t\tcase 'WindowTopX': break;\n\t\t\t\t\tcase 'WindowTopY': break;\n\t\t\t\t\tcase 'TabRatio': break;\n\t\t\t\t\tcase 'ProtectStructure': break;\n\t\t\t\t\tcase 'ProtectWindow': break;\n\t\t\t\t\tcase 'ProtectWindows': break;\n\t\t\t\t\tcase 'ActiveSheet': break;\n\t\t\t\t\tcase 'DisplayInkNotes': break;\n\t\t\t\t\tcase 'FirstVisibleSheet': break;\n\t\t\t\t\tcase 'SupBook': break;\n\t\t\t\t\tcase 'SheetName': break;\n\t\t\t\t\tcase 'SheetIndex': break;\n\t\t\t\t\tcase 'SheetIndexFirst': break;\n\t\t\t\t\tcase 'SheetIndexLast': break;\n\t\t\t\t\tcase 'Dll': break;\n\t\t\t\t\tcase 'AcceptLabelsInFormulas': break;\n\t\t\t\t\tcase 'DoNotSaveLinkValues': break;\n\t\t\t\t\tcase 'Iteration': break;\n\t\t\t\t\tcase 'MaxIterations': break;\n\t\t\t\t\tcase 'MaxChange': break;\n\t\t\t\t\tcase 'Path': break;\n\t\t\t\t\tcase 'Xct': break;\n\t\t\t\t\tcase 'Count': break;\n\t\t\t\t\tcase 'SelectedSheets': break;\n\t\t\t\t\tcase 'Calculation': break;\n\t\t\t\t\tcase 'Uncalced': break;\n\t\t\t\t\tcase 'StartupPrompt': break;\n\t\t\t\t\tcase 'Crn': break;\n\t\t\t\t\tcase 'ExternName': break;\n\t\t\t\t\tcase 'Formula': break;\n\t\t\t\t\tcase 'ColFirst': break;\n\t\t\t\t\tcase 'ColLast': break;\n\t\t\t\t\tcase 'WantAdvise': break;\n\t\t\t\t\tcase 'Boolean': break;\n\t\t\t\t\tcase 'Error': break;\n\t\t\t\t\tcase 'Text': break;\n\t\t\t\t\tcase 'OLE': break;\n\t\t\t\t\tcase 'NoAutoRecover': break;\n\t\t\t\t\tcase 'PublishObjects': break;\n\t\t\t\t\tcase 'DoNotCalculateBeforeSave': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'RefModeR1C1': break;\n\t\t\t\t\tcase 'EmbedSaveSmartTags': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'WorkbookOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'OWCVersion': break;\n\t\t\t\t\tcase 'Height': break;\n\t\t\t\t\tcase 'Width': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'WorksheetOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'Visible':\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Header':\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Footer':\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'PageMargins':\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'DisplayRightToLeft':\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'FreezePanes': break;\n\t\t\t\t\tcase 'FrozenNoSplit': break;\n\n\t\t\t\t\tcase 'SplitHorizontal':\n\t\t\t\t\tcase 'SplitVertical':\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'DoNotDisplayGridlines':\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'TopRowBottomPane': break;\n\t\t\t\t\tcase 'LeftColumnRightPane': break;\n\n\t\t\t\t\tcase 'Unsynced': break;\n\t\t\t\t\tcase 'Print': break;\n\t\t\t\t\tcase 'Panes': break;\n\t\t\t\t\tcase 'Scale': break;\n\t\t\t\t\tcase 'Pane': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'Layout': break;\n\t\t\t\t\tcase 'PageSetup': break;\n\t\t\t\t\tcase 'Selected': break;\n\t\t\t\t\tcase 'ProtectObjects': break;\n\t\t\t\t\tcase 'EnableSelection': break;\n\t\t\t\t\tcase 'ProtectScenarios': break;\n\t\t\t\t\tcase 'ValidPrinterInfo': break;\n\t\t\t\t\tcase 'HorizontalResolution': break;\n\t\t\t\t\tcase 'VerticalResolution': break;\n\t\t\t\t\tcase 'NumberofCopies': break;\n\t\t\t\t\tcase 'ActiveRow': break;\n\t\t\t\t\tcase 'ActiveCol': break;\n\t\t\t\t\tcase 'ActivePane': break;\n\t\t\t\t\tcase 'TopRowVisible': break;\n\t\t\t\t\tcase 'LeftColumnVisible': break;\n\t\t\t\t\tcase 'FitToPage': break;\n\t\t\t\t\tcase 'RangeSelection': break;\n\t\t\t\t\tcase 'PaperSizeIndex': break;\n\t\t\t\t\tcase 'PageLayoutZoom': break;\n\t\t\t\t\tcase 'PageBreakZoom': break;\n\t\t\t\t\tcase 'FilterOn': break;\n\t\t\t\t\tcase 'FitWidth': break;\n\t\t\t\t\tcase 'FitHeight': break;\n\t\t\t\t\tcase 'CommentsLayout': break;\n\t\t\t\t\tcase 'Zoom': break;\n\t\t\t\t\tcase 'LeftToRight': break;\n\t\t\t\t\tcase 'Gridlines': break;\n\t\t\t\t\tcase 'AllowSort': break;\n\t\t\t\t\tcase 'AllowFilter': break;\n\t\t\t\t\tcase 'AllowInsertRows': break;\n\t\t\t\t\tcase 'AllowDeleteRows': break;\n\t\t\t\t\tcase 'AllowInsertCols': break;\n\t\t\t\t\tcase 'AllowDeleteCols': break;\n\t\t\t\t\tcase 'AllowInsertHyperlinks': break;\n\t\t\t\t\tcase 'AllowFormatCells': break;\n\t\t\t\t\tcase 'AllowSizeCols': break;\n\t\t\t\t\tcase 'AllowSizeRows': break;\n\t\t\t\t\tcase 'NoSummaryRowsBelowDetail': break;\n\t\t\t\t\tcase 'TabColorIndex': break;\n\t\t\t\t\tcase 'DoNotDisplayHeadings': break;\n\t\t\t\t\tcase 'ShowPageLayoutZoom': break;\n\t\t\t\t\tcase 'NoSummaryColumnsRightDetail': break;\n\t\t\t\t\tcase 'BlackAndWhite': break;\n\t\t\t\t\tcase 'DoNotDisplayZeros': break;\n\t\t\t\t\tcase 'DisplayPageBreak': break;\n\t\t\t\t\tcase 'RowColHeadings': break;\n\t\t\t\t\tcase 'DoNotDisplayOutline': break;\n\t\t\t\t\tcase 'NoOrientation': break;\n\t\t\t\t\tcase 'AllowUsePivotTables': break;\n\t\t\t\t\tcase 'ZeroHeight': break;\n\t\t\t\t\tcase 'ViewableRange': break;\n\t\t\t\t\tcase 'Selection': break;\n\t\t\t\t\tcase 'ProtectContents': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'PivotTable': case 'PivotCache': switch(Rn[3]) {\n\t\t\t\t\tcase 'ImmediateItemsOnDrop': break;\n\t\t\t\t\tcase 'ShowPageMultipleItemLabel': break;\n\t\t\t\t\tcase 'CompactRowIndent': break;\n\t\t\t\t\tcase 'Location': break;\n\t\t\t\t\tcase 'PivotField': break;\n\t\t\t\t\tcase 'Orientation': break;\n\t\t\t\t\tcase 'LayoutForm': break;\n\t\t\t\t\tcase 'LayoutSubtotalLocation': break;\n\t\t\t\t\tcase 'LayoutCompactRow': break;\n\t\t\t\t\tcase 'Position': break;\n\t\t\t\t\tcase 'PivotItem': break;\n\t\t\t\t\tcase 'DataType': break;\n\t\t\t\t\tcase 'DataField': break;\n\t\t\t\t\tcase 'SourceName': break;\n\t\t\t\t\tcase 'ParentField': break;\n\t\t\t\t\tcase 'PTLineItems': break;\n\t\t\t\t\tcase 'PTLineItem': break;\n\t\t\t\t\tcase 'CountOfSameItems': break;\n\t\t\t\t\tcase 'Item': break;\n\t\t\t\t\tcase 'ItemType': break;\n\t\t\t\t\tcase 'PTSource': break;\n\t\t\t\t\tcase 'CacheIndex': break;\n\t\t\t\t\tcase 'ConsolidationReference': break;\n\t\t\t\t\tcase 'FileName': break;\n\t\t\t\t\tcase 'Reference': break;\n\t\t\t\t\tcase 'NoColumnGrand': break;\n\t\t\t\t\tcase 'NoRowGrand': break;\n\t\t\t\t\tcase 'BlankLineAfterItems': break;\n\t\t\t\t\tcase 'Hidden': break;\n\t\t\t\t\tcase 'Subtotal': break;\n\t\t\t\t\tcase 'BaseField': break;\n\t\t\t\t\tcase 'MapChildItems': break;\n\t\t\t\t\tcase 'Function': break;\n\t\t\t\t\tcase 'RefreshOnFileOpen': break;\n\t\t\t\t\tcase 'PrintSetTitles': break;\n\t\t\t\t\tcase 'MergeLabels': break;\n\t\t\t\t\tcase 'DefaultVersion': break;\n\t\t\t\t\tcase 'RefreshName': break;\n\t\t\t\t\tcase 'RefreshDate': break;\n\t\t\t\t\tcase 'RefreshDateCopy': break;\n\t\t\t\t\tcase 'VersionLastRefresh': break;\n\t\t\t\t\tcase 'VersionLastUpdate': break;\n\t\t\t\t\tcase 'VersionUpdateableMin': break;\n\t\t\t\t\tcase 'VersionRefreshableMin': break;\n\t\t\t\t\tcase 'Calculation': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'PageBreaks': switch(Rn[3]) {\n\t\t\t\t\tcase 'ColBreaks': break;\n\t\t\t\t\tcase 'ColBreak': break;\n\t\t\t\t\tcase 'RowBreaks': break;\n\t\t\t\t\tcase 'RowBreak': break;\n\t\t\t\t\tcase 'ColStart': break;\n\t\t\t\t\tcase 'ColEnd': break;\n\t\t\t\t\tcase 'RowEnd': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'AutoFilter': switch(Rn[3]) {\n\t\t\t\t\tcase 'AutoFilterColumn': break;\n\t\t\t\t\tcase 'AutoFilterCondition': break;\n\t\t\t\t\tcase 'AutoFilterAnd': break;\n\t\t\t\t\tcase 'AutoFilterOr': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'QueryTable': switch(Rn[3]) {\n\t\t\t\t\tcase 'Id': break;\n\t\t\t\t\tcase 'AutoFormatFont': break;\n\t\t\t\t\tcase 'AutoFormatPattern': break;\n\t\t\t\t\tcase 'QuerySource': break;\n\t\t\t\t\tcase 'QueryType': break;\n\t\t\t\t\tcase 'EnableRedirections': break;\n\t\t\t\t\tcase 'RefreshedInXl9': break;\n\t\t\t\t\tcase 'URLString': break;\n\t\t\t\t\tcase 'HTMLTables': break;\n\t\t\t\t\tcase 'Connection': break;\n\t\t\t\t\tcase 'CommandText': break;\n\t\t\t\t\tcase 'RefreshInfo': break;\n\t\t\t\t\tcase 'NoTitles': break;\n\t\t\t\t\tcase 'NextId': break;\n\t\t\t\t\tcase 'ColumnInfo': break;\n\t\t\t\t\tcase 'OverwriteCells': break;\n\t\t\t\t\tcase 'DoNotPromptForFile': break;\n\t\t\t\t\tcase 'TextWizardSettings': break;\n\t\t\t\t\tcase 'Source': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'Decimal': break;\n\t\t\t\t\tcase 'ThousandSeparator': break;\n\t\t\t\t\tcase 'TrailingMinusNumbers': break;\n\t\t\t\t\tcase 'FormatSettings': break;\n\t\t\t\t\tcase 'FieldType': break;\n\t\t\t\t\tcase 'Delimiters': break;\n\t\t\t\t\tcase 'Tab': break;\n\t\t\t\t\tcase 'Comma': break;\n\t\t\t\t\tcase 'AutoFormatName': break;\n\t\t\t\t\tcase 'VersionLastEdit': break;\n\t\t\t\t\tcase 'VersionLastRefresh': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'DataValidation':\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'Range': break;\n\n\t\t\t\t\tcase 'Type': break;\n\t\t\t\t\tcase 'Min': break;\n\t\t\t\t\tcase 'Max': break;\n\t\t\t\t\tcase 'Sort': break;\n\t\t\t\t\tcase 'Descending': break;\n\t\t\t\t\tcase 'Order': break;\n\t\t\t\t\tcase 'CaseSensitive': break;\n\t\t\t\t\tcase 'Value': break;\n\t\t\t\t\tcase 'ErrorStyle': break;\n\t\t\t\t\tcase 'ErrorMessage': break;\n\t\t\t\t\tcase 'ErrorTitle': break;\n\t\t\t\t\tcase 'InputMessage': break;\n\t\t\t\t\tcase 'InputTitle': break;\n\t\t\t\t\tcase 'ComboHide': break;\n\t\t\t\t\tcase 'InputHide': break;\n\t\t\t\t\tcase 'Condition': break;\n\t\t\t\t\tcase 'Qualifier': break;\n\t\t\t\t\tcase 'UseBlank': break;\n\t\t\t\t\tcase 'Value1': break;\n\t\t\t\t\tcase 'Value2': break;\n\t\t\t\t\tcase 'Format': break;\n\n\t\t\t\t\tcase 'CellRangeList': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Sorting':\n\t\t\t\tcase 'ConditionalFormatting':\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'Range': break;\n\t\t\t\t\tcase 'Type': break;\n\t\t\t\t\tcase 'Min': break;\n\t\t\t\t\tcase 'Max': break;\n\t\t\t\t\tcase 'Sort': break;\n\t\t\t\t\tcase 'Descending': break;\n\t\t\t\t\tcase 'Order': break;\n\t\t\t\t\tcase 'CaseSensitive': break;\n\t\t\t\t\tcase 'Value': break;\n\t\t\t\t\tcase 'ErrorStyle': break;\n\t\t\t\t\tcase 'ErrorMessage': break;\n\t\t\t\t\tcase 'ErrorTitle': break;\n\t\t\t\t\tcase 'CellRangeList': break;\n\t\t\t\t\tcase 'InputMessage': break;\n\t\t\t\t\tcase 'InputTitle': break;\n\t\t\t\t\tcase 'ComboHide': break;\n\t\t\t\t\tcase 'InputHide': break;\n\t\t\t\t\tcase 'Condition': break;\n\t\t\t\t\tcase 'Qualifier': break;\n\t\t\t\t\tcase 'UseBlank': break;\n\t\t\t\t\tcase 'Value1': break;\n\t\t\t\t\tcase 'Value2': break;\n\t\t\t\t\tcase 'Format': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'MapInfo': case 'Schema': case 'data': switch(Rn[3]) {\n\t\t\t\t\tcase 'Map': break;\n\t\t\t\t\tcase 'Entry': break;\n\t\t\t\t\tcase 'Range': break;\n\t\t\t\t\tcase 'XPath': break;\n\t\t\t\t\tcase 'Field': break;\n\t\t\t\t\tcase 'XSDType': break;\n\t\t\t\t\tcase 'FilterOn': break;\n\t\t\t\t\tcase 'Aggregate': break;\n\t\t\t\t\tcase 'ElementType': break;\n\t\t\t\t\tcase 'AttributeType': break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema':\n\t\t\t\t\tcase 'element':\n\t\t\t\t\tcase 'complexType':\n\t\t\t\t\tcase 'datatype':\n\t\t\t\t\tcase 'all':\n\t\t\t\t\tcase 'attribute':\n\t\t\t\t\tcase 'extends': break;\n\n\t\t\t\t\tcase 'row': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'SmartTags': break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]==='CustomDocumentProperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, Rn[3], cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\t\tstyles.push(writextag('Style', payload.join(\"\"), {\"ss:ID\": \"s\" + (21+id)}));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (DocSummaryRE.hasOwnProperty(Keys[i]) ? DSEntries : SummaryRE.hasOwnProperty(Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!(wb.Props||{}).hasOwnProperty(Keys[i])) (DocSummaryRE.hasOwnProperty(Keys[i]) ? DSEntries : SummaryRE.hasOwnProperty(Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8 && _WB.Views) write_biff_rec(ba, \"Window2\", write_Window2(_WB.Views[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\t/* BIFF8: [SST *Continue] ExtSST */\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(//g, \"\");\n\t\tvar mtch = str.match(/\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '' + w + '';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"\";\n\t\treturn preamble + oo.join(\"\") + \"\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '';\n\t}\n\tvar _BEGIN = 'SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"
\" + footer);\n\t\treturn out.join(\"\");\n\t}\n\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar ws = opts.dense ? ([]) : ({});\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = opts.sheetRows || 10000000;\n\tvar range = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar merges = [], midx = 0;\n\tvar rowinfo = [];\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = htmldecode(elt.innerHTML);\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C && m.s.r <= R && R <= m.e.r) { C = m.e.c+1; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif((RS = +elt.getAttribute(\"rowspan\"))>0 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({c:C, r:R})] = o;\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = merges;\n\tif(rowinfo.length) ws['!rows'] = rowinfo;\n\trange.e.r = R - 1;\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\t\t\tcase 'master-styles': break; // TODO: \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push(' \\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('\\n');\n\t\telse o.push('\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = fix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\n\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = 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)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,24)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: return read_cfb(CFB.read(d, o), o);\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\n/*global encrypt_agile */\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o);\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !o.hasOwnProperty(\"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+format_cell(val, null, o);\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define('xlsx', function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","/*\n\nJSZip - A Javascript class for generating and reading zip files\n\n\n(c) 2009-2014 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n\nNote: since JSZip 3 removed critical functionality, this version assigns to the\n`JSZipSync` variable. Another JSZip version can be loaded in parallel.\n*/\n(function(e){\n\tif(\"object\"==typeof exports&&\"undefined\"!=typeof module&&\"undefined\"==typeof DO_NOT_EXPORT_JSZIP)module.exports=e();\n\telse if(\"function\"==typeof define&&define.amd&&\"undefined\"==typeof DO_NOT_EXPORT_JSZIP){JSZipSync=e();define([],e);}\n\telse{\n\t\tvar f;\n\t\t\"undefined\"!=typeof window?f=window:\n\t\t\"undefined\"!=typeof global?f=global:\n\t\t\"undefined\"!=typeof $ && $.global?f=$.global:\n\t\t\"undefined\"!=typeof self&&(f=self),f.JSZipSync=e()\n\t}\n}(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> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n }\n else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\n\n }\n\n return output;\n};\n\n// public method for decoding\nexports.decode = function(input, utf8) {\n var output = \"\";\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0;\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n while (i < input.length) {\n\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output = output + String.fromCharCode(chr1);\n\n if (enc3 != 64) {\n output = output + String.fromCharCode(chr2);\n }\n if (enc4 != 64) {\n output = output + String.fromCharCode(chr3);\n }\n\n }\n\n return output;\n\n};\n\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nfunction CompressedObject() {\n this.compressedSize = 0;\n this.uncompressedSize = 0;\n this.crc32 = 0;\n this.compressionMethod = null;\n this.compressedContent = null;\n}\n\nCompressedObject.prototype = {\n /**\n * Return the decompressed content in an unspecified format.\n * The format will depend on the decompressor.\n * @return {Object} the decompressed content.\n */\n getContent: function() {\n return null; // see implementation\n },\n /**\n * Return the compressed content in an unspecified format.\n * The format will depend on the compressed conten source.\n * @return {Object} the compressed content.\n */\n getCompressedContent: function() {\n return null; // see implementation\n }\n};\nmodule.exports = CompressedObject;\n\n},{}],3:[function(_dereq_,module,exports){\n'use strict';\nexports.STORE = {\n magic: \"\\x00\\x00\",\n compress: function(content) {\n return content; // no compression\n },\n uncompress: function(content) {\n return content; // no compression\n },\n compressInputType: null,\n uncompressInputType: null\n};\nexports.DEFLATE = _dereq_('./flate');\n\n},{\"./flate\":8}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\nvar table = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D\n];\n\n/**\n *\n * Javascript crc32\n * http://www.webtoolkit.info/\n *\n */\nmodule.exports = function crc32(input, crc) {\n if (typeof input === \"undefined\" || !input.length) {\n return 0;\n }\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n\n if (typeof(crc) == \"undefined\") {\n crc = 0;\n }\n var x = 0;\n var y = 0;\n var b = 0;\n\n crc = crc ^ (-1);\n for (var i = 0, iTop = input.length; i < iTop; i++) {\n b = isArray ? input[i] : input.charCodeAt(i);\n y = (crc ^ b) & 0xFF;\n x = table[y];\n crc = (crc >>> 8) ^ x;\n }\n\n return crc ^ (-1);\n};\n// vim: set shiftwidth=4 softtabstop=4:\n\n},{\"./utils\":21}],5:[function(_dereq_,module,exports){\n'use strict';\nvar utils = _dereq_('./utils');\n\nfunction DataReader(data) {\n this.data = null; // type : see implementation\n this.length = 0;\n this.index = 0;\n}\nDataReader.prototype = {\n /**\n * Check that the offset will not go too far.\n * @param {string} offset the additional offset to check.\n * @throws {Error} an Error if the offset is out of bounds.\n */\n checkOffset: function(offset) {\n this.checkIndex(this.index + offset);\n },\n /**\n * Check that the specifed index will not be too far.\n * @param {string} newIndex the index to check.\n * @throws {Error} an Error if the index is out of bounds.\n */\n checkIndex: function(newIndex) {\n if (this.length < newIndex || newIndex < 0) {\n throw new Error(\"End of data reached (data length = \" + this.length + \", asked index = \" + (newIndex) + \"). Corrupted zip ?\");\n }\n },\n /**\n * Change the index.\n * @param {number} newIndex The new index.\n * @throws {Error} if the new index is out of the data.\n */\n setIndex: function(newIndex) {\n this.checkIndex(newIndex);\n this.index = newIndex;\n },\n /**\n * Skip the next n bytes.\n * @param {number} n the number of bytes to skip.\n * @throws {Error} if the new index is out of the data.\n */\n skip: function(n) {\n this.setIndex(this.index + n);\n },\n /**\n * Get the byte at the specified index.\n * @param {number} i the index to use.\n * @return {number} a byte.\n */\n byteAt: function(i) {\n // see implementations\n },\n /**\n * Get the next number with a given byte size.\n * @param {number} size the number of bytes to read.\n * @return {number} the corresponding number.\n */\n readInt: function(size) {\n var result = 0,\n i;\n this.checkOffset(size);\n for (i = this.index + size - 1; i >= this.index; i--) {\n result = (result << 8) + this.byteAt(i);\n }\n this.index += size;\n return result;\n },\n /**\n * Get the next string with a given byte size.\n * @param {number} size the number of bytes to read.\n * @return {string} the corresponding string.\n */\n readString: function(size) {\n return utils.transformTo(\"string\", this.readData(size));\n },\n /**\n * Get raw data without conversion, bytes.\n * @param {number} size the number of bytes to read.\n * @return {Object} the raw data, implementation specific.\n */\n readData: function(size) {\n // see implementations\n },\n /**\n * Find the last occurence of a zip signature (4 bytes).\n * @param {string} sig the signature to find.\n * @return {number} the index of the last occurence, -1 if not found.\n */\n lastIndexOfSignature: function(sig) {\n // see implementations\n },\n /**\n * Get the next date.\n * @return {Date} the date.\n */\n readDate: function() {\n var dostime = this.readInt(4);\n return new Date(\n ((dostime >> 25) & 0x7f) + 1980, // year\n ((dostime >> 21) & 0x0f) - 1, // month\n (dostime >> 16) & 0x1f, // day\n (dostime >> 11) & 0x1f, // hour\n (dostime >> 5) & 0x3f, // minute\n (dostime & 0x1f) << 1); // second\n }\n};\nmodule.exports = DataReader;\n\n},{\"./utils\":21}],6:[function(_dereq_,module,exports){\n'use strict';\nexports.base64 = false;\nexports.binary = false;\nexports.dir = false;\nexports.createFolders = false;\nexports.date = null;\nexports.compression = null;\nexports.comment = null;\n\n},{}],7:[function(_dereq_,module,exports){\n'use strict';\nvar utils = _dereq_('./utils');\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2binary = function(str) {\n return utils.string2binary(str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2Uint8Array = function(str) {\n return utils.transformTo(\"uint8array\", str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.uint8Array2String = function(array) {\n return utils.transformTo(\"string\", array);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2Blob = function(str) {\n var buffer = utils.transformTo(\"arraybuffer\", str);\n return utils.arrayBuffer2Blob(buffer);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.arrayBuffer2Blob = function(buffer) {\n return utils.arrayBuffer2Blob(buffer);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.transformTo = function(outputType, input) {\n return utils.transformTo(outputType, input);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.getTypeOf = function(input) {\n return utils.getTypeOf(input);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.checkSupport = function(type) {\n return utils.checkSupport(type);\n};\n\n/**\n * @deprecated\n * This value will be removed in a future version without replacement.\n */\nexports.MAX_VALUE_16BITS = utils.MAX_VALUE_16BITS;\n\n/**\n * @deprecated\n * This value will be removed in a future version without replacement.\n */\nexports.MAX_VALUE_32BITS = utils.MAX_VALUE_32BITS;\n\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.pretty = function(str) {\n return utils.pretty(str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.findCompression = function(compressionMethod) {\n return utils.findCompression(compressionMethod);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.isRegExp = function (object) {\n return utils.isRegExp(object);\n};\n\n\n},{\"./utils\":21}],8:[function(_dereq_,module,exports){\n'use strict';\nvar USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');\n\nvar pako = _dereq_(\"pako\");\nexports.uncompressInputType = USE_TYPEDARRAY ? \"uint8array\" : \"array\";\nexports.compressInputType = USE_TYPEDARRAY ? \"uint8array\" : \"array\";\n\nexports.magic = \"\\x08\\x00\";\nexports.compress = function(input) {\n return pako.deflateRaw(input);\n};\nexports.uncompress = function(input) {\n return pako.inflateRaw(input);\n};\n\n},{\"pako\":24}],9:[function(_dereq_,module,exports){\n'use strict';\n\nvar base64 = _dereq_('./base64');\n\n/**\nUsage:\n zip = new JSZip();\n zip.file(\"hello.txt\", \"Hello, World!\").file(\"tempfile\", \"nothing\");\n zip.folder(\"images\").file(\"smile.gif\", base64Data, {base64: true});\n zip.file(\"Xmas.txt\", \"Ho ho ho !\", {date : new Date(\"December 25, 2007 00:00:01\")});\n zip.remove(\"tempfile\");\n\n base64zip = zip.generate();\n\n**/\n\n/**\n * Representation a of zip file in js\n * @constructor\n * @param {String=|ArrayBuffer=|Uint8Array=} data the data to load, if any (optional).\n * @param {Object=} options the options for creating this objects (optional).\n */\nfunction JSZipSync(data, options) {\n // if this constructor is used without `new`, it adds `new` before itself:\n if(!(this instanceof JSZipSync)) return new JSZipSync(data, options);\n\n // object containing the files :\n // {\n // \"folder/\" : {...},\n // \"folder/data.txt\" : {...}\n // }\n this.files = {};\n\n this.comment = null;\n\n // Where we are in the hierarchy\n this.root = \"\";\n if (data) {\n this.load(data, options);\n }\n this.clone = function() {\n var newObj = new JSZipSync();\n for (var i in this) {\n if (typeof this[i] !== \"function\") {\n newObj[i] = this[i];\n }\n }\n return newObj;\n };\n}\nJSZipSync.prototype = _dereq_('./object');\nJSZipSync.prototype.load = _dereq_('./load');\nJSZipSync.support = _dereq_('./support');\nJSZipSync.defaults = _dereq_('./defaults');\n\n/**\n * @deprecated\n * This namespace will be removed in a future version without replacement.\n */\nJSZipSync.utils = _dereq_('./deprecatedPublicUtils');\n\nJSZipSync.base64 = {\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n encode : function(input) {\n return base64.encode(input);\n },\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n decode : function(input) {\n return base64.decode(input);\n }\n};\nJSZipSync.compressions = _dereq_('./compressions');\nmodule.exports = JSZipSync;\n\n},{\"./base64\":1,\"./compressions\":3,\"./defaults\":6,\"./deprecatedPublicUtils\":7,\"./load\":10,\"./object\":13,\"./support\":17}],10:[function(_dereq_,module,exports){\n'use strict';\nvar base64 = _dereq_('./base64');\nvar ZipEntries = _dereq_('./zipEntries');\nmodule.exports = function(data, options) {\n var files, zipEntries, i, input;\n options = options || {};\n if (options.base64) {\n data = base64.decode(data);\n }\n\n zipEntries = new ZipEntries(data, options);\n files = zipEntries.files;\n for (i = 0; i < files.length; i++) {\n input = files[i];\n this.file(input.fileName, input.decompressed, {\n binary: true,\n optimizedBinaryString: true,\n date: input.date,\n dir: input.dir,\n comment : input.fileComment.length ? input.fileComment : null,\n createFolders: options.createFolders\n });\n }\n if (zipEntries.zipComment.length) {\n this.comment = zipEntries.zipComment;\n }\n\n return this;\n};\n\n},{\"./base64\":1,\"./zipEntries\":22}],11:[function(_dereq_,module,exports){\n(function (Buffer){\n'use strict';\nvar Buffer_from = /*::(*/function(){}/*:: :any)*/;\nif(typeof Buffer !== 'undefined') {\n\tvar nbfs = !Buffer.from;\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\n}\nmodule.exports = function(data, encoding){\n return typeof data == 'number' ? Buffer.alloc(data) : Buffer_from(data, encoding);\n};\nmodule.exports.test = function(b){\n return Buffer.isBuffer(b);\n};\n}).call(this,(typeof Buffer !== \"undefined\" ? Buffer : undefined))\n},{}],12:[function(_dereq_,module,exports){\n'use strict';\nvar Uint8ArrayReader = _dereq_('./uint8ArrayReader');\n\nfunction NodeBufferReader(data) {\n this.data = data;\n this.length = this.data.length;\n this.index = 0;\n}\nNodeBufferReader.prototype = new Uint8ArrayReader();\n\n/**\n * @see DataReader.readData\n */\nNodeBufferReader.prototype.readData = function(size) {\n this.checkOffset(size);\n var result = this.data.slice(this.index, this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = NodeBufferReader;\n\n},{\"./uint8ArrayReader\":18}],13:[function(_dereq_,module,exports){\n'use strict';\nvar support = _dereq_('./support');\nvar utils = _dereq_('./utils');\nvar crc32 = _dereq_('./crc32');\nvar signature = _dereq_('./signature');\nvar defaults = _dereq_('./defaults');\nvar base64 = _dereq_('./base64');\nvar compressions = _dereq_('./compressions');\nvar CompressedObject = _dereq_('./compressedObject');\nvar nodeBuffer = _dereq_('./nodeBuffer');\nvar utf8 = _dereq_('./utf8');\nvar StringWriter = _dereq_('./stringWriter');\nvar Uint8ArrayWriter = _dereq_('./uint8ArrayWriter');\n\n/**\n * Returns the raw data of a ZipObject, decompress the content if necessary.\n * @param {ZipObject} file the file to use.\n * @return {String|ArrayBuffer|Uint8Array|Buffer} the data.\n */\nvar getRawData = function(file) {\n if (file._data instanceof CompressedObject) {\n file._data = file._data.getContent();\n file.options.binary = true;\n file.options.base64 = false;\n\n if (utils.getTypeOf(file._data) === \"uint8array\") {\n var copy = file._data;\n // when reading an arraybuffer, the CompressedObject mechanism will keep it and subarray() a Uint8Array.\n // if we request a file in the same format, we might get the same Uint8Array or its ArrayBuffer (the original zip file).\n file._data = new Uint8Array(copy.length);\n // with an empty Uint8Array, Opera fails with a \"Offset larger than array size\"\n if (copy.length !== 0) {\n file._data.set(copy, 0);\n }\n }\n }\n return file._data;\n};\n\n/**\n * Returns the data of a ZipObject in a binary form. If the content is an unicode string, encode it.\n * @param {ZipObject} file the file to use.\n * @return {String|ArrayBuffer|Uint8Array|Buffer} the data.\n */\nvar getBinaryData = function(file) {\n var result = getRawData(file),\n type = utils.getTypeOf(result);\n if (type === \"string\") {\n if (!file.options.binary) {\n // unicode text !\n // unicode string => binary string is a painful process, check if we can avoid it.\n if (support.nodebuffer) {\n return nodeBuffer(result, \"utf-8\");\n }\n }\n return file.asBinary();\n }\n return result;\n};\n\n/**\n * Transform this._data into a string.\n * @param {function} filter a function String -> String, applied if not null on the result.\n * @return {String} the string representing this._data.\n */\nvar dataToString = function(asUTF8) {\n var result = getRawData(this);\n if (result === null || typeof result === \"undefined\") {\n return \"\";\n }\n // if the data is a base64 string, we decode it before checking the encoding !\n if (this.options.base64) {\n result = base64.decode(result);\n }\n if (asUTF8 && this.options.binary) {\n // JSZip.prototype.utf8decode supports arrays as input\n // skip to array => string step, utf8decode will do it.\n result = out.utf8decode(result);\n }\n else {\n // no utf8 transformation, do the array => string step.\n result = utils.transformTo(\"string\", result);\n }\n\n if (!asUTF8 && !this.options.binary) {\n result = utils.transformTo(\"string\", out.utf8encode(result));\n }\n return result;\n};\n/**\n * A simple object representing a file in the zip file.\n * @constructor\n * @param {string} name the name of the file\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data\n * @param {Object} options the options of the file\n */\nvar ZipObject = function(name, data, options) {\n this.name = name;\n this.dir = options.dir;\n this.date = options.date;\n this.comment = options.comment;\n\n this._data = data;\n this.options = options;\n\n /*\n * This object contains initial values for dir and date.\n * With them, we can check if the user changed the deprecated metadata in\n * `ZipObject#options` or not.\n */\n this._initialMetadata = {\n dir : options.dir,\n date : options.date\n };\n};\n\nZipObject.prototype = {\n /**\n * Return the content as UTF8 string.\n * @return {string} the UTF8 string.\n */\n asText: function() {\n return dataToString.call(this, true);\n },\n /**\n * Returns the binary content.\n * @return {string} the content as binary.\n */\n asBinary: function() {\n return dataToString.call(this, false);\n },\n /**\n * Returns the content as a nodejs Buffer.\n * @return {Buffer} the content as a Buffer.\n */\n asNodeBuffer: function() {\n var result = getBinaryData(this);\n return utils.transformTo(\"nodebuffer\", result);\n },\n /**\n * Returns the content as an Uint8Array.\n * @return {Uint8Array} the content as an Uint8Array.\n */\n asUint8Array: function() {\n var result = getBinaryData(this);\n return utils.transformTo(\"uint8array\", result);\n },\n /**\n * Returns the content as an ArrayBuffer.\n * @return {ArrayBuffer} the content as an ArrayBufer.\n */\n asArrayBuffer: function() {\n return this.asUint8Array().buffer;\n }\n};\n\n/**\n * Transform an integer into a string in hexadecimal.\n * @private\n * @param {number} dec the number to convert.\n * @param {number} bytes the number of bytes to generate.\n * @returns {string} the result.\n */\nvar decToHex = function(dec, bytes) {\n var hex = \"\",\n i;\n for (i = 0; i < bytes; i++) {\n hex += String.fromCharCode(dec & 0xff);\n dec = dec >>> 8;\n }\n return hex;\n};\n\n/**\n * Merge the objects passed as parameters into a new one.\n * @private\n * @param {...Object} var_args All objects to merge.\n * @return {Object} a new object with the data of the others.\n */\nvar extend = function() {\n var result = {}, i, attr;\n for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers\n for (attr in arguments[i]) {\n if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === \"undefined\") {\n result[attr] = arguments[i][attr];\n }\n }\n }\n return result;\n};\n\n/**\n * Transforms the (incomplete) options from the user into the complete\n * set of options to create a file.\n * @private\n * @param {Object} o the options from the user.\n * @return {Object} the complete set of options.\n */\nvar prepareFileAttrs = function(o) {\n o = o || {};\n if (o.base64 === true && (o.binary === null || o.binary === undefined)) {\n o.binary = true;\n }\n o = extend(o, defaults);\n o.date = o.date || new Date();\n if (o.compression !== null) o.compression = o.compression.toUpperCase();\n\n return o;\n};\n\n/**\n * Add a file in the current folder.\n * @private\n * @param {string} name the name of the file\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file\n * @param {Object} o the options of the file\n * @return {Object} the new file.\n */\nvar fileAdd = function(name, data, o) {\n // be sure sub folders exist\n var dataType = utils.getTypeOf(data),\n parent;\n\n o = prepareFileAttrs(o);\n\n if (o.createFolders && (parent = parentFolder(name))) {\n folderAdd.call(this, parent, true);\n }\n\n if (o.dir || data === null || typeof data === \"undefined\") {\n o.base64 = false;\n o.binary = false;\n data = null;\n }\n else if (dataType === \"string\") {\n if (o.binary && !o.base64) {\n // optimizedBinaryString == true means that the file has already been filtered with a 0xFF mask\n if (o.optimizedBinaryString !== true) {\n // this is a string, not in a base64 format.\n // Be sure that this is a correct \"binary string\"\n data = utils.string2binary(data);\n }\n }\n }\n else { // arraybuffer, uint8array, ...\n o.base64 = false;\n o.binary = true;\n\n if (!dataType && !(data instanceof CompressedObject)) {\n throw new Error(\"The data of '\" + name + \"' is in an unsupported format !\");\n }\n\n // special case : it's way easier to work with Uint8Array than with ArrayBuffer\n if (dataType === \"arraybuffer\") {\n data = utils.transformTo(\"uint8array\", data);\n }\n }\n\n var object = new ZipObject(name, data, o);\n this.files[name] = object;\n return object;\n};\n\n/**\n * Find the parent folder of the path.\n * @private\n * @param {string} path the path to use\n * @return {string} the parent folder, or \"\"\n */\nvar parentFolder = function (path) {\n if (path.slice(-1) == '/') {\n path = path.substring(0, path.length - 1);\n }\n var lastSlash = path.lastIndexOf('/');\n return (lastSlash > 0) ? path.substring(0, lastSlash) : \"\";\n};\n\n/**\n * Add a (sub) folder in the current folder.\n * @private\n * @param {string} name the folder's name\n * @param {boolean=} [createFolders] If true, automatically create sub\n * folders. Defaults to false.\n * @return {Object} the new folder.\n */\nvar folderAdd = function(name, createFolders) {\n // Check the name ends with a /\n if (name.slice(-1) != \"/\") {\n name += \"/\"; // IE doesn't like substr(-1)\n }\n\n createFolders = (typeof createFolders !== 'undefined') ? createFolders : false;\n\n // Does this folder already exist?\n if (!this.files[name]) {\n fileAdd.call(this, name, null, {\n dir: true,\n createFolders: createFolders\n });\n }\n return this.files[name];\n};\n\n/**\n * Generate a JSZip.CompressedObject for a given zipOject.\n * @param {ZipObject} file the object to read.\n * @param {JSZip.compression} compression the compression to use.\n * @return {JSZip.CompressedObject} the compressed result.\n */\nvar generateCompressedObjectFrom = function(file, compression) {\n var result = new CompressedObject(),\n content;\n\n // the data has not been decompressed, we might reuse things !\n if (file._data instanceof CompressedObject) {\n result.uncompressedSize = file._data.uncompressedSize;\n result.crc32 = file._data.crc32;\n\n if (result.uncompressedSize === 0 || file.dir) {\n compression = compressions['STORE'];\n result.compressedContent = \"\";\n result.crc32 = 0;\n }\n else if (file._data.compressionMethod === compression.magic) {\n result.compressedContent = file._data.getCompressedContent();\n }\n else {\n content = file._data.getContent();\n // need to decompress / recompress\n result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content));\n }\n }\n else {\n // have uncompressed data\n content = getBinaryData(file);\n if (!content || content.length === 0 || file.dir) {\n compression = compressions['STORE'];\n content = \"\";\n }\n result.uncompressedSize = content.length;\n result.crc32 = crc32(content);\n result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content));\n }\n\n result.compressedSize = result.compressedContent.length;\n result.compressionMethod = compression.magic;\n\n return result;\n};\n\n/**\n * Generate the various parts used in the construction of the final zip file.\n * @param {string} name the file name.\n * @param {ZipObject} file the file content.\n * @param {JSZip.CompressedObject} compressedObject the compressed object.\n * @param {number} offset the current offset from the start of the zip file.\n * @return {object} the zip parts.\n */\nvar generateZipParts = function(name, file, compressedObject, offset) {\n var data = compressedObject.compressedContent,\n utfEncodedFileName = utils.transformTo(\"string\", utf8.utf8encode(file.name)),\n comment = file.comment || \"\",\n utfEncodedComment = utils.transformTo(\"string\", utf8.utf8encode(comment)),\n useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,\n useUTF8ForComment = utfEncodedComment.length !== comment.length,\n o = file.options,\n dosTime,\n dosDate,\n extraFields = \"\",\n unicodePathExtraField = \"\",\n unicodeCommentExtraField = \"\",\n dir, date;\n\n\n // handle the deprecated options.dir\n if (file._initialMetadata.dir !== file.dir) {\n dir = file.dir;\n } else {\n dir = o.dir;\n }\n\n // handle the deprecated options.date\n if(file._initialMetadata.date !== file.date) {\n date = file.date;\n } else {\n date = o.date;\n }\n\n\n dosTime = date.getHours();\n dosTime = dosTime << 6;\n dosTime = dosTime | date.getMinutes();\n dosTime = dosTime << 5;\n dosTime = dosTime | date.getSeconds() / 2;\n\n dosDate = date.getFullYear() - 1980;\n dosDate = dosDate << 4;\n dosDate = dosDate | (date.getMonth() + 1);\n dosDate = dosDate << 5;\n dosDate = dosDate | date.getDate();\n\n if (useUTF8ForFileName) {\n // set the unicode path extra field. unzip needs at least one extra\n // field to correctly handle unicode path, so using the path is as good\n // as any other information. This could improve the situation with\n // other archive managers too.\n // This field is usually used without the utf8 flag, with a non\n // unicode path in the header (winrar, winzip). This helps (a bit)\n // with the messy Windows' default compressed folders feature but\n // breaks on p7zip which doesn't seek the unicode path extra field.\n // So for now, UTF-8 everywhere !\n unicodePathExtraField =\n // Version\n decToHex(1, 1) +\n // NameCRC32\n decToHex(crc32(utfEncodedFileName), 4) +\n // UnicodeName\n utfEncodedFileName;\n\n extraFields +=\n // Info-ZIP Unicode Path Extra Field\n \"\\x75\\x70\" +\n // size\n decToHex(unicodePathExtraField.length, 2) +\n // content\n unicodePathExtraField;\n }\n\n if(useUTF8ForComment) {\n\n unicodeCommentExtraField =\n // Version\n decToHex(1, 1) +\n // CommentCRC32\n decToHex(this.crc32(utfEncodedComment), 4) +\n // UnicodeName\n utfEncodedComment;\n\n extraFields +=\n // Info-ZIP Unicode Path Extra Field\n \"\\x75\\x63\" +\n // size\n decToHex(unicodeCommentExtraField.length, 2) +\n // content\n unicodeCommentExtraField;\n }\n\n var header = \"\";\n\n // version needed to extract\n header += \"\\x0A\\x00\";\n // general purpose bit flag\n // set bit 11 if utf8\n header += (useUTF8ForFileName || useUTF8ForComment) ? \"\\x00\\x08\" : \"\\x00\\x00\";\n // compression method\n header += compressedObject.compressionMethod;\n // last mod file time\n header += decToHex(dosTime, 2);\n // last mod file date\n header += decToHex(dosDate, 2);\n // crc-32\n header += decToHex(compressedObject.crc32, 4);\n // compressed size\n header += decToHex(compressedObject.compressedSize, 4);\n // uncompressed size\n header += decToHex(compressedObject.uncompressedSize, 4);\n // file name length\n header += decToHex(utfEncodedFileName.length, 2);\n // extra field length\n header += decToHex(extraFields.length, 2);\n\n\n var fileRecord = signature.LOCAL_FILE_HEADER + header + utfEncodedFileName + extraFields;\n\n var dirRecord = signature.CENTRAL_FILE_HEADER +\n // version made by (00: DOS)\n \"\\x14\\x00\" +\n // file header (common to file and central directory)\n header +\n // file comment length\n decToHex(utfEncodedComment.length, 2) +\n // disk number start\n \"\\x00\\x00\" +\n // internal file attributes TODO\n \"\\x00\\x00\" +\n // external file attributes\n (dir === true ? \"\\x10\\x00\\x00\\x00\" : \"\\x00\\x00\\x00\\x00\") +\n // relative offset of local header\n decToHex(offset, 4) +\n // file name\n utfEncodedFileName +\n // extra field\n extraFields +\n // file comment\n utfEncodedComment;\n\n return {\n fileRecord: fileRecord,\n dirRecord: dirRecord,\n compressedObject: compressedObject\n };\n};\n\n\n// return the actual prototype of JSZip\nvar out = {\n /**\n * Read an existing zip and merge the data in the current JSZip object.\n * The implementation is in jszip-load.js, don't forget to include it.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} stream The stream to load\n * @param {Object} options Options for loading the stream.\n * options.base64 : is the stream in base64 ? default : false\n * @return {JSZip} the current JSZip object\n */\n load: function(stream, options) {\n throw new Error(\"Load method is not defined. Is the file jszip-load.js included ?\");\n },\n\n /**\n * Filter nested files/folders with the specified function.\n * @param {Function} search the predicate to use :\n * function (relativePath, file) {...}\n * It takes 2 arguments : the relative path and the file.\n * @return {Array} An array of matching elements.\n */\n filter: function(search) {\n var result = [],\n filename, relativePath, file, fileClone;\n for (filename in this.files) {\n if (!this.files.hasOwnProperty(filename)) {\n continue;\n }\n file = this.files[filename];\n // return a new object, don't let the user mess with our internal objects :)\n fileClone = new ZipObject(file.name, file._data, extend(file.options));\n relativePath = filename.slice(this.root.length, filename.length);\n if (filename.slice(0, this.root.length) === this.root && // the file is in the current root\n search(relativePath, fileClone)) { // and the file matches the function\n result.push(fileClone);\n }\n }\n return result;\n },\n\n /**\n * Add a file to the zip file, or search a file.\n * @param {string|RegExp} name The name of the file to add (if data is defined),\n * the name of the file to find (if no data) or a regex to match files.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded\n * @param {Object} o File options\n * @return {JSZip|Object|Array} this JSZip object (when adding a file),\n * a file (when searching by string) or an array of files (when searching by regex).\n */\n file: function(name, data, o) {\n if (arguments.length === 1) {\n if (utils.isRegExp(name)) {\n var regexp = name;\n return this.filter(function(relativePath, file) {\n return !file.dir && regexp.test(relativePath);\n });\n }\n else { // text\n return this.filter(function(relativePath, file) {\n return !file.dir && relativePath === name;\n })[0] || null;\n }\n }\n else { // more than one argument : we have data !\n name = this.root + name;\n fileAdd.call(this, name, data, o);\n }\n return this;\n },\n\n /**\n * Add a directory to the zip file, or search.\n * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders.\n * @return {JSZip} an object with the new directory as the root, or an array containing matching folders.\n */\n folder: function(arg) {\n if (!arg) {\n return this;\n }\n\n if (utils.isRegExp(arg)) {\n return this.filter(function(relativePath, file) {\n return file.dir && arg.test(relativePath);\n });\n }\n\n // else, name is a new folder\n var name = this.root + arg;\n var newFolder = folderAdd.call(this, name);\n\n // Allow chaining by returning a new object with this folder as the root\n var ret = this.clone();\n ret.root = newFolder.name;\n return ret;\n },\n\n /**\n * Delete a file, or a directory and all sub-files, from the zip\n * @param {string} name the name of the file to delete\n * @return {JSZip} this JSZip object\n */\n remove: function(name) {\n name = this.root + name;\n var file = this.files[name];\n if (!file) {\n // Look for any folders\n if (name.slice(-1) != \"/\") {\n name += \"/\";\n }\n file = this.files[name];\n }\n\n if (file && !file.dir) {\n // file\n delete this.files[name];\n } else {\n // maybe a folder, delete recursively\n var kids = this.filter(function(relativePath, file) {\n return file.name.slice(0, name.length) === name;\n });\n for (var i = 0; i < kids.length; i++) {\n delete this.files[kids[i].name];\n }\n }\n\n return this;\n },\n\n /**\n * Generate the complete zip file\n * @param {Object} options the options to generate the zip file :\n * - base64, (deprecated, use type instead) true to generate base64.\n * - compression, \"STORE\" by default.\n * - type, \"base64\" by default. Values are : string, base64, uint8array, arraybuffer, blob.\n * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file\n */\n generate: function(options) {\n options = extend(options || {}, {\n base64: true,\n compression: \"STORE\",\n type: \"base64\",\n comment: null\n });\n\n utils.checkSupport(options.type);\n\n var zipData = [],\n localDirLength = 0,\n centralDirLength = 0,\n writer, i,\n utfEncodedComment = utils.transformTo(\"string\", this.utf8encode(options.comment || this.comment || \"\"));\n\n // first, generate all the zip parts.\n for (var name in this.files) {\n if (!this.files.hasOwnProperty(name)) {\n continue;\n }\n var file = this.files[name];\n\n var compressionName = file.options.compression || options.compression.toUpperCase();\n var compression = compressions[compressionName];\n if (!compression) {\n throw new Error(compressionName + \" is not a valid compression method !\");\n }\n\n var compressedObject = generateCompressedObjectFrom.call(this, file, compression);\n\n var zipPart = generateZipParts.call(this, name, file, compressedObject, localDirLength);\n localDirLength += zipPart.fileRecord.length + compressedObject.compressedSize;\n centralDirLength += zipPart.dirRecord.length;\n zipData.push(zipPart);\n }\n\n var dirEnd = \"\";\n\n // end of central dir signature\n dirEnd = signature.CENTRAL_DIRECTORY_END +\n // number of this disk\n \"\\x00\\x00\" +\n // number of the disk with the start of the central directory\n \"\\x00\\x00\" +\n // total number of entries in the central directory on this disk\n decToHex(zipData.length, 2) +\n // total number of entries in the central directory\n decToHex(zipData.length, 2) +\n // size of the central directory 4 bytes\n decToHex(centralDirLength, 4) +\n // offset of start of central directory with respect to the starting disk number\n decToHex(localDirLength, 4) +\n // .ZIP file comment length\n decToHex(utfEncodedComment.length, 2) +\n // .ZIP file comment\n utfEncodedComment;\n\n\n // we have all the parts (and the total length)\n // time to create a writer !\n var typeName = options.type.toLowerCase();\n if(typeName===\"uint8array\"||typeName===\"arraybuffer\"||typeName===\"blob\"||typeName===\"nodebuffer\") {\n writer = new Uint8ArrayWriter(localDirLength + centralDirLength + dirEnd.length);\n }else{\n writer = new StringWriter(localDirLength + centralDirLength + dirEnd.length);\n }\n\n for (i = 0; i < zipData.length; i++) {\n writer.append(zipData[i].fileRecord);\n writer.append(zipData[i].compressedObject.compressedContent);\n }\n for (i = 0; i < zipData.length; i++) {\n writer.append(zipData[i].dirRecord);\n }\n\n writer.append(dirEnd);\n\n var zip = writer.finalize();\n\n\n\n switch(options.type.toLowerCase()) {\n // case \"zip is an Uint8Array\"\n case \"uint8array\" :\n case \"arraybuffer\" :\n case \"nodebuffer\" :\n return utils.transformTo(options.type.toLowerCase(), zip);\n case \"blob\" :\n return utils.arrayBuffer2Blob(utils.transformTo(\"arraybuffer\", zip));\n // case \"zip is a string\"\n case \"base64\" :\n return (options.base64) ? base64.encode(zip) : zip;\n default : // case \"string\" :\n return zip;\n }\n\n },\n\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n crc32: function (input, crc) {\n return crc32(input, crc);\n },\n\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n utf8encode: function (string) {\n return utils.transformTo(\"string\", utf8.utf8encode(string));\n },\n\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n utf8decode: function (input) {\n return utf8.utf8decode(input);\n }\n};\nmodule.exports = out;\n\n},{\"./base64\":1,\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./defaults\":6,\"./nodeBuffer\":11,\"./signature\":14,\"./stringWriter\":16,\"./support\":17,\"./uint8ArrayWriter\":19,\"./utf8\":20,\"./utils\":21}],14:[function(_dereq_,module,exports){\n'use strict';\nexports.LOCAL_FILE_HEADER = \"PK\\x03\\x04\";\nexports.CENTRAL_FILE_HEADER = \"PK\\x01\\x02\";\nexports.CENTRAL_DIRECTORY_END = \"PK\\x05\\x06\";\nexports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = \"PK\\x06\\x07\";\nexports.ZIP64_CENTRAL_DIRECTORY_END = \"PK\\x06\\x06\";\nexports.DATA_DESCRIPTOR = \"PK\\x07\\x08\";\n\n},{}],15:[function(_dereq_,module,exports){\n'use strict';\nvar DataReader = _dereq_('./dataReader');\nvar utils = _dereq_('./utils');\n\nfunction StringReader(data, optimizedBinaryString) {\n this.data = data;\n if (!optimizedBinaryString) {\n this.data = utils.string2binary(this.data);\n }\n this.length = this.data.length;\n this.index = 0;\n}\nStringReader.prototype = new DataReader();\n/**\n * @see DataReader.byteAt\n */\nStringReader.prototype.byteAt = function(i) {\n return this.data.charCodeAt(i);\n};\n/**\n * @see DataReader.lastIndexOfSignature\n */\nStringReader.prototype.lastIndexOfSignature = function(sig) {\n return this.data.lastIndexOf(sig);\n};\n/**\n * @see DataReader.readData\n */\nStringReader.prototype.readData = function(size) {\n this.checkOffset(size);\n // this will work because the constructor applied the \"& 0xff\" mask.\n var result = this.data.slice(this.index, this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = StringReader;\n\n},{\"./dataReader\":5,\"./utils\":21}],16:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\n/**\n * An object to write any content to a string.\n * @constructor\n */\nvar StringWriter = function() {\n this.data = [];\n};\nStringWriter.prototype = {\n /**\n * Append any content to the current string.\n * @param {Object} input the content to add.\n */\n append: function(input) {\n input = utils.transformTo(\"string\", input);\n this.data.push(input);\n },\n /**\n * Finalize the construction an return the result.\n * @return {string} the generated string.\n */\n finalize: function() {\n return this.data.join(\"\");\n }\n};\n\nmodule.exports = StringWriter;\n\n},{\"./utils\":21}],17:[function(_dereq_,module,exports){\n(function (Buffer){\n'use strict';\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\n// contains true if JSZip can read/generate nodejs Buffer, false otherwise.\n// Browserify will provide a Buffer implementation for browsers, which is\n// an augmented Uint8Array (i.e., can be used as either Buffer or U8).\nexports.nodebuffer = typeof Buffer !== \"undefined\";\n// contains true if JSZip can read/generate Uint8Array, false otherwise.\nexports.uint8array = typeof Uint8Array !== \"undefined\";\n\nif (typeof ArrayBuffer === \"undefined\") {\n exports.blob = false;\n}\nelse {\n var buffer = new ArrayBuffer(0);\n try {\n exports.blob = new Blob([buffer], {\n type: \"application/zip\"\n }).size === 0;\n }\n catch (e) {\n try {\n var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n exports.blob = builder.getBlob('application/zip').size === 0;\n }\n catch (e) {\n exports.blob = false;\n }\n }\n}\n\n}).call(this,(typeof Buffer !== \"undefined\" ? Buffer : undefined))\n},{}],18:[function(_dereq_,module,exports){\n'use strict';\nvar DataReader = _dereq_('./dataReader');\n\nfunction Uint8ArrayReader(data) {\n if (data) {\n this.data = data;\n this.length = this.data.length;\n this.index = 0;\n }\n}\nUint8ArrayReader.prototype = new DataReader();\n/**\n * @see DataReader.byteAt\n */\nUint8ArrayReader.prototype.byteAt = function(i) {\n return this.data[i];\n};\n/**\n * @see DataReader.lastIndexOfSignature\n */\nUint8ArrayReader.prototype.lastIndexOfSignature = function(sig) {\n var sig0 = sig.charCodeAt(0),\n sig1 = sig.charCodeAt(1),\n sig2 = sig.charCodeAt(2),\n sig3 = sig.charCodeAt(3);\n for (var i = this.length - 4; i >= 0; --i) {\n if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {\n return i;\n }\n }\n\n return -1;\n};\n/**\n * @see DataReader.readData\n */\nUint8ArrayReader.prototype.readData = function(size) {\n this.checkOffset(size);\n if(size === 0) {\n // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].\n return new Uint8Array(0);\n }\n var result = this.data.subarray(this.index, this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = Uint8ArrayReader;\n\n},{\"./dataReader\":5}],19:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\n/**\n * An object to write any content to an Uint8Array.\n * @constructor\n * @param {number} length The length of the array.\n */\nvar Uint8ArrayWriter = function(length) {\n this.data = new Uint8Array(length);\n this.index = 0;\n};\nUint8ArrayWriter.prototype = {\n /**\n * Append any content to the current array.\n * @param {Object} input the content to add.\n */\n append: function(input) {\n if (input.length !== 0) {\n // with an empty Uint8Array, Opera fails with a \"Offset larger than array size\"\n input = utils.transformTo(\"uint8array\", input);\n this.data.set(input, this.index);\n this.index += input.length;\n }\n },\n /**\n * Finalize the construction an return the result.\n * @return {Uint8Array} the generated array.\n */\n finalize: function() {\n return this.data;\n }\n};\n\nmodule.exports = Uint8ArrayWriter;\n\n},{\"./utils\":21}],20:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\nvar support = _dereq_('./support');\nvar nodeBuffer = _dereq_('./nodeBuffer');\n\n/**\n * The following functions come from pako, from pako/lib/utils/strings\n * released under the MIT license, see pako https://github.com/nodeca/pako/\n */\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new Array(256);\nfor (var i=0; i<256; i++) {\n _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);\n}\n_utf8len[254]=_utf8len[254]=1; // Invalid sequence start\n\n// convert string to array (typed, when possible)\nvar string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if (((c & 0xfc00) === 0xd800) && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += (c < 0x80) ? 1 : ((c < 0x800) ? 2 : ((c < 0x10000) ? 3 : 4));\n }\n\n // allocate buffer\n if (support.uint8array) {\n buf = new Uint8Array(buf_len);\n } else {\n buf = new Array(buf_len);\n }\n\n // convert\n for (i=0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | ((c >>> 6) & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | ((c >>> 12) & 0x3f);\n buf[i++] = 0x80 | ((c >>> 6) & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = function(buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max-1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Fuckup - very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means vuffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n// convert array to string\nvar buf2string = function (buf) {\n var str, i, out, c, c_len;\n var len = buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len*2);\n\n for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n // shrinkBuf(utf16buf, out)\n if (utf16buf.length !== out) {\n if(utf16buf.subarray) {\n utf16buf = utf16buf.subarray(0, out);\n } else {\n utf16buf.length = out;\n }\n }\n\n // return String.fromCharCode.apply(null, utf16buf);\n return utils.applyFromCharCode(utf16buf);\n};\n\n\n// That's all for the pako functions.\n\n\n/**\n * Transform a javascript string into an array (typed if possible) of bytes,\n * UTF-8 encoded.\n * @param {String} str the string to encode\n * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string.\n */\nexports.utf8encode = function utf8encode(str) {\n if (support.nodebuffer) {\n return nodeBuffer(str, \"utf-8\");\n }\n\n return string2buf(str);\n};\n\n\n/**\n * Transform a bytes array (or a representation) representing an UTF-8 encoded\n * string into a javascript string.\n * @param {Array|Uint8Array|Buffer} buf the data de decode\n * @return {String} the decoded string.\n */\nexports.utf8decode = function utf8decode(buf) {\n if (support.nodebuffer) {\n return utils.transformTo(\"nodebuffer\", buf).toString(\"utf-8\");\n }\n\n buf = utils.transformTo(support.uint8array ? \"uint8array\" : \"array\", buf);\n\n // return buf2string(buf);\n // Chrome prefers to work with \"small\" chunks of data\n // for the method buf2string.\n // Firefox and Chrome has their own shortcut, IE doesn't seem to really care.\n var result = [], k = 0, len = buf.length, chunk = 65536;\n while (k < len) {\n var nextBoundary = utf8border(buf, Math.min(k + chunk, len));\n if (support.uint8array) {\n result.push(buf2string(buf.subarray(k, nextBoundary)));\n } else {\n result.push(buf2string(buf.slice(k, nextBoundary)));\n }\n k = nextBoundary;\n }\n return result.join(\"\");\n\n};\n// vim: set shiftwidth=4 softtabstop=4:\n\n},{\"./nodeBuffer\":11,\"./support\":17,\"./utils\":21}],21:[function(_dereq_,module,exports){\n'use strict';\nvar support = _dereq_('./support');\nvar compressions = _dereq_('./compressions');\nvar nodeBuffer = _dereq_('./nodeBuffer');\n/**\n * Convert a string to a \"binary string\" : a string containing only char codes between 0 and 255.\n * @param {string} str the string to transform.\n * @return {String} the binary string.\n */\nexports.string2binary = function(str) {\n var result = \"\";\n for (var i = 0; i < str.length; i++) {\n result += String.fromCharCode(str.charCodeAt(i) & 0xff);\n }\n return result;\n};\nexports.arrayBuffer2Blob = function(buffer) {\n exports.checkSupport(\"blob\");\n\n try {\n // Blob constructor\n return new Blob([buffer], {\n type: \"application/zip\"\n });\n }\n catch (e) {\n\n try {\n // deprecated, browser only, old way\n var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n return builder.getBlob('application/zip');\n }\n catch (e) {\n\n // well, fuck ?!\n throw new Error(\"Bug : can't construct the Blob.\");\n }\n }\n\n\n};\n/**\n * The identity function.\n * @param {Object} input the input.\n * @return {Object} the same input.\n */\nfunction identity(input) {\n return input;\n}\n\n/**\n * Fill in an array with a string.\n * @param {String} str the string to use.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated).\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array.\n */\nfunction stringToArrayLike(str, array) {\n for (var i = 0; i < str.length; ++i) {\n array[i] = str.charCodeAt(i) & 0xFF;\n }\n return array;\n}\n\n/**\n * Transform an array-like object to a string.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @return {String} the result.\n */\nfunction arrayLikeToString(array) {\n // Performances notes :\n // --------------------\n // String.fromCharCode.apply(null, array) is the fastest, see\n // see http://jsperf.com/converting-a-uint8array-to-a-string/2\n // but the stack is limited (and we can get huge arrays !).\n //\n // result += String.fromCharCode(array[i]); generate too many strings !\n //\n // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2\n var chunk = 65536;\n var result = [],\n len = array.length,\n type = exports.getTypeOf(array),\n k = 0,\n canUseApply = true;\n try {\n switch(type) {\n case \"uint8array\":\n String.fromCharCode.apply(null, new Uint8Array(0));\n break;\n case \"nodebuffer\":\n String.fromCharCode.apply(null, nodeBuffer(0));\n break;\n }\n } catch(e) {\n canUseApply = false;\n }\n\n // no apply : slow and painful algorithm\n // default browser on android 4.*\n if (!canUseApply) {\n var resultStr = \"\";\n for(var i = 0; i < array.length;i++) {\n resultStr += String.fromCharCode(array[i]);\n }\n return resultStr;\n }\n while (k < len && chunk > 1) {\n try {\n if (type === \"array\" || type === \"nodebuffer\") {\n result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len))));\n }\n else {\n result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len))));\n }\n k += chunk;\n }\n catch (e) {\n chunk = Math.floor(chunk / 2);\n }\n }\n return result.join(\"\");\n}\n\nexports.applyFromCharCode = arrayLikeToString;\n\n\n/**\n * Copy the data from an array-like to an other array-like.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated.\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array.\n */\nfunction arrayLikeToArrayLike(arrayFrom, arrayTo) {\n for (var i = 0; i < arrayFrom.length; i++) {\n arrayTo[i] = arrayFrom[i];\n }\n return arrayTo;\n}\n\n// a matrix containing functions to transform everything into everything.\nvar transform = {};\n\n// string to ?\ntransform[\"string\"] = {\n \"string\": identity,\n \"array\": function(input) {\n return stringToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return transform[\"string\"][\"uint8array\"](input).buffer;\n },\n \"uint8array\": function(input) {\n return stringToArrayLike(input, new Uint8Array(input.length));\n },\n \"nodebuffer\": function(input) {\n return stringToArrayLike(input, nodeBuffer(input.length));\n }\n};\n\n// array to ?\ntransform[\"array\"] = {\n \"string\": arrayLikeToString,\n \"array\": identity,\n \"arraybuffer\": function(input) {\n return (new Uint8Array(input)).buffer;\n },\n \"uint8array\": function(input) {\n return new Uint8Array(input);\n },\n \"nodebuffer\": function(input) {\n return nodeBuffer(input);\n }\n};\n\n// arraybuffer to ?\ntransform[\"arraybuffer\"] = {\n \"string\": function(input) {\n return arrayLikeToString(new Uint8Array(input));\n },\n \"array\": function(input) {\n return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength));\n },\n \"arraybuffer\": identity,\n \"uint8array\": function(input) {\n return new Uint8Array(input);\n },\n \"nodebuffer\": function(input) {\n return nodeBuffer(new Uint8Array(input));\n }\n};\n\n// uint8array to ?\ntransform[\"uint8array\"] = {\n \"string\": arrayLikeToString,\n \"array\": function(input) {\n return arrayLikeToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return input.buffer;\n },\n \"uint8array\": identity,\n \"nodebuffer\": function(input) {\n return nodeBuffer(input);\n }\n};\n\n// nodebuffer to ?\ntransform[\"nodebuffer\"] = {\n \"string\": arrayLikeToString,\n \"array\": function(input) {\n return arrayLikeToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return transform[\"nodebuffer\"][\"uint8array\"](input).buffer;\n },\n \"uint8array\": function(input) {\n return arrayLikeToArrayLike(input, new Uint8Array(input.length));\n },\n \"nodebuffer\": identity\n};\n\n/**\n * Transform an input into any type.\n * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer.\n * If no output type is specified, the unmodified input will be returned.\n * @param {String} outputType the output type.\n * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert.\n * @throws {Error} an Error if the browser doesn't support the requested output type.\n */\nexports.transformTo = function(outputType, input) {\n if (!input) {\n // undefined, null, etc\n // an empty string won't harm.\n input = \"\";\n }\n if (!outputType) {\n return input;\n }\n exports.checkSupport(outputType);\n var inputType = exports.getTypeOf(input);\n var result = transform[inputType][outputType](input);\n return result;\n};\n\n/**\n * Return the type of the input.\n * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer.\n * @param {Object} input the input to identify.\n * @return {String} the (lowercase) type of the input.\n */\nexports.getTypeOf = function(input) {\n if (typeof input === \"string\") {\n return \"string\";\n }\n if (Object.prototype.toString.call(input) === \"[object Array]\") {\n return \"array\";\n }\n if (support.nodebuffer && nodeBuffer.test(input)) {\n return \"nodebuffer\";\n }\n if (support.uint8array && input instanceof Uint8Array) {\n return \"uint8array\";\n }\n if (support.arraybuffer && input instanceof ArrayBuffer) {\n return \"arraybuffer\";\n }\n};\n\n/**\n * Throw an exception if the type is not supported.\n * @param {String} type the type to check.\n * @throws {Error} an Error if the browser doesn't support the requested type.\n */\nexports.checkSupport = function(type) {\n var supported = support[type.toLowerCase()];\n if (!supported) {\n throw new Error(type + \" is not supported by this browser\");\n }\n};\nexports.MAX_VALUE_16BITS = 65535;\nexports.MAX_VALUE_32BITS = -1; // well, \"\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\" is parsed as -1\n\n/**\n * Prettify a string read as binary.\n * @param {string} str the string to prettify.\n * @return {string} a pretty string.\n */\nexports.pretty = function(str) {\n var res = '',\n code, i;\n for (i = 0; i < (str || \"\").length; i++) {\n code = str.charCodeAt(i);\n res += '\\\\x' + (code < 16 ? \"0\" : \"\") + code.toString(16).toUpperCase();\n }\n return res;\n};\n\n/**\n * Find a compression registered in JSZip.\n * @param {string} compressionMethod the method magic to find.\n * @return {Object|null} the JSZip compression object, null if none found.\n */\nexports.findCompression = function(compressionMethod) {\n for (var method in compressions) {\n if (!compressions.hasOwnProperty(method)) {\n continue;\n }\n if (compressions[method].magic === compressionMethod) {\n return compressions[method];\n }\n }\n return null;\n};\n/**\n* Cross-window, cross-Node-context regular expression detection\n* @param {Object} object Anything\n* @return {Boolean} true if the object is a regular expression,\n* false otherwise\n*/\nexports.isRegExp = function (object) {\n return Object.prototype.toString.call(object) === \"[object RegExp]\";\n};\n\n\n},{\"./compressions\":3,\"./nodeBuffer\":11,\"./support\":17}],22:[function(_dereq_,module,exports){\n'use strict';\nvar StringReader = _dereq_('./stringReader');\nvar NodeBufferReader = _dereq_('./nodeBufferReader');\nvar Uint8ArrayReader = _dereq_('./uint8ArrayReader');\nvar utils = _dereq_('./utils');\nvar sig = _dereq_('./signature');\nvar ZipEntry = _dereq_('./zipEntry');\nvar support = _dereq_('./support');\nvar jszipProto = _dereq_('./object');\n// class ZipEntries {{{\n/**\n * All the entries in the zip file.\n * @constructor\n * @param {String|ArrayBuffer|Uint8Array} data the binary stream to load.\n * @param {Object} loadOptions Options for loading the stream.\n */\nfunction ZipEntries(data, loadOptions) {\n this.files = [];\n this.loadOptions = loadOptions;\n if (data) {\n this.load(data);\n }\n}\nZipEntries.prototype = {\n /**\n * Check that the reader is on the speficied signature.\n * @param {string} expectedSignature the expected signature.\n * @throws {Error} if it is an other signature.\n */\n checkSignature: function(expectedSignature) {\n var signature = this.reader.readString(4);\n if (signature !== expectedSignature) {\n throw new Error(\"Corrupted zip or bug : unexpected signature \" + \"(\" + utils.pretty(signature) + \", expected \" + utils.pretty(expectedSignature) + \")\");\n }\n },\n /**\n * Read the end of the central directory.\n */\n readBlockEndOfCentral: function() {\n this.diskNumber = this.reader.readInt(2);\n this.diskWithCentralDirStart = this.reader.readInt(2);\n this.centralDirRecordsOnThisDisk = this.reader.readInt(2);\n this.centralDirRecords = this.reader.readInt(2);\n this.centralDirSize = this.reader.readInt(4);\n this.centralDirOffset = this.reader.readInt(4);\n\n this.zipCommentLength = this.reader.readInt(2);\n // warning : the encoding depends of the system locale\n // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded.\n // On a windows machine, this field is encoded with the localized windows code page.\n this.zipComment = this.reader.readString(this.zipCommentLength);\n // To get consistent behavior with the generation part, we will assume that\n // this is utf8 encoded.\n this.zipComment = jszipProto.utf8decode(this.zipComment);\n },\n /**\n * Read the end of the Zip 64 central directory.\n * Not merged with the method readEndOfCentral :\n * The end of central can coexist with its Zip64 brother,\n * I don't want to read the wrong number of bytes !\n */\n readBlockZip64EndOfCentral: function() {\n this.zip64EndOfCentralSize = this.reader.readInt(8);\n this.versionMadeBy = this.reader.readString(2);\n this.versionNeeded = this.reader.readInt(2);\n this.diskNumber = this.reader.readInt(4);\n this.diskWithCentralDirStart = this.reader.readInt(4);\n this.centralDirRecordsOnThisDisk = this.reader.readInt(8);\n this.centralDirRecords = this.reader.readInt(8);\n this.centralDirSize = this.reader.readInt(8);\n this.centralDirOffset = this.reader.readInt(8);\n\n this.zip64ExtensibleData = {};\n var extraDataSize = this.zip64EndOfCentralSize - 44,\n index = 0,\n extraFieldId,\n extraFieldLength,\n extraFieldValue;\n while (index < extraDataSize) {\n extraFieldId = this.reader.readInt(2);\n extraFieldLength = this.reader.readInt(4);\n extraFieldValue = this.reader.readString(extraFieldLength);\n this.zip64ExtensibleData[extraFieldId] = {\n id: extraFieldId,\n length: extraFieldLength,\n value: extraFieldValue\n };\n }\n },\n /**\n * Read the end of the Zip 64 central directory locator.\n */\n readBlockZip64EndOfCentralLocator: function() {\n this.diskWithZip64CentralDirStart = this.reader.readInt(4);\n this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8);\n this.disksCount = this.reader.readInt(4);\n if (this.disksCount > 1) {\n throw new Error(\"Multi-volumes zip are not supported\");\n }\n },\n /**\n * Read the local files, based on the offset read in the central part.\n */\n readLocalFiles: function() {\n var i, file;\n for (i = 0; i < this.files.length; i++) {\n file = this.files[i];\n this.reader.setIndex(file.localHeaderOffset);\n this.checkSignature(sig.LOCAL_FILE_HEADER);\n file.readLocalPart(this.reader);\n file.handleUTF8();\n }\n },\n /**\n * Read the central directory.\n */\n readCentralDir: function() {\n var file;\n\n this.reader.setIndex(this.centralDirOffset);\n while (this.reader.readString(4) === sig.CENTRAL_FILE_HEADER) {\n file = new ZipEntry({\n zip64: this.zip64\n }, this.loadOptions);\n file.readCentralPart(this.reader);\n this.files.push(file);\n }\n },\n /**\n * Read the end of central directory.\n */\n readEndOfCentral: function() {\n var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END);\n if (offset === -1) {\n throw new Error(\"Corrupted zip : can't find end of central directory\");\n }\n this.reader.setIndex(offset);\n this.checkSignature(sig.CENTRAL_DIRECTORY_END);\n this.readBlockEndOfCentral();\n\n\n /* extract from the zip spec :\n 4) If one of the fields in the end of central directory\n record is too small to hold required data, the field\n should be set to -1 (0xFFFF or 0xFFFFFFFF) and the\n ZIP64 format record should be created.\n 5) The end of central directory record and the\n Zip64 end of central directory locator record must\n reside on the same disk when splitting or spanning\n an archive.\n */\n 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) {\n this.zip64 = true;\n\n /*\n Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from\n the zip file can fit into a 32bits integer. This cannot be solved : Javascript represents\n all numbers as 64-bit double precision IEEE 754 floating point numbers.\n So, we have 53bits for integers and bitwise operations treat everything as 32bits.\n see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators\n and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5\n */\n\n // should look for a zip64 EOCD locator\n offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);\n if (offset === -1) {\n throw new Error(\"Corrupted zip : can't find the ZIP64 end of central directory locator\");\n }\n this.reader.setIndex(offset);\n this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);\n this.readBlockZip64EndOfCentralLocator();\n\n // now the zip64 EOCD record\n this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);\n this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);\n this.readBlockZip64EndOfCentral();\n }\n },\n prepareReader: function(data) {\n var type = utils.getTypeOf(data);\n if (type === \"string\" && !support.uint8array) {\n this.reader = new StringReader(data, this.loadOptions.optimizedBinaryString);\n }\n else if (type === \"nodebuffer\") {\n this.reader = new NodeBufferReader(data);\n }\n else {\n this.reader = new Uint8ArrayReader(utils.transformTo(\"uint8array\", data));\n }\n },\n /**\n * Read a zip file and create ZipEntries.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file.\n */\n load: function(data) {\n this.prepareReader(data);\n this.readEndOfCentral();\n this.readCentralDir();\n this.readLocalFiles();\n }\n};\n// }}} end of ZipEntries\nmodule.exports = ZipEntries;\n\n},{\"./nodeBufferReader\":12,\"./object\":13,\"./signature\":14,\"./stringReader\":15,\"./support\":17,\"./uint8ArrayReader\":18,\"./utils\":21,\"./zipEntry\":23}],23:[function(_dereq_,module,exports){\n'use strict';\nvar StringReader = _dereq_('./stringReader');\nvar utils = _dereq_('./utils');\nvar CompressedObject = _dereq_('./compressedObject');\nvar jszipProto = _dereq_('./object');\n// class ZipEntry {{{\n/**\n * An entry in the zip file.\n * @constructor\n * @param {Object} options Options of the current file.\n * @param {Object} loadOptions Options for loading the stream.\n */\nfunction ZipEntry(options, loadOptions) {\n this.options = options;\n this.loadOptions = loadOptions;\n}\nZipEntry.prototype = {\n /**\n * say if the file is encrypted.\n * @return {boolean} true if the file is encrypted, false otherwise.\n */\n isEncrypted: function() {\n // bit 1 is set\n return (this.bitFlag & 0x0001) === 0x0001;\n },\n /**\n * say if the file has utf-8 filename/comment.\n * @return {boolean} true if the filename/comment is in utf-8, false otherwise.\n */\n useUTF8: function() {\n // bit 11 is set\n return (this.bitFlag & 0x0800) === 0x0800;\n },\n /**\n * Prepare the function used to generate the compressed content from this ZipFile.\n * @param {DataReader} reader the reader to use.\n * @param {number} from the offset from where we should read the data.\n * @param {number} length the length of the data to read.\n * @return {Function} the callback to get the compressed content (the type depends of the DataReader class).\n */\n prepareCompressedContent: function(reader, from, length) {\n return function() {\n var previousIndex = reader.index;\n reader.setIndex(from);\n var compressedFileData = reader.readData(length);\n reader.setIndex(previousIndex);\n\n return compressedFileData;\n };\n },\n /**\n * Prepare the function used to generate the uncompressed content from this ZipFile.\n * @param {DataReader} reader the reader to use.\n * @param {number} from the offset from where we should read the data.\n * @param {number} length the length of the data to read.\n * @param {JSZip.compression} compression the compression used on this file.\n * @param {number} uncompressedSize the uncompressed size to expect.\n * @return {Function} the callback to get the uncompressed content (the type depends of the DataReader class).\n */\n prepareContent: function(reader, from, length, compression, uncompressedSize) {\n return function() {\n\n var compressedFileData = utils.transformTo(compression.uncompressInputType, this.getCompressedContent());\n var uncompressedFileData = compression.uncompress(compressedFileData);\n\n if (uncompressedFileData.length !== uncompressedSize) {\n throw new Error(\"Bug : uncompressed data size mismatch\");\n }\n\n return uncompressedFileData;\n };\n },\n /**\n * Read the local part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readLocalPart: function(reader) {\n var compression, localExtraFieldsLength;\n\n // we already know everything from the central dir !\n // If the central dir data are false, we are doomed.\n // On the bright side, the local part is scary : zip64, data descriptors, both, etc.\n // The less data we get here, the more reliable this should be.\n // Let's skip the whole header and dash to the data !\n reader.skip(22);\n // in some zip created on windows, the filename stored in the central dir contains \\ instead of /.\n // Strangely, the filename here is OK.\n // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes\n // or APPNOTE#4.4.17.1, \"All slashes MUST be forward slashes '/'\") but there are a lot of bad zip generators...\n // Search \"unzip mismatching \"local\" filename continuing with \"central\" filename version\" on\n // the internet.\n //\n // I think I see the logic here : the central directory is used to display\n // content and the local directory is used to extract the files. Mixing / and \\\n // may be used to display \\ to windows users and use / when extracting the files.\n // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394\n this.fileNameLength = reader.readInt(2);\n localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir\n this.fileName = reader.readString(this.fileNameLength);\n reader.skip(localExtraFieldsLength);\n\n if (this.compressedSize == -1 || this.uncompressedSize == -1) {\n throw new Error(\"Bug or corrupted zip : didn't get enough informations from the central directory \" + \"(compressedSize == -1 || uncompressedSize == -1)\");\n }\n\n compression = utils.findCompression(this.compressionMethod);\n if (compression === null) { // no compression found\n throw new Error(\"Corrupted zip : compression \" + utils.pretty(this.compressionMethod) + \" unknown (inner file : \" + this.fileName + \")\");\n }\n this.decompressed = new CompressedObject();\n this.decompressed.compressedSize = this.compressedSize;\n this.decompressed.uncompressedSize = this.uncompressedSize;\n this.decompressed.crc32 = this.crc32;\n this.decompressed.compressionMethod = this.compressionMethod;\n this.decompressed.getCompressedContent = this.prepareCompressedContent(reader, reader.index, this.compressedSize, compression);\n this.decompressed.getContent = this.prepareContent(reader, reader.index, this.compressedSize, compression, this.uncompressedSize);\n\n // we need to compute the crc32...\n if (this.loadOptions.checkCRC32) {\n this.decompressed = utils.transformTo(\"string\", this.decompressed.getContent());\n if (jszipProto.crc32(this.decompressed) !== this.crc32) {\n throw new Error(\"Corrupted zip : CRC32 mismatch\");\n }\n }\n },\n\n /**\n * Read the central part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readCentralPart: function(reader) {\n this.versionMadeBy = reader.readString(2);\n this.versionNeeded = reader.readInt(2);\n this.bitFlag = reader.readInt(2);\n this.compressionMethod = reader.readString(2);\n this.date = reader.readDate();\n this.crc32 = reader.readInt(4);\n this.compressedSize = reader.readInt(4);\n this.uncompressedSize = reader.readInt(4);\n this.fileNameLength = reader.readInt(2);\n this.extraFieldsLength = reader.readInt(2);\n this.fileCommentLength = reader.readInt(2);\n this.diskNumberStart = reader.readInt(2);\n this.internalFileAttributes = reader.readInt(2);\n this.externalFileAttributes = reader.readInt(4);\n this.localHeaderOffset = reader.readInt(4);\n\n if (this.isEncrypted()) {\n throw new Error(\"Encrypted zip are not supported\");\n }\n\n this.fileName = reader.readString(this.fileNameLength);\n this.readExtraFields(reader);\n this.parseZIP64ExtraField(reader);\n this.fileComment = reader.readString(this.fileCommentLength);\n\n // warning, this is true only for zip with madeBy == DOS (plateform dependent feature)\n this.dir = this.externalFileAttributes & 0x00000010 ? true : false;\n },\n /**\n * Parse the ZIP64 extra field and merge the info in the current ZipEntry.\n * @param {DataReader} reader the reader to use.\n */\n parseZIP64ExtraField: function(reader) {\n\n if (!this.extraFields[0x0001]) {\n return;\n }\n\n // should be something, preparing the extra reader\n var extraReader = new StringReader(this.extraFields[0x0001].value);\n\n // I really hope that these 64bits integer can fit in 32 bits integer, because js\n // won't let us have more.\n if (this.uncompressedSize === utils.MAX_VALUE_32BITS) {\n this.uncompressedSize = extraReader.readInt(8);\n }\n if (this.compressedSize === utils.MAX_VALUE_32BITS) {\n this.compressedSize = extraReader.readInt(8);\n }\n if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) {\n this.localHeaderOffset = extraReader.readInt(8);\n }\n if (this.diskNumberStart === utils.MAX_VALUE_32BITS) {\n this.diskNumberStart = extraReader.readInt(4);\n }\n },\n /**\n * Read the central part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readExtraFields: function(reader) {\n var start = reader.index,\n extraFieldId,\n extraFieldLength,\n extraFieldValue;\n\n this.extraFields = this.extraFields || {};\n\n while (reader.index < start + this.extraFieldsLength) {\n extraFieldId = reader.readInt(2);\n extraFieldLength = reader.readInt(2);\n extraFieldValue = reader.readString(extraFieldLength);\n\n this.extraFields[extraFieldId] = {\n id: extraFieldId,\n length: extraFieldLength,\n value: extraFieldValue\n };\n }\n },\n /**\n * Apply an UTF8 transformation if needed.\n */\n handleUTF8: function() {\n if (this.useUTF8()) {\n this.fileName = jszipProto.utf8decode(this.fileName);\n this.fileComment = jszipProto.utf8decode(this.fileComment);\n } else {\n var upath = this.findExtraFieldUnicodePath();\n if (upath !== null) {\n this.fileName = upath;\n }\n var ucomment = this.findExtraFieldUnicodeComment();\n if (ucomment !== null) {\n this.fileComment = ucomment;\n }\n }\n },\n\n /**\n * Find the unicode path declared in the extra field, if any.\n * @return {String} the unicode path, null otherwise.\n */\n findExtraFieldUnicodePath: function() {\n var upathField = this.extraFields[0x7075];\n if (upathField) {\n var extraReader = new StringReader(upathField.value);\n\n // wrong version\n if (extraReader.readInt(1) !== 1) {\n return null;\n }\n\n // the crc of the filename changed, this field is out of date.\n if (jszipProto.crc32(this.fileName) !== extraReader.readInt(4)) {\n return null;\n }\n\n return jszipProto.utf8decode(extraReader.readString(upathField.length - 5));\n }\n return null;\n },\n\n /**\n * Find the unicode comment declared in the extra field, if any.\n * @return {String} the unicode comment, null otherwise.\n */\n findExtraFieldUnicodeComment: function() {\n var ucommentField = this.extraFields[0x6375];\n if (ucommentField) {\n var extraReader = new StringReader(ucommentField.value);\n\n // wrong version\n if (extraReader.readInt(1) !== 1) {\n return null;\n }\n\n // the crc of the comment changed, this field is out of date.\n if (jszipProto.crc32(this.fileComment) !== extraReader.readInt(4)) {\n return null;\n }\n\n return jszipProto.utf8decode(extraReader.readString(ucommentField.length - 5));\n }\n return null;\n }\n};\nmodule.exports = ZipEntry;\n\n},{\"./compressedObject\":2,\"./object\":13,\"./stringReader\":15,\"./utils\":21}],24:[function(_dereq_,module,exports){\n// Top level file is just a mixin of submodules & constants\n'use strict';\n\nvar assign = _dereq_('./lib/utils/common').assign;\n\nvar deflate = _dereq_('./lib/deflate');\nvar inflate = _dereq_('./lib/inflate');\nvar constants = _dereq_('./lib/zlib/constants');\n\nvar pako = {};\n\nassign(pako, deflate, inflate, constants);\n\nmodule.exports = pako;\n},{\"./lib/deflate\":25,\"./lib/inflate\":26,\"./lib/utils/common\":27,\"./lib/zlib/constants\":30}],25:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar zlib_deflate = _dereq_('./zlib/deflate.js');\nvar utils = _dereq_('./utils/common');\nvar strings = _dereq_('./utils/strings');\nvar msg = _dereq_('./zlib/messages');\nvar zstream = _dereq_('./zlib/zstream');\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nvar Z_NO_FLUSH = 0;\nvar Z_FINISH = 4;\n\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n\nvar Z_DEFAULT_COMPRESSION = -1;\n\nvar Z_DEFAULT_STRATEGY = 0;\n\nvar Z_DEFLATED = 8;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overriden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nvar Deflate = function(options) {\n\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n var status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n};\n\n/**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|String): input data. Strings will be converted to\n * utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That flush internal pending buffers and call\n * [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function(data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n\n if (this.ended) { return false; }\n\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n status = zlib_deflate.deflate(strm, _mode); /* no bad return value */\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n if (strm.avail_out === 0 || (strm.avail_in === 0 && _mode === Z_FINISH)) {\n if (this.options.to === 'string') {\n this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): ouput data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function(chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that input stream complete\n * or error happenned. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function(status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate alrorythm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n var deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nexports.Deflate = Deflate;\nexports.deflate = deflate;\nexports.deflateRaw = deflateRaw;\nexports.gzip = gzip;\n},{\"./utils/common\":27,\"./utils/strings\":28,\"./zlib/deflate.js\":32,\"./zlib/messages\":37,\"./zlib/zstream\":39}],26:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar zlib_inflate = _dereq_('./zlib/inflate.js');\nvar utils = _dereq_('./utils/common');\nvar strings = _dereq_('./utils/strings');\nvar c = _dereq_('./zlib/constants');\nvar msg = _dereq_('./zlib/messages');\nvar zstream = _dereq_('./zlib/zstream');\nvar gzheader = _dereq_('./zlib/gzheader');\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overriden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nvar Inflate = function(options) {\n\n this.options = utils.assign({\n chunkSize: 16384,\n windowBits: 0,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n var status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new gzheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n};\n\n/**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That flush internal pending buffers and call\n * [[Inflate#onEnd]].\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function(data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n var next_out_utf8, tail, utf8str;\n\n if (this.ended) { return false; }\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // Only binary strings can be decompressed on practice\n strm.input = strings.binstring2buf(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */\n\n if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && _mode === c.Z_FINISH)) {\n\n if (this.options.to === 'string') {\n\n next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n tail = strm.next_out - next_out_utf8;\n utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n this.onData(utf8str);\n\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n }\n } while ((strm.avail_in > 0) && status !== c.Z_STREAM_END);\n\n if (status === c.Z_STREAM_END) {\n _mode = c.Z_FINISH;\n }\n // Finalize on the last chunk.\n if (_mode === c.Z_FINISH) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === c.Z_OK;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): ouput data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function(chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell inflate that input stream complete\n * or error happenned. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function(status) {\n // On success - join\n if (status === c.Z_OK) {\n if (this.options.to === 'string') {\n // Glue & convert here, until we teach pako to send\n // utf8 alligned strings to onData\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n * , output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n var inflator = new Inflate(options);\n\n inflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) { throw inflator.msg; }\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nexports.Inflate = Inflate;\nexports.inflate = inflate;\nexports.inflateRaw = inflateRaw;\nexports.ungzip = inflate;\n\n},{\"./utils/common\":27,\"./utils/strings\":28,\"./zlib/constants\":30,\"./zlib/gzheader\":33,\"./zlib/inflate.js\":35,\"./zlib/messages\":37,\"./zlib/zstream\":39}],27:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof(source) !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (source.hasOwnProperty(p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs+len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for(var i=0; i= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);\n}\n_utf8len[254]=_utf8len[254]=1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new utils.Buf8(buf_len);\n\n // convert\n for (i=0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n // use fallback for big arrays to avoid stack overflow\n if (len < 65537) {\n if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for(var i=0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function(buf) {\n return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function(str) {\n var buf = new utils.Buf8(str.length);\n for(var i=0, len=buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len*2);\n\n for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nexports.utf8border = function(buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max-1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Fuckup - very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means vuffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n},{\"./common\":27}],29:[function(_dereq_,module,exports){\n'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It doesn't worth to make additional optimizationa as in original.\n// Small size is preferable.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0\n , s2 = ((adler >>> 16) & 0xffff) |0\n , n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n},{}],30:[function(_dereq_,module,exports){\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n},{}],31:[function(_dereq_,module,exports){\n'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for(var n =0; n < 256; n++){\n c = n;\n for(var k =0; k < 8; k++){\n c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable\n , end = pos + len;\n\n crc = crc ^ (-1);\n\n for (var i = pos; i < end; i++ ) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n},{}],32:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('../utils/common');\nvar trees = _dereq_('./trees');\nvar adler32 = _dereq_('./adler32');\nvar crc32 = _dereq_('./crc32');\nvar msg = _dereq_('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\n//var Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2*L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only (s, last) {\n trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH-1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH-1)) ? s.strstart : MIN_MATCH-1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH-1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size-MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH-1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = trees._tr_tally(s, s.strstart - 1- s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length-1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH-1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH-1 ? s.strstart : MIN_MATCH-1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nvar Config = function (good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n};\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2*D_CODES+1) * 2);\n this.bl_tree = new utils.Buf16((2*BL_CODES+1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new utils.Buf16(MAX_BITS+1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new utils.Buf16(2*L_CODES+1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2*L_CODES+1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n trees._tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n s.d_buf = s.lit_bufsize >> 1;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg){\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n/* =========================================================================\n * Copy the source state to the destination state\n */\n//function deflateCopy(dest, source) {\n//\n//}\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n},{\"../utils/common\":27,\"./adler32\":29,\"./crc32\":31,\"./messages\":37,\"./trees\":38}],33:[function(_dereq_,module,exports){\n'use strict';\n\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n},{}],34:[function(_dereq_,module,exports){\n'use strict';\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n var window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n},{}],35:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\nvar adler32 = _dereq_('./adler32');\nvar crc32 = _dereq_('./crc32');\nvar inflate_fast = _dereq_('./inffast');\nvar inflate_table = _dereq_('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction ZSWAP32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {bits: 9});\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {bits: 5});\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window,src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window,src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window,src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more conveniend processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0 /*crc32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = ZSWAP32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = {bits: state.lenbits};\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = {bits: state.lenbits};\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = {bits: state.distbits};\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) -1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) -1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' insdead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, ZSWAP32 returns signed too\n if ((state.flags ? hold : ZSWAP32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n},{\"../utils/common\":27,\"./adler32\":29,\"./crc32\":31,\"./inffast\":34,\"./inftrees\":36}],36:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS+1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS+1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n var i=0;\n /* process all codes and make table entries */\n for (;;) {\n i++;\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n},{\"../utils/common\":27}],37:[function(_dereq_,module,exports){\n'use strict';\n\nmodule.exports = {\n '2': 'need dictionary', /* Z_NEED_DICT 2 */\n '1': 'stream end', /* Z_STREAM_END 1 */\n '0': '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n},{}],38:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2*L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\nvar extra_lbits = /* extra bits for each length code */\n [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];\n\nvar extra_dbits = /* extra bits for each distance code */\n [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];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES+2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH-MIN_MATCH+1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nvar StaticTreeDesc = function (static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n};\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nvar TreeDesc = function(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n};\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short (s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c*2]/*.Code*/, tree[c*2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max]*2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max+1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n*2 +1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n*2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n-base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n*2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length-1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits+1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m*2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m*2 + 1]/*.Len*/)*tree[m*2]/*.Freq*/;\n tree[m*2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS+1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits-1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES-1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1< dist code (0..29) */\n dist = 0;\n for (code = 0 ; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */\n for ( ; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n*2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n*2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n*2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n*2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES+1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n*2 + 1]/*.Len*/ = 5;\n static_dtree[n*2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc =new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n*2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n*2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n*2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK*2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n*2;\n var _m2 = m*2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j+1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx*2] << 8) | (s.pending_buf[s.d_buf + lx*2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code+LITERALS+1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n*2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node*2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n*2 + 1]/*.Dad*/ = tree[m*2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code+1)*2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n+1)*2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6*2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10*2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138*2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n+1)*2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count-3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count-3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count-11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex]*2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3*(max_blindex+1) + 5+5+4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes-1, 5);\n send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank]*2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes-1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes-1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n*2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK<<1)+(last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES<<1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len+3+7) >>> 3;\n static_lenb = (s.static_len+3+7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len+4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES<<1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES<<1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code+1, s.d_desc.max_code+1, max_blindex+1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc*2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc]+LITERALS+1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize-1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n},{\"../utils/common\":27}],39:[function(_dereq_,module,exports){\n'use strict';\n\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n},{}]},{},[9])\n(9)\n}));\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/* cpexcel.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W100 */\nvar cptable = {version:\"1.14.0\"};\ncptable[437] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[620] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàąçêëèïîćÄĄĘęłôöĆûùŚÖÜ¢Ł¥śƒŹŻóÓńŃźż¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[737] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[850] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[852] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[857] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[861] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[865] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[866] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[874] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[895] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ČüéďäĎŤčěĚĹÍľǪÄÁÉžŽôöÓůÚýÖÜŠĽÝŘťáíóúňŇŮÔšřŕŔ¼§«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[932] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"���������������������������������������������������������������� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×�÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨¬⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������ʼn♯♭♪†‡¶����◯���\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"�������������������������������������������������������������������������������0123456789�������ABCDEFGHIJKLMNOPQRSTUVWXYZ�������abcdefghijklmnopqrstuvwxyz����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[135] = \"����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[224] = \"����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[237] = \"����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"���\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[250] = \"����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[936] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[133] = \"����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�\".split(\"\");\nfor(j = 0; j != D[133].length; ++j) if(D[133][j].charCodeAt(0) !== 0xFFFD) { e[D[133][j]] = 34048 + j; d[34048 + j] = D[133][j];}\nD[134] = \"����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�\".split(\"\");\nfor(j = 0; j != D[134].length; ++j) if(D[134][j].charCodeAt(0) !== 0xFFFD) { e[D[134][j]] = 34304 + j; d[34304 + j] = D[134][j];}\nD[135] = \"����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[160] = \"����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�\".split(\"\");\nfor(j = 0; j != D[160].length; ++j) if(D[160][j].charCodeAt(0) !== 0xFFFD) { e[D[160][j]] = 40960 + j; d[40960 + j] = D[160][j];}\nD[161] = \"����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[201] = \"����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nD[250] = \"����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nD[253] = \"����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[253].length; ++j) if(D[253][j].charCodeAt(0) !== 0xFFFD) { e[D[253][j]] = 64768 + j; d[64768 + j] = D[253][j];}\nD[254] = \"����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[254].length; ++j) if(D[254][j].charCodeAt(0) !== 0xFFFD) { e[D[254][j]] = 65024 + j; d[65024 + j] = D[254][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[949] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[133] = \"�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�\".split(\"\");\nfor(j = 0; j != D[133].length; ++j) if(D[133][j].charCodeAt(0) !== 0xFFFD) { e[D[133][j]] = 34048 + j; d[34048 + j] = D[133][j];}\nD[134] = \"�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�\".split(\"\");\nfor(j = 0; j != D[134].length; ++j) if(D[134][j].charCodeAt(0) !== 0xFFFD) { e[D[134][j]] = 34304 + j; d[34304 + j] = D[134][j];}\nD[135] = \"�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[160] = \"�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�\".split(\"\");\nfor(j = 0; j != D[160].length; ++j) if(D[160][j].charCodeAt(0) !== 0xFFFD) { e[D[160][j]] = 40960 + j; d[40960 + j] = D[160][j];}\nD[161] = \"�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆЪĦ�IJ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[202] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nD[250] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nD[253] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�\".split(\"\");\nfor(j = 0; j != D[253].length; ++j) if(D[253][j].charCodeAt(0) !== 0xFFFD) { e[D[253][j]] = 64768 + j; d[64768 + j] = D[253][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[950] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[161] = \"���������������������������������������������������������������� ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"����������������������������������������������������������������\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv�\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"����������������������������������������������������������������wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[201] = \"����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[1250] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1251] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1252] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1253] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1254] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1255] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1256] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1257] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1258] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10000] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10006] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10007] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10008] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€���������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[161] = \"����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。・ˉˇ¨〃々―~�…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω���������������������������������������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[176] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[201] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[10029] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10079] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10081] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\n// eslint-disable-next-line no-undef\nif (typeof module !== 'undefined' && module.exports && typeof DO_NOT_EXPORT_CODEPAGE === 'undefined') module.exports = cptable;\n/* cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ft=javascript: */\n/*jshint newcap: false */\n(function(root, factory) {\n /*jshint ignore:start */\n /*eslint-disable */\n \"use strict\";\n if(typeof cptable === \"undefined\") {\n if(typeof require !== \"undefined\"){\n var cpt = cptable;\n if (typeof module !== 'undefined' && module.exports && typeof DO_NOT_EXPORT_CODEPAGE === 'undefined') module.exports = factory(cpt);\n else root.cptable = factory(cpt);\n } else throw new Error(\"cptable not found\");\n } else cptable = factory(cptable);\n /*eslint-enable */\n /*jshint ignore:end */\n}(this, function(cpt){\n \"use strict\";\n /*global module, Buffer */\n var magic = {\n \"1200\":\"utf16le\",\n \"1201\":\"utf16be\",\n \"12000\":\"utf32le\",\n \"12001\":\"utf32be\",\n \"16969\":\"utf64le\",\n \"20127\":\"ascii\",\n \"65000\":\"utf7\",\n \"65001\":\"utf8\"\n };\n\n var sbcs_cache = [874,1250,1251,1252,1253,1254,1255,1256,10000];\n var dbcs_cache = [932,936,949,950];\n var magic_cache = [65001];\n var magic_decode = {};\n var magic_encode = {};\n var cpdcache = {};\n var cpecache = {};\n\n var sfcc = function sfcc(x) { return String.fromCharCode(x); };\n var cca = function cca(x) { return x.charCodeAt(0); };\n\n var has_buf = (typeof Buffer !== 'undefined');\n var Buffer_from = function(){};\n if(has_buf) {\n var nbfs = !Buffer.from;\n if(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n Buffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n // $FlowIgnore\n if(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\n\n var mdl = 1024, mdb = Buffer.allocUnsafe(mdl);\n var make_EE = function make_EE(E){\n var EE = Buffer.allocUnsafe(65536);\n for(var i = 0; i < 65536;++i) EE[i] = 0;\n var keys = Object.keys(E), len = keys.length;\n for(var ee = 0, e = keys[ee]; ee < len; ++ee) {\n if(!(e = keys[ee])) continue;\n EE[e.charCodeAt(0)] = E[e];\n }\n return EE;\n };\n var sbcs_encode = function make_sbcs_encode(cp) {\n var EE = make_EE(cpt[cp].enc);\n return function sbcs_e(data, ofmt) {\n var len = data.length;\n var out, i=0, j=0, D=0, w=0;\n if(typeof data === 'string') {\n out = Buffer.allocUnsafe(len);\n for(i = 0; i < len; ++i) out[i] = EE[data.charCodeAt(i)];\n } else if(Buffer.isBuffer(data)) {\n out = Buffer.allocUnsafe(2*len);\n j = 0;\n for(i = 0; i < len; ++i) {\n D = data[i];\n if(D < 128) out[j++] = EE[D];\n else if(D < 224) { out[j++] = EE[((D&31)<<6)+(data[i+1]&63)]; ++i; }\n else if(D < 240) { out[j++] = EE[((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63)]; i+=2; }\n else {\n w = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3;\n if(w < 65536) out[j++] = EE[w];\n else { w -= 65536; out[j++] = EE[0xD800 + ((w>>10)&1023)]; out[j++] = EE[0xDC00 + (w&1023)]; }\n }\n }\n out = out.slice(0,j);\n } else {\n out = Buffer.allocUnsafe(len);\n for(i = 0; i < len; ++i) out[i] = EE[data[i].charCodeAt(0)];\n }\n if(!ofmt || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n };\n var sbcs_decode = function make_sbcs_decode(cp) {\n var D = cpt[cp].dec;\n var DD = Buffer.allocUnsafe(131072), d=0, c=\"\";\n for(d=0;d>8;\n }\n return function sbcs_d(data) {\n var len = data.length, i=0, j=0;\n if(2 * len > mdl) { mdl = 2 * len; mdb = Buffer.allocUnsafe(mdl); }\n if(Buffer.isBuffer(data)) {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n } else if(typeof data === \"string\") {\n for(i = 0; i < len; i++) {\n j = 2*data.charCodeAt(i);\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n } else {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n }\n return mdb.slice(0, 2 * len).toString('ucs2');\n };\n };\n var dbcs_encode = function make_dbcs_encode(cp) {\n var E = cpt[cp].enc;\n var EE = Buffer.allocUnsafe(131072);\n for(var i = 0; i < 131072; ++i) EE[i] = 0;\n var keys = Object.keys(E);\n for(var ee = 0, e = keys[ee]; ee < keys.length; ++ee) {\n if(!(e = keys[ee])) continue;\n var f = e.charCodeAt(0);\n EE[2*f] = E[e] & 255; EE[2*f+1] = E[e]>>8;\n }\n return function dbcs_e(data, ofmt) {\n var len = data.length, out = Buffer.allocUnsafe(2*len), i=0, j=0, jj=0, k=0, D=0;\n if(typeof data === 'string') {\n for(i = k = 0; i < len; ++i) {\n j = data.charCodeAt(i)*2;\n out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n out = out.slice(0,k);\n } else if(Buffer.isBuffer(data)) {\n for(i = k = 0; i < len; ++i) {\n D = data[i];\n if(D < 128) j = D;\n else if(D < 224) { j = ((D&31)<<6)+(data[i+1]&63); ++i; }\n else if(D < 240) { j = ((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63); i+=2; }\n else { j = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3; }\n if(j<65536) { j*=2; out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j]; }\n else { jj = j-65536;\n j=2*(0xD800 + ((jj>>10)&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n j=2*(0xDC00 + (jj&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n }\n out = out.slice(0,k);\n } else {\n for(i = k = 0; i < len; i++) {\n j = data[i].charCodeAt(0)*2;\n out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n }\n if(!ofmt || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n };\n var dbcs_decode = function make_dbcs_decode(cp) {\n var D = cpt[cp].dec;\n var DD = Buffer.allocUnsafe(131072), d=0, c, w=0, j=0, i=0;\n for(i = 0; i < 65536; ++i) { DD[2*i] = 0xFF; DD[2*i+1] = 0xFD;}\n for(d = 0; d < D.length; ++d) {\n if(!(c=D[d])) continue;\n w = c.charCodeAt(0);\n j = 2*d;\n DD[j] = w&255; DD[j+1] = w>>8;\n }\n return function dbcs_d(data) {\n var len = data.length, out = Buffer.allocUnsafe(2*len), i=0, j=0, k=0;\n if(Buffer.isBuffer(data)) {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n } else if(typeof data === \"string\") {\n for(i = 0; i < len; i++) {\n j = 2*data.charCodeAt(i);\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data.charCodeAt(i)<<8)+data.charCodeAt(i+1)); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n } else {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n }\n return out.slice(0,k).toString('ucs2');\n };\n };\n magic_decode[65001] = function utf8_d(data) {\n if(typeof data === \"string\") return utf8_d(data.split(\"\").map(cca));\n var len = data.length, w = 0, ww = 0;\n if(4 * len > mdl) { mdl = 4 * len; mdb = Buffer.allocUnsafe(mdl); }\n var i = 0;\n if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;\n for(var j = 1, k = 0, D = 0; i < len; i+=j) {\n j = 1; D = data[i];\n if(D < 128) w = D;\n else if(D < 224) { w=(D&31)*64+(data[i+1]&63); j=2; }\n else if(D < 240) { w=((D&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }\n else { w=(D&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }\n if(w < 65536) { mdb[k++] = w&255; mdb[k++] = w>>8; }\n else {\n w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);\n mdb[k++] = ww&255; mdb[k++] = ww>>>8; mdb[k++] = w&255; mdb[k++] = (w>>>8)&255;\n }\n }\n return mdb.slice(0,k).toString('ucs2');\n };\n magic_encode[65001] = function utf8_e(data, ofmt) {\n if(has_buf && Buffer.isBuffer(data)) {\n if(!ofmt || ofmt === 'buf') return data;\n if(ofmt !== 'arr') return data.toString('binary');\n return [].slice.call(data);\n }\n var len = data.length, w = 0, ww = 0, j = 0;\n var direct = typeof data === \"string\";\n if(4 * len > mdl) { mdl = 4 * len; mdb = Buffer.allocUnsafe(mdl); }\n for(var i = 0; i < len; ++i) {\n w = direct ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w <= 0x007F) mdb[j++] = w;\n else if(w <= 0x07FF) {\n mdb[j++] = 192 + (w >> 6);\n mdb[j++] = 128 + (w&63);\n } else if(w >= 0xD800 && w <= 0xDFFF) {\n w -= 0xD800; ++i;\n ww = (direct ? data.charCodeAt(i) : data[i].charCodeAt(0)) - 0xDC00 + (w << 10);\n mdb[j++] = 240 + ((ww>>>18) & 0x07);\n mdb[j++] = 144 + ((ww>>>12) & 0x3F);\n mdb[j++] = 128 + ((ww>>>6) & 0x3F);\n mdb[j++] = 128 + (ww & 0x3F);\n } else {\n mdb[j++] = 224 + (w >> 12);\n mdb[j++] = 128 + ((w >> 6)&63);\n mdb[j++] = 128 + (w&63);\n }\n }\n if(!ofmt || ofmt === 'buf') return mdb.slice(0,j);\n if(ofmt !== 'arr') return mdb.slice(0,j).toString('binary');\n return [].slice.call(mdb, 0, j);\n };\n }\n\n var encache = function encache() {\n if(has_buf) {\n if(cpdcache[sbcs_cache[0]]) return;\n var i=0, s=0;\n for(i = 0; i < sbcs_cache.length; ++i) {\n s = sbcs_cache[i];\n if(cpt[s]) {\n cpdcache[s] = sbcs_decode(s);\n cpecache[s] = sbcs_encode(s);\n }\n }\n for(i = 0; i < dbcs_cache.length; ++i) {\n s = dbcs_cache[i];\n if(cpt[s]) {\n cpdcache[s] = dbcs_decode(s);\n cpecache[s] = dbcs_encode(s);\n }\n }\n for(i = 0; i < magic_cache.length; ++i) {\n s = magic_cache[i];\n if(magic_decode[s]) cpdcache[s] = magic_decode[s];\n if(magic_encode[s]) cpecache[s] = magic_encode[s];\n }\n }\n };\n var null_enc = function(data, ofmt) { void ofmt; return \"\"; };\n var cp_decache = function cp_decache(cp) { delete cpdcache[cp]; delete cpecache[cp]; };\n var decache = function decache() {\n if(has_buf) {\n if(!cpdcache[sbcs_cache[0]]) return;\n sbcs_cache.forEach(cp_decache);\n dbcs_cache.forEach(cp_decache);\n magic_cache.forEach(cp_decache);\n }\n last_enc = null_enc; last_cp = 0;\n };\n var cache = {\n encache: encache,\n decache: decache,\n sbcs: sbcs_cache,\n dbcs: dbcs_cache\n };\n\n encache();\n\n var BM = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var SetD = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?\";\n var last_enc = null_enc, last_cp = 0;\n var encode = function encode(cp, data, ofmt) {\n if(cp === last_cp && last_enc) { return last_enc(data, ofmt); }\n if(cpecache[cp]) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }\n if(has_buf && Buffer.isBuffer(data)) data = data.toString('utf8');\n var len = data.length;\n var out = has_buf ? Buffer.allocUnsafe(4*len) : [], w=0, i=0, j = 0, ww=0;\n var C = cpt[cp], E, M = \"\";\n var isstr = typeof data === 'string';\n if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) {\n w = E[isstr? data.charAt(i) : data[i]];\n if(w > 255) {\n out[j] = w>>8;\n out[++j] = w&255;\n } else out[j] = w&255;\n }\n else if((M=magic[cp])) switch(M) {\n case \"utf8\":\n if(has_buf && isstr) { out = Buffer_from(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i, ++j) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w <= 0x007F) out[j] = w;\n else if(w <= 0x07FF) {\n out[j] = 192 + (w >> 6);\n out[++j] = 128 + (w&63);\n } else if(w >= 0xD800 && w <= 0xDFFF) {\n w -= 0xD800;\n ww = (isstr ? data.charCodeAt(++i) : data[++i].charCodeAt(0)) - 0xDC00 + (w << 10);\n out[j] = 240 + ((ww>>>18) & 0x07);\n out[++j] = 144 + ((ww>>>12) & 0x3F);\n out[++j] = 128 + ((ww>>>6) & 0x3F);\n out[++j] = 128 + (ww & 0x3F);\n } else {\n out[j] = 224 + (w >> 12);\n out[++j] = 128 + ((w >> 6)&63);\n out[++j] = 128 + (w&63);\n }\n }\n break;\n case \"ascii\":\n if(has_buf && typeof data === \"string\") { out = Buffer_from(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i, ++j) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w <= 0x007F) out[j] = w;\n else throw new Error(\"bad ascii \" + w);\n }\n break;\n case \"utf16le\":\n if(has_buf && typeof data === \"string\") { out = Buffer_from(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n out[j++] = w&255;\n out[j++] = w>>8;\n }\n break;\n case \"utf16be\":\n for(i = 0; i < len; ++i) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n out[j++] = w>>8;\n out[j++] = w&255;\n }\n break;\n case \"utf32le\":\n for(i = 0; i < len; ++i) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255;\n }\n break;\n case \"utf32be\":\n for(i = 0; i < len; ++i) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);\n out[j+3] = w&255; w >>= 8;\n out[j+2] = w&255; w >>= 8;\n out[j+1] = w&255; w >>= 8;\n out[j] = w&255;\n j+=4;\n }\n break;\n case \"utf7\":\n for(i = 0; i < len; i++) {\n var c = isstr ? data.charAt(i) : data[i].charAt(0);\n if(c === \"+\") { out[j++] = 0x2b; out[j++] = 0x2d; continue; }\n if(SetD.indexOf(c) > -1) { out[j++] = c.charCodeAt(0); continue; }\n var tt = encode(1201, c);\n out[j++] = 0x2b;\n out[j++] = BM.charCodeAt(tt[0]>>2);\n out[j++] = BM.charCodeAt(((tt[0]&0x03)<<4) + ((tt[1]||0)>>4));\n out[j++] = BM.charCodeAt(((tt[1]&0x0F)<<2) + ((tt[2]||0)>>6));\n out[j++] = 0x2d;\n }\n break;\n default: throw new Error(\"Unsupported magic: \" + cp + \" \" + magic[cp]);\n }\n else throw new Error(\"Unrecognized CP: \" + cp);\n out = out.slice(0,j);\n if(!has_buf) return (ofmt == 'str') ? (out).map(sfcc).join(\"\") : out;\n if(!ofmt || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n var decode = function decode(cp, data) {\n var F; if((F=cpdcache[cp])) return F(data);\n if(typeof data === \"string\") return decode(cp, data.split(\"\").map(cca));\n var len = data.length, out = new Array(len), s=\"\", w=0, i=0, j=1, k=0, ww=0;\n var C = cpt[cp], D, M=\"\";\n if(C && (D=C.dec)) {\n for(i = 0; i < len; i+=j) {\n j = 2;\n s = D[(data[i]<<8)+ data[i+1]];\n if(!s) {\n j = 1;\n s = D[data[i]];\n }\n if(!s) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);\n out[k++] = s;\n }\n }\n else if((M=magic[cp])) switch(M) {\n case \"utf8\":\n if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;\n for(; i < len; i+=j) {\n j = 1;\n if(data[i] < 128) w = data[i];\n else if(data[i] < 224) { w=(data[i]&31)*64+(data[i+1]&63); j=2; }\n else if(data[i] < 240) { w=((data[i]&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }\n else { w=(data[i]&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }\n if(w < 65536) { out[k++] = String.fromCharCode(w); }\n else {\n w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);\n out[k++] = String.fromCharCode(ww); out[k++] = String.fromCharCode(w);\n }\n }\n break;\n case \"ascii\":\n if(has_buf && Buffer.isBuffer(data)) return data.toString(M);\n for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]);\n k = len; break;\n case \"utf16le\":\n if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2;\n if(has_buf && Buffer.isBuffer(data)) return data.toString(M);\n j = 2;\n for(; i+1 < len; i+=j) {\n out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]);\n }\n break;\n case \"utf16be\":\n if(len >= 2 && data[0] == 0xFE) if(data[1] == 0xFF) i = 2;\n j = 2;\n for(; i+1 < len; i+=j) {\n out[k++] = String.fromCharCode((data[i]<<8) + data[i+1]);\n }\n break;\n case \"utf32le\":\n if(len >= 4 && data[0] == 0xFF) if(data[1] == 0xFE && data[2] === 0 && data[3] === 0) i = 4;\n j = 4;\n for(; i < len; i+=j) {\n w = (data[i+3]<<24) + (data[i+2]<<16) + (data[i+1]<<8) + (data[i]);\n if(w > 0xFFFF) {\n w -= 0x10000;\n out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));\n out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));\n }\n else out[k++] = String.fromCharCode(w);\n }\n break;\n case \"utf32be\":\n if(len >= 4 && data[3] == 0xFF) if(data[2] == 0xFE && data[1] === 0 && data[0] === 0) i = 4;\n j = 4;\n for(; i < len; i+=j) {\n w = (data[i]<<24) + (data[i+1]<<16) + (data[i+2]<<8) + (data[i+3]);\n if(w > 0xFFFF) {\n w -= 0x10000;\n out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));\n out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));\n }\n else out[k++] = String.fromCharCode(w);\n }\n break;\n case \"utf7\":\n if(len >= 4 && data[0] == 0x2B && data[1] == 0x2F && data[2] == 0x76) {\n if(len >= 5 && data[3] == 0x38 && data[4] == 0x2D) i = 5;\n else if(data[3] == 0x38 || data[3] == 0x39 || data[3] == 0x2B || data[3] == 0x2F) i = 4;\n }\n for(; i < len; i+=j) {\n if(data[i] !== 0x2b) { j=1; out[k++] = String.fromCharCode(data[i]); continue; }\n j=1;\n if(data[i+1] === 0x2d) { j = 2; out[k++] = \"+\"; continue; }\n // eslint-disable-next-line no-useless-escape\n while(String.fromCharCode(data[i+j]).match(/[A-Za-z0-9+\\/]/)) j++;\n var dash = 0;\n if(data[i+j] === 0x2d) { ++j; dash=1; }\n var tt = [];\n var o64 = \"\";\n var c1=0, c2=0, c3=0;\n var e1=0, e2=0, e3=0, e4=0;\n for(var l = 1; l < j - dash;) {\n e1 = BM.indexOf(String.fromCharCode(data[i+l++]));\n e2 = BM.indexOf(String.fromCharCode(data[i+l++]));\n c1 = e1 << 2 | e2 >> 4;\n tt.push(c1);\n e3 = BM.indexOf(String.fromCharCode(data[i+l++]));\n if(e3 === -1) break;\n c2 = (e2 & 15) << 4 | e3 >> 2;\n tt.push(c2);\n e4 = BM.indexOf(String.fromCharCode(data[i+l++]));\n if(e4 === -1) break;\n c3 = (e3 & 3) << 6 | e4;\n if(e4 < 64) tt.push(c3);\n }\n o64 = decode(1201, tt);\n for(l = 0; l < o64.length; ++l) out[k++] = o64.charAt(l);\n }\n break;\n default: throw new Error(\"Unsupported magic: \" + cp + \" \" + magic[cp]);\n }\n else throw new Error(\"Unrecognized CP: \" + cp);\n return out.slice(0,k).join(\"\");\n };\n var hascp = function hascp(cp) { return !!(cpt[cp] || magic[cp]); };\n cpt.utils = { decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache };\n return cpt;\n}));\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","/*!\n * Vue.js v2.6.11\n * (c) 2014-2019 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.