{"version":3,"sources":["webpack:///./node_modules/xlsx/xlsx.js"],"names":["global","Buffer","process","XLSX","version","current_codepage","current_ansi","cptable","__webpack_require__","window","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","length","charCodeAt","utf16leread","String","fromCharCode","join","utf16beread","debom","c1","c2","slice","_getchar","x","utils","decode","DENSE","DIF_XL","Base64","map","encode","input","c3","e1","e2","e3","e4","isNaN","charAt","replace","has_buf","versions","node","new_raw_buf","alloc","Array","from","buf","enc","n","s2a","s","split","s2ab","ArrayBuffer","view","Uint8Array","a2s","isArray","_chr","a2u","Error","ab2a","bconcat","bufs","concat","apply","chr0","chr1","SSF","make_ssf","_strrev","fill","c","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","P","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","toString","_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","f","lat","m1","m2","dateNF","table","load_entry","undefined","load","_table","get_table","load_table","tbl","XLMLFormatMap","General Number","General Date","Long Date","Medium Date","Short Date","Long Time","Medium Time","Short Time","Currency","Fixed","Standard","Percent","Scientific","Yes/No","True/False","On/Off","SSFImplicit","5","6","7","8","23","24","25","26","27","28","29","30","31","32","33","34","35","36","41","42","43","44","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","70","71","72","73","74","75","76","78","79","80","81","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","forEach","datestr","timestr","_fs","DO_NOT_EXPORT_CFB","CFB","fs","exports","namecmp","L","R","Z","dirname","p","filename","get_fs","parse","file","options","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","blob","prep_blob","mv","check_get_mver","header","check_shifts","dir_cnt","read_shift","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","HEADER_CLSID","nsectors","ceil","FI","FP","C","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","ctime","ct","read_date","mtime","mt","storage","content","offset","__readUInt32LE","read_file","readFileSync","read","init_cfb","cfb","root","CLSID","seed_cfb","nm","find","rebuild_cfb","gc","_file","pop","now","sort","elt","_write","_opts","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","write_shift","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","path","UCFullPaths","UCPaths","UCPath","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","write","cfb_new","cfb_add","unsafe","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","module","e","blobify","write_dl","fname","utf8write","IE_SaveFile","Blob","navigator","msSaveBlob","saveAs","URL","document","createElement","createObjectURL","url","chrome","downloads","download","revokeObjectURL","setTimeout","a","href","body","appendChild","click","removeChild","$","File","Folder","open","encoding","close","message","read_binary","infile","keys","ks","Object","o2","hasOwnProperty","evert_key","obj","key","K","evert","evert_num","evert_arr","datenum","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","setFullYear","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","call","getdatabin","getdata","safegetzipfile","zip","g","getzipfile","getzipdata","safe","getzipstr","zipentries","resolve_path","result","target","step","JSZipSync","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","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","value","utf8read","orig","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","h","matches","baseType","res","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","XLMLNS","html","read_double_le","b","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","end","hexstr","fld","pos","parsenoop","sz","recordhopper","cb","tmpbyte","cntbyte","RT","tgt","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","O","_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","cellStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","flags","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","15","RBErr","parse_BrtColor","xColorType","index","nTS","bR","bG","bB","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","extend","parse_ClipboardFormatOrString","ClipFmt","3","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","4","9","10","11","12","13","16","17","19","22","SummaryPIDSI","18","SpecialProperties","2147483648","2147483651","1919054434","DocSummaryRE","SummaryRE","CountryEnum","20","39","45","46","47","48","49","82","84","86","90","105","213","216","218","351","354","358","420","886","961","962","963","964","965","966","971","972","974","981","65535","XLSFillPattern","rgbify","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-office.chartcolorstyle+xml","application/vnd.ms-office.chartstyle+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.openxmlformats-officedocument.themeOverride+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","image/png","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","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","add_rels","rId","relobj","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","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","Props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","PseudoPropsPairs","load_props_pairs","HP","TOP","props","hp","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","parse_ext_props","HeadingPairs","TitlesOfParts","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","console","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","fmtid","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","dt:dt","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","msg","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","21","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_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","100","101","102","103","104","106","107","120","121","122","123","124","125","126","150","151","152","200","201","202","203","37","38","87","88","89","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","aoa","sheet_to_json","headers","hcnt","coltypes","guess","_guess","hf","_f","hb","rout","_s","to_workbook","to_sheet","from_sheet","SYLK","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","codepage","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","40","parse_rs","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","align","pass","uval","family","parse_r","terms","rs","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","count","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","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","xml","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","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","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","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","xmlns:v","xmlns:o","xmlns:x","xmlns:mv","v:ext","joinstyle","gradientshapeok","o:connecttype","o:spt","coordsize","fillcolor","strokecolor","color2","angle","on","obscured","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","thisCell","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","!type","parse_ds_xml","parse_ms_bin","parse_ms_xml","DS","MS","rcregex","rcbase","rcfunc","$4","$5","fstr","crefregex","$0","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","96","97","98","99","108","109","110","111","91","92","93","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","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","parse_Formula","cbf","shared","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","83","85","94","95","112","113","114","115","116","117","118","119","127","131","132","133","135","137","138","139","140","142","143","144","145","146","147","148","149","153","155","159","164","166","167","168","169","170","171","172","173","174","175","185","187","188","189","190","191","192","193","194","195","196","197","198","199","206","207","208","209","210","211","212","214","215","217","219","220","223","224","225","226","227","228","229","240","243","249","250","251","252","253","254","256","259","260","265","266","267","268","269","272","273","274","276","277","278","279","280","281","282","283","284","285","288","289","290","291","292","293","295","296","297","298","302","305","306","307","308","309","310","311","312","313","314","315","316","318","319","320","321","322","323","324","325","328","330","336","338","339","342","343","344","350","352","355","356","370","373","374","375","376","377","378","379","380","381","382","383","384","385","386","388","390","391","392","393","394","395","396","397","398","399","400","412","413","414","415","416","417","421","422","423","424","425","430","431","432","433","434","435","436","437","438","439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455","456","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","477","478","480","481","482","485","489","491","493","494","495","509","510","511","517","518","519","520","521","522","523","545","546","547","548","549","620","621","647","653","667","673","753","755","808","141","154","156","157","158","160","165","176","179","180","181","182","183","184","205","221","230","231","232","233","234","235","236","237","239","241","242","244","245","246","247","248","257","258","261","262","263","264","270","271","275","286","287","294","299","300","301","303","304","317","326","327","329","331","332","334","335","337","340","341","345","346","347","348","349","353","357","359","360","361","362","363","364","365","366","367","368","369","371","372","387","389","401","402","403","404","405","406","407","408","409","410","411","418","419","426","427","428","429","457","724","479","483","484","_xlfn.ACOT","_xlfn.ACOTH","_xlfn.AGGREGATE","_xlfn.ARABIC","_xlfn.AVERAGEIF","_xlfn.AVERAGEIFS","_xlfn.BASE","_xlfn.BETA.DIST","_xlfn.BETA.INV","_xlfn.BINOM.DIST","_xlfn.BINOM.DIST.RANGE","_xlfn.BINOM.INV","_xlfn.BITAND","_xlfn.BITLSHIFT","_xlfn.BITOR","_xlfn.BITRSHIFT","_xlfn.BITXOR","_xlfn.CEILING.MATH","_xlfn.CEILING.PRECISE","_xlfn.CHISQ.DIST","_xlfn.CHISQ.DIST.RT","_xlfn.CHISQ.INV","_xlfn.CHISQ.INV.RT","_xlfn.CHISQ.TEST","_xlfn.COMBINA","_xlfn.CONCAT","_xlfn.CONFIDENCE.NORM","_xlfn.CONFIDENCE.T","_xlfn.COT","_xlfn.COTH","_xlfn.COUNTIFS","_xlfn.COVARIANCE.P","_xlfn.COVARIANCE.S","_xlfn.CSC","_xlfn.CSCH","_xlfn.DAYS","_xlfn.DECIMAL","_xlfn.ECMA.CEILING","_xlfn.ERF.PRECISE","_xlfn.ERFC.PRECISE","_xlfn.EXPON.DIST","_xlfn.F.DIST","_xlfn.F.DIST.RT","_xlfn.F.INV","_xlfn.F.INV.RT","_xlfn.F.TEST","_xlfn.FILTERXML","_xlfn.FLOOR.MATH","_xlfn.FLOOR.PRECISE","_xlfn.FORECAST.ETS","_xlfn.FORECAST.ETS.CONFINT","_xlfn.FORECAST.ETS.SEASONALITY","_xlfn.FORECAST.ETS.STAT","_xlfn.FORECAST.LINEAR","_xlfn.FORMULATEXT","_xlfn.GAMMA","_xlfn.GAMMA.DIST","_xlfn.GAMMA.INV","_xlfn.GAMMALN.PRECISE","_xlfn.GAUSS","_xlfn.HYPGEOM.DIST","_xlfn.IFERROR","_xlfn.IFNA","_xlfn.IFS","_xlfn.IMCOSH","_xlfn.IMCOT","_xlfn.IMCSC","_xlfn.IMCSCH","_xlfn.IMSEC","_xlfn.IMSECH","_xlfn.IMSINH","_xlfn.IMTAN","_xlfn.ISFORMULA","_xlfn.ISO.CEILING","_xlfn.ISOWEEKNUM","_xlfn.LOGNORM.DIST","_xlfn.LOGNORM.INV","_xlfn.MAXIFS","_xlfn.MINIFS","_xlfn.MODE.MULT","_xlfn.MODE.SNGL","_xlfn.MUNIT","_xlfn.NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL","_xlfn.NIGBINOM","_xlfn.NORM.DIST","_xlfn.NORM.INV","_xlfn.NORM.S.DIST","_xlfn.NORM.S.INV","_xlfn.NUMBERVALUE","_xlfn.PDURATION","_xlfn.PERCENTILE.EXC","_xlfn.PERCENTILE.INC","_xlfn.PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC","_xlfn.PERMUTATIONA","_xlfn.PHI","_xlfn.POISSON.DIST","_xlfn.QUARTILE.EXC","_xlfn.QUARTILE.INC","_xlfn.QUERYSTRING","_xlfn.RANK.AVG","_xlfn.RANK.EQ","_xlfn.RRI","_xlfn.SEC","_xlfn.SECH","_xlfn.SHEET","_xlfn.SHEETS","_xlfn.SKEW.P","_xlfn.STDEV.P","_xlfn.STDEV.S","_xlfn.SUMIFS","_xlfn.SWITCH","_xlfn.T.DIST","_xlfn.T.DIST.2T","_xlfn.T.DIST.RT","_xlfn.T.INV","_xlfn.T.INV.2T","_xlfn.T.TEST","_xlfn.TEXTJOIN","_xlfn.UNICHAR","_xlfn.UNICODE","_xlfn.VAR.P","_xlfn.VAR.S","_xlfn.WEBSERVICE","_xlfn.WEIBULL.DIST","_xlfn.WORKDAY.INTL","_xlfn.XOR","_xlfn.Z.TEST","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_3D","csf_to_ods_3D","_ssfopts","get_sst_id","col_obj_w","default_margins","margins","mode","defs","left","right","top","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fillid","raw_rgb","check_ws","parse_ws_xml_dim","WS","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_protection","deffalse","deftrue","location","Rel","tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","sviewregex","rightToLeft","Views","write_ws_xml_sheetviews","sview","workbookViewId","Workbook","write_ws_xml_cell","oldt","oldv","Strings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","sstr","ftag","cells","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","cellFormula","si","_tag","sheetStubs","_r","write_ws_xml_data","params","height","_cell","customHeight","WS_XML_ROOT","xmlns:r","write_ws_xml","rdata","vbaraw","cname","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","numberStoredAsText","sqref","r:id","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_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","parse_BrtBeginWsView","write_BrtBeginWsView","write_BrtCellIgnoreEC","write_BrtSheetProtection","parse_ws_bin","!id","ai","af","Names","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_numCache","nf","parse_chart","csheet","nc","cache","CS","parse_cs_xml","!chart","!rel","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","Sheet","Ref","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_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","ss:Format","ss:ID","write_name_xlml","ss:Name","ss:RefersTo","write_names_xlml","write_ws_xlml_names","write_ws_xlml_wsopts","x:Margin","x:Bottom","x:Left","x:Right","x:Top","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","ss:Author","write_ws_xlml_cell","attr","mi","_v","write_ws_xlml_row","write_ws_xlml_table","ss:Index","skip","write_ws_xlml","write_xlml","General","xmlns:ss","xmlns:dt","xmlns:html","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","CalcRefMode","FullCalc","ExternCount","error","tmpri","1033","512","768","1024","1280","1536","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","333","486","487","488","490","492","496","497","498","499","500","501","502","503","504","505","506","507","508","513","514","515","516","524","525","526","527","528","529","530","531","532","533","534","535","536","537","538","539","540","541","542","550","551","552","553","554","555","556","557","558","559","560","561","562","564","565","566","569","570","572","573","574","577","578","579","580","581","582","583","584","585","586","587","588","589","590","591","592","593","594","595","596","597","598","599","600","601","602","603","604","605","606","607","608","609","610","611","612","613","614","615","616","617","618","619","625","626","627","628","629","630","631","632","633","634","635","636","637","638","639","640","641","642","643","644","645","646","648","649","650","651","652","654","655","656","657","658","659","660","661","662","663","664","665","666","668","669","671","672","674","675","676","677","678","679","680","1025","1026","1027","1028","1029","1030","1031","1032","1034","1035","1036","1037","1038","1039","1040","1041","1042","1043","1044","1045","1046","1047","1048","1049","1050","1051","1052","1053","1054","1055","1056","1057","1058","1059","1061","1062","1063","1064","1065","1066","1067","1068","1069","1070","1071","1072","1073","1075","1076","1077","1078","1079","1080","1081","1082","1083","1084","1085","1086","1087","1088","1089","1090","1091","1092","1093","1094","1095","1096","1097","1098","1099","1100","1101","1102","1103","1104","1105","1111","1112","1113","1114","1115","1116","1117","1118","1119","1120","1121","1122","1123","1124","1125","1126","1128","1129","1130","1131","1132","1133","1134","1135","1136","1137","1138","1139","1140","1141","1142","1143","1144","1145","1146","1147","1148","1149","1150","1152","1153","1154","1155","1156","1157","1158","1159","1160","1161","1162","1163","1164","1165","1166","1167","1168","1169","1170","1171","1172","1173","1177","1178","1180","1181","1182","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2060","2067","2068","2069","2070","2071","2072","2073","2075","2076","2077","2078","2079","2080","2081","2082","2083","2084","2085","2086","2087","2088","2089","2090","2091","2092","2093","2094","2095","2096","2097","2098","2099","2100","2101","2102","2103","2104","2105","2106","2107","2108","2109","2110","2111","2112","2113","2114","2115","2116","2117","2118","2119","2120","2121","2122","2123","2124","2125","2126","2127","2128","2129","2130","2131","2132","2133","2134","2135","2136","2137","2138","2139","2140","2141","3072","3073","1212","2059","2061","2062","2063","2064","2066","2146","2147","2148","2149","2150","2151","2152","2154","2155","2156","2161","2162","2164","2165","2166","2167","2168","2169","2170","2171","2172","2173","2174","2175","2180","2181","2182","2183","2184","2185","2186","2187","2188","2189","2190","2191","2192","2194","2195","2196","2197","2198","2199","2200","2201","2202","2203","2204","2205","2206","2207","2211","2212","2213","2214","2215","4097","4098","4099","4102","4103","4105","4106","4107","4108","4109","4116","4117","4118","4119","4120","4121","4122","4123","4124","4125","4126","4127","4128","4129","4130","4132","4133","4134","4135","4146","4147","4148","4149","4154","4156","4157","4158","4159","4160","4161","4163","4164","4165","4166","4168","4170","4171","4174","4175","4176","4177","4187","4188","4189","4191","4192","4193","4194","4195","4196","4197","4198","4199","4200","2157","2163","2177","2240","2241","2242","2243","2244","2245","2246","2247","2248","2249","2250","2251","2262","29282","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","html_to_sheet","mtch2","hd","colspan","rowspan","_t","html_to_book","make_html_row","nullcell","editable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","parse_dom_table","getElementsByTagName","midx","elts","innerHTML","getAttribute","table_to_book","parse_content_xml","parse_text_p","number_formats","day","month","year","hours","minutes","seconds","am-pm","day-of-week","era","quarter","sheetag","rowtag","textptag","NFtag","ctag","textp","textpidx","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","parse_ods","ods","write_styles_ods","xmlns:office","xmlns:table","xmlns:style","xmlns:text","xmlns:draw","xmlns:fo","xmlns:xlink","xmlns:number","xmlns:svg","xmlns:of","office:version","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","_Fref","text_p","_tgt","xlink:href","write_automatic_styles_ods","xmlns:meta","xmlns:presentation","xmlns:chart","xmlns:dr3d","xmlns:math","xmlns:form","xmlns:script","xmlns:ooo","xmlns:ooow","xmlns:oooc","xmlns:dom","xmlns:xforms","xmlns:sheet","xmlns:rpt","xmlns:xhtml","xmlns:grddl","xmlns:tableooo","xmlns:drawooo","xmlns:calcext","xmlns:loext","xmlns:field","xmlns:formx","xmlns:css3t","fods","xmlns:config","office:mimetype","write_ods","write_sheet_index","write_obj_str","factory","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","fix_write_opts","get_sheet_type","safe_parse_wbrels","wbrels","safe_parse_sheet","relsPath","stype","dfile","drelsp","draw","chartp","crelsp","strip_front_slash","parse_zip","binname","dir","link","propdata","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","nmode","Deps","Styles","bin","parse_xlsxcfb","dsm","seds","einfo","decrypt_agile","decrypt_std76","write_zip","vbafmt","_sn","_i","wsrels","_type","rId1","read_cfb","read_zip","base64","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","ab","vu","foo","write_zip_type","oopts","compression","generate","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","bstr","writeSync","resolve_book_type","_BT","xls","htm","slk","socialcalc","Sh33tJS","writeFileAsync","_cb","Function","isempty","defval","outi","counter","CC","defineProperty","enumerable","__rowNum__","blankrows","qreg","make_csv_row","FS","txt","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","json_to_sheet","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_slk","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","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","to_html","to_csv","readFile"],"mappings":"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,SACAC,GAAA,kBACAC,GAAA,eACAC,GAAA,OACAC,GAAA,MACApmB,GAAA,OACAC,GAAA,QACAC,GAAA,QACAC,GAAA,gBACAC,GAAA,cACAC,GAAA,SACAC,GAAA,aACAC,GAAA,YACAI,GAAA,cACAC,GAAA,eACAC,GAAA,eACAC,GAAA,eACAC,GAAA,mBACAC,GAAA,mBACAC,GAAA,eACAC,GAAA,cACAvU,GAAA,iBACAwU,GAAA,eACAC,GAAA,cACAC,GAAA,kBACAC,GAAA,cACAC,GAAA,YACAC,GAAA,cACAC,GAAA,YACA9V,GAAA,gBACA+V,GAAA,OACAC,GAAA,SACAC,GAAA,cACAC,GAAA,YACAwkB,GAAA,eACAgyC,GAAA,mBACA/xC,GAAA,WACAgyC,GAAA,aACA/xC,GAAA,UACAynB,GAAA,QACAC,GAAA,gBACAC,GAAA,cACA1nB,GAAA,cACA+tC,GAAA,QACAC,GAAA,UACAC,GAAA,OACA8D,GAAA,SACAC,GAAA,YACAzE,GAAA,UACAC,GAAA,eACAC,GAAA,gBACAC,GAAA,iBACAznB,IAAA,iBACAC,IAAA,oBACAC,IAAA,oBACAC,IAAA,WACAC,IAAA,gBACApmB,IAAA,gBACAqmB,IAAA,gBACAC,IAAA,gBACAonB,IAAA,eACAC,IAAA,SACAC,IAAA,cACAC,IAAA,gBACAmE,IAAA,QACAC,IAAA,QACAC,IAAA,QACAC,IAAA,QACAC,IAAA,UACAC,IAAA,UACAC,IAAA,QACAC,IAAA,MACAhsB,IAAA,cACAC,IAAA,iBACAC,IAAA,UACAE,IAAA,aACAC,IAAA,eACAC,IAAA,eACA2rB,IAAA,aACArtE,IAAA,cACAC,IAAA,cACAC,IAAA,kBACAotE,IAAA,YACAC,IAAA,iBACAC,IAAA,cACArtE,IAAA,eACAstE,IAAA,eACArtE,IAAA,YACAstE,IAAA,QACAC,IAAA,YACAC,IAAA,UACAC,IAAA,gBACAC,IAAA,UACAC,IAAA,aACAC,IAAA,aACAC,IAAA,gBACAC,IAAA,YACAC,IAAA,aACAC,IAAA,UACAC,IAAA,OACA1sB,IAAA,cACAC,IAAA,UACAC,IAAA,YACAysB,IAAA,iBACAC,IAAA,cACAC,IAAA,oBACAnuE,IAAA,gBACAC,IAAA,eACAC,IAAA,iBACAkuE,IAAA,kBACAC,IAAA,cACAC,IAAA,qBACAC,IAAA,SACAC,IAAA,cACAC,IAAA,WACAC,IAAA,WACAC,IAAA,eACAC,IAAA,eACAC,IAAA,iBACAC,IAAA,eACAC,IAAA,kBACA1uE,IAAA,qBACA2uE,IAAA,aACAC,IAAA,YACAC,IAAA,YACAC,IAAA,gBACAC,IAAA,cACAC,IAAA,eACAC,IAAA,kBACAC,IAAA,oBACAC,IAAA,kBACAC,IAAA,iBACAC,IAAA,UACAC,IAAA,YACAC,IAAA,YACAnuB,IAAA,aACAC,IAAA,cACAC,IAAA,UACAC,IAAA,SACAthD,IAAA,cACAuvE,IAAA,UACAC,IAAA,oBACAC,IAAA,kBACAC,IAAA,QACAC,IAAA,aACAC,IAAA,YACAC,IAAA,cACA11C,IAAA,mBACA21C,IAAA,oBACAC,IAAA,cACA31C,IAAA,cACA41C,IAAA,mBACA31C,IAAA,eACA41C,IAAA,aACAC,IAAA,eACAjwE,IAAA,gBACAkwE,IAAA,aACAC,IAAA,cACAC,IAAA,cACAC,IAAA,iBACAC,IAAA,YACAC,IAAA,cACAC,IAAA,eACAC,IAAA,aACAC,IAAA,aACAC,IAAA,gBACAC,IAAA,eACAC,IAAA,kBACAC,IAAA,gBACAC,IAAA,qBACAC,IAAA,WACAC,IAAA,OACAC,IAAA,gBACAC,IAAA,kBACAC,IAAA,aACAC,IAAA,aACAC,IAAA,eACAC,IAAA,iBACAC,IAAA,cACAC,IAAA,iBACAC,IAAA,qBACAC,IAAA,YACAC,IAAA,oBACAC,IAAA,WACAC,IAAA,cACAC,IAAA,iBACAC,IAAA,WACAC,IAAA,eACAC,IAAA,gBACAC,IAAA,gBACAC,IAAA,mBACAC,IAAA,iBACAC,IAAA,eACAC,IAAA,cACAC,IAAA,YACAC,IAAA,kBACAC,IAAA,oBACAC,IAAA,iBACAC,IAAA,YACAC,IAAA,aACAC,IAAA,oBACAC,IAAA,aACAC,IAAA,eACAC,IAAA,iBACAC,IAAA,kBACAC,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,GAAA,OACAC,GAAA,SACAC,GAAA,KACAC,GAAA,KACAC,GAAA,OACAC,GAAA,MACAC,GAAA,OACAC,GAAA,OACAC,GAAA,MACAC,GAAA,OACAC,GAAA,QACAC,GAAA,OACAC,GAAA,OACAC,GAAA,MACAC,GAAA,QACAvU,GAAA,OACAwU,GAAA,UACAC,GAAA,OACAC,GAAA,SACAC,GAAA,SACAC,GAAA,MACAC,GAAA,QACAC,GAAA,OACA9V,GAAA,UACA+V,GAAA,SACAC,GAAA,SACAC,GAAA,SACAC,GAAA,WACAwkB,GAAA,SACAgyC,GAAA,YACA/xC,GAAA,QACAgyC,GAAA,OACA/xC,GAAA,OACAynB,GAAA,OACAC,GAAA,WACAC,GAAA,SACA1nB,GAAA,QACA+tC,GAAA,UACAC,GAAA,SACAC,GAAA,YACA8D,GAAA,cACAC,GAAA,YACAzE,GAAA,SACAC,GAAA,QACAC,GAAA,OACAC,GAAA,OACAznB,IAAA,SACAC,IAAA,UACAC,IAAA,UACAC,IAAA,QACAC,IAAA,QACApmB,IAAA,QACAqmB,IAAA,cACAC,IAAA,WACAonB,IAAA,YACAC,IAAA,MACAC,IAAA,OACAC,IAAA,OACAmE,IAAA,QACAC,IAAA,QACAC,IAAA,SACAC,IAAA,OACAC,IAAA,QACAC,IAAA,QACAC,IAAA,OACAC,IAAA,UACAhsB,IAAA,aACAC,IAAA,OACAC,IAAA,QACAC,IAAA,YACAC,IAAA,OACAC,IAAA,OACAC,IAAA,QACA2rB,IAAA,SACArtE,IAAA,WACAC,IAAA,UACAC,IAAA,IACAotE,IAAA,IACAC,IAAA,QACAC,IAAA,SACArtE,IAAA,QACAstE,IAAA,UACArtE,IAAA,QACAstE,IAAA,WACAC,IAAA,SACAC,IAAA,OACAC,IAAA,YACAuP,IAAA,YACAtP,IAAA,MACAC,IAAA,MACAC,IAAA,MACAC,IAAA,UACAC,IAAA,UACAC,IAAA,UACAC,IAAA,WACAC,IAAA,WACA1sB,IAAA,OACAC,IAAA,UACAC,IAAA,WACAysB,IAAA,cACA+O,IAAA,iBACA9O,IAAA,gBACA+O,IAAA,iBACAC,IAAA,WA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ACA1O,IAAA,EACAG,IAAA,EACAwO,IAAA,EACAn9E,IAAA,EACAC,IAAA,EACAm9E,IAAA,EACAK,IAAA,EACAv9E,IAAA,EACA6uE,IAAA,EACAC,IAAA,EACAK,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAluB,IAAA,EACAouB,IAAA,EACAG,IAAA,EACAC,IAAA,EACAC,IAAA,EACA11C,IAAA,EACA21C,IAAA,EACAC,IAAA,EACAM,IAAA,EACAI,IAAA,EACAgN,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAM,IAAA,EACAG,IAAA,EACAxN,IAAA,EACA0N,IAAA,EACAE,IAAA,EACAK,IAAA,EACArN,IAAA,EACAC,IAAA,EACAqN,IAAA,EACApN,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACA4M,IAAA,EACAC,IAAA,EACA5M,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAwM,IAAA,EACAvM,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAqM,IAAA,EACAC,IAAA,EACAC,IAAA,EACAtM,IAAA,EACAuM,IAAA,EACAC,IAAA,EACAvM,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EACAQ,IAAA,EACAsL,IAAA,EACAC,IAAA,EACAtL,IAAA,EACAwL,IAAA,EACAC,IAAA,EACAG,IAAA,EACAvL,IAAA,EACAC,IAAA,EACA0L,IAAA,EACAC,IAAA,EACAzL,IAAA,EACAx6C,IAAA,EACAy6C,IAAA,EACA2L,IAAA,EACAG,IAAA,EACAQ,IAAA,EACAC,IAAA,EACApM,IAAA,EACAqM,IAAA,EACAC,IAAA,EACArM,IAAA,EACAC,IAAA,EACAC,IAAA,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/O,MAAA+O,EAAA,GAAAnjC,OACA,MACA,aACAs+F,EAAA,aAAA5T,GAAA4T,EAAA,eAAuE,QACvEA,EAAA,YAAA1nF,OAAAgO,GAAAue,EAAA,IAAAg9D,OACA,MACA,aACA7B,EAAA,aAAA5T,GAAA4T,EAAA,eAAuE,QACvEA,EAAA,YAAAzgD,OAAAj5B,GAAAue,EAAA,IAAAg9D,OACA,MACA,kBACA,IAAAC,GAAAx7E,GAAAue,EAAA,IACAm7D,EAAA,aAAA5T,GAAA4T,EAAA,eAAuE,QACvE8B,GAAAC,MAAA/B,EAAA,YAAAtT,IAAAoV,GAAAC,KACAD,GAAAE,OAAAhC,EAAA,YAAAxT,KAAAsV,GAAAE,MACAF,GAAAG,QAAAjC,EAAA,YAAAvT,MAAAqV,GAAAG,OACAH,GAAAI,SAAAlC,EAAA,YAAArT,OAAAmV,GAAAI,QACA,MACA,yBACAzR,EAAAJ,QAAAI,EAAAJ,MAAA,IACAI,EAAAJ,MAAA,KAAAI,EAAAJ,MAAA,OACAI,EAAAJ,MAAA,GAAA15C,KAAA,EACA,MAEA,qBACA,kBACA,kBACA,kBACA,iBACA,mBACA,mBACA,sBACA,qBACA,2BACA,4BACA,6BACA,6BACA,iCACA,+BACA,2BACA,sBACA,sBACA,uBACA,0BACA,6BACA,8BACA,gCACA,sBACA,2BACA,2BACA,2BACA,0BACA,qBACA,kCACA,4BACA,0BACA,wBACA,0BACA,qBACA,sBACA,2BACA,iBACA,wBACA,sBACA,sBACA,wBACA,4BACA,4BACA,4BACA,4BACA,kCACA,6BACA,0BACA,0BACA,qCACA,0BACA,iCACA,+BACA,wCACA,0BACA,8BACA,6BACA,2BACA,gCACA,0BACA,gCACA,uBACA,0BACA,sBACA,4BACA,QAAAirD,IAAA,EACK,MAGL,yCAAA/8D,EAAA,IACA,iCACA,sCACA,6BACA,qBACA,uBACA,wBACA,uBACA,mCACA,6BACA,qBACA,sBACA,qBACA,sBACA,uBACA,wBACA,wBACA,uBACA,6BACA,iBACA,qBACA,qBACA,uBACA,mCACA,qBACA,sBACA,0BACA,uBACA,gCACA,mBACA,qBACA,sBACA,0BACA,qBACA,8BACA,2BACA,wBACA,2BACA,wBACA,wBACA,4BACA,+BACA,8BACA,iCACA,kCACA,wBACA,QAAA+8D,IAAA,EACK,MAGL,wBAAA/8D,EAAA,IACA,sBACA,qBACA,sBACA,qBACA,qBACA,mBACA,mBACA,QAAA+8D,IAAA,EACK,MAGL,wBAAA/8D,EAAA,IACA,6BACA,gCACA,0BACA,yBACA,QAAA+8D,IAAA,EACK,MAGL,wBAAA/8D,EAAA,IACA,eACA,2BACA,8BACA,wBACA,sBACA,+BACA,2BACA,sBACA,uBACA,uBACA,wBACA,wBACA,qBACA,mBACA,uBACA,2BACA,+BACA,+BACA,mBACA,mBACA,oBACA,8BACA,iCACA,2BACA,sBACA,uBACA,gBACA,kBACA,2BACA,4BACA,+BACA,QAAA+8D,IAAA,EACK,MAEL,cACA,4BACA,qBACA,OAAA/8D,EAAA,IACA,kBACA,iBACA,gBACA,gBACA,iBACA,uBACA,kBACA,0BACA,kBACA,uBACA,yBACA,uBACA,0BACA,yBACA,uBACA,sBACA,sBACA,sBACA,sBACA,qBACA,mBACA,mBACA,mBACA,QAAA+8D,IAAA,EACK,MAGL,6CAAA/8D,EAAA,IACA,gBACA,kBACA,kBACA,kBACA,kBACA,oBACA,qBACA,sBACA,wBACA,0BAEA,aACA,cACA,kBACA,eACA,UACA,gBACA,oBAEA,gBACA,QAAA+8D,IAAA,EACK,MAGL,sBAEA,QAAAA,IAAA,EAA0B,MAE1B,GAAAA,GAAA,MAEA,IAAAhmF,IAAAla,OAAA,gCAAAmjC,EAAA,OAAAjpB,EAAA7Z,KAAA,KACA,gCAAA6Z,IAAAla,OAAA,OACA,UAAAmjC,EAAA,GAAAziC,OAAA,SACA,MAAAyiC,EAAA,GAAA05D,GAAA50D,EAAA9E,EAAA,GAAA5jC,EAAA2M,EAAAxL,MAAAi+F,EAAAx7D,EAAA/O,SACU70B,EAAA4jC,EAASw7D,EAAAx7D,EAAA/O,MAAA+O,EAAA,GAAAnjC,QACnB,MAEA,GAAAiG,EAAA8hB,IAAA,0BAAAob,EAAA,OAAAjpB,EAAA7Z,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,GAAA9rC,IAAAC,GAAA56C,EAAA4pC,MAEtB,MAEL,iBACA,kBACA,gBACA,mBACA9sC,EAAA,aAAAmkF,GAAAnkF,EAAA,gBACAA,EAAA,YAAA48B,GAAAziC,MAAA,MAAAwN,eAAAzE,EACA,MAEA,YACAlD,EAAA,aAAAmkF,GAAAnkF,EAAA,gBACAA,EAAA,YAAAqQ,OAAAnN,EAAAmN,OACArQ,EAAA,YAAAs3C,OAAAp0C,EAAAo0C,OACA,MAEA,cAEAp0C,EAAAwrC,MAAA85C,EAAAJ,MAAA,GAAA15C,KAAA,GACA,MAEA,mBACA,mBACA,oBACA,oBACA,gBACA,gBACA,qBACA,mBACA,oBACA,mBACA,iBACA,iBACA,mBACA,kBACA,qBACA,iBACA,kBACA,iBACA,iBACA,iBACA,qBACA,sBACA,iBACA,oCACA,mDACA,cAAAivD,EAAAz6F,EAAkC,MAClC,qBACA,mBACA,0CACA,iBACA,kBACA,kBACA,qBACA,cAAAi7F,EAAAj7F,EAAkC,MAClC,YAAAy2B,EAAAz2B,EAA+B,MAE/B,4BACA,uBAGA,sBAGA,kBACA,wBACA,uBACA,8BAGA,uBACA,iBACA,oBACA,mBACA,oBACA,qBACA,iBACA,qBACA,qBACA,mBACA,mBACA,kBACA,kBAGA,oBAGA,iBAGA,sBAGA,wBACA,sBACA,sBAEA,gBACA,gBAEA,UAEK,MACL,eAEK,MACL,uBAEK,MAGL,iBAEK,MACL,aAEK,MACL,eACA46F,EACAxF,EAAApR,SAAAhkF,GAAAo1F,EAAAvnF,KADAy3E,EAAA6I,QAAAnK,SAAAhkF,GAAA,eAEK,MACL,kBAEK,MAEL,iBACA,yBAEA,0BAGA,0EAGA,0BAGA,+CAGA,kBACA,yBACA,uBAEA,sBACA,sBAGA,uBACA,mDAGA,uBACA,kBACA,gEACA,gCAEA,qDACA,wDACA,iBACA,eAAA8L,EAAAjT,GAEA,UACA,sBACA,gCACA,uBACA,2CACA,eACA,6GACA,kCACA,2FACA,sCACA,yDACA,kDACA,kDACA,qBACA,gDACA,+BACA,yCACA,8BACA,yCACA,wCACA,oCACA,oBACA,sCAGA,2BACA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lE,EAAA,uBACA,IAAAyqG,EAAA,CAAmBp1E,KAAAr1B,EAAAvN,KAAA0hF,IAAA+1B,EAAA,OAAAA,EAAA,IACnBI,IAAAG,EAAAv2B,MAAAxoE,EAAAvwB,QACA4hC,EAAA6zD,MAAAz3F,KAAAsxH,GACA,MAEA,yBACA,4BACA,0BAEA,4BAEA,kBACA,yBACA,8BACA,uBAEA,+BACA,iCACA,0BAEA,sBAEA,+BACA,iCACA,8BACA,wBACA,yBACA,6BACA,iBACA,oBACA,wBAEA,gBACA,uBACA,iBACA,kBACA,MAAAnsF,EAAA,IAAAirF,KAAA,iBACUF,EAAAtpG,GAAAue,EAAA,OAAsCmrF,EAAAnrF,EAAA/O,MAAA+O,EAAA,GAAAnjC,QADhDquH,KAAAruH,OAAA,EAAAquH,EAAA,SAAAjB,EAAAlhH,EAAAxL,MAAA4tH,EAAAnrF,EAAA/O,OAAA85F,GAEA,MACA,cAEA,qBACA,SAAA/qF,EAAA,SACA,IACA4rF,EAAA1kC,GAAAzlE,GAAAue,EAAA,6BACA3S,EAAAu+F,EAAA,oBAAuC7zE,IAAA6zE,EAAA,IAClC,MAAAvwG,KACL,MAEA,iBAEA,mBACA,2BACA,iBACA,wBAGA,yBACA,qBAEA,sBACA,gCACA,+BACA,yBACA,0BACA,4BACA,mBACA,uBACA,sBACA,6BAEA,oCACA,oCACA,kCAGA,uBACA,sBACA,sBACA,mBACA,sBACA,mBACA,2BACA,iBACA,qBACA,wBACA,oBACA,kBACA,yBACA,qBACA,+BACA,kBACA,sBACA,cACA,gBACA,oBACA,iBACA,MAEA,qBACA,MAEA,sBACA,oBACA,iBACA,gBACA,yBACA,mBACA,uBACA,qBACA,MAGA,kBACA,MAGA,wBACA,uBACA,iBAGA,8BACA,sBACA,sBACA,8BAGA,uBACA,wBACA,qBACA,uBACA,uBACA,2BACA,0BACA,yBACA,wBACA,8BACA,2BACA,6BACA,iCACA,wBACA,uBACA,8BACA,MAGA,WACA,MAGA,2BACA,0BACA,eACA,iBACA,MAEA,uBACA,qBAEA,QACA,SAAA2kB,EAAA,IAEA,GADA2rF,EAAAlqG,GAAAue,EAAA,QACA2rF,EAAAjvG,KAAA,MACAivG,EAAAvsF,OAAAusF,EAAAjvG,YAA6BivG,EAAAjvG,KAC7B,KAAAivG,EAAAvsF,OAAA5gC,OAAA,IAAAmtH,EAAAvsF,OAAA/iC,QAAA,UACAuvH,EAAA1kC,GAAAykC,EAAAvsF,OAAA7hC,MAAA,IACAouH,EAAAvsF,OAAA,IAAAwsF,EAAA,OAAAA,EAAA,IAGA,MAGA,6BACA,mCACA,yCACA,eAAA5rF,EAAA,IACA,UACA,eACA,aACA,WACA,gBACA,YACA,aACA,aACA,YACA,WACA,SACA,SACA,MACA,WAAAl9B,EAAA8hB,IAAA,UAAA7kB,MAAAigC,IAGA,IAAA58B,EAAA,CACAiqB,SACAD,aACAw+D,SAAAntD,GAGA,OADA37B,EAAAw6F,mBAAAl6F,EAAAiqB,OACAjqB,GA1hBA,GA8hBA,SAAAgpH,GAAA5rG,EAAA1d,GACAA,KAAA,GACA,IAAAupH,IAAA9rG,GAAAC,EAAA,cACA6rG,GAAAtsF,GAAApf,GAAAH,EAAA,yBAAA1d,GACA,IAAAwU,EAAAuJ,GAAAL,EAAA,eACA,IAAAlJ,EAAA,UAAAvX,MAAA,2BAAAssH,EAAA,sBACA,IAAAz9E,EAAAo7E,GAAAqC,EAAA/0G,EAAAmM,GAAAnM,GAAAxU,GAEA,OADAyd,GAAAC,EAAA,cAAAouB,EAAArN,MAAAT,GAAAngB,GAAAH,EAAA,cACAouB,EAEA,SAAAkuD,GAAApgG,EAAAoG,GACA,OAAAknH,GAAAttH,EAAAoG,GAIA,IAAAwpH,GAAA,WACA,IAAA92G,EAAA,2BAAAuP,GAAA,CACAwnG,eAAA,mDACAC,cAAA,kDACAC,cAAA,kDACAC,aAAA,iDACAC,aAAA,oDACAC,WAAA,8DACAC,cAAA,+BACA3rF,WAAA,mCACA4rF,eAAA,sDACAC,YAAA,2DACAC,WAAA,+CACAC,iBAAA,QACE,6BACF,kBACA,OAAA7rG,GAAA5L,GAhBA,GAmBA03G,GAAA,WAEA,IAAAC,EAAA,SAAAxqG,GACA,OAAAG,GAAAH,GACAlkB,QAAA,gBAAAkJ,GAAiC,yBAAAA,EAAA9K,OAAA,QACjC4B,QAAA,qBACAA,QAAA,4BACAA,QAAA,kBAAAA,QAAA,mBAGA2uH,EAAA,mCACAC,EAAA,0CACAr0B,EAAA,SAAAvrE,EAAAmhB,EAAAh0C,GAEA,IAAA+B,EAAA,GACAA,EAAA9B,KAAA,kCAAAioB,GAAA8rB,EAAAxhB,WAAAxyB,IAAA,QACA,IAAAwX,EAAA,EAAA+C,EAAA,EAAAsV,EAAA+B,GAAAiB,EAAA,SACAw/D,EAAAx/D,EAAA,eAAAyxE,EAAA,EACA1xE,EAAAzuB,MAAAa,QAAA6tB,GACA,IAAArb,EAAA,EAAYA,EAAAqY,EAAAprB,EAAA4I,IAAemK,EAAAzV,EAAA9B,KAAA,iDAC3B,KAAOuX,GAAAqY,EAAApP,EAAApT,IAAgBmK,EAAA,CAEvB,IADAzV,EAAA9B,KAAA,+BACAsa,EAAA,EAAWA,EAAAsV,EAAAprB,EAAAsB,IAAewU,EAAAxY,EAAA9B,KAAAuyH,GAC1B,KAAQj4G,GAAAsV,EAAApP,EAAA1a,IAAgBwU,EAAA,CACxB,IAAAoqF,GAAA,EAAAtoF,EAAA,GAA6Bi0G,EAAA,GAC7B,IAAAhsB,EAAA,EAAeA,GAAAjS,EAAApwF,SAAmBqiG,EAClC,KAAAjS,EAAAiS,GAAA7/F,EAAAsB,EAAAwU,MACA83E,EAAAiS,GAAA7/F,EAAA4I,EAAAmK,MACA66E,EAAAiS,GAAA7jF,EAAA1a,EAAAwU,MACA83E,EAAAiS,GAAA7jF,EAAApT,EAAAmK,GAAA,CACA66E,EAAAiS,GAAA7/F,EAAAsB,GAAAwU,GAAA83E,EAAAiS,GAAA7/F,EAAA4I,GAAAmK,IAAAmtF,GAAA,GACAtoF,EAAA,gCAAAg2E,EAAAiS,GAAA7jF,EAAA1a,EAAAssF,EAAAiS,GAAA7/F,EAAAsB,EAAA,EACAsW,EAAA,6BAAAg2E,EAAAiS,GAAA7jF,EAAApT,EAAAglF,EAAAiS,GAAA7/F,EAAA4I,EAAA,EACA,MAEA,GAAAs3F,EAAc5iG,EAAA9B,KAAAwyH,OAAd,CACA,IAAAt1E,EAAAptB,GAAA,CAA2B1iB,EAAAmK,EAAAzR,EAAAwU,IAASiV,EAAAoD,GAAAC,EAAArb,IAAA,IAAA+C,GAAAsY,EAAAsqB,GACpC,GAAA3tB,KAAAle,IACA+K,EAAA,iBAAA6L,GAAAmkE,GAAA78D,EAAAle,IACAke,EAAA+hB,GACA/hB,EAAA+hB,EAAA5uC,MAAA,EAAAw6C,EAAAl7C,SAAAk7C,GAAA,CACA,IAAAu1E,EAAA9gG,GAAApC,EAAA+hB,GACAl1B,EAAA,uCAAAq2G,EAAAjyG,EAAA1a,EAAA2sH,EAAAjuH,EAAAsB,EAAA,EACAsW,EAAA,oCAAAq2G,EAAAjyG,EAAApT,EAAAqlH,EAAAjuH,EAAA4I,EAAA,EAIA,GAAAmiB,EAAA,CACA,OAAAA,EAAAppB,GACA,QACAkqH,EAAA9gG,EAAAtpB,EAAA,eACAmW,EAAA,+BACAA,EAAA,wBAAAmT,EAAAtpB,EAAA,eACA,MACA,QACAoqH,EAAA9gG,EAAA9kB,GAAAtI,OAAAotB,EAAAtpB,GAAA,GACAmW,EAAA,6BACAA,EAAA,gBAAAmT,EAAAtpB,GAAA,EACA,MACA,kBACAoqH,EAAA9gG,EAAAtpB,EACAmW,EAAA,8BACA,MACA,QACAi0G,EAAA9gG,EAAA9kB,GAAAqZ,GAAAyL,EAAAtpB,GAAAokB,cACAjO,EAAA,4BACAA,EAAA,qBAAA0H,GAAAyL,EAAAtpB,GAAAokB,cACAjO,EAAA,0BACA,MAEA,QAAAta,EAAA9B,KAAAuyH,GAAoC,SAEpC,IAAAG,EAAAJ,EAAAjC,GACA,GAAA9gG,EAAAxpB,GAAAwpB,EAAAxpB,EAAAw+B,OAAA,CACA,IAAAouF,EAAApjG,EAAAxpB,EAAAw+B,OAA8BouF,EAAA,KAAAA,EAAAhvH,OAAA,OAAA2oF,GAAAqmC,EAAAjwH,MAAA,IAAAiwH,EAC9BD,EAAAvoG,GAAA,SAAAuoG,EAAA,CAA2CE,aAAAD,IAE3C7wH,EAAA9B,KAAA,aAAAmqB,GAAA,mBAAAA,GAAA,SAAAuoG,EAAA,IAAsFt2G,GAAA,WA9BvEta,EAAA9B,KAAAuyH,IAgCfzwH,EAAA9B,KAAA,gCAGA,OADA8B,EAAA9B,KAAA,0BACA8B,EAAAO,KAAA,KAGAwwH,EAAA,SAAA/wH,GACAA,EAAA9B,KAAA,gCACA8B,EAAA9B,KAAA,0EACA8B,EAAA9B,KAAA,4CACA8B,EAAA9B,KAAA,qCACA8B,EAAA9B,KAAA,0CACA8B,EAAA9B,KAAA,qCACA8B,EAAA9B,KAAA,uBACA8B,EAAA9B,KAAA,4BACA8B,EAAA9B,KAAA,+HACA8B,EAAA9B,KAAA,kCAGA,gBAAA+zC,EAAA9rC,GACA,IAAAnG,EAAA,CAAAykB,IAEA69E,EAAAl6E,GAAA,CACAwnG,eAAA,mDACAC,cAAA,kDACAC,cAAA,kDACAC,aAAA,iDACAC,aAAA,oDACAC,WAAA,8DACAC,cAAA,+BACA3rF,WAAA,mCACAysF,aAAA,iDACAb,eAAA,sDACAc,qBAAA,yDACAb,YAAA,2DACAc,cAAA,kDACAC,aAAA,iDACAC,aAAA,qCACAC,aAAA,iDACAC,eAAA,mDACAC,YAAA,oCACAC,aAAA,oCACAC,aAAA,kCACAC,YAAA,oCACAC,eAAA,gCACAtwF,YAAA,mCACAC,YAAA,4CACAswF,cAAA,8CACAC,YAAA,oCACAxB,WAAA,+CACAyB,cAAA,+BACAC,cAAA,sCACAC,iBAAA,mCACAC,gBAAA,kCACAC,gBAAA,uEACAC,cAAA,uEACAC,cAAA,mEACAC,cAAA,qEACAC,cAAA,kCACAhC,iBAAA,QAGAiC,EAAAnqG,GAAA,CACAoqG,eAAA,mDACAC,kBAAA,mDAGA,QAAAtsH,EAAAu7B,SAAA1hC,EAAA9B,KAAA,mBAAAokG,EAAAiwB,EAAA,OACAvyH,EAAA9B,KAAA,2BAAAokG,EAAA,OACAyuB,EAAA/wH,GACAA,EAAA9B,KAAA,qBACA8B,EAAA9B,KAAA,8BACA,QAAAD,EAAA,EAAgBA,GAAAg0C,EAAAxhB,WAAAvwB,SAA2BjC,EAAA+B,EAAA9B,KAAAm+F,EAAApqD,EAAAvhB,OAAAuhB,EAAAxhB,WAAAxyB,IAAAg0C,EAAAh0C,EAAAkI,IAK3C,OAJAnG,EAAA9B,KAAA,+BACA8B,EAAA9B,KAAA,sBACA,QAAAiI,EAAAu7B,SAAA1hC,EAAA9B,KAAA,sBACA8B,EAAA9B,KAAA,8BACA8B,EAAAO,KAAA,KA5JA,GAgKA,SAAAmyH,GAAAzgF,EAAA9rC,GACA,WAAAA,EAAAu7B,SAAA,OAAA6uF,GAAAt+E,EAAA9rC,GAEA,IAAA0d,EAAA,IAAAf,GACAvT,EAAA,GAEAo0B,EAAA,GACAI,EAAA,GAiCA,OA9BAx0B,EAAA,WACAsU,EAAA7N,KAAAzG,EAAA,kDAGAA,EAAA,cACAsU,EAAA7N,KAAAzG,EAAAghH,GAAAt+E,EAAA9rC,IACAw9B,EAAAzlC,KAAA,CAAAqR,EAAA,aACAw0B,EAAA7lC,KAAA,CAAAqR,EAAA,gBAGAA,EAAA,aACAsU,EAAA7N,KAAAzG,EAAAogH,GAAA19E,EAAA9rC,IACAw9B,EAAAzlC,KAAA,CAAAqR,EAAA,aACAw0B,EAAA7lC,KAAA,CAAAqR,EAAA,eAGAA,EAAA,WACAsU,EAAA7N,KAAAzG,EAAAy0B,MACAL,EAAAzlC,KAAA,CAAAqR,EAAA,aACAw0B,EAAA7lC,KAAA,CAAAqR,EAAA,iBAGAA,EAAA,eACAsU,EAAA7N,KAAAzG,EAAAu0B,GAAAC,IACAJ,EAAAzlC,KAAA,CAAAqR,EAAA,wBAGAA,EAAA,wBACAsU,EAAA7N,KAAAzG,EAAAm0B,GAAAC,IAEA9f,EAGA,SAAA8uG,GAAA1gF,EAAA1hB,GACA,IAAAA,EAAA,SACA,IAAA7lB,EAAAunC,EAAAxhB,WAAA/wB,QAAA6wB,GACA,OAAA7lB,EAAA,UAAAtH,MAAA,oBAAAmtB,GACA,OAAA7lB,EAGA,SAAAkoH,GAAAC,GACA,gBAAA5gF,EAAAjyC,GACA,IAAA0K,EAAAioH,GAAA1gF,EAAAjyC,EAAAuwB,OACA,OAAAsiG,EAAA9vE,WAAA9Q,EAAAvhB,OAAAuhB,EAAAxhB,WAAA/lB,IAAA1K,EAAAiyC,IAIA,IAAA6gF,GAAAF,GAAAv0B,IACA00B,GAAAH,GAAA,CAAmC7vE,WAAAiwE,KACnCC,GAAAL,GAAA5vE,IACAkwE,GAAAN,GAAAltE,IACAytE,GAAAP,GAAAhsE,IACAwsE,GAAAR,GAAAnhE,IACA4hE,GAAAT,GAAA,CAAmC7vE,WAAAuwE,KACnCC,GAAAX,GAAAzzE,IACAq0E,GAAAZ,GAAAxsE,IAEA,SAAAqtE,GAAAtyF,GACA,gBAAAh7B,GACA,QAAAlI,EAAA,EAAgBA,GAAAkjC,EAAAjhC,SAAsBjC,EAAA,CACtC,IAAAmG,EAAA+8B,EAAAljC,QACA6R,IAAA3J,EAAA/B,EAAA,MAAA+B,EAAA/B,EAAA,IAAAA,EAAA,IACA,MAAAA,EAAA,KAAA+B,EAAA/B,EAAA,IAAAqe,OAAAtc,EAAA/B,EAAA,QAKA,IAAA08F,GAAA2yB,GAAA,CACA,cACA,gBACA,mBACA,kBACA,gBACA,iBAEA,kBACA,oBAEA,gBACA,kBACA,iBACA,iBACA,eAEA,gBACA,aAIAC,GAAAD,GAAA,CACA,iBAEA,eAEA,oBAEA,mBAEA,aAEA,SAAAE,GAAAnxH,GACA,OAAAq/B,GAAAgqD,GAAAnsF,QAAA8C,IAAA,UACAq/B,GAAAo1D,IAAAz0F,GAAAq/B,GAAAo1D,GAAA,QACAp1D,GAAAw+B,IAAA79D,GAAAq/B,GAAAw+B,GAAA,SACAx+B,GAAAy+B,IAAA99D,GAAAq/B,GAAAy+B,GAAA,QACA99D,KAAAtC,OAAAsC,EAAA,QAEA,SAAAoxH,GAAAC,EAAArjG,GACA,IAAAqjG,EAAA,SACA,IACAA,EAAArjG,EAAApvB,IAAA,SAAAuH,GAAqE,OAA7BA,EAAAwoC,KAAAxoC,EAAAwoC,GAAAxoC,EAAA+wF,UAA6B,CAAA/wF,EAAA6O,KAAAq8G,EAAA,OAAAlrH,EAAAwoC,IAAA1O,OAAAkxF,GAAAE,EAAA,OAAAlrH,EAAAwoC,IAAA3O,SACnE,MAAA9jB,IAAW,YACb,OAAAm1G,GAAA,IAAAA,EAAA3zH,OAAA2zH,EAAA,KAGA,SAAAC,GAAAjwG,EAAA9G,EAAAg3G,EAAAxjG,EAAA7lB,EAAAozD,EAAAttC,EAAAwjG,EAAA7tH,EAAA8rC,EAAA7R,EAAAR,GACA,IACAk+B,EAAAvtC,GAAA6R,GAAAle,GAAAL,EAAAkwG,GAAA,GAAAh3G,GACA,IAAAhd,EAAAikB,GAAAH,EAAA9G,GACA,OAAAi3G,GACA,YAAAxjG,EAAAD,GAAAorE,GAAA57F,EAAAgd,EAAArS,EAAAvE,EAAA23D,EAAAvtC,GAAA0hB,EAAA7R,EAAAR,GAAqG,MACrG,YACA,IAAA7P,EAAA6rE,GAAA77F,EAAAgd,EAAArS,EAAAvE,EAAA23D,EAAAvtC,GAAA0hB,EAAA7R,EAAAR,GAEA,GADApP,EAAAD,GAAAR,GACAA,MAAA,gBACA,IAAAkkG,EAAA7vG,GAAA2L,EAAA,UAAA0S,OAAA1lB,GACAm3G,EAAA/xF,GAAA8xF,GACAE,EAAA93D,GAAAn4C,GAAAL,EAAAowG,GAAA,GAAA7xF,GAAAle,GAAAL,EAAAqwG,GAAA,GAAAD,IACAG,EAAAhwG,GAAA+vG,EAAAF,GACAI,EAAAlyF,GAAAiyF,GACArkG,EAAA8mE,GAAA3yE,GAAAL,EAAAuwG,GAAA,GAAAA,EAAAjuH,EAAAi8B,GAAAle,GAAAL,EAAAwwG,GAAA,GAAAD,GAAAniF,EAAAliB,GACA,MACA,YAAAS,EAAAD,GAAAsrE,GAAA97F,EAAAgd,EAAArS,EAAAvE,EAAA23D,EAAAvtC,GAAA0hB,EAAA7R,EAAAR,GAAqG,MACrG,aAAApP,EAAAD,GAAAurE,GAAA/7F,EAAAgd,EAAArS,EAAAvE,EAAA23D,EAAAvtC,GAAA0hB,EAAA7R,EAAAR,GAAsG,OAEpG,MAAAlhB,IAAW,GAAAvY,EAAA8hB,IAAA,MAAAvJ,IAGb,SAAA41G,GAAAxzH,GAA+B,WAAAA,EAAAe,OAAA,GAAAf,EAAAF,MAAA,GAAAE,EAE/B,SAAAyzH,GAAA1wG,EAAA1d,GAMA,GALAtC,EAAAD,GACAuC,KAAA,GACA26F,GAAA36F,GAGAyd,GAAAC,EAAA,gCAAA4rG,GAAA5rG,EAAA1d,GAEA,GAAAyd,GAAAC,EAAA,yBAAA4rG,GAAA5rG,EAAA1d,GAEA,GAAAyd,GAAAC,EAAA,gCAAAzgB,MAAA,4BAEA,IAGAotB,EAAAgkG,EAHArpF,EAAAhnB,GAAAN,GACA4wG,EAAA/zF,GAAAxc,GAAAL,EAAA,wBACAub,GAAA,EAMA,GAJA,IAAAq1F,EAAAx1F,UAAA/+B,SACAs0H,EAAA,kBACAxwG,GAAAH,EAAA2wG,GAAA,IAAAC,EAAAx1F,UAAA/gC,KAAAs2H,IAEA,IAAAC,EAAAx1F,UAAA/+B,OAAA,CAEA,GADAs0H,EAAA,mBACAxwG,GAAAH,EAAA2wG,GAAA,aAAApxH,MAAA,2BACAqxH,EAAAx1F,UAAA/gC,KAAAs2H,GACAp1F,GAAA,EAEA,OAAAq1F,EAAAx1F,UAAA,GAAAr+B,OAAA,KAAAw+B,GAAA,GAEA,IAAAgB,EAAA,GACAR,EAAA,GACA,IAAAz5B,EAAAw6F,aAAAx6F,EAAAy6F,UAAA,CAEA,GADArhE,GAAA,GACAk1F,EAAAxzF,IAAA,IAAmB1B,GAAA08D,GAAAj4E,GAAAH,EAAAywG,GAAAG,EAAAxzF,MAAAwzF,EAAAxzF,IAAA96B,GAA8E,MAAAuY,IAAW,GAAAvY,EAAA8hB,IAAA,MAAAvJ,GAE5GvY,EAAA2wC,YAAA29E,EAAAr0F,OAAAlgC,SAAAkgC,EAAA47D,GAAA93E,GAAAL,EAAA4wG,EAAAr0F,OAAA,GAAAt+B,QAAA,kBAAA2yH,EAAAr0F,OAAA,GAAAj6B,IAEAsuH,EAAAvzF,QAAAtB,EAAAm8D,GAAA/3E,GAAAH,EAAAywG,GAAAG,EAAAvzF,QAAAuzF,EAAAvzF,MAAAd,EAAAj6B,IAGAsuH,EAAAz0F,MAAA5+B,IAAA,SAAAszH,GACA,OAAAv4B,GAAAn4E,GAAAH,EAAAywG,GAAAI,MAAAvuH,KAGA,IAAA8rC,EAAAypD,GAAA13E,GAAAH,EAAAywG,GAAAG,EAAAx1F,UAAA,KAAAw1F,EAAAx1F,UAAA,GAAA94B,GAEAk/B,EAAA,GAAesvF,EAAA,GAEfF,EAAAx0F,UAAA//B,SACAy0H,EAAA3wG,GAAAH,EAAAywG,GAAAG,EAAAx0F,UAAA,QACA00F,IAAAtvF,EAAAlB,GAAAwwF,IACA,IAAAF,EAAAv0F,SAAAhgC,SACAy0H,EAAA3wG,GAAAH,EAAAywG,GAAAG,EAAAv0F,SAAA,QACAy0F,GAAA9uF,GAAA8uF,EAAAtvF,EAAAl/B,KAIA,IAAAg6B,EAAA,GACAh6B,EAAAw6F,aAAAx6F,EAAAy6F,WACA,IAAA6zB,EAAAt0F,UAAAjgC,SACAy0H,EAAAzwG,GAAAL,EAAAywG,GAAAG,EAAAt0F,UAAA,QACAw0F,IAAAx0F,EAAAoG,GAAAouF,EAAAxuH,KAIA,IAAAM,EAAA,GACA,IAAAN,EAAAw6F,YAAAx6F,EAAAy6F,aACA3uD,EAAAvhB,OAAAF,EAAAyhB,EAAAvhB,OAAAtvB,IAAA,SAAAN,GAAyD,OAAAA,EAAA0W,OACzD6tB,EAAAG,YAAAH,EAAA5U,WAAAvwB,OAAA,IAAAswB,EAAA6U,EAAA5U,YACAtqB,EAAAy6F,YAAsBn6F,EAAAm+B,MAAAS,EAAmB5+B,EAAA0hC,UAAAhI,GACzCh6B,EAAAw6F,YAAA,qBAAAnwE,IAAA/pB,EAAAgqB,WAAAD,GACArqB,EAAAw6F,WAAAl6F,EAAAgqB,WAAAtqB,EAAAy6F,WAAA,OAAAn6F,EAEA+pB,EAAA,GAEA,IAAAokG,EAAA,GACAzuH,EAAA0uH,UAAAJ,EAAAzzF,YAAA4zF,EAAA14B,GAAAl4E,GAAAH,EAAAywG,GAAAG,EAAAzzF,YAAAyzF,EAAAzzF,UAAA76B,IAEA,IAEA4W,EAAAg3G,EAFA91H,EAAA,EACA6/D,EAAA,GAIAg3D,EAAA7iF,EAAAvhB,OACA2U,EAAAG,WAAAsvF,EAAA50H,OACAmlC,EAAA5U,WAAA,GACA,QAAAxmB,EAAA,EAAgBA,GAAA6qH,EAAA50H,SAAsB+J,EACtCo7B,EAAA5U,WAAAxmB,GAAA6qH,EAAA7qH,GAAAuN,KAIA,IAAAu9G,EAAA31F,EAAA,YACA41F,EAAAP,EAAAx1F,UAAA,GAAAzxB,YAAA,KACAynH,GAAAR,EAAAx1F,UAAA,GAAAr+B,MAAA,EAAAo0H,EAAA,YAAAP,EAAAx1F,UAAA,GAAAr+B,MAAAo0H,EAAA,YAAAlzH,QAAA,UACA8hB,GAAAC,EAAAoxG,OAAA,qBAAAF,EAAA,SACA,IAAAlB,EAAAzxF,GAAAle,GAAAL,EAAAoxG,GAAA,GAAAA,GACApB,MAAAD,GAAAC,EAAA5hF,EAAAvhB,SAGA,IAAAwkG,EAAAlxG,GAAAH,EAAA,kCACA,IAAA5lB,EAAA,EAAWA,GAAAonC,EAAAG,aAAuBvnC,EAAA,CAClC,IAAA+1H,EAAA,QACAH,KAAA51H,IACA8e,EAAA,MAAA82G,EAAA51H,GAAA,GAAA6D,QAAA,gBACA8hB,GAAAC,EAAA9G,OAAA82G,EAAA51H,GAAA,IACA2lB,GAAAC,EAAA9G,OAAAk4G,EAAAnzH,QAAA,iBAAA+xH,EAAA51H,GAAA,IACA+1H,EAAAH,EAAA51H,GAAA,KAEA8e,EAAA,uBAAA9e,EAAA,EAAAi3H,GAAA,IAAAH,EACAh4G,IAAAjb,QAAA,sBAEAiyH,EAAAh3G,EAAAjb,QAAA,yCACAgyH,GAAAjwG,EAAA9G,EAAAg3G,EAAA1uF,EAAA5U,WAAAxyB,KAAA6/D,EAAAttC,EAAAwjG,EAAA7tH,EAAA8rC,EAAA7R,EAAAR,GA0BA,OAvBA60F,EAAAj1F,UAAAo+B,GAAA/5C,EAAA4wG,EAAAj1F,SAAAhP,EAAAstC,EAAA33D,GAEAM,EAAA,CACA49F,UAAAowB,EACAxlC,SAAAh9C,EACArN,MAAAS,EACA8C,UAAAhI,EACAg1F,KAAAP,EACAlkG,OAAAF,EACAC,WAAA4U,EAAA5U,WACA4+D,QAAA9vD,GACA61F,OAAAx1F,EACAg7B,OAAAx6B,EACAx8B,MAAAqM,aAEA9J,EAAAyiG,YACAniG,EAAAoa,KAAAsqB,EACA1kC,EAAAiR,MAAAmM,EAAAnM,OAEAvR,EAAAwiG,UACA8rB,EAAAn0F,IAAApgC,OAAA,EAAAuG,EAAAgrF,OAAAztE,GAAAH,EAAAywG,GAAAG,EAAAn0F,IAAA,QACAm0F,EAAAtzF,UAAAszF,EAAAtzF,SAAAk0F,MAAA31D,KAAAj5D,EAAAgrF,OAAAztE,GAAAH,EAAA,0BAEApd,EAIA,SAAA6uH,GAAAp6G,EAAAc,GACA,IAAA7V,EAAA6V,GAAA,GACAzM,EAAA,uBACAxP,EAAAqV,EAAAmG,KAAAL,EAAA3L,GAA6B,IAAAxP,MAAA4a,QAAA,UAAAvX,MAAA,mCAAAmM,GAKJ,GAJzBo9C,GAAA5sD,EAAA4a,SAGApL,EAAA,4BACAxP,EAAAqV,EAAAmG,KAAAL,EAAA3L,IAAyBxP,MAAA4a,QAAA,UAAAvX,MAAA,mCAAAmM,GACzB,IAAAgmH,EAAAxoE,GAAAhtD,EAAA4a,SACA,OAAA46G,EAAAr1H,QAAA,IAAAq1H,EAAA,GAAAzoE,MAAA5sD,QAAA,IAAAq1H,EAAA,GAAAzoE,MAAA,GAAAzoD,GAAA,8BAAAkxH,EAAA,GAAA/9G,MAAA,qBAAA+9G,EAAA,GAAAzoE,MAAA,GAAA3oD,EACA,UAAAf,MAAA,+BAAAmM,GAIyB,GADzBA,EAAA,uDACAxP,EAAAqV,EAAAmG,KAAAL,EAAA3L,IAAyBxP,MAAA4a,QAAA,UAAAvX,MAAA,mCAAAmM,GACzB,IAAAimH,EAAAxoE,GAAAjtD,EAAA4a,SACA,MAAA66G,EAAAt1H,QAAA,6BAAAs1H,EAAA,GACA,UAAApyH,MAAA,+BAAAmM,GAIyB,GADzBA,EAAA,gEACAxP,EAAAqV,EAAAmG,KAAAL,EAAA3L,IAAyBxP,MAAA4a,QAAA,UAAAvX,MAAA,mCAAAmM,GAIA,GAHzB29C,GAAAntD,EAAA4a,SAEApL,EAAA,kBACAxP,EAAAqV,EAAAmG,KAAAL,EAAA3L,IAAyBxP,MAAA4a,QAAA,UAAAvX,MAAA,mCAAAmM,GACzB,IAAAkmH,EAAAznE,GAAAjuD,EAAA4a,SAIyB,GADzBpL,EAAA,oBACAxP,EAAAqV,EAAAmG,KAAAL,EAAA3L,IAAyBxP,MAAA4a,QAAA,UAAAvX,MAAA,mCAAAmM,GAGzB,MAAAkmH,EAAA,yBAAAC,cAAA,OAAAA,cAAAD,EAAA,GAAA11H,EAAA4a,QAAAxU,EAAAoqD,UAAA,GAAApqD,GAEA,MAAAsvH,EAAA,yBAAAE,cAAA,OAAAA,cAAAF,EAAA,GAAA11H,EAAA4a,QAAAxU,EAAAoqD,UAAA,GAAApqD,GACA,UAAA/C,MAAA,8BAGA,SAAAwyH,GAAA3jF,EAAA9rC,GAEA,GADAq2D,GAAA,KACA,OAAAr2D,EAAAu7B,SAAA,OAAAgxF,GAAAzgF,EAAA9rC,GACA8rC,MAAAruC,MACAquC,EAAAruC,MAAAqM,aAEAgiC,KAAAruC,MACAC,EAAAD,GAAgBA,EAAAsM,WAAA+hC,EAAAruC,KAEhBuC,EAAAklF,OAAA9pE,EAAA0wB,EAAAruC,KAAkCuC,EAAAklF,OAAAp5C,EAAAruC,IAAA,UAClCuC,EAAAmlF,IAAAr5C,EAAAruC,KAEAuC,EAAA45B,KAAA,GAAgB55B,EAAA0tH,OAAA,GAChB1tH,EAAAkpF,QAAA,GAAmBlpF,EAAAkpF,QAAAt8C,MAAA,EAAwB5sC,EAAAkpF,QAAAr8C,OAAA,EAC3C,IAAA+hF,EAAA,QAAA5uH,EAAAu7B,SAAA,YACAm0F,EAAA91D,GAAArgE,QAAAyG,EAAAu7B,WAAA,EACApnB,EAAAwlB,KACA4zF,GAAAvtH,KAAA,IACA,IAAA0d,EAAA,IAAAf,GACAvT,EAAA,GAAA0zB,EAAA,EAaA,GAXA98B,EAAAywD,QAAA,GACAw0B,GAAAjlF,EAAAywD,QAAA,GAAgC,CAAGy0B,OAAA,CAAQ0X,QAAA,KAE3C9wD,EAAArN,QAAAqN,EAAArN,MAAA,IAEAr1B,EAAA,oBACAsU,EAAA7N,KAAAzG,EAAAo1B,GAAAsN,EAAArN,MAAAz+B,IACAmU,EAAA2lB,UAAA/hC,KAAAqR,GACAyzB,GAAA78B,EAAA45B,KAAA,EAAAxwB,EAAAsyB,GAAAoC,YAEA10B,EAAA,mBACA0iC,EAAArN,OAAAqN,EAAArN,MAAAnU,iBACA,GAAAwhB,EAAAg9C,UAAAh9C,EAAAg9C,SAAAv+D,OACA,CAEA,IADA,IAAAolG,EAAA,GACAC,EAAA,EAAiBA,EAAA9jF,EAAAxhB,WAAAvwB,SAA2B61H,EACX,IAAjC9jF,EAAAg9C,SAAAv+D,OAAAqlG,IAAA,IAAiCj9B,QAAAg9B,EAAA53H,KAAA+zC,EAAAxhB,WAAAslG,IACjC9jF,EAAArN,MAAAnU,WAAAqlG,OALA7jF,EAAArN,MAAAnU,WAAAwhB,EAAAxhB,WAwBA,IAjBAwhB,EAAArN,MAAAY,WAAAyM,EAAArN,MAAAnU,WAAAvwB,OACA2jB,EAAA7N,KAAAzG,EAAA22B,GAAA+L,EAAArN,MAAAz+B,IACAmU,EAAA4lB,SAAAhiC,KAAAqR,GACAyzB,GAAA78B,EAAA45B,KAAA,EAAAxwB,EAAAsyB,GAAAmD,WAEAiN,EAAA9J,YAAA8J,EAAArN,OAAA/jB,EAAAoxB,EAAA9J,WAAA,IAAsDjoC,OAAA,IACtDqP,EAAA,sBACAsU,EAAA7N,KAAAzG,EAAAq3B,GAAAqL,EAAA9J,UAAAhiC,IACAmU,EAAA6lB,UAAAjiC,KAAAqR,GACAyzB,GAAA78B,EAAA45B,KAAA,EAAAxwB,EAAAsyB,GAAAwE,aAGA92B,EAAA,eAAAwlH,EACAlxG,EAAA7N,KAAAzG,EAAA6sF,GAAAnqD,EAAA1iC,EAAApJ,IACAmU,EAAA2kB,UAAA/gC,KAAAqR,GACAyzB,GAAA78B,EAAA45B,KAAA,EAAAxwB,EAAAsyB,GAAAC,IAEAmB,EAAA,EAAWA,GAAAgP,EAAAxhB,WAAAvwB,SAA4B+iC,EAAA,CACvC,IAAA+yF,EAAA,CAAgBxgC,MAAA,IAChB1kE,EAAAmhB,EAAAvhB,OAAAuhB,EAAAxhB,WAAAwS,EAAA,IACAgzF,GAAAnlG,GAAA,IAAuB,kBACvB,OAAAmlG,GACA,YAOA,QACA1mH,EAAA,sBAAA0zB,EAAA,IAAA8xF,EACAlxG,EAAA7N,KAAAzG,EAAA8sF,GAAAp5D,EAAA,EAAA1zB,EAAApJ,EAAA8rC,EAAA+jF,IACA17G,EAAAkW,OAAAtyB,KAAAqR,GACAyzB,GAAA78B,EAAA0tH,QAAA,qBAAA5wF,EAAA,IAAA8xF,EAAAlzF,GAAAgqD,GAAA,IAGA,GAAA/6D,EAAA,CACA,IAAA0O,EAAA1O,EAAA,aACA,GAAA0O,KAAAt/B,OAAA,GACA,IAAAqxC,EAAA,cAAAtO,EAAA,IAAA8xF,EACAlxG,EAAA7N,KAAAu7B,EAAAirD,GAAAh9D,EAAA+R,EAAAprC,IACAmU,EAAAklB,SAAAthC,KAAAqzC,GACAvO,GAAAgzF,GAAA,gBAAA/yF,EAAA,IAAA8xF,EAAAlzF,GAAAk9B,MAEAjuC,EAAA,YACAjN,EAAA7N,KAAA,kCAAAymD,GAAAx5B,EAAAnS,EAAA,sBAEAA,EAAA,oBACAA,EAAA,WAGAklG,EAAA,OAAAE,MAAAryG,EAAA7N,KAAAmsB,GAAA5yB,GAAAuzB,GAAAkzF,IAoCA,OAjCA,MAAA7vH,EAAAkpF,SAAAlpF,EAAAkpF,QAAAnvF,OAAA,IACAqP,EAAA,oBAAAwlH,EACAlxG,EAAA7N,KAAAzG,EAAAgtF,GAAAp2F,EAAAkpF,QAAA9/E,EAAApJ,IACAmU,EAAAilB,KAAArhC,KAAAqR,GACAyzB,GAAA78B,EAAA0tH,QAAA,mBAAAkB,EAAAlzF,GAAA+pB,MAKAr8C,EAAA,sBACAsU,EAAA7N,KAAAzG,EAAAorD,GAAA1oB,EAAA2oB,OAAAz0D,IACAmU,EAAA8lB,OAAAliC,KAAAqR,GACAyzB,GAAA78B,EAAA0tH,QAAA,qBAAAhyF,GAAAu4B,OAIA7qD,EAAA,aAAAwlH,EACAlxG,EAAA7N,KAAAzG,EAAA+sF,GAAArqD,EAAA1iC,EAAApJ,IACAmU,EAAAslB,OAAA1hC,KAAAqR,GACAyzB,GAAA78B,EAAA0tH,QAAA,YAAAkB,EAAAlzF,GAAAi2B,KAEA7lB,EAAAw/C,QAAAokC,IACAtmH,EAAA,oBACAsU,EAAA7N,KAAAzG,EAAA0iC,EAAAw/C,QACAn3E,EAAAgmB,IAAApiC,KAAAqR,GACAyzB,GAAA78B,EAAA0tH,QAAA,mBAAAhyF,GAAAK,MAGAre,EAAA7N,KAAA,sBAAAwrB,GAAAlnB,EAAAnU,IACA0d,EAAA7N,KAAA,cAAA8sB,GAAA38B,EAAA45B,OACAlc,EAAA7N,KAAA,qBAAA++G,EAAA,QAAAjyF,GAAA38B,EAAA0tH,gBAEA1tH,EAAAklF,cAAoBllF,EAAAmlF,IACpBznE,EAEA,SAAAikC,GAAAv4C,EAAAvP,GACA,IAAAc,EAAA,GACA,QAAAd,GAAA,IAAcyJ,MAAA,UACd,oBAAA8F,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACA,aAAAzO,EAAAK,EAAAH,OAAAuO,EAAA3O,MAAA,OAAkD,MAClD,aAAAE,EAAAyO,EAAuB,MACvB,mBAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACA,kBAAAnM,MAAA,sBAAApD,KAAAyJ,MAAA,cAEA,OAAA3I,EAAAX,WAAA,GAAAW,EAAAX,WAAA,GAAAW,EAAAX,WAAA,GAAAW,EAAAX,WAAA,IAGA,SAAAg2H,GAAAj7G,EAAA/U,GACA,OAAAiP,EAAAmG,KAAAL,EAAA,oBAAAo6G,GAAAp6G,EAAA/U,GACAqiG,GAAAttF,EAAA/U,GAGA,SAAAiwH,GAAAr2H,EAAAoG,GACA,IAAA0d,EAAAzf,EAAArE,EACAC,EAAAmG,GAAA,GAEA,OADAnG,EAAAyJ,OAAAzJ,EAAAyJ,KAAA1H,GAAAxE,EAAA2tB,SAAAnrB,GAAA,mBACAC,EAAAyJ,MACA,aAAAoa,EAAA,IAAAf,GAAA1e,EAAA,CAAqCiyH,QAAA,IAAgB,MACrD,yBAAAxyG,EAAA,IAAAf,GAAA1e,EAAA,CAAmDiyH,QAAA,IAAiB,MACpE,aAAAxyG,EAAA,IAAAf,GAAA1e,GAAoC,MACpC,kBAAAhB,MAAA,qBAAApD,EAAAyJ,MAEA,OAAA8qH,GAAA1wG,EAAA7jB,GAGA,SAAAs2H,GAAAv2H,EAAAC,GACA,IAAA/B,EAAA,EACAirB,EAAA,MAAAjrB,EAAA8B,EAAAG,OAAA,OAAAH,EAAAI,WAAAlC,IACA,0BAAAA,EAAuC,MACvC,eAAA4iG,GAAA9gG,EAAAa,MAAA3C,GAAA+B,GACA,cAAAkpB,EAEA,OAAA09B,GAAA/D,YAAA9iD,EAAAC,GAGA,SAAAu2H,GAAAx2H,EAAAC,GACA,IAAAoM,EAAA,GAAA29B,EAAA+d,GAAA/nD,EAAAC,GACA,OAAAA,EAAAyJ,MACA,aAAA2C,EAAAjL,EAAAH,OAAAjB,GAA2C,MAC3C,aAAAqM,EAAArM,EAA4B,MAC5B,aAAAqM,EAAArM,EAAAmI,SAAA,UAA+C,MAC/C,YAAAkE,EAAA+V,GAAApiB,GAAmC,MACnC,kBAAAqD,MAAA,qBAAApD,EAAAyJ,MAGA,OADA,KAAAsgC,EAAA,SAAAA,EAAA,SAAAA,EAAA,KAAA39B,EAAA0a,GAAA1a,IACAkqH,GAAAlqH,EAAApM,GAGA,SAAAw2H,GAAAz2H,EAAAC,GACA,IAAAoE,EAAArE,EAIA,MAHA,UAAAC,EAAAyJ,OAAArF,EAAAjD,EAAAH,OAAAoD,IACAA,EAAAvG,QAAAkD,MAAAC,OAAA,KAAAoD,EAAAxD,MAAA,UACAZ,EAAAyJ,KAAA,SACA6sH,GAAAlyH,EAAApE,GAGA,SAAAy2H,GAAA12H,GACA,OAAAA,EAAA6K,MAAA,gBAAAkU,GAAA/e,KAGA,SAAA22H,GAAA32H,EAAAqE,EAAApE,EAAAoM,GACA,OAAAA,GAAUpM,EAAAyJ,KAAA,SAAmBm9C,GAAA/D,YAAA9iD,EAAAC,IAC7B4mD,GAAA/D,YAAAz+C,EAAApE,GAGA,SAAA22H,GAAA52H,EAAAoG,GAEA,GADAtG,IACA,qBAAAgD,aAAA9C,aAAA8C,YAAA,OAAA8zH,GAAA,IAAA5zH,WAAAhD,GAAAoG,GACA,IAAA/B,EAAArE,EAAAyC,EAAA,UAAA4J,GAAA,EACApM,EAAAmG,GAAA,GAMA,GALAskF,GAAA,GACAzqF,EAAA2P,SAAA86E,GAAA96E,OAAA3P,EAAA2P,QACA3P,EAAAyJ,OAAAzJ,EAAAyJ,KAAA1H,GAAAxE,EAAA2tB,SAAAnrB,GAAA,mBACA,QAAAC,EAAAyJ,OAAuBzJ,EAAAyJ,KAAA1H,EAAA,kBAAwCqC,EAAAuc,EAAA5gB,IAC/D,UAAAC,EAAAyJ,OAAyB2C,GAAA,EAAYpM,EAAAyJ,KAAA,SAAmBzJ,EAAAgkD,SAAA,MAAoB5/C,EAAAqyH,GAAA12H,IAC5E,SAAAC,EAAAyJ,MAAA,qBAAA1G,YAAAhD,aAAAgD,YAAA,qBAAAF,YAAA,CAEA,IAAA+zH,EAAA,IAAA/zH,YAAA,GAAAg0H,EAAA,IAAA9zH,WAAA6zH,GAEA,GAFmDC,EAAAC,IAAA,OAEnDD,EAAAC,IAAwC,OAAzB92H,EAAAqiB,GAAAriB,GAASA,EAAAyJ,KAAA,QAAgBktH,GAAAtzH,EAAAe,GAAApE,GAExC,QAAAwC,EAAAslD,GAAA1jD,EAAApE,IAAA,IACA,gBAAAm2H,GAAA/gH,EAAA4F,KAAA5W,EAAApE,MACA,cAAAwoG,GAAApkG,EAAApE,GACA,eAAA6gG,GAAAz8F,EAAApE,GACA,gBAAAwC,EAAA,UAAAylD,GAAA7jD,EAAApE,GAAuD,MACvD,gBAAAwC,EAAA,SAAAA,EAAA,SAAAA,EAAA,UAAAkjD,GAAA7C,YAAAz+C,EAAApE,GAA8F,MAC9F,oBAAAwC,EAAA,IAAAA,EAAA,MAAAA,EAAA,KAAA4zH,GAAAhyH,EAAApE,GAAA02H,GAAA32H,EAAAqE,EAAApE,EAAAoM,GACA,qBAAA5J,EAAA,GAAAq+F,GAAAz8F,EAAApE,GAAA02H,GAAA32H,EAAAqE,EAAApE,EAAAoM,GACA,kBAAA5J,EAAA,GAAgC,OAAAg0H,GAAApyH,EAAApE,GAA2B,MAC3D,cAAAwC,EAAA,IAAAA,EAAA,WAAAA,EAAA,UAAA2lD,GAAAtF,YAAAz+C,EAAApE,GAA6F,MAC7F,yCAAAm/C,GAAA0D,YAAAz+C,EAAApE,GACA,iBAAAwC,EAAA,UAAAA,EAAA,UAAAA,EAAA,UAAAivD,GAAA5O,YAAAz+C,EAAApE,GAA8F,MAC9F,+BAAAu2H,GAAAnyH,EAAApE,GAEA,OAAAwC,EAAA,QAAAA,EAAA,OAAA28C,GAAA0D,YAAAz+C,EAAApE,GACA02H,GAAA32H,EAAAqE,EAAApE,EAAAoM,GAGA,SAAA2O,GAAAlF,EAAA1P,GACA,IAAAnG,EAAAmG,GAAA,GACA,OADkBnG,EAAAyJ,KAAA,OAClBktH,GAAA9gH,EAAA7V,GAEA,SAAA+2H,GAAA9kF,EAAA9rC,GACA,IAAAnG,EAAAmG,GAAA,GACA8e,EAAA2wG,GAAA3jF,EAAAjyC,GACAg3H,EAAA,GAEA,OADAh3H,EAAAi3H,cAAAD,EAAAC,YAAA,WACAj3H,EAAAyJ,MACA,aAAAutH,EAAAvtH,KAAA,SAAuC,MACvC,aAAAutH,EAAAvtH,KAAA,SAAuC,MACvC,uBAAArG,MAAA,qCAAApD,EAAA0hC,SAAA,WACA,aACA,WAAAs1F,EAAAvtH,KAAA1H,EAAA,sBAA8D,MAC9D,kBAAAqB,MAAA,qBAAApD,EAAAyJ,MAEA,YAAAzJ,EAAAyJ,KAAA,OAAAmV,EAAA5e,EAAAgW,KAAAiP,EAAAiyG,SAAAF,IACA,IAAAvwH,EAAAwe,EAAAiyG,SAAAF,GACA,gBAAAh3H,EAAAyJ,KAAAqd,GAAArgB,KAGA,SAAA0wH,GAAAllF,EAAA9rC,GACA,IAAAnG,EAAAmG,GAAA,GACA+U,EAAA2tF,GAAA52D,EAAAjyC,GACA,OAAAA,EAAAyJ,MACA,gCACA,yBAAAzJ,EAAAyJ,KAAA,GAA2C,MAC3C,kBAAAmV,EAAA5e,EAAAgW,KAAAZ,EAAAuI,MAAAzC,EAAA,CAAuDzR,KAAA1H,EAAA,eACvD,uBAAAqB,MAAA,qCAAApD,EAAA0hC,SAAA,WACA,kBAAAt+B,MAAA,qBAAApD,EAAAyJ,MAEA,OAAA2L,EAAAuI,MAAAzC,EAAAlb,GAGA,SAAAo3H,GAAA3wH,EAAAN,EAAAkxH,GACAA,MAAA,IACA,IAAAr3H,EAAAq3H,EAAA5wH,EACA,OAAAN,EAAAsD,MACA,oBAAAtI,EAAAE,OAAAyd,GAAA9e,IACA,oBAAA8e,GAAA9e,GACA,oBAAAyG,EACA,kBAAAmY,EAAAzY,EAAA6P,KAAAhW,EAAA,QACA,aACA,OAAA+B,EAAAxE,EAAA8E,KAAArC,EAAA,QACAo3H,GAAAp3H,EAAA,CAAqCyJ,KAAA,WAAc9G,MAAA,IAAAvB,IAAA,SAAA4C,GAA6B,OAAAA,EAAA7D,WAAA,KAGhF,UAAAiD,MAAA,qBAAA+C,EAAAsD,MAGA,SAAA6tH,GAAA7wH,EAAAN,GACA,OAAAA,EAAAsD,MACA,oBAAAtI,EAAAE,OAAAoF,GACA,oBAAAA,EACA,oBAAAA,EACA,kBAAAmY,EAAAzY,EAAA6P,KAAAvP,EAAA,UACA,aACA,OAAA1E,EAAAxE,EAAA8E,KAAAoE,EAAA,UACAA,EAAA9D,MAAA,IAAAvB,IAAA,SAAA4C,GAA8C,OAAAA,EAAA7D,WAAA,KAG9C,UAAAiD,MAAA,qBAAA+C,EAAAsD,MAIA,SAAA8tH,GAAA9wH,EAAAN,GACA,OAAAA,EAAAsD,MACA,aACA,aACA,aAGA,IAFA,IAAA+tH,EAAA,GAEAv5H,EAAA,EAAiBA,EAAAwI,EAAAvG,SAAgBjC,EAAAu5H,GAAAn3H,OAAAC,aAAAmG,EAAAxI,IACjC,gBAAAkI,EAAAsD,KAAAtI,EAAAE,OAAAm2H,GAAA,UAAArxH,EAAAsD,KAAAqd,GAAA0wG,KACA,kBAAA54G,EAAAzY,EAAA6P,KAAAvP,GACA,oBAAAA,EACA,kBAAArD,MAAA,qBAAA+C,EAAAsD,OAIA,SAAAguH,GAAAxlF,EAAA9rC,GACAsyF,GAAAxmD,GACA,IAAAjyC,EAAAmG,GAAA,GACA,YAAAnG,EAAAyJ,KAAA,CAAwBzJ,EAAAyJ,KAAA,SAAmB,IAAAhD,EAAAgxH,GAAAxlF,EAAAjyC,GAAgD,OAAlBA,EAAAyJ,KAAA,QAAkB7G,EAAA6D,GAC3F,OAAAzG,EAAA0hC,UAAA,QACA,UACA,kBAAA01F,GAAAt0B,GAAA7wD,EAAAjyC,MACA,UACA,kBAAAo3H,GAAAnE,GAAAhhF,EAAAjyC,MACA,UACA,kBAAAo3H,GAAAtE,GAAA7gF,EAAAjyC,MACA,iBAAAs3H,GAAAjE,GAAAphF,EAAAjyC,MACA,iBAAAo3H,GAAArE,GAAA9gF,EAAAjyC,KAAA,UACA,iBAAAo3H,GAAAlE,GAAAjhF,EAAAjyC,MACA,iBAAAu3H,GAAAhE,GAAAthF,EAAAjyC,MACA,iBAAAo3H,GAAAjE,GAAAlhF,EAAAjyC,MACA,iBAAAo3H,GAAAhE,GAAAnhF,EAAAjyC,MACA,iBAAAo3H,GAAA5D,GAAAvhF,EAAAjyC,MACA,kBAAAo3H,GAAA1E,GAAAzgF,EAAAjyC,MACA,YAAAA,EAAA4tB,OAAA5tB,EAAA4tB,KAAA,GACA,YAAA5tB,EAAA4tB,OAAA5tB,EAAA4tB,KAAA,GACA,YAAuC,OAAvC5tB,EAAA4tB,OAAA5tB,EAAA4tB,KAAA,GAAuC2pG,GAAAxuB,GAAA92D,EAAAjyC,MACvC,YAAAA,EAAA4tB,OAAA5tB,EAAA4tB,KAAA,GACA,YACA,UACA,UAAqC,OAArC5tB,EAAA4tB,OAAA5tB,EAAA4tB,KAAA,GAAqCupG,GAAAllF,EAAAjyC,GACrC,WACA,WACA,WACA,WACA,iBAAA+2H,GAAA9kF,EAAAjyC,GACA,kBAAAoD,MAAA,0BAAApD,EAAA0hC,SAAA,MAIA,SAAAg2F,GAAA13H,GACA,IAAAA,EAAA0hC,SAAA,CACA,IAAAi2F,EAAA,CACAC,IAAA,QACAC,IAAA,OACAC,IAAA,OACAC,WAAA,MACAC,QAAA,OAEAp8D,EAAA57D,EAAAgW,KAAApV,MAAAZ,EAAAgW,KAAAxI,YAAA,MAAAY,cACAwtD,EAAAhxD,MAAA,gBAAA5K,EAAA0hC,SAAAk6B,EAAAh7D,MAAA,IACAZ,EAAA0hC,SAAAi2F,EAAA33H,EAAA0hC,WAAA1hC,EAAA0hC,UAGA,SAAAhkB,GAAAu0B,EAAAp8B,EAAA1P,GACA,IAAAnG,EAAAmG,GAAA,GAGA,OAHkBnG,EAAAyJ,KAAA,OAClBzJ,EAAAgW,KAAAH,EACA6hH,GAAA13H,GACAy3H,GAAAxlF,EAAAjyC,GAGA,SAAAi4H,GAAApiH,EAAAo8B,EAAA9rC,EAAAqmB,GACA,IAAAxsB,EAAAmG,GAAA,GAAkBnG,EAAAyJ,KAAA,OAClBzJ,EAAAgW,KAAAH,EACA6hH,GAAA13H,GACAA,EAAAyJ,KAAA,SACA,IAAAyuH,EAAA1rG,EACA,OADc0rG,aAAAC,WAAAD,EAAA,GACdhjH,EAAAoJ,UAAAzI,EAAA4hH,GAAAxlF,EAAAjyC,GAAAk4H,GAEA,SAAAh2E,GAAA3xB,EAAApqB,GACA,SAAAoqB,GAAA,MAAAA,EAAA,iBACA,IAAA5mB,EAAA,CAAYtF,EAAA,IAAAF,EAAA,GAAU2S,EAAA,EAAA8D,EAAA,EAAAywB,EAAA,GAAA+sF,GAAA,EAAAj0H,EAAA,EAAAwK,EAAA,GACtBrD,EAAA,CAAU5I,EAAA,CAAG4I,EAAA,EAAAtH,EAAA,GAAQ0a,EAAA,CAAIpT,EAAA,EAAAtH,EAAA,IACzBhE,EAAAmG,GAAA,GACA8R,EAAAjY,EAAAiY,IACAogH,EAAAr4H,EAAAq4H,OACAvqG,EAAA,MAAA9tB,EAAA8tB,MAAA9tB,EAAA8tB,MAAAyC,EAAA,QAIA,OAHA,IAAAvwB,EAAA8W,SAAA,EACA,MAAA9W,EAAA8W,SAAA,EACA1U,MAAAa,QAAAjD,EAAA8W,YAAA,UACAgX,GACA,aAAAxiB,EAAA2kB,GAAAnC,GAA8C,MAC9C,aAAAxiB,EAAA2kB,GAAAM,EAAA,SAAsDjlB,EAAA5I,EAAA4I,EAAAwiB,EAAe,MACrE,QAAAxiB,EAAAwiB,EAEAhX,EAAA,IAAA8D,EAAA,GACA,IAAAjP,EAAAyiB,GAAA9iB,EAAA5I,EAAA4I,GACAw5C,EAAA,GACAr+C,EAAA,GACA6xH,EAAA,EAAAC,EAAA,EACA1nG,EAAAzuB,MAAAa,QAAAstB,GACA9a,EAAAnK,EAAA5I,EAAA4I,EAAAkN,EAAA,EAAAggH,EAAA,EAEA,IADA3nG,IAAAN,EAAA9a,KAAA8a,EAAA9a,GAAA,IACA+C,EAAAlN,EAAA5I,EAAAsB,EAAewU,GAAAlN,EAAAoT,EAAA1a,IAAYwU,EAG3B,OAFAssC,EAAAtsC,GAAA6V,GAAA7V,GACA7O,EAAAknB,EAAAN,EAAA9a,GAAA+C,GAAA+X,EAAAu0B,EAAAtsC,GAAA7M,GACAmL,GACA,OAAAu0B,EAAA7yB,KAAAlN,EAAA5I,EAAAsB,EAA8B,MAC9B,OAAAqnC,EAAA7yB,GAAAssC,EAAAtsC,GAA4B,MAC5B,OAAA6yB,EAAA7yB,GAAAxY,EAAA8W,OAAA0B,EAAAlN,EAAA5I,EAAAsB,GAAwC,MACxC,QAIA,IAHA,MAAA2F,MAAA,CAA2BhB,EAAA,UAAAtE,EAAA,MAC3BsK,EAAAxK,EAAAksB,GAAA1mB,EAAA,KAAA3J,GACAu4H,EAAA,EACAC,EAAA,EAAeA,EAAAntF,EAAAnrC,SAAiBs4H,EAAAntF,EAAAmtF,IAAA7pH,MAAAxK,EAAA,OAAAo0H,GAChCltF,EAAA7yB,GAAA7J,EAGA,IAAAygB,EAAA,IAAAtY,EAAA,MACA,IAAArB,EAAAnK,EAAA5I,EAAA4I,EAAAsP,EAAyBnF,GAAAnK,EAAAoT,EAAApT,IAAYmK,EAAA,CAGrC,GAFA9J,EAAAyiB,GAAA3Y,GACA2iH,GAAA,EACA,IAAAthH,EAAAsY,EAAA,QAGA,GADAA,EAAA,GACArO,OAAA03G,eAAA,IAAkC13G,OAAA03G,eAAArpG,EAAA,cAA2CvI,MAAApR,EAAAijH,YAAA,IAA8B,MAAAh6G,IAAW0Q,EAAAupG,WAAAljH,OACtH2Z,EAAAupG,WAAAljH,EAEA,IAAAob,GAAAN,EAAA9a,GAAA,IAAA+C,EAAAlN,EAAA5I,EAAAsB,EAAwCwU,GAAAlN,EAAAoT,EAAA1a,IAAYwU,EAEpD,GADA7O,EAAAknB,EAAAN,EAAA9a,GAAA+C,GAAA+X,EAAAu0B,EAAAtsC,GAAA7M,QACAmE,IAAAnG,QAAAmG,IAAAnG,EAAAtF,EAAA,CAMA,OADAF,EAAAwF,EAAAxF,EACAwF,EAAAtF,GACA,iBAAAF,EAAA,MAAkC,SAClC,QAAAA,OAAA,EAAyB,MACzB,sCACA,kBAAAf,MAAA,qBAAAuG,EAAAtF,GAEA,SAAAgnC,EAAA7yB,GAAA,CACA,SAAArU,EACA,QAAA2L,IAAAuoH,EAAAjpG,EAAAic,EAAA7yB,IAAA6/G,MACA,KAAApgH,GAAA,OAAA9T,EACA,SADAirB,EAAAic,EAAA7yB,IAAA,UAGA4W,EAAAic,EAAA7yB,IAAAP,EAAA9T,EAAAksB,GAAA1mB,EAAAxF,EAAAnE,GAEA,MAAAmE,IAAAi0H,GAAA,QApBA,CACA,QAAAtoH,IAAAuoH,EAAA,SACA,MAAAhtF,EAAA7yB,KAAwB4W,EAAAic,EAAA7yB,IAAA6/G,KAqBxB,IAAAD,IAAA,IAAAthH,GAAA,IAAA9W,EAAA44H,UAAA54H,EAAA44H,cAAAnyH,EAAA6xH,KAAAlpG,GAGA,OADA3oB,EAAAvG,OAAAo4H,EACA7xH,EAGA,IAAAoyH,GAAA,KACA,SAAAC,GAAAvoG,EAAAjlB,EAAAmK,EAAAqvC,EAAAzvC,EAAA21C,EAAA+tE,EAAA/4H,GAGA,IAFA,IAAAo4H,GAAA,EACAhpG,EAAA,GAAA4pG,EAAA,GAAArtH,EAAAyiB,GAAA3Y,GACA+C,EAAAlN,EAAA5I,EAAAsB,EAAmBwU,GAAAlN,EAAAoT,EAAA1a,IAAYwU,EAC/B,GAAAssC,EAAAtsC,GAAA,CACA,IAAA7O,EAAA3J,EAAA6wB,OAAAN,EAAA9a,IAAA,IAAA+C,GAAA+X,EAAAu0B,EAAAtsC,GAAA7M,GACA,SAAAhC,EAAAqvH,EAAA,QACA,SAAArvH,EAAAxF,EAAA,CACAi0H,GAAA,EACAY,EAAA,GAAA3oG,GAAA1mB,EAAA,KAAA3J,GACA,QAAA/B,EAAA,EAAAoO,EAAA,EAAyBpO,IAAA+6H,EAAA94H,SAAkBjC,EAAA,IAAAoO,EAAA2sH,EAAA74H,WAAAlC,MAAAoX,GAAAhJ,IAAA2+C,GAAA,KAAA3+C,EAAA,CAAqE2sH,EAAA,IAAAA,EAAAl3H,QAAA+2H,GAAA,UAA4C,MAC5J,MAAAG,MAAA,aACG,MAAArvH,EAAA4F,GAAA5F,EAAA6lC,EAGAwpF,EAAA,IAFHZ,GAAA,EACAY,EAAA,IAAArvH,EAAA4F,EAAqBypH,EAAAt5H,QAAA,UAAAs5H,EAAA,IAAAA,EAAAl3H,QAAA+2H,GAAA,YAGrBzpG,EAAAlxB,KAAA86H,GAEA,WAAAh5H,EAAA44H,WAAAR,EAAA,KACAhpG,EAAA7uB,KAAAw4H,GAGA,SAAA/F,GAAAziG,EAAApqB,GACA,IAAAM,EAAA,GACAzG,EAAA,MAAAmG,EAAA,GAA0BA,EAC1B,SAAAoqB,GAAA,MAAAA,EAAA,iBACA,IAAAjlB,EAAA2kB,GAAAM,EAAA,SACAwoG,OAAAjpH,IAAA9P,EAAA+4H,GAAA/4H,EAAA+4H,GAAA,IAAA1jH,EAAA0jH,EAAA54H,WAAA,GACAqlD,OAAA11C,IAAA9P,EAAAwlD,GAAAxlD,EAAAwlD,GAAA,KAAAwF,EAAAxF,EAAArlD,WAAA,GACA84H,EAAA,IAAArkH,QAAA,KAAAmkH,EAAA,MAAAA,GAAA,MACA3pG,EAAA,GAAA01B,EAAA,GACA9kD,EAAA6wB,MAAAzuB,MAAAa,QAAAstB,GAGA,IAFA,IAAAkzB,EAAAzjD,EAAAk5H,YAAA3oG,EAAA,aACAizB,EAAAxjD,EAAAk5H,YAAA3oG,EAAA,aACA/X,EAAAlN,EAAA5I,EAAAsB,EAAmBwU,GAAAlN,EAAAoT,EAAA1a,IAAYwU,GAAAirC,EAAAjrC,IAAA,IAA2B,SAAAssC,EAAAtsC,GAAA6V,GAAA7V,IAC1D,QAAA/C,EAAAnK,EAAA5I,EAAA4I,EAAmBmK,GAAAnK,EAAAoT,EAAApT,IAAYmK,GAC/B+tC,EAAA/tC,IAAA,IAAqBi9B,SACrBtjB,EAAA0pG,GAAAvoG,EAAAjlB,EAAAmK,EAAAqvC,EAAAzvC,EAAA21C,EAAA+tE,EAAA/4H,GACA,MAAAovB,IACApvB,EAAAm5H,QAAA/pG,IAAAttB,QAAAm3H,EAAA,KACAxyH,EAAAvI,KAAAkxB,EAAAo2B,KAGA,cADAxlD,EAAA6wB,MACApqB,EAAAlG,KAAA,IAGA,SAAA+yH,GAAA/iG,EAAApqB,GACAA,MAAA,IAAqBA,EAAA4yH,GAAA,KAAgB5yH,EAAAq/C,GAAA,KACrC,IAAA9iD,EAAAswH,GAAAziG,EAAApqB,GACA,uBAAAtI,SAAA,UAAAsI,EAAAsD,KAAA,OAAA/G,EACA,IAAA1C,EAAAnC,QAAAkD,MAAAM,OAAA,KAAAqB,EAAA,OACA,OAAArC,OAAAC,aAAA,KAAAD,OAAAC,aAAA,KAAAN,EAGA,SAAAo5H,GAAA7oG,GACA,IAAAzvB,EAAA8F,EAAA,GAAA+C,EAAA,GACA,SAAA4mB,GAAA,MAAAA,EAAA,iBACA,IAAA/X,EAAAlN,EAAA2kB,GAAAM,EAAA,SAAA5kB,EAAA,GAAAm5C,EAAA,GACAu0E,EAAA,GACAxoG,EAAAzuB,MAAAa,QAAAstB,GACA,IAAA/X,EAAAlN,EAAA5I,EAAAsB,EAAewU,GAAAlN,EAAAoT,EAAA1a,IAAYwU,EAAAssC,EAAAtsC,GAAA6V,GAAA7V,GAC3B,QAAA/C,EAAAnK,EAAA5I,EAAA4I,EAAmBmK,GAAAnK,EAAAoT,EAAApT,IAAYmK,EAE/B,IADA9J,EAAAyiB,GAAA3Y,GACA+C,EAAAlN,EAAA5I,EAAAsB,EAAgBwU,GAAAlN,EAAAoT,EAAA1a,IAAYwU,EAI5B,GAHA5R,EAAAk+C,EAAAtsC,GAAA7M,EACA7K,EAAA+vB,GAAAN,EAAA9a,IAAA,IAAA+C,GAAA+X,EAAA3pB,GACA+C,EAAA,QACAmG,IAAAhP,EAAA,CACA,SAAAA,EAAA0uC,EAAA,CAEA,GADA5oC,EAAA9F,EAAA0uC,GACA1uC,EAAAyO,EAAA,SACA5F,EAAA7I,EAAAyO,GACA,GAAA3I,EAAAlH,QAAA,OAAAkH,IAAA,IAAAA,GAEA,SAAA9F,EAAAyO,EAAA5F,EAAA7I,EAAAyO,MACA,SAAAzO,EAAAuD,EAAA,SACA,QAAAvD,EAAAuD,GAAA,MAAAvD,EAAAqD,EAAAwF,EAAA,GAAA7I,EAAAqD,OACA,QAAArD,EAAAuD,EAAAsF,EAAA7I,EAAAqD,EAAA,oBACA,QAAA2L,IAAAhP,EAAA6H,EAAAgB,EAAA,IAAA7I,EAAA6H,MACA,SAAAmH,IAAAhP,EAAAqD,EAAA,SACAwF,EAAA,KAAA7I,EAAAuD,EAAA,IAAAvD,EAAAqD,EACA,GAAArD,EAAAqD,GACAk1H,IAAAn5H,QAAA0G,EAAA,IAAA+C,EAGA,OAAA0vH,EAGA,SAAAC,GAAA1oG,EAAA2oG,EAAApzH,GACA,IAWAsnB,EAXAztB,EAAAmG,GAAA,GACAyU,IAAA5a,EAAAw5H,WACA1oG,EAAAF,GAAA,GACAG,EAAA,EAAAC,EAAA,EACA,GAAAF,GAAA,MAAA9wB,EAAAixB,OACA,oBAAAjxB,EAAAixB,OAAAF,EAAA/wB,EAAAixB,WACA,CACA,IAAAC,EAAA,iBAAAlxB,EAAAixB,OAAAtB,GAAA3vB,EAAAixB,QAAAjxB,EAAAixB,OACAF,EAAAG,EAAA5lB,EAAkB0lB,EAAAE,EAAAltB,EAIlB,IAAA8pB,EAAA,CAAeprB,EAAA,CAAIsB,EAAA,EAAAsH,EAAA,GAASoT,EAAA,CAAM1a,EAAAgtB,EAAA1lB,EAAAylB,EAAAwoG,EAAAr5H,OAAA,EAAA0a,IAClC,GAAAkW,EAAA,SACA,IAAAK,EAAAlB,GAAAa,EAAA,SACAhD,EAAApP,EAAA1a,EAAAS,KAAAwI,IAAA6gB,EAAApP,EAAA1a,EAAAmtB,EAAAzS,EAAA1a,GACA8pB,EAAApP,EAAApT,EAAA7G,KAAAwI,IAAA6gB,EAAApP,EAAApT,EAAA6lB,EAAAzS,EAAApT,IACA,GAAAylB,IAAgBA,EAAAjD,EAAApP,EAAApT,EAAA,EAAoBwiB,EAAApP,EAAApT,EAAAylB,EAAAwoG,EAAAr5H,OAAA,EAAA0a,GAEpC,IAAAywB,EAAArrC,EAAA8W,QAAA,GAAA0B,EAAA,EAEA+gH,EAAAxkH,QAAA,SAAA0kH,EAAAhkH,GACAoL,EAAA44G,GAAA1kH,QAAA,SAAA+E,IACA,IAAAtB,EAAA6yB,EAAA3rC,QAAAoa,MAAAuxB,EAAA7yB,EAAA6yB,EAAAnrC,QAAA4Z,GACA,IAAA3V,EAAAs1H,EAAA3/G,GACAzV,EAAA,IACA4gB,EAAA,GACA,iBAAA9gB,EAAAE,EAAA,IACA,kBAAAF,EAAAE,EAAA,IACA,iBAAAF,EAAAE,EAAA,IACAF,aAAAgD,OACA9C,EAAA,IACArE,EAAAuxB,YAAsBltB,EAAA,IAASF,EAAAsd,GAAAtd,IAC/B8gB,EAAAjlB,EAAA2P,QAAA/L,EAAAoM,OAAA,KAEA8gB,EAAA9C,GAAA,CAAmBhqB,EAAAgtB,EAAAxY,EAAAlN,EAAAylB,EAAAtb,EAAAmF,KAA2B6S,EAAA,CAAcppB,IAAAF,KAC5D8gB,IAAAwI,EAAAxI,SAGA6I,EAAApP,EAAA1a,EAAAS,KAAAwI,IAAA6gB,EAAApP,EAAA1a,EAAAgtB,EAAAqa,EAAAnrC,OAAA,GACA,IAAAkxB,EAAAhD,GAAA2C,GACA,GAAAnW,EAAA,IAAApC,EAAA,EAAsBA,EAAA6yB,EAAAnrC,SAAgBsY,EAAAsY,EAAAzC,GAAA7V,EAAAwY,GAAAI,GAAA,CAAsC/sB,EAAA,IAAAF,EAAAknC,EAAA7yB,IAE5E,OADAsY,EAAA,QAAAhB,GAAAhC,GACAgD,EAEA,SAAA4oG,GAAAH,EAAApzH,GAAkC,OAAAmzH,GAAA,KAAAC,EAAApzH,GAElC,IAAApF,GAAA,CACAstB,cACAD,cACAJ,eACA8B,gBACAR,cACAL,cACAS,cACAC,eACAE,gBACAQ,eACAspG,aAAAP,GACAQ,SAAA5G,GACA6G,UAAA33E,GACA43E,cAAAV,GACAzoG,iBACA2oG,kBACA7nG,gBACAioG,iBACAK,eAAAjN,GACAM,iBACA4F,gBACAM,gBACApxE,iBACAuqE,cAAApuB,GAAAt7C,WACAiD,aAAAN,GAAA3C,WACAi3E,aAAAh3E,GAAAD,WACA4D,aAAAP,GAAArD,WACAq2E,qBACAa,0BAAA/3E,KAGA,SAAAnhD,GAEA,SAAAm5H,EAAAzkH,GAAsCA,EAAAV,QAAA,SAAA+K,GAAuB/e,EAAA4b,OAAAmD,EAAA,IAAAA,EAAA,KAE7D,SAAAq6G,EAAAr5H,EAAA8F,EAAAqe,GAA+B,aAAAnkB,EAAA8F,GAAA9F,EAAA8F,GAAA9F,EAAA8F,GAAAqe,EAG/B,SAAAm1G,EAAAtpG,EAAArb,EAAA+C,GAEA,uBAAA/C,EAAAqb,EAAArb,KAAAqb,EAAArb,GAAA,CAAoDpR,EAAA,MAEpD+1H,EAAAtpG,EAAA9C,GAAA,iBAAAvY,IAEA,CAA0CnK,EAAAmK,EAAAzR,EAAAwU,GAAA,KAI1C,SAAA6hH,EAAApoF,EAAAqoF,GACA,oBAAAA,EAAA,CACA,GAAAA,GAAA,GAAAroF,EAAAxhB,WAAAvwB,OAAAo6H,EAAA,OAAAA,EACA,UAAAl3H,MAAA,uBAAAk3H,GACE,oBAAAA,EAAA,CACF,IAAA5vH,EAAAunC,EAAAxhB,WAAA/wB,QAAA46H,GACA,GAAA5vH,GAAA,SAAAA,EACA,UAAAtH,MAAA,2BAAAk3H,EAAA,KACE,UAAAl3H,MAAA,sBAAAk3H,EAAA,KAxBFv5H,EAAA4b,OAAA5b,EAAA4b,QAAA,GA4BA5b,EAAAw5H,SAAA,WACA,OAAS9pG,WAAA,GAAAC,OAAA,KAIT3vB,EAAAy5H,kBAAA,SAAAvoF,EAAAnhB,EAAAtZ,GACA,IAAAA,EAAA,QAAAvZ,EAAA,EAAyBA,GAAA,QAAaA,EAAA,OAAAg0C,EAAAxhB,WAAA/wB,QAAA8X,EAAA,QAAAvZ,GAAA,MACtC,IAAAuZ,EAAA,UAAApU,MAAA,uBAEA,GADA+0F,GAAA3gF,GACAy6B,EAAAxhB,WAAA/wB,QAAA8X,IAAA,YAAApU,MAAA,wBAAAoU,EAAA,qBAEAy6B,EAAAxhB,WAAAvyB,KAAAsZ,GACAy6B,EAAAvhB,OAAAlZ,GAAAsZ,GAIA/vB,EAAA05H,0BAAA,SAAAxoF,EAAAqoF,EAAAI,GACAP,EAAAloF,EAAA,eACAkoF,EAAAloF,EAAAg9C,SAAA,aAEA,IAAAvkF,EAAA2vH,EAAApoF,EAAAqoF,GAIA,OAFAH,EAAAloF,EAAAg9C,SAAAv+D,OAAAhmB,EAAA,IAEAgwH,GACA,2BACA,kBAAAt3H,MAAA,gCAAAs3H,GAGAzoF,EAAAg9C,SAAAv+D,OAAAhmB,GAAAouF,OAAA4hC,GAEAR,EAAA,CACA,oBACA,mBACA,0BAIAn5H,EAAA45H,uBAAA,SAAAltG,EAAA/jB,GAEA,OADA+jB,EAAAxI,EAAAvb,EACA+jB,GAIA1sB,EAAA65H,mBAAA,SAAAntG,EAAAnJ,EAAA2pE,GAOA,OANA3pE,GAGAmJ,EAAAxpB,EAAA,CAAaw+B,OAAAne,GACb2pE,IAAAxgE,EAAAxpB,EAAAorC,QAAA4+C,WAHAxgE,EAAAxpB,EAKAwpB,GAEA1sB,EAAA85H,uBAAA,SAAAptG,EAAAK,EAAAmgE,GAA+D,OAAAltF,EAAA65H,mBAAAntG,EAAA,IAAAK,EAAAmgE,IAG/DltF,EAAA+5H,iBAAA,SAAArtG,EAAAzH,EAAAs4C,GACA7wC,EAAAzpB,IAAAypB,EAAAzpB,EAAA,IACAypB,EAAAzpB,EAAA9F,KAAA,CAAcmG,EAAA2hB,EAAAlG,EAAAw+C,GAAA,aAIdv9D,EAAAg6H,wBAAA,SAAAjqG,EAAAhD,EAAAm2B,GAGA,IAFA,IAAAiqC,EAAA,iBAAApgE,IAAAmC,GAAAnC,GACAktG,EAAA,iBAAAltG,IAAAgC,GAAAhC,GACArY,EAAAy4E,EAAAxrF,EAAA4I,EAAqBmK,GAAAy4E,EAAAxvE,EAAApT,IAAcmK,EAAA,QAAA+C,EAAA01E,EAAAxrF,EAAAsB,EAA0BwU,GAAA01E,EAAAxvE,EAAA1a,IAAcwU,EAAA,CAC3E,IAAAiV,EAAA2sG,EAAAtpG,EAAArb,EAAA+C,GACAiV,EAAAppB,EAAA,IACAopB,EAAA+hB,EAAAwrF,SACAvtG,EAAAtpB,EACAsR,GAAAy4E,EAAAxrF,EAAA4I,GAAAkN,GAAA01E,EAAAxrF,EAAAsB,IAAAypB,EAAAle,EAAA00C,GAEA,OAAAnzB,IArGA,CAyGC/vB,IAEDgB,GAA4B,WAC5B,IAAAk5H,EAAgBn9H,EAAQ,GAAQm9H,SAEhCC,EAAA,SAAA3qG,EAAApqB,GACA,IAAAg1H,EAAAF,IACAj7H,EAAA,MAAAmG,EAAA,GAA2BA,EAC3B,SAAAoqB,GAAA,MAAAA,EAAA,QAAiE,OAAnB4qG,EAAAj9H,KAAA,MAAmBi9H,EACjE,IAAA7vH,EAAA2kB,GAAAM,EAAA,SACAwoG,OAAAjpH,IAAA9P,EAAA+4H,GAAA/4H,EAAA+4H,GAAA,IAAA1jH,EAAA0jH,EAAA54H,WAAA,GACAqlD,OAAA11C,IAAA9P,EAAAwlD,GAAAxlD,EAAAwlD,GAAA,KAAAwF,EAAAxF,EAAArlD,WAAA,GACA84H,EAAA,IAAArkH,QAAA,KAAAmkH,EAAA,MAAAA,GAAA,MACA3pG,EAAA,GAAA01B,EAAA,GACA9kD,EAAA6wB,MAAAzuB,MAAAa,QAAAstB,GAGA,IAFA,IAAAkzB,EAAAzjD,EAAAk5H,YAAA3oG,EAAA,aACAizB,EAAAxjD,EAAAk5H,YAAA3oG,EAAA,aACA/X,EAAAlN,EAAA5I,EAAAsB,EAAoBwU,GAAAlN,EAAAoT,EAAA1a,IAAYwU,GAAAirC,EAAAjrC,IAAA,IAA2B,SAAAssC,EAAAtsC,GAAA6V,GAAA7V,IAC3D,IAAA/C,EAAAnK,EAAA5I,EAAA4I,EACA8vH,GAAA,EAeA,OAdAD,EAAAE,MAAA,WACA,IAAAD,EAAyB,OAAZA,GAAA,EAAYD,EAAAj9H,KAAA,UACzB,GAAAuX,EAAAnK,EAAAoT,EAAApT,EAAA,OAAA6vH,EAAAj9H,KAAA,MACA,MAAAuX,GAAAnK,EAAAoT,EAAApT,EAEA,KADAmK,IACA+tC,EAAA/tC,EAAA,QAAyBi9B,SACzBtjB,EAAA0pG,GAAAvoG,EAAAjlB,EAAAmK,EAAA,EAAAqvC,EAAAzvC,EAAA21C,EAAA+tE,EAAA/4H,GACA,MAAAovB,GAAA,CACApvB,EAAAm5H,QAAA/pG,IAAAttB,QAAAm3H,EAAA,KACAkC,EAAAj9H,KAAAkxB,EAAAo2B,GACA,QAIA21E,GAGAG,EAAA,SAAAxqG,EAAA3qB,GACA,IAAAg1H,EAAAF,IAEAj7H,EAAAmG,GAAA,GACA2Q,EAAA,MAAA9W,EAAA8W,OAAA9W,EAAA8W,OAAAunF,GAAAsuB,MACA5uE,EAAA,MAAA/9C,EAAA+9C,OAAA/9C,EAAA+9C,OAAAsgD,GAAAuuB,IACAuO,EAAAj9H,KAAA4Y,GACA,IAAAxL,EAAAukB,GAAAiB,EAAA,SACA9wB,EAAA6wB,MAAAzuB,MAAAa,QAAA6tB,GACAqqG,EAAAj9H,KAAAmgG,GAAAwuB,UAAA/7F,EAAAxlB,EAAAtL,IACA,IAAAyV,EAAAnK,EAAA5I,EAAA4I,EACA2gB,GAAA,EAYA,OAXAkvG,EAAAE,MAAA,WACA,GAAA5lH,EAAAnK,EAAAoT,EAAApT,EAEA,OADA2gB,IAAcA,GAAA,EAAYkvG,EAAAj9H,KAAA,WAAA6/C,IAC1Bo9E,EAAAj9H,KAAA,MAEA,MAAAuX,GAAAnK,EAAAoT,EAAApT,EAAA,CACA6vH,EAAAj9H,KAAAmgG,GAAAquB,KAAA57F,EAAAxlB,EAAAmK,EAAAzV,MACAyV,EACA,QAGA0lH,GAGA19H,EAAA09H,OAAA,CACAI,QAAAD,EACAE,OAAAN,GA/D4B,GAmE5Bz9H,EAAA+qG,gBACA/qG,EAAAgyH,aACAhyH,EAAA0iG,cACA1iG,EAAAi1H,aACAj1H,EAAA82H,aACA92H,EAAAud,KAAA27G,GACAl5H,EAAAg+H,SAAA1gH,GACAtd,EAAAsd,gBACAtd,EAAAkgB,MAAA85G,GACAh6H,EAAA6gB,UAAAZ,GACAjgB,EAAAigB,iBACAjgB,EAAAw6H,kBACAx6H,EAAAsD,SACAtD,EAAAmG,MACAnG,EAAA2X,OA9nnBA,CA+nnBiCE","file":"js/xlsx~b916e1a4.5d93e721.js","sourcesContent":["/* 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 = {};\n(function make_xlsx(XLSX){\nXLSX.version = '0.12.13';\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); };\nif(typeof cptable !== 'undefined') {\n\tset_cp = function(cp) { current_codepage = 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}\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\nif(typeof Buffer !== 'undefined') {\n\t// $FlowIgnore\n\tif(!Buffer.from) Buffer.from = function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); };\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = 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\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(_chr).join(\"\");\n\tvar o = []; for(var i = 0; i < data.length; ++i) o[i] = _chr(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 */\n\n/* [MS-CFB] v20171201 */\nvar CFB = (function _CFB(){\nvar exports = {};\nexports.version = '1.0.7';\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}\nvar fs;\nfunction get_fs() { return fs || (fs = require('fs')); }\nfunction parse(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\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\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\tblob.chk(HEADER_CLSID, 'CLSID: ');\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) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1) { 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 = dad[i];\n\t\tif(j === 0) FP[i] = FP[0] + \"/\" + FP[i];\n\t\telse while(j !== 0 && j !== dad[j]) {\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t\tj = dad[j];\n\t\t}\n\t\tdad[i] = 0;\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\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}\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}\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\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\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\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 = 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;\nif(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root) {\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}\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}\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(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.trim().replace(/\\s+/g, \" \").replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\").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', s);\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', 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\t/* TODO: codepage */\nval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\nfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\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); c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(c.cRel === 0) s = fix_col(s);\n\tif(c.rRel === 0) 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) { 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\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\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\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(cell.v === null) { if(cell.f) cell.t = 'n'; else if(!o.cellStubs) continue; else cell.t = 'z'; }\n\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF.format(cell.z, datenum(cell.v)); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF.format(cell.z, cell.v); }\n\t\t\t}\n\t\t\telse cell.t = 's';\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\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\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/* [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) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if(color.theme) {\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) {\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\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\t/* fBold: d & 0x01 */\n\t\tfItalic: d & 0x02,\n\t\t/* fUnderline: 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]);\n\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 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/* 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.chart+xml\": \"TODO\",\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/* 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\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\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\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\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\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\tif (!data) return data;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar rels = {};\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\nfunction add_rels(rels, rId, f, type, relobj) {\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(relobj.Type == RELS.HLINK) 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]] = 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\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 \"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 \"名前付き一覧\":\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\tswitch(f[2]) {\n\t\t\tcase \"string\": p[f[1]] = (data.match(matchtag(f[0]))||[])[1]; break;\n\t\t\tcase \"bool\": p[f[1]] = (data.match(matchtag(f[0]))||[])[1] === \"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 = 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.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\treturn {s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags};\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};\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.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, 0x00000300); // TODO: CP\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 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': str = d.toString('binary'); break;\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' || opts.type == 'buffer') && 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/* Parse a list of tags */\nvar parse_rs = (function parse_rs_factory() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\"), rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/, nlregex = /\\r\\n/g;\n\t/* 18.4.7 rPr CT_RPrElt */\n\tvar parse_rpr = function parse_rpr(rpr, intro, outro) {\n\t\tvar font = {}, cp = 65001, align = \"\";\n\t\tvar pass = false;\n\t\tvar m = rpr.match(tagregex), i = 0;\n\t\tif(m) for(;i!=m.length; ++i) {\n\t\t\tvar y = parsexmltag(m[i]);\n\t\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t\t/* ** not required . */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.shadow = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.outline = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.strike = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.u = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.8.2 b */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.b = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.8.26 i */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.i = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\t\tcase '': case '': break;\n\t\t\t\tcase '': pass = false; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t\t}\n\t\t}\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\tif(align == \"superscript\") 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 cp;\n\t};\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\tvar terms = [[],\"\",[]];\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return \"\";\n\t\tterms[1] = t[1];\n\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) /*cp = */parse_rpr(rpr[1], terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).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 = 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 = {}/*, sub_border = {}*/;\n\tvar pass = false;\n\tt[0].match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch (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 = y.diagonalUp; }\n\t\t\t\tif (y.diagonalDown) { border.diagonalDown = 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 '': break;\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\tt[0].match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(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\tt[0].match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch (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/* 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(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\tt[0].match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(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 = 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/* 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) { o[o.length] = (writextag('xf', null, c)); });\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 = /]*)>[\\S\\s]*?<\\/numFmts>/;\nvar cellXfRegex = /]*)>[\\S\\s]*?<\\/cellXfs>/;\nvar fillsRegex = /]*)>[\\S\\s]*?<\\/fills>/;\nvar fontsRegex = /]*)>[\\S\\s]*?<\\/fonts>/;\nvar bordersRegex = /]*)>[\\S\\s]*?<\\/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.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\tif(grbit.fItalic) out.italic = 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\to.write_shift(1, 0); /* 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' */ break;\n\t\t\tcase 0x002E: /* 'BrtBorder' */ break;\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); 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});\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\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\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: break; /* text color */\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, 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}\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n/* 20.5 DrawingML - SpreadsheetML 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) { var c = decode_cell(x[0]);\n\to = o.concat([\n\t'',\n\t\twritextag('v:fill', writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}), {'color2':\"#BEFF82\", 'angle':\"-180\", 'type':\"gradient\"}),\n\t\twritextag(\"v:shadow\", null, {on:\"t\", 'obscured':\"t\"}),\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, 0, c.r, 0, c.c+3, 100, c.r+5, 100].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\t'',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\n\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction parse_comments(zip, dirComments, sheets, sheetRels, opts) {\n\tfor(var i = 0; i != dirComments.length; ++i) {\n\t\tvar canonicalpath=dirComments[i];\n\t\tvar comments=parse_cmnt(getzipdata(zip, canonicalpath.replace(/^\\//,''), true), canonicalpath, opts);\n\t\tif(!comments || !comments.length) continue;\n\t\t// find the sheets targeted by these comments\n\t\tvar sheetNames = keys(sheets);\n\t\tfor(var j = 0; j != sheetNames.length; ++j) {\n\t\t\tvar sheetName = sheetNames[j];\n\t\t\tvar rels = sheetRels[sheetName];\n\t\t\tif(rels) {\n\t\t\t\tvar rel = rels[canonicalpath];\n\t\t\t\tif(rel) insertCommentsIntoSheet(sheetName, sheets[sheetName], comments);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction insertCommentsIntoSheet(sheetName, sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell, r;\n\tcomments.forEach(function(comment) {\n\t\tif(dense) {\n\t\t\tr = decode_cell(comment.ref);\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 = {};\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\tvar thisCell = decode_cell(comment.ref);\n\t\t\tif(range.s.r > thisCell.r) range.s.r = thisCell.r;\n\t\t\tif(range.e.r < thisCell.r) range.e.r = thisCell.r;\n\t\t\tif(range.s.c > thisCell.c) range.s.c = thisCell.c;\n\t\t\tif(range.e.c < thisCell.c) range.e.c = thisCell.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 ? \"\" : 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 && 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+|)\\]?C(\\[?)(-?\\d+|)\\]?/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3,$4,$5) {\n\t\tvar R = $3.length>0?parseInt($3,10)|0:0, C = $5.length>0?parseInt($5,10)|0:0;\n\t\tif(C<0 && $4.length === 0) C=0;\n\t\tvar cRel = false, rRel = false;\n\t\tif($4.length > 0 || $5.length == 0) cRel = true; if(cRel) C += rcbase.c; else --C;\n\t\tif($2.length > 0 || $3.length == 0) rRel = true; if(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(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff > 8 && !supbooks.XTI[ixti]) return supbooks.SheetNames[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 \"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] + '\"'); 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 */\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 o += \"SH33TJSERRX\";\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}\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}\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.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\nfunction get_sst_id(sst, str) {\n\tfor(var i = 0, len = sst.length; i < len; ++i) if(sst[i].t === str) { sst.Count ++; return i; }\n\tsst[len] = {t:str}; sst.Count ++; sst.Unique ++; return 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\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\ttry {\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(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[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\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\t// $FlowIgnore\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}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCountpassword\n\tvar o = ({sheet:1});\n\tvar deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\n\tvar deftrue = [\n\t\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\t\"deleteColumns\", \"deleteRows\",\n\t\t\"sort\", \"autoFilter\", \"pivotTables\"\n\t];\n\tdeffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tdeftrue.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}\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) {\n\treturn writextag(\"autoFilter\", null, {ref:data.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\t(data.match(sviewregex)||[]).forEach(function(r) {\n\t\tvar tag = parsexmltag(r);\n\t\tif(parsexmlbool(tag.rightToLeft)) {\n\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\twb.Views[0].RTL = true;\n\t\t}\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\tswitch(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.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\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v));\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(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])))];\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][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 > idx) guess.s.c = idx;\n\t\t\tif(guess.e.c < idx) guess.e.c = idx;\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]))) p.v = sstr.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\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\tws['!drawing'] = [];\n\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\to[o.length] = (writextag('sheetPr', null, {'codeName': escapexml(cname)}));\n\t}\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']);\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] = \"\";\n\t\tws['!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\tif (ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\t/* pageSetup */\n\n\t//var hfidx = o.length;\n\to[o.length] = \"\";\n\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\to[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(ws['!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}\n\telse delete ws['!drawing'];\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/* drawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extList */\n\n\tif(o.length>2) { 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.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\to.write_shift(1, flags); // bit flag\n\to.write_shift(1, 0); // 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\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 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 || ([[]]);\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) };\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\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 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\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 0x0097: /* 'BrtPane' */\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' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ 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));\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) {\n\tif(!ws['!autofilter']) return;\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ws['!autofilter'].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);\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\twrite_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}\nfunction parse_numCache(data) {\n\tvar col = [];\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]] = +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\treturn [col, nf];\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_numCache(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\", '!chart':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['!chart'] = 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\", '!chart':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['!chart'] = 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 = 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\t/* bookViews */\n\n\to[o.length] = \"\";\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tfor(var 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.Ref) return;\n\t\t\to[o.length] = writextag('definedName', String(n.Ref), 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 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\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\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) 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, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), name, opts);\n\treturn parse_xlink_xml((data), 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:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nvar _chr = function(c) { return String.fromCharCode(c); };\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) : 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 'Border': break;\n\t\tcase 'Alignment': break;\n\t\tcase 'Borders': 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 '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 'DataValidation':\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 '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 '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 'TopRowBottomPane': break;\n\t\t\t\t\tcase 'LeftColumnVisible': break;\n\t\t\t\t\tcase 'LeftColumnRightPane': 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 'DoNotDisplayGridlines': break;\n\t\t\t\t\tcase 'SplitHorizontal': break;\n\t\t\t\t\tcase 'SplitVertical': break;\n\t\t\t\t\tcase 'FreezePanes': break;\n\t\t\t\t\tcase 'FrozenNoSplit': 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 'Sorting':\n\t\t\t\tcase 'ConditionalFormatting':\n\t\t\t\tcase 'DataValidation':\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(!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\touter: for(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': return \"\";\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 = '' + _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.s) {\n\t\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\t}\n\t\tif(range.e) {\n\t\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\t}\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;\n\t\t\tif(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\t/* overrides based on test cases */\n\t\t\t\t\tswitch(val) {\n\t\t\t\t\t\tcase 0x5212: val = 1200; break;\n\t\t\t\t\t\tcase 0x8000: val = 10000; break;\n\t\t\t\t\t\tcase 0x8001: val = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = val);\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': XFs.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(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\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) break;\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':\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\" },\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\" },\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\" },\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\" },\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\" },\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 },\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\" },\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/* ... */\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/* ... */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, \"Dimensions\", 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/* ... */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* ... */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* ... */\n\tif(b8) write_FEAT(ba, ws);\n\t/* ... */\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\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\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) {\n\t\twrite_biff_rec(A, \"ObProj\");\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\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\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* BIFF8: [SST *Continue] ExtSST */\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\to.cellXfs = [];\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\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\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\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)>0 || 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(unescapexml(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\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\tvar nullcell = \"\";\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\tif(!cell || cell.v == null) { oo.push(nullcell); continue; }\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = cell.h || escapexml(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.t;\n\t\t\tif(o.editable) w = '' + w + '';\n\t\t\tsp.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(\"
\" + (o.editable ? '' : \"\" ) + \"
\" + 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 = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:sheetRows - 1,c:0}};\n\tvar merges = [], midx = 0;\n\tvar R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tfor(; R < sheetRows; ++R) {\n\t\tvar row = rows[R];\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C], v = htmldecode(elts[_C].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}\n\tif(merges.length) ws['!merges'] = merges;\n\tws['!ref'] = encode_range(range);\n\tif(sheetRows < rows.length) ws['!fullref'] = encode_range((range.e.r = rows.length-1,range));\n\treturn ws;\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\t/* 6.1.2 White Space Characters */\n\tvar parse_text_p = function(text) {\n\t\treturn unescapexml(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\t\t.replace(/<[^>]*>/g,\"\")\n\t\t);\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 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 = utf8read(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\t++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\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']);\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\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 = \"\";\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\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;\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;\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': break; // 16.2 \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'])) textp = (textp.length > 0 ? textp + \"\\n\" : \"\") + parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\telse { 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 = new jszip();\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.file(f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip.file(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.file(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.file(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.file(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.file(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(SYLK);\nvar write_dif_str = write_obj_str(DIF);\nvar write_prn_str = write_obj_str(PRN);\nvar write_rtf_str = write_obj_str(RTF);\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(DBF);\nvar write_eth_str = write_obj_str(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\tswitch(stype) {\n\t\t\tcase 'sheet': sheets[sheet]=parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart':\n\t\t\t\tvar cs = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tsheets[sheet] = cs;\n\t\t\t\tif(!cs || !cs['!chart']) break;\n\t\t\t\tvar dfile = resolve_path(cs['!chart'].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\tcs = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, cs);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': sheets[sheet]=parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': sheets[sheet]=parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\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\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), link, opts);\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\tfor(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\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tif(dir.comments) parse_comments(zip, dir.comments, sheets, sheetRels, opts);\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.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(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 = '/!DataSpaces/Version';\n\tvar data = 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\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\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 = new jszip();\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.file(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.file(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.file(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\tf = \"xl/workbook.\" + wbext;\n\tzip.file(f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\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\tf = \"xl/chartsheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip.file(f, write_cs(rId-1, f, opts, wb, wsrels));\n\t\t\tct.charts.push(f);\n\t\t\tadd_rels(wsrels, -1, \"chartsheets/sheet\" + rId + \".\" + wbext, RELS.CS);\n\t\t\tbreak; */\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip.file(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\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip.file(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}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tzip.file(\"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.file(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.file(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\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip.file(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.file(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.file(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.file(\"[Content_Types].xml\", write_ct(ct, opts));\n\tzip.file('_rels/.rels', write_rels(opts.rels));\n\tzip.file('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\tswitch(o.type) {\n\t\tcase \"base64\": zip = new jszip(d, { base64:true }); break;\n\t\tcase \"binary\": case \"array\": zip = new jszip(d, { base64:false }); break;\n\t\tcase \"buffer\": zip = new jszip(d); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\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\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: return parse_xlscfb(d, o);\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_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\tswitch(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\tif(o.type === \"file\") return write_dl(o.file, z.generate(oopts));\n\tvar out = z.generate(oopts);\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\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\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\tcheck_wb(wb);\n\tvar o = opts||{};\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 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 = [], isempty = true, v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar raw = o.raw;\n\tvar defval = o.defval;\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\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\tvar row = (header === 1) ? [] : {};\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tisempty = true;\n\t\tif(header === 1) row = [];\n\t\telse {\n\t\t\trow = {};\n\t\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\t\telse row.__rowNum__ = R;\n\t\t}\n\t\tif(!dense || sheet[R]) for (C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tif(val === undefined || val.t === undefined) {\n\t\t\t\tif(defval === undefined) continue;\n\t\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tv = val.v;\n\t\t\tswitch(val.t){\n\t\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\t\tcase 'e': v = void 0; break;\n\t\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t\t}\n\t\t\tif(hdr[C] != null) {\n\t\t\t\tif(v == null) {\n\t\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\t\telse continue;\n\t\t\t\t} else {\n\t\t\t\t\trow[hdr[C]] = raw ? v : format_cell(val,v,o);\n\t\t\t\t}\n\t\t\t\tif(v != null) isempty = false;\n\t\t\t}\n\t\t}\n\t\tif((isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = 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\tif(typeof v == 'number') t = 'n';\n\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\telse if(v instanceof Date) {\n\t\t\t\tt = 'd';\n\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\tz = o.dateNF || SSF._table[14];\n\t\t\t}\n\t\t\tws[encode_cell({c:_C + C,r:_R + R + offset})] = cell = ({t:t, v:v});\n\t\t\tif(z) cell.z = z;\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_dif: DIF.from_sheet,\n\tsheet_to_slk: SYLK.from_sheet,\n\tsheet_to_eth: ETH.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\") return ws[R] || (ws[R] = {t:'z'});\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}\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\tif(R > r.e.r) return stream.push(null);\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};\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\tXLSX.stream = {\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nXLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_ods = parse_ods;\nXLSX.parse_fods = parse_fods;\nXLSX.write_ods = write_ods;\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;\nXLSX.CFB = CFB;\n})(typeof exports !== 'undefined' ? exports : XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n"],"sourceRoot":""}