You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1 lines
2.0 MiB

{"version":3,"sources":["uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-mp-weixin/dist/wx.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/nonIterableRest.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/defineProperty.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/toPropertyKey.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/typeof.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/toPrimitive.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/construct.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/setPrototypeOf.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","uni-app:///common/testdata.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/toConsumableArray.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-mp-weixin/dist/index.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/iterableToArray.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/nonIterableSpread.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/classCallCheck.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/createClass.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js","uni-app:///components/mpvue-citypicker/city-data/province.js","uni-app:///components/mpvue-citypicker/city-data/city.js","uni-app:///components/mpvue-citypicker/city-data/area.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js","uni-app:///common/api.js","uni-app:///components/u-parse/libs/html2json.js","uni-app:///components/u-parse/libs/wxDiscode.js","uni-app:///components/u-parse/libs/htmlparser.js","uni-app:///common/http.js","uni-app:///config.js","uni-app:///common/util.js","uni-app:///components/uni-icons/icons.js","uni-app:///Json.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/interopRequireDefault.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/@babel/runtime/regenerator/index.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/asyncToGenerator.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/slicedToArray.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/arrayWithHoles.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","uni-app:///static/excel.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/buffer/index.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/base64-js/index.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/ieee754/index.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/isarray/index.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/node-libs-browser/mock/process.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/path-browserify/index.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","uni-app:///F:/软件/HBuilder X/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/helpers/arrayLikeToArray.js"],"names":["objectKeys","singlePageDisableKey","target","globalThis","key","join","oldWx","launchOption","getLaunchOptionsSync","isWxKey","scene","includes","indexOf","initWx","newWx","_nonIterableRest","TypeError","module","exports","__esModule","toPropertyKey","require","_defineProperty","obj","value","Object","defineProperty","enumerable","configurable","writable","_typeof","toPrimitive","t","i","o","Symbol","iterator","constructor","prototype","r","e","call","String","Number","setPrototypeOf","isNativeReflectConstruct","_construct","Reflect","construct","apply","arguments","push","p","bind","_setPrototypeOf","__proto__","_isNativeReflectConstruct","Boolean","valueOf","storeData","storeId","storeName","avatar","banner","address","deliveryTime","telephone","shoppingCart","shippingDees","startingPrice","commentData","header_img","user_name","rate","create_time","content","imgs","goodsData","id","type_id","name","descripe","img","price","oldprice","categoryData","goodsInfo","banner_img","monthly_sales","goods_tag","detail","tit","txt","desc","goodsEva","sum","praise","bad_review","eva_tag","eva_list","time","point","pic","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_toConsumableArray","arr","arrayLikeToArray","_arrayWithoutHoles","Array","isArray","realAtob","b64","b64re","atob","str","replace","test","Error","slice","length","bitmap","result","r1","r2","charAt","fromCharCode","b64DecodeUnicode","decodeURIComponent","split","map","c","charCodeAt","toString","getCurrentUserInfo","token","wx","getStorageSync","tokenArr","uid","role","permission","tokenExpired","userInfo","JSON","parse","error","message","exp","iat","uniIdMixin","Vue","uniIDHasRole","roleId","uniIDHasPermission","permissionId","uniIDTokenValid","Date","now","_toString","hasOwnProperty","isFn","fn","isStr","isObject","isPlainObject","hasOwn","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","_","toUpperCase","sortObject","sortObj","keys","sort","forEach","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","dedupeHooks","hooks","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","params","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","oldCallback","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","finally","reason","promisify","promiseApi","success","fail","complete","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Math","floor","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","messages","locale","normalizeLocale","language","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","i18n","initVueI18n","i18nMixin","mixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$once","methods","$$t","values","setLocale","getLocale","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","get","set","v","watch","include","parts","find","part","startsWith","trim","toLowerCase","lang","getLocale$1","getApp","app","allowDefault","$vm","$locale","setLocale$1","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","findExistsPageIndex","url","pages","getCurrentPages","len","page","$page","fullPath","redirectTo","fromArgs","exists","delta","args","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","filter","item","indicator","loop","UUID_KEY","deviceId","useDeviceId","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","screenHeight","populateParameters","brand","model","system","theme","version","fontSizeSetting","SDKVersion","deviceOrientation","extraParam","osName","osVersion","hostVersion","deviceType","getGetDeviceType","deviceBrand","getDeviceBrand","_hostName","getHostName","_deviceOrientation","_devicePixelRatio","_SDKVersion","hostLanguage","parameters","appId","process","appName","appVersion","appVersionCode","appLanguage","getAppLanguage","uniCompileVersion","uniRuntimeVersion","uniPlatform","deviceModel","devicePixelRatio","toLocaleLowerCase","hostTheme","hostName","hostSDKVersion","hostFontSizeSetting","windowTop","windowBottom","osLanguage","undefined","osTheme","ua","hostPackageName","browserName","browserVersion","deviceTypeMaps","ipad","windows","mac","deviceTypeMapsKeys","_model","_m","defaultLanguage","_platform","environment","host","env","getSystemInfo","showActionSheet","alertText","title","getAppBaseInfo","getDeviceInfo","getWindowInfo","getAppAuthorizeSetting","locationReducedAccuracy","locationAccuracy","compressImage","compressedHeight","compressHeight","compressedWidth","compressWidth","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","getUniEmitter","ctx","$on","$off","$emit","eventApi","tryCatch","getApiCallbacks","apiCallbacks","param","cid","cidErrMsg","enabled","normalizePushMessage","invokePushCallback","type","invokeGetPushCidCallbacks","onPushMessageCallbacks","stopped","getPushCidCallbacks","getPushClientId","hasSuccess","hasFail","hasComplete","onPushMessage","offPushMessage","baseInfo","shareVideoMessage","miniapp","mocks","findVmByVueId","vm","vuePid","$children","childVm","$scope","_$vueId","parentVm","initBehavior","Behavior","isPage","route","initRelation","triggerEvent","selectAllComponents","mpInstance","selector","$refs","components","component","ref","dataset","toSkip","vueGeneric","scopedComponent","syncRefs","refs","newRefs","oldKeys","Set","newKeys","oldValue","newValue","every","delete","initRefs","forComponents","handleLink","event","vueOptions","parent","markMPComponent","IS_MP","OB","SKIP","isExtensible","WORKLET_RE","initWorkletMethods","mpMethods","vueMethods","matches","match","workletName","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","oldTriggerEvent","newTriggerEvent","comType","newEvent","_triggerEvent","initHook","isComponent","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","$mp","mpType","mock","hasHook","default","extendOptions","super","mixins","initHooks","mpOptions","__call_hook","initUnknownHooks","excludes","findHooks","initHook$1","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vuePid","initData","context","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","createObserver","observer","newVal","oldVal","initBehaviors","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","virtualHost","virtualHostStyle","virtualHostClass","scopedSlotsCompiler","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","__args__","extraObj","getObjByArray","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","generic","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","path","is","once","eventChannels","getEventChannel","eventChannel","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","currentId","propsData","$hasSSP","slot","$getSSP","needAll","$setSSP","$initSSP","$callSSP","destroyed","parseBaseApp","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","canIUse","globalData","_isMounted","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","val2","x","parseBaseComponent","vueComponentOptions","needVueOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","parsePage","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","createPlugin","canIUseApi","apiName","uni","Proxy","uni$1","_iterableToArray","iter","from","_nonIterableSpread","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","format","startDelimiter","endDelimiter","position","text","char","sub","isClosed","compiled","mode","defaultFormatter","I18n","fallbackLocale","watcher","formater","watchers","override","interpolate","watchAppLocale","newLocale","$watch","getDefaultLocale","isWatchedAppLocale","f","add","isString","hasI18nJson","jsonObj","walkJsonObj","isI18nStr","parseI18nJson","compileStr","compileI18nJsonStr","jsonStr","localeValues","unshift","compileJsonObj","compileValue","valueLocales","localValue","walk","resolveLocale","resolveLocaleChain","chain","pop","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","provinceData","cityData","areaData","getbanner","http","loading","getitem","getcpdesc","getcategory","getgoodlist","login","register","editaddress","addcollection","collectionlist","add_read_record","getread_recordlsit","cleanrecord","postorder","wxpay","orderlist","orderlist2","orderdetail","cancelOrder","detaildesc","sqtuik","sqtuih","getarealist","sqruzhu","checkruzhu","gooddetail","checkyqcode","notice","baseset","getaddress","baseinfo","userinfo","czwxpay","sqtixian","tixlist","sendcode","updatepsw","jifenlist","kdiinfo","checkkc","couponlist","mycouponlist","getcoupon","autochooseyhq","checkrg","orderinfo","postyans","endtime","getdhrq","checkorder","daochu","postorderjiad","orderjiad","makeMap","items","block","inline","closeSelf","removeDOCTYPE","html","isDocument","RegExp","$1","trimHtml","getScreenInfo","screen","width","height","windowHeight","html2json","customHandler","imageProp","wxDiscode","strDiscode","bufArray","results","nodes","imageUrls","Node","tag","node","$screen","HTMLParser","start","attrs","unary","tagType","attr","reduce","pre","classStr","styleStr","imgUrl","src","urlToHttpUrl","domain","href","fontSize","styleAttrs","color","face","source","end","shift","chars","strNumDiscode","strGreeceDiscode","strcharacterDiscode","strOtherDiscode","startTag","endTag","empty","fillAttrs","last","stack","parseEndTag","tagName","pos","parseStartTag","rest","genAttr","escaped","substring","extraConfig","defaultConfig","httpConfig","config","$config","showModal","showCancel","confirmText","confirm","$util","toast","baseUrl","header","request","setStorageSync","foxphp_ok","hideLoading","statusCode","code","msg","CONFIG","development","production","debounce","delay","timer","clearTimeout","setTimeout","throttle","mask","icon","duration","showToast","showLoading","jsonToUrl","urlToJson","getQuery","window","location","search","vars","pair","round","mul","div","d1","d2","n1","n2","toFixed","pow","n","d","carryD","ds","b0","k","status","mobile","nickname","portrait","carouselList","background","goodsList","image","image2","image3","sales","cartList","attr_val","stock","detailData","title2","favorite","imgList","episodeList","guessList","evaList","zan","shareList","lazyLoadList","orderList","cateList","pid","picture","_interopRequireDefault","runtime","_regeneratorRuntime","a","asyncIterator","u","toStringTag","define","wrap","Generator","Context","makeInvokeMethod","h","l","s","y","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","g","defineIteratorMethods","_invoke","AsyncIterator","__await","callInvokeWithMethodAndArg","done","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","mark","awrap","async","reverse","prev","stop","rval","handle","finish","_catch","delegateYield","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","self","arrayWithHoles","iterableToArrayLimit","nonIterableRest","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","XLSX","make_xlsx_lib","current_codepage","current_ansi","VALID_ANSI","CS2CP","set_ansi","cp","reset_ansi","set_cp","reset_cp","char_codes","utf16leread","utf16beread","debom","c1","c2","_getchar","_gc1","_getansi","_ga1","DENSE","DIF_XL","Base64","make_b64","input","c3","e1","e2","e3","e4","decode","b64_decode","has_buf","Buffer","versions","Buffer_from","nbfs","buf","enc","alloc","allocUnsafe","new_raw_buf","new_unsafe_buf","s2a","s2ab","ArrayBuffer","view","Uint8Array","a2s","a2u","ab2a","bconcat","bufs","chr0","chr1","SSF","make_ssf","_strrev","fill","pad0","pad_","rpad_","pad0r1","pad0r2","p2_32","pad0r","isgeneral","days","months","init_table","table_fmt","default_map","defi","default_str","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","q","parse_date_code","b2","date","dow","dout","out","T","m","H","M","S","abs","date1904","setDate","getDate","getFullYear","getMonth","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","trailing_zeroes_and_decimal","strip_decimal","mantissa_zeroes_and_decimal","exp_with_single_digit","normalize_exp","small_exp","w","toPrecision","toExponential","large_exp","general_fmt_num_base","V","log","LOG10E","_general_num","general_fmt","_general","write_date","fmt","ss0","ss","tt","outl","outstr","commaify","j","write_num","make_write_num","pct1","write_num_pct","sfmt","write_num_cm","idx","write_num_exp","period","ee","fakee","$$","$2","$3","frac1","write_num_f1","aval","sign","den","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","dec","_frac","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","is_date","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","dateNF","table","load_entry","load","_table","get_table","load_table","tbl","XLMLFormatMap","SSFImplicit","dateNFregex","dateNF_regex","dateNF_fix","Y","datestr","timestr","DO_NOT_EXPORT_CFB","CRC32","factory","signed_crc_table","Int32Array","crc32_bstr","bstr","seed","C","L","crc32_buf","crc32_buf_8","crc32_str","CFB","_CFB","namecmp","R","Z","dirname","filename","write_dos_date","hms","getHours","getMinutes","getSeconds","write_shift","ymd","parse_dos_date","read_shift","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_extra_field","blob","prep_blob","flags","sz","tgt","mtime","atime","ctime","mt","fs","get_fs","parse_zip","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","mv","check_get_mver","check_shifts","dir_cnt","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","files","Paths","FileIndex","FullPaths","read_directory","build_full_paths","raw","HEADER_SIGNATURE","nsectors","ceil","FI","FP","pl","dad","get_mfat_entry","entry","payload","mini","MSSZ","__readInt32LE","new_buf","cnt","sector","get_sector_list","chkd","buf_chain","modulus","addr","__toBuffer","sl","seen","minifat_store","namelen","__utf16le","clsid","ct","read_date","storage","offset","__readUInt32LE","read_file","readFileSync","read","init_cfb","cfb","root","CLSID","seed_cfb","nm","rebuild_cfb","gc","_file","HEADER_CLSID","elt","_write","_opts","fileType","write_zip","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","UCFullPaths","UCPaths","UCPath","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","write","_zlib","use_zlib","zlib","InflateRaw","InflRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","usz","_inflate","_deflateRawSync","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","b","rev","read_bits_2","bl","read_bits_3","read_bits_4","read_bits_5","read_bits_7","read_bits_n","realloc","copy","zero_fill_array","_deflateRaw","deflateRaw","boff","off","build_tree","clens","cmap","MAX","maxlen","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","next_code","hcodes","h1","h2","inflate","outbuf","woff","OL","max_len_1","max_len_2","bits","len_eb","dst_eb","dst","warn_or_throw","wrn","fcnt","start_cd","csz","efsz","fcsz","EF","parse_local_file","meth","crc32","_csz","_usz","ef","_crc32","cfb_add","unsafe","cdirs","compression","fp","fi","crcs","sz_cd","namebuf","cfb_new","fpath","utils","cfb_gc","cfb_del","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","_inflateRaw","_fs","blobify","write_dl","fname","utf8write","IE_SaveFile","Blob","navigator","msSaveBlob","saveAs","URL","document","createElement","createObjectURL","chrome","downloads","download","revokeObjectURL","body","appendChild","click","removeChild","$","File","Folder","open","encoding","close","read_binary","infile","ks","o2","evert_key","K","evert","evert_num","evert_arr","datenum","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","dup","fuzzynum","isFinite","NaN","wt","fuzzydate","getYear","safe_split_regex","split_regex","re","def","getdatastr","asNodeBuffer","asBinary","_data","getContent","getdatabin","getdata","safegetzipfile","zip","getzipfile","getzipdata","safe","getzipstr","zipentries","zip_add_file","jszip","zip_new","zip_read","resolve_path","step","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","z","eq","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","escapexlml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","utf8reada","orig","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","xlsx","XMLNS","main","XLMLNS","read_double_le","Infinity","write_double_le","bs","av","LN2","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__lpp4","___lpp4","lpp4_","__8lpp4","___8lpp4","__double","___double","is_buf","is_buf_a","isBuffer","lpstr_b","readUInt32LE","cpstr_b","lpwstr_b","lpp4_b","lpp4_8b","utf8_b","double_","readDoubleLE","is_buf_b","cptable","__readInt16LE","__readInt32BE","oI","oR","oo","loc","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","hexstr","fld","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_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_col","encode_row","decode_row","rowstr","unfix_row","row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","ws","_R","_C","origin","_origin","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_LPSTR","VT_FILETIME","VT_BLOB","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","rgbify","_XLSIcv","XLSIcv","RBErr","ct2type","CT_LIST","workbooks","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","styles","type2ct","CT","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","calcchain","sst","style","defaults","CTYPE_XML_ROOT","xsd","xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","dc","dcterms","dcmitype","cp_doit","write_core_props","Props","CreatedDate","ModifiedDate","EXT_PROPS","PseudoPropsPairs","load_props_pairs","HP","TOP","hp","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","parse_ext_props","xml","HeadingPairs","TitlesOfParts","EXT_PROPS_XML_ROOT","vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","CUST_PROPS_XML_ROOT","write_cust_props","custprop","DBF","dbf_codepage_map","dbf_reverse_map","DBF_SUPPORTED_VERSIONS","dbf_to_aoa","ft","memo","vfp","l7","nrow","fpos","rlen","current_cp","codepage","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_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","hidden","wch","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_workbook","write_ws_cell_sylk","F","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","pf","topic","push_value","po","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","FS","sepcc","startcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","outer","prn_to_sheet_str","prn_to_sheet","bytes","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","parse_rpr","rpr","font","pass","shadow","outline","strike","uval","rgb","family","valign","parse_rs","tregex","rpregex","parse_r","rregex","rend","rs","rs_to_html","parse_rs_factory","nlregex","parse_rpr2","intro","outro","align","r_to_html","terms","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","Count","count","Unique","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","hex2RGB","rgb2Hex","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","hex","tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","parse_borders","Borders","border","diagonalUp","diagonalDown","parse_fills","Fills","patternType","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","italic","underline","condense","vertAlign","scheme","auto","icv","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","CellXf","xf","alignment","vertical","horizontal","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","STY","write_sty_xml","wb","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_xlink_xml","parse_xlink_bin","xlink_parse","R_n","IMG","DRAW","parse_drawing","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","shadata","on","fillcolor","strokecolor","CMNT","sheet_insert_comments","comment","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","guid","textMatch","rt","CMNT_XML_ROOT","write_comments_xml","iauthor","CT_VBA","make_vba_xls","newcfb","newpath","fill_vba_xls","VBAFMTS","DS","MS","parse_ds_bin","parse_ds_xml","parse_ms_bin","parse_ms_xml","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","_xlfn","_ssfopts","WS","browser_has_Map","Map","get_sst_id","has","revarr","col_obj_w","level","outlineLevel","default_margins","margins","defs","footer","get_cell_style","revssf","ssf","fontId","fillId","borderId","xfId","applyNumberFormat","safe_format","fmtid","fillid","cellStyles","raw_rgb","check_ws","sname","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","sheetprregex2","svsregex","parse_ws_xml","refguess","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","parse_ws_xml_sheetpr2","ridx","svs","parse_ws_xml_sheetviews","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","merges","_merge","hlink","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","codeName","CodeName","write_ws_xml_sheetpr","needed","vbaraw","cname","Workbook","outlineprops","summaryBelow","summaryRight","above","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_protection","sp","password","crypto_CreatePasswordVerifier_Method1","Rel","tooltip","Tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","Names","names","Name","Sheet","Ref","sviewregex","Views","zoomScale","zoom","rightToLeft","RTL","write_ws_xml_sheetviews","sview","workbookViewId","write_ws_xml_cell","oldt","oldv","os","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","cells","cref","tagr","tagc","sstr","ftag","do_format","cf","arrayf","sharedf","rowobj","rowrite","marr","marrlen","xlen","rstarti","outa","ht","rslice","cellFormula","xlfn","___f","si","_tag","_r","write_ws_xml_data","_cell","customHeight","WS_XML_ROOT","write_ws_xml","sidx","rdata","_drawing","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","ignoreEC","numberStoredAsText","sqref","CHART","CHARTEX","parse_Cache","num","nf","parse_chart","csheet","nc","CS","CS_XML_ROOT","parse_cs_xml","write_cs_xml","parse_BrtCsProp","parse_XLWideString","parse_cs_bin","cs_parse","write_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","AppVersion","dname","dnstart","xml_wb","Hidden","Comment","localSheetId","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_wb","parse_wb_bin","parse_ws","parse_ws_bin","parse_cs","parse_ms","parse_ds","parse_sty","parse_sty_bin","parse_theme","parse_sst","parse_sst_bin","parse_cmnt","parse_comments_bin","parse_cc","parse_cc_bin","parse_cc_xml","parse_xlink","write_wb","write_wb_bin","write_ws","write_ws_bin","write_cs","write_sty","write_sty_bin","write_sst","write_sst_bin","write_cmnt","write_comments_bin","HTML_","html_to_sheet","mtch2","hd","midx","colspan","rowspan","_t","html_to_book","book_new","book_append_sheet","make_html_row","editable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","sheet_add_dom","or_R","or_C","getElementsByTagName","is_dom_element_hidden","display","elts","children","hasAttribute","getAttribute","innerHTML","Aelts","Aelti","parse_dom_table","table_to_book","get_computed_style","get_get_computed_style_function","getPropertyValue","ownerDocument","defaultView","getComputedStyle","parse_content_xml","parse_text_p","fixed","number_formats","day","month","year","hours","minutes","seconds","era","quarter","pcx","xlml_normalize","tmp","NFtag","pidx","sheetag","rowtag","Rn","ctag","textp","textpidx","textptag","textR","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","xlmlregex","lastIndex","exec","ods_to_csf_formula","rptR","rpt","ods_to_csf_3D","nrange","ptp","bookSheets","parse_ods","parse_manifest","parse_fods","write_styles_ods","master_styles","wso","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","mi","ods","ROWS","skip","csf_to_ods_formula","_Fref","text_p","_tgt","csf_to_ods_3D","write_automatic_styles_ods","cidx","colobj","wcx","fods","write_meta_ods","write_ods","manifest","rdf","write_rdf","write_manifest","write_sheet_index","write_obj_str","write_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","RTF","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","write_wk1_buf","WK_","sheet_to_wk1","fix_opts_func","fix_opts","fix_read_opts","fix_write_opts","get_sheet_type","safe_parse_wbrels","wbrels","pwbr","strRelID","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","draw","chartp","crelsp","strip_front_slash","entries","dir","binname","bookProps","link","propdata","pluck","Custprops","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","nmode","wsloop","snjseen","snj","Directory","Deps","Styles","bookFiles","bookVBA","bin","parse_xlsxcfb","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","comps","seds","parse_DataSpaceDefinition","parse_Primary","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","foo","vbafmt","_sn","_i","wsrels","_type","need_vml","rId1","read_cfb","parse_xlscfb","read_zip","read_plaintext","parse_xlml","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","ab","vu","write_cfb_ctr","write_zip_type","oopts","generate","encrypt_agile","write_cfb_type","write_xlscfb","write_string_type","bom","write_stxt_type","write_binary_type","writeSync","write_xlml","book_to_wk3","write_biff_buf","resolve_book_type","_BT","ext","writeFileAsync","_cb","Function","make_json_row","hdr","defval","isempty","__rowNum__","rawNumbers","outi","counter","CC","blankrows","qreg","make_csv_row","forceQuotes","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","sheet_get_cell","json_to_sheet","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","RC","wb_sheet_idx","sh","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","readFile","excel_exprot","getFileSystemManager","headerName","fileName","wopts","workBook","dell","newData","StrData","changeData","filePath","USER_DATA_PATH","openDocument","showMenu","readdir","dirPath","indexVal","el","unlink","succ","XLS","ODS","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr2"],"mappings":"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CC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;;;AClB3G;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,aAAoB;;AAErC;AACA;AACA;AACA,YAAY,aAAoB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB,MAAM,IAAqC;AAC3C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAoB;AACtC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAEQ;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;;AAEA;AACA;AACA;;AAEA,oCAAoC,yCAAyC,EAAE;AAC/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAsD,EAAE;AACtF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,MAAM,EAEN;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,mBAAmB;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,uCAAuC;AACvC;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,KAAK,UAAU,KAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C,kDAAkD;AAClD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,+BAA+B;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,MAAM,EAGN;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK,2CAA2C,8BAA8B,EAAE;;AAEhF;AACA,wCAAwC,OAAO;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqC;AACrD;AACA,oBAAoB,SAAI;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA,MAAM,SAAE;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC,8C;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,gIAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,gCAAgC,EAAE;AAC5E;;AAEA;AACA;AACA;AACA;AACA,WAAW,gIAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,gIAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;;AAE1C;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA,UAAU,gIAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qDAAqD,EAAE,SAAS;AACtH;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC97LnB;AACA,IAAIqzB,YAAY,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACC;EACE,OAAO,EAAE,KAAK;EACd,OAAO,EAAE;AACV;AACA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACD;AAAA,eACcA,YAAY;AAAA,2B;;;;;;;;;;;;;;;;;;AC5I3B;AACA,IAAIC,QAAQ,GAAG;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEC;EACE,OAAO,EAAE,KAAK;EACd,OAAO,EAAE;AACX;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CAED;AAAA,eACcA,QAAQ;AAAA,2B;;;;;;;;;;;;;;;;;;ACp+CvB;AACC,IAAIC,QAAQ,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI,CAAC;EACG,OAAO,EAAE,KAAK;EACd,OAAO,EAAE;AACX,CAAC,EACD;EACE,OAAO,EAAE,KAAK;EACd,OAAO,EAAE;AACX,CAAC,EACD;EACE,OAAO,EAAE,KAAK;EACd,OAAO,EAAE;AACX,CAAC,EACD;EACE,OAAO,EAAE,KAAK;EACd,OAAO,EAAE;AACX,CAAC,EACD;EACE,OAAO,EAAE,KAAK;EACd,OAAO,EAAE;AACX,CAAC,EACD;EACE,OAAO,EAAE,KAAK;EACd,OAAO,EAAE;AACX,CAAC,EACD;EACE,OAAO,EAAE,KAAK;EACd,OAAO,EAAE;AACX,CAAC,EACD;EACE,OAAO,EAAE,KAAK;EACd,OAAO,EAAE;AACX,CAAC;AAEN;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACE;AAAA,eACcA,QAAQ;AAAA,2B;;;;;;;;;;;AC9vYxB;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;ACnBA;AAAA;AAAA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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AAI,EAAE,KAAK;EACX28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,CAAC;EACN18B,IAAI,EAAE;AACP,CAAC,EACD;EACCF,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,CAAC;EACN18B,IAAI,EAAE;AACP,CAAC,EACD;EACCF,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,MAAM;EACZ28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,MAAM;EACZ28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,IAAI;EACV28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,MAAM;EACZ28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,MAAM;EACZ28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,KAAK;EACX28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,CAAC;EACN18B,IAAI,EAAE;AACP,CAAC,EACD;EACCF,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,CAAC;EACN18B,IAAI,EAAE;AACP,CAAC,EACD;EACCF,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,MAAM;EACZ28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,MAAM;EACZ28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,IAAI;EACV28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,IAAI;EACV28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,IAAI;EACV28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,IAAI;EACV28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,CAAC;EACN18B,IAAI,EAAE;AACP,CAAC,EACD;EACCF,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,CAAC;EACN18B,IAAI,EAAE;AACP,CAAC,EACD;EACCF,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,CAAC;EACN18B,IAAI,EAAE;AACP,CAAC,EACD;EACCF,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,CAAC;EACN18B,IAAI,EAAE;AACP,CAAC,EACD;EACCF,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,MAAM;EACZ28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,OAAO;EACb28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,MAAM;EACZ28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,MAAM;EACZ28B,OAAO,EAAE;AACV,CAAC,EACD;EACC78B,EAAE,EAAE,EAAE;EACN48B,GAAG,EAAE,EAAE;EACP18B,IAAI,EAAE,KAAK;EACX28B,OAAO,EAAE;AACV,CAAC,EACD;EAC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AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;AC5vDY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,QAAQ,WAAW;;AAEnB;AACA;AACA,QAAQ,UAAU;;AAElB;AACA;;;;;;;;;;;;ACpFA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,0BAA0B,mBAAO,CAAC,cAAM;AACxC;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,8BAA8B;AAClE;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC7SA,IAAIr/B,gBAAgB,GAAGxF,mBAAO,CAAC,8BAAuB,CAAC;AACvD,SAAS23F,2BAA2B,CAAC92F,CAAC,EAAE+2F,MAAM,EAAE;EAC9C,IAAI,CAAC/2F,CAAC,EAAE;EACR,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE,OAAO2E,gBAAgB,CAAC3E,CAAC,EAAE+2F,MAAM,CAAC;EAC7D,IAAIv5D,CAAC,GAAGj+B,MAAM,CAACa,SAAS,CAACiG,QAAQ,CAAC9F,IAAI,CAACP,CAAC,CAAC,CAACuF,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EACtD,IAAIi4B,CAAC,KAAK,QAAQ,IAAIx9B,CAAC,CAACG,WAAW,EAAEq9B,CAAC,GAAGx9B,CAAC,CAACG,WAAW,CAAC2C,IAAI;EAC3D,IAAI06B,CAAC,KAAK,KAAK,IAAIA,CAAC,KAAK,KAAK,EAAE,OAAO34B,KAAK,CAACypB,IAAI,CAACtuB,CAAC,CAAC;EACpD,IAAIw9B,CAAC,KAAK,WAAW,IAAI,0CAA0C,CAACn4B,IAAI,CAACm4B,CAAC,CAAC,EAAE,OAAO74B,gBAAgB,CAAC3E,CAAC,EAAE+2F,MAAM,CAAC;AACjH;AACAh4F,MAAM,CAACC,OAAO,GAAG83F,2BAA2B,EAAE/3F,MAAM,CAACC,OAAO,CAACC,UAAU,GAAG,IAAI,EAAEF,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;;ACT1H,SAASg4F,iBAAiB,CAACtyF,GAAG,EAAE8N,GAAG,EAAE;EACnC,IAAIA,GAAG,IAAI,IAAI,IAAIA,GAAG,GAAG9N,GAAG,CAACc,MAAM,EAAEgN,GAAG,GAAG9N,GAAG,CAACc,MAAM;EACrD,KAAK,IAAIzF,CAAC,GAAG,CAAC,EAAEk3F,IAAI,GAAG,IAAIpyF,KAAK,CAAC2N,GAAG,CAAC,EAAEzS,CAAC,GAAGyS,GAAG,EAAEzS,CAAC,EAAE;IAAEk3F,IAAI,CAACl3F,CAAC,CAAC,GAAG2E,GAAG,CAAC3E,CAAC,CAAC;EAAC;EACtE,OAAOk3F,IAAI;AACb;AACAl4F,MAAM,CAACC,OAAO,GAAGg4F,iBAAiB,EAAEj4F,MAAM,CAACC,OAAO,CAACC,UAAU,GAAG,IAAI,EAAEF,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C","file":"common/vendor.js","sourcesContent":["const objectKeys = [\r\n 'qy',\r\n 'env',\r\n 'error',\r\n 'version',\r\n 'lanDebug',\r\n 'cloud',\r\n 'serviceMarket',\r\n 'router',\r\n 'worklet',\r\n '__webpack_require_UNI_MP_PLUGIN__'\r\n]\r\nconst singlePageDisableKey = [\r\n 'lanDebug',\r\n 'router',\r\n 'worklet'\r\n]\r\nconst target = typeof globalThis !== 'undefined' ? globalThis : (function () {\r\n return this\r\n})()\r\n\r\nconst key = ['w', 'x'].join('')\r\nconst oldWx = target[key]\r\nconst launchOption = oldWx.getLaunchOptionsSync ? oldWx.getLaunchOptionsSync() : null\r\n\r\nfunction isWxKey (key) {\r\n if (launchOption && launchOption.scene === 1154 && singlePageDisableKey.includes(key)) {\r\n return false\r\n }\r\n return objectKeys.indexOf(key) > -1 || typeof oldWx[key] === 'function'\r\n}\r\n\r\nfunction initWx () {\r\n const newWx = {}\r\n for (const key in oldWx) {\r\n if (isWxKey(key)) {\r\n // TODO wrapper function\r\n newWx[key] = oldWx[key]\r\n }\r\n }\r\n return newWx\r\n}\r\ntarget[key] = initWx()\r\nexport default target[key]\r\n","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","//商家信息\r\nconst storeData = {\r\n\t\t//商家唯一标识\r\n\t\tstoreId: '168',\r\n\t\t//商家名称\r\n\t\tstoreName: '小太阳商店',\r\n\t\t//头像\r\n\t\tavatar: '/static/face/face_2.jpg',\r\n\t\t//横幅图片\r\n\t\tbanner: '/static/goods/banner.jpg',\r\n\t\t//商家住址\r\n\t\taddress: '新疆阿克苏是他北路2号',\r\n\t\t//配送时间\r\n\t\tdeliveryTime: '11:00~20:30',\r\n\t\t//联系电话\r\n\t\ttelephone: '18299989916',\r\n\t\t//商家购物车\r\n\t\tshoppingCart: [],\r\n\t\t//配送费\r\n\t\tshippingDees: 0,\r\n\t\t//配送起步价\r\n\t\tstartingPrice:30\r\n\t};\r\n\r\n//评论数据\r\nconst commentData = [{\r\n\t\theader_img: \"/static/face/face_4.jpg\",\r\n\t\tuser_name: \"测试1\",\r\n\t\trate:5,\r\n\t\tcreate_time: \"2019.04.12\",\r\n\t\tcontent: \"好评\",\r\n\t\timgs:[\r\n\t\t\t'/static/goods/1.jpg',\r\n\t\t\t'/static/goods/3.jpg',\r\n\t\t\t'/static/goods/4.jpg',\r\n\t\t\t'/static/goods/5.jpg'\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tcontent: \"中评\",\r\n\t\tcreate_time: \"2019.04.12\",\r\n\t\theader_img: \"/static/face/face_5.jpg\",\r\n\t\tuser_name: \"测试2\",\r\n\t\trate:4,\r\n\t\t// imgs:[]\r\n\t},\r\n\t{\r\n\t\tcontent: \"\",\r\n\t\tcreate_time: \"2019.04.12\",\r\n\t\theader_img: \"/static/face/face_6.jpg\",\r\n\t\tuser_name: \"测试3\",\r\n\t\trate:2,\r\n\t\t// imgs:[]\r\n\t},{\r\n\t\tcontent: \"好评\",\r\n\t\tcreate_time: \"2019.04.12\",\r\n\t\theader_img: \"/static/face/face_7.jpg\",\r\n\t\tuser_name: \"小蚂蚁\",\r\n\t\trate:5,\r\n\t\timgs:[\r\n\t\t\t'/static/goods/7.jpg',\r\n\t\t\t'/static/goods/8.jpg',\r\n\t\t\t'/static/goods/9.jpg',\r\n\t\t\t'/static/goods/10.jpg'\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\tcontent: \"中评\",\r\n\t\tcreate_time: \"2019.04.12\",\r\n\t\theader_img: \"/static/face/face_8.jpg\",\r\n\t\tuser_name: \"沙漠骆驼\",\r\n\t\trate:3.5,\r\n\t\t// imgs:[]\r\n\t},\r\n\t{\r\n\t\tcontent: \"\",\r\n\t\tcreate_time: \"2019.04.12\",\r\n\t\theader_img: \"/static/face/face_9.jpg\",\r\n\t\tuser_name: \"莫思\",\r\n\t\trate:2.3,\r\n\t\t// imgs:[]\r\n\t}];\r\n\r\n//商品数据\r\nconst goodsData= [{ \r\n\t\tid: 1,\r\n\t\ttype_id:1,\r\n\t\tname:'白果王水果沙拉',\r\n\t\tdescripe:\"脆糯营养,口感好,健康绿色\",\r\n\t\timg:'/static/goods/9.jpg',\r\n\t\tprice:\"9\",\r\n\t\toldprice:\"100\"\r\n\t},\r\n\t{ \r\n\t\tid: 2,\r\n\t\ttype_id:2,\r\n\t\tname:'精品烤山药',\r\n\t\tdescripe:\"脆糯营养,口感好,健康绿色\",\r\n\t\timg: '/static/goods/10.jpg',\r\n\t\tprice:\"8\",\r\n\t\toldprice:\"100\"\r\n\t},\r\n\t{ \r\n\t\tid: 3,\r\n\t\ttype_id:2,\r\n\t\tname:'川味毛血旺',\r\n\t\tdescripe:\"脆糯营养,口感好,健康绿色\",\r\n\t\timg: '/static/goods/11.jpg',\r\n\t\tprice:\"4\",\r\n\t\toldprice:\"\"\r\n\t},\r\n\t{ \r\n\t\tid: 4,\r\n\t\ttype_id:3,\r\n\t\tname:'吐鲁番烤全羊',\r\n\t\tdescripe:\"脆糯营养,口感好,健康绿色\",\r\n\t\timg: '/static/goods/4.jpg',\r\n\t\tprice:\"4\",\r\n\t\toldprice:\"\"\r\n\t},\r\n\t{ \r\n\t\tid: 5,\r\n\t\ttype_id:3,\r\n\t\tname:'红烧肉',\r\n\t\tdescripe:\"脆糯营养,口感好,健康绿色\",\r\n\t\timg: '/static/goods/5.jpg',\r\n\t\tprice:\"4\",\r\n\t\toldprice:\"\"\r\n\t},\r\n\t{ \r\n\t\tid: 6,\r\n\t\ttype_id:4,\r\n\t\tname:'新疆特色辣子鸡',\r\n\t\tdescripe:\"脆糯营养,口感好,健康绿色\",\r\n\t\timg: '/static/goods/6.jpg',\r\n\t\tprice:\"4\",\r\n\t\toldprice:\"\"\r\n\t},\r\n\t{ \r\n\t\tid: 7,\r\n\t\ttype_id:5,\r\n\t\tname:'绝味海鲜拼盘',\r\n\t\tdescripe:\"脆糯营养,口感好,健康绿色\",\r\n\t\timg: '/static/goods/7.jpg',\r\n\t\tprice:\"4\",\r\n\t\toldprice:\"\"\r\n\t},\r\n\t{ \r\n\t\tid: 8,\r\n\t\ttype_id:5,\r\n\t\tname:'金色香糯大粽子',\r\n\t\tdescripe:\"脆糯营养,口感好,健康绿色\",\r\n\t\timg: '/static/goods/3.jpg',\r\n\t\tprice:\"4\",\r\n\t\toldprice:\"\"\r\n\t},\r\n\t{ \r\n\t\tid: 9,\r\n\t\ttype_id:5,\r\n\t\tname:'马梓林香香鸡',\r\n\t\tdescripe:\"脆糯营养,口感好,健康绿色\",\r\n\t\timg: '/static/goods/2.jpg',\r\n\t\tprice:\"4\",\r\n\t\toldprice:\"\"\r\n\t},\r\n\t{ \r\n\t\tid: 10,\r\n\t\ttype_id:6,\r\n\t\tname:'草莓味莫普氏蛋糕',\r\n\t\tdescripe:\"脆糯营养,口感好,健康绿色\",\r\n\t\timg: '/static/goods/1.jpg',\r\n\t\tprice:\"4\",\r\n\t\toldprice:\"\"\r\n\t}];\r\n\t\r\n//商品种类数据\r\nconst categoryData = [\r\n\t\t{id: 1,name: '烧烤'},\r\n\t\t{id: 2,name: '生鲜'},\r\n\t\t{id: 3,name: '绿蔬'},\r\n\t\t{id: 4,name: '肉类'},\r\n\t\t{id: 5,name: '川味'},\r\n\t\t{id: 6,name: '粤菜'},\r\n\t\t{id: 7,name: '湘菜'},\r\n\t\t{id: 8,name: '西餐'},\r\n\t\t{id: 9,name: '饮料'},\r\n\t\t{id: 10,name: '糕点'},\r\n\t\t{id: 11,name: '凉菜'},\r\n\t\t{id: 12,name: '火锅'},\r\n\t\t{id: 13,name: '干锅'}\r\n\t];\r\n\r\n//商品详细\r\nconst goodsInfo = {\r\n\t//商品id\r\n\tid: 1,\r\n\t//商品类id\r\n\ttype_id:1,\r\n\t//商品名称\r\n\tname:'新疆特色辣子鸡排饭',\r\n\t//商品描述-就是掌柜描述,\r\n\tdescripe:\"口味可以自己选,有香辣、蒜香、葱香、孜然、老麻口味\",\r\n\t//主图\r\n\timg:'/static/face/face_5.jpg',\r\n\t//滚动图片\r\n\tbanner_img:['/static/goods/4.jpg','/static/goods/5.jpg','/static/goods/6.jpg'],\r\n\t//现价\r\n\tprice:\"23\",\r\n\t//原价\r\n\toldprice:\"44\",\r\n\t//月销售\r\n\tmonthly_sales: \"566\",\r\n\t//商品标签\r\n\tgoods_tag:['约800克','香辣','特色菜','营养美食'],\r\n\t//详情\r\n\tdetail:[\r\n\t\t{\r\n\t\t\ttit:'掌柜描述',\r\n\t\t\ttxt:'口味可以自己选,有香辣、蒜香、葱香、孜然、老麻口味',\r\n\t\t},{\r\n\t\t\ttit:'主料',\r\n\t\t\ttxt:'鸡胸排,大葱',\r\n\t\t},{\r\n\t\t\ttit:'菜系',\r\n\t\t\ttxt:'新疆特色菜',\r\n\t\t},{\r\n\t\t\ttit:'口味',\r\n\t\t\ttxt:'香辣',\r\n\t\t}\r\n\t\t//......更多\r\n\t],\r\n\t//图文\r\n\tdesc: `\r\n\t\t<div style=\"width:100%\">\r\n\t\t\t<img style=\"width:100%;display:block;\" src=\"/static/goods/5.jpg\" />\r\n\t\t\t<img style=\"width:100%;display:block;\" src=\"/static/goods/6.jpg\" />\r\n\t\t\t<img style=\"width:100%;display:block;\" src=\"/static/goods/7.jpg\" />\r\n\t\t\t<img style=\"width:100%;display:block;\" src=\"/static/goods/8.jpg\" />\r\n\t\t\t<img style=\"width:100%;display:block;\" src=\"/static/goods/9.jpg\" />\r\n\t\t</div>\r\n\t`,\r\n};\r\n\r\n//商品评价\r\nconst goodsEva = {\r\n\t//总评价数\r\n\tsum: '386',\r\n\t//好评\r\n\tpraise: '306',\r\n\t//差评\r\n\tbad_review: '80',\r\n\t//评价标签\r\n\teva_tag: {\r\n\t\t//有图\r\n\t\t'exist_pic': '62',\r\n\t\t//赞\r\n\t\t'appreciate': '96',\r\n\t\t//踩\r\n\t\t'oppose': '16',\r\n\t\t//其他标签\r\n\t\t'other': ['92%人口味满意','300人希望再次购买']\r\n\t},\r\n\teva_list: [\r\n\t\t{\r\n\t\t\t//用户名\r\n\t\t\tname: '白色的太阳',\r\n\t\t\t//头像\r\n\t\t\tavatar: '/static/face/face_4.jpg',\r\n\t\t\t//评论时间\r\n\t\t\ttime: '2020.03.12',\r\n\t\t\t//点赞或踩商品,没有投票【0】、赞【1】、踩【2】\r\n\t\t\tpoint: 1,\r\n\t\t\t//评价内容\r\n\t\t\tcontent: \"味道好极了,家里人超爱吃,希望下次能多放点辣椒,我们家吃辣\",\r\n\t\t\t//上传的图片\r\n\t\t\tpic: ['/static/goods/7.jpg','/static/goods/8.jpg','/static/goods/9.jpg']\r\n\t\t},\r\n\t\t{\r\n\t\t\t//用户名\r\n\t\t\tname: '匿名用户',\r\n\t\t\t//头像\r\n\t\t\tavatar: '/static/face/face_2.jpg',\r\n\t\t\t//评论时间\r\n\t\t\ttime: '2020.03.16',\r\n\t\t\t//点赞或踩商品,没有投票【0】、赞【1】、踩【2】\r\n\t\t\tpoint: 2,\r\n\t\t\t//评价内容\r\n\t\t\tcontent: \"\",\r\n\t\t\t//上传的图片\r\n\t\t\tpic: []\r\n\t\t},\r\n\t\t{\r\n\t\t\t//用户名\r\n\t\t\tname: '匿名用户',\r\n\t\t\t//头像\r\n\t\t\tavatar: '/static/face/face_3.jpg',\r\n\t\t\t//评论时间\r\n\t\t\ttime: '2020.03.16',\r\n\t\t\t//点赞或踩商品,没有投票【0】、赞【1】、踩【2】\r\n\t\t\tpoint: 0,\r\n\t\t\t//评价内容\r\n\t\t\tcontent: \"一般般\",\r\n\t\t\t//上传的图片\r\n\t\t\tpic: []\r\n\t\t},\r\n\t]\r\n}\r\n\t\r\nexport default {\r\n\tstoreData,\r\n\tcommentData,\r\n\tgoodsData,\r\n\tcategoryData,\r\n\tgoodsInfo,\r\n\tgoodsEva\r\n}\r\n\t","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { initVueI18n } from '@dcloudio/uni-i18n';\r\nimport Vue from 'vue';\r\n\r\nlet realAtob;\r\n\r\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\r\n\r\nif (typeof atob !== 'function') {\r\n realAtob = function (str) {\r\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\r\n if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\r\n\r\n // Adding the padding if missing, for semplicity\r\n str += '=='.slice(2 - (str.length & 3));\r\n var bitmap; var result = ''; var r1; var r2; var i = 0;\r\n for (; i < str.length;) {\r\n bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\r\n (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\r\n\r\n result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\r\n : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\r\n : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\r\n }\r\n return result\r\n };\r\n} else {\r\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\r\n realAtob = atob;\r\n}\r\n\r\nfunction b64DecodeUnicode (str) {\r\n return decodeURIComponent(realAtob(str).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n }).join(''))\r\n}\r\n\r\nfunction getCurrentUserInfo () {\r\n const token = ( wx).getStorageSync('uni_id_token') || '';\r\n const tokenArr = token.split('.');\r\n if (!token || tokenArr.length !== 3) {\r\n return {\r\n uid: null,\r\n role: [],\r\n permission: [],\r\n tokenExpired: 0\r\n }\r\n }\r\n let userInfo;\r\n try {\r\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\r\n } catch (error) {\r\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\r\n }\r\n userInfo.tokenExpired = userInfo.exp * 1000;\r\n delete userInfo.exp;\r\n delete userInfo.iat;\r\n return userInfo\r\n}\r\n\r\nfunction uniIdMixin (Vue) {\r\n Vue.prototype.uniIDHasRole = function (roleId) {\r\n const {\r\n role\r\n } = getCurrentUserInfo();\r\n return role.indexOf(roleId) > -1\r\n };\r\n Vue.prototype.uniIDHasPermission = function (permissionId) {\r\n const {\r\n permission\r\n } = getCurrentUserInfo();\r\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\r\n };\r\n Vue.prototype.uniIDTokenValid = function () {\r\n const {\r\n tokenExpired\r\n } = getCurrentUserInfo();\r\n return tokenExpired > Date.now()\r\n };\r\n}\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n return typeof str === 'string'\r\n}\r\n\r\nfunction isObject (obj) {\r\n return obj !== null && typeof obj === 'object'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () {}\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn (str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str))\r\n }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nfunction sortObject (obj) {\r\n const sortObj = {};\r\n if (isPlainObject(obj)) {\r\n Object.keys(obj).sort().forEach(key => {\r\n sortObj[key] = obj[key];\r\n });\r\n }\r\n return !Object.keys(sortObj) ? obj : sortObj\r\n}\r\n\r\nconst HOOKS = [\r\n 'invoke',\r\n 'success',\r\n 'fail',\r\n 'complete',\r\n 'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n const res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal : [childVal]\r\n : parentVal;\r\n return res\r\n ? dedupeHooks(res)\r\n : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n const res = [];\r\n for (let i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n const index = hooks.indexOf(hook);\r\n if (index !== -1) {\r\n hooks.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n if (!interceptor || !option) {\r\n return\r\n }\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n removeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n if (typeof method === 'string' && isPlainObject(option)) {\r\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n } else if (isPlainObject(method)) {\r\n mergeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n if (typeof method === 'string') {\r\n if (isPlainObject(option)) {\r\n removeInterceptorHook(scopedInterceptors[method], option);\r\n } else {\r\n delete scopedInterceptors[method];\r\n }\r\n } else if (isPlainObject(method)) {\r\n removeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction wrapperHook (hook, params) {\r\n return function (data) {\r\n return hook(data, params) || data\r\n }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data, params) {\r\n let promise = false;\r\n for (let i = 0; i < hooks.length; i++) {\r\n const hook = hooks[i];\r\n if (promise) {\r\n promise = Promise.resolve(wrapperHook(hook, params));\r\n } else {\r\n const res = hook(data, params);\r\n if (isPromise(res)) {\r\n promise = Promise.resolve(res);\r\n }\r\n if (res === false) {\r\n return {\r\n then () { }\r\n }\r\n }\r\n }\r\n }\r\n return promise || {\r\n then (callback) {\r\n return callback(data)\r\n }\r\n }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n ['success', 'fail', 'complete'].forEach(name => {\r\n if (Array.isArray(interceptor[name])) {\r\n const oldCallback = options[name];\r\n options[name] = function callbackInterceptor (res) {\r\n queue(interceptor[name], res, options).then((res) => {\r\n /* eslint-disable no-mixed-operators */\r\n return isFn(oldCallback) && oldCallback(res) || res\r\n });\r\n };\r\n }\r\n });\r\n return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n const returnValueHooks = [];\r\n if (Array.isArray(globalInterceptors.returnValue)) {\r\n returnValueHooks.push(...globalInterceptors.returnValue);\r\n }\r\n const interceptor = scopedInterceptors[method];\r\n if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n returnValueHooks.push(...interceptor.returnValue);\r\n }\r\n returnValueHooks.forEach(hook => {\r\n returnValue = hook(returnValue) || returnValue;\r\n });\r\n return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n const interceptor = Object.create(null);\r\n Object.keys(globalInterceptors).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = globalInterceptors[hook].slice();\r\n }\r\n });\r\n const scopedInterceptor = scopedInterceptors[method];\r\n if (scopedInterceptor) {\r\n Object.keys(scopedInterceptor).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n }\r\n });\r\n }\r\n return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n const interceptor = getApiInterceptorHooks(method);\r\n if (interceptor && Object.keys(interceptor).length) {\r\n if (Array.isArray(interceptor.invoke)) {\r\n const res = queue(interceptor.invoke, options);\r\n return res.then((options) => {\r\n // 重新访问 getApiInterceptorHooks, 允许 invoke 中再次调用 addInterceptor,removeInterceptor\r\n return api(\r\n wrapperOptions(getApiInterceptorHooks(method), options),\r\n ...params\r\n )\r\n })\r\n } else {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n }\r\n }\r\n return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n returnValue (res) {\r\n if (!isPromise(res)) {\r\n return res\r\n }\r\n return new Promise((resolve, reject) => {\r\n res.then(res => {\r\n if (res[0]) {\r\n reject(res[0]);\r\n } else {\r\n resolve(res[1]);\r\n }\r\n });\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo|getSystemSetting|getAppAuthorizeSetting|initUTS|requireUTS|registerUTS/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection', 'createPushMessage'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n return promise.then(data => {\r\n return [null, data]\r\n })\r\n .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n if (\r\n isContextApi(name) ||\r\n isSyncApi(name) ||\r\n isCallbackApi(name)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n Promise.prototype.finally = function (callback) {\r\n const promise = this.constructor;\r\n return this.then(\r\n value => promise.resolve(callback()).then(() => value),\r\n reason => promise.resolve(callback()).then(() => {\r\n throw reason\r\n })\r\n )\r\n };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n if (!shouldPromise(name) || !isFn(api)) {\r\n return api\r\n }\r\n return function promiseApi (options = {}, ...params) {\r\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n }\r\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n invokeApi(name, api, Object.assign({}, options, {\r\n success: resolve,\r\n fail: reject\r\n }), ...params);\r\n })))\r\n }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n const {\r\n platform,\r\n pixelRatio,\r\n windowWidth\r\n } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n deviceWidth = windowWidth;\r\n deviceDPR = pixelRatio;\r\n isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n if (deviceWidth === 0) {\r\n checkDeviceWidth();\r\n }\r\n\r\n number = Number(number);\r\n if (number === 0) {\r\n return 0\r\n }\r\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n if (result < 0) {\r\n result = -result;\r\n }\r\n result = Math.floor(result + EPS);\r\n if (result === 0) {\r\n if (deviceDPR === 1 || !isIOS) {\r\n result = 1;\r\n } else {\r\n result = 0.5;\r\n }\r\n }\r\n return number < 0 ? -result : result\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\n\r\nconst messages = {};\r\n\r\nlet locale;\r\n\r\n{\r\n locale = normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;\r\n}\r\n\r\nfunction initI18nMessages () {\r\n if (!isEnableLocale()) {\r\n return\r\n }\r\n const localeKeys = Object.keys(__uniConfig.locales);\r\n if (localeKeys.length) {\r\n localeKeys.forEach((locale) => {\r\n const curMessages = messages[locale];\r\n const userMessages = __uniConfig.locales[locale];\r\n if (curMessages) {\r\n Object.assign(curMessages, userMessages);\r\n } else {\r\n messages[locale] = userMessages;\r\n }\r\n });\r\n }\r\n}\r\n\r\ninitI18nMessages();\r\n\r\nconst i18n = initVueI18n(\r\n locale,\r\n {}\r\n);\r\nconst t = i18n.t;\r\nconst i18nMixin = (i18n.mixin = {\r\n beforeCreate () {\r\n const unwatch = i18n.i18n.watchLocale(() => {\r\n this.$forceUpdate();\r\n });\r\n this.$once('hook:beforeDestroy', function () {\r\n unwatch();\r\n });\r\n },\r\n methods: {\r\n $$t (key, values) {\r\n return t(key, values)\r\n }\r\n }\r\n});\r\nconst setLocale = i18n.setLocale;\r\nconst getLocale = i18n.getLocale;\r\n\r\nfunction initAppLocale (Vue, appVm, locale) {\r\n const state = Vue.observable({\r\n locale: locale || i18n.getLocale()\r\n });\r\n const localeWatchers = [];\r\n appVm.$watchLocale = fn => {\r\n localeWatchers.push(fn);\r\n };\r\n Object.defineProperty(appVm, '$locale', {\r\n get () {\r\n return state.locale\r\n },\r\n set (v) {\r\n state.locale = v;\r\n localeWatchers.forEach(watch => watch(v));\r\n }\r\n });\r\n}\r\n\r\nfunction isEnableLocale () {\r\n return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length\r\n}\r\n\r\nfunction include (str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1)\r\n}\r\n\r\nfunction startsWith (str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0)\r\n}\r\n\r\nfunction normalizeLocale (locale, messages) {\r\n if (!locale) {\r\n return\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale === 'chinese') {\r\n // 支付宝\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT\r\n }\r\n return LOCALE_ZH_HANS\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang\r\n }\r\n}\r\n// export function initI18n() {\r\n// const localeKeys = Object.keys(__uniConfig.locales || {})\r\n// if (localeKeys.length) {\r\n// localeKeys.forEach((locale) =>\r\n// i18n.add(locale, __uniConfig.locales[locale])\r\n// )\r\n// }\r\n// }\r\n\r\nfunction getLocale$1 () {\r\n // 优先使用 $locale\r\n if (isFn(getApp)) {\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n if (app && app.$vm) {\r\n return app.$vm.$locale\r\n }\r\n }\r\n return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN\r\n}\r\n\r\nfunction setLocale$1 (locale) {\r\n const app = isFn(getApp) ? getApp() : false;\r\n if (!app) {\r\n return false\r\n }\r\n const oldLocale = app.$vm.$locale;\r\n if (oldLocale !== locale) {\r\n app.$vm.$locale = locale;\r\n onLocaleChangeCallbacks.forEach((fn) => fn({\r\n locale\r\n }));\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nconst onLocaleChangeCallbacks = [];\r\nfunction onLocaleChange (fn) {\r\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\r\n onLocaleChangeCallbacks.push(fn);\r\n }\r\n}\r\n\r\nif (typeof global !== 'undefined') {\r\n global.getLocale = getLocale$1;\r\n}\r\n\r\nconst interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\r\n getLocale: getLocale$1,\r\n setLocale: setLocale$1,\r\n onLocaleChange: onLocaleChange,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\r\n});\r\n\r\nfunction findExistsPageIndex (url) {\r\n const pages = getCurrentPages();\r\n let len = pages.length;\r\n while (len--) {\r\n const page = pages[len];\r\n if (page.$page && page.$page.fullPath === url) {\r\n return len\r\n }\r\n }\r\n return -1\r\n}\r\n\r\nvar redirectTo = {\r\n name (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.delta) {\r\n return 'navigateBack'\r\n }\r\n return 'redirectTo'\r\n },\r\n args (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.url) {\r\n const existsPageIndex = findExistsPageIndex(fromArgs.url);\r\n if (existsPageIndex !== -1) {\r\n const delta = getCurrentPages().length - 1 - existsPageIndex;\r\n if (delta > 0) {\r\n fromArgs.delta = delta;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nvar previewImage = {\r\n args (fromArgs) {\r\n let currentIndex = parseInt(fromArgs.current);\r\n if (isNaN(currentIndex)) {\r\n return\r\n }\r\n const urls = fromArgs.urls;\r\n if (!Array.isArray(urls)) {\r\n return\r\n }\r\n const len = urls.length;\r\n if (!len) {\r\n return\r\n }\r\n if (currentIndex < 0) {\r\n currentIndex = 0;\r\n } else if (currentIndex >= len) {\r\n currentIndex = len - 1;\r\n }\r\n if (currentIndex > 0) {\r\n fromArgs.current = urls[currentIndex];\r\n fromArgs.urls = urls.filter(\r\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n );\r\n } else {\r\n fromArgs.current = urls[0];\r\n }\r\n return {\r\n indicator: false,\r\n loop: false\r\n }\r\n }\r\n};\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nlet deviceId;\r\nfunction useDeviceId (result) {\r\n deviceId = deviceId || wx.getStorageSync(UUID_KEY);\r\n if (!deviceId) {\r\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n wx.setStorage({\r\n key: UUID_KEY,\r\n data: deviceId\r\n });\r\n }\r\n result.deviceId = deviceId;\r\n}\r\n\r\nfunction addSafeAreaInsets (result) {\r\n if (result.safeArea) {\r\n const safeArea = result.safeArea;\r\n result.safeAreaInsets = {\r\n top: safeArea.top,\r\n left: safeArea.left,\r\n right: result.windowWidth - safeArea.right,\r\n bottom: result.screenHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nfunction populateParameters (result) {\r\n const {\r\n brand = '', model = '', system = '',\r\n language = '', theme, version,\r\n platform, fontSizeSetting,\r\n SDKVersion, pixelRatio, deviceOrientation\r\n } = result;\r\n // const isQuickApp = \"mp-weixin\".indexOf('quickapp-webview') !== -1\r\n\r\n const extraParam = {};\r\n\r\n // osName osVersion\r\n let osName = '';\r\n let osVersion = '';\r\n {\r\n osName = system.split(' ')[0] || '';\r\n osVersion = system.split(' ')[1] || '';\r\n }\r\n let hostVersion = version;\r\n\r\n // deviceType\r\n const deviceType = getGetDeviceType(result, model);\r\n\r\n // deviceModel\r\n const deviceBrand = getDeviceBrand(brand);\r\n\r\n // hostName\r\n const _hostName = getHostName(result);\r\n\r\n // deviceOrientation\r\n let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\r\n\r\n // devicePixelRatio\r\n let _devicePixelRatio = pixelRatio;\r\n\r\n // SDKVersion\r\n let _SDKVersion = SDKVersion;\r\n\r\n // hostLanguage\r\n const hostLanguage = language.replace(/_/g, '-');\r\n\r\n // wx.getAccountInfoSync\r\n\r\n const parameters = {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\r\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\r\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\r\n deviceBrand,\r\n deviceModel: model,\r\n deviceType,\r\n devicePixelRatio: _devicePixelRatio,\r\n deviceOrientation: _deviceOrientation,\r\n osName: osName.toLocaleLowerCase(),\r\n osVersion,\r\n hostTheme: theme,\r\n hostVersion,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: _SDKVersion,\r\n hostFontSizeSetting: fontSizeSetting,\r\n windowTop: 0,\r\n windowBottom: 0,\r\n // TODO\r\n osLanguage: undefined,\r\n osTheme: undefined,\r\n ua: undefined,\r\n hostPackageName: undefined,\r\n browserName: undefined,\r\n browserVersion: undefined\r\n };\r\n\r\n Object.assign(result, parameters, extraParam);\r\n}\r\n\r\nfunction getGetDeviceType (result, model) {\r\n let deviceType = result.deviceType || 'phone';\r\n {\r\n const deviceTypeMaps = {\r\n ipad: 'pad',\r\n windows: 'pc',\r\n mac: 'pc'\r\n };\r\n const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\r\n const _model = model.toLocaleLowerCase();\r\n for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\r\n const _m = deviceTypeMapsKeys[index];\r\n if (_model.indexOf(_m) !== -1) {\r\n deviceType = deviceTypeMaps[_m];\r\n break\r\n }\r\n }\r\n }\r\n return deviceType\r\n}\r\n\r\nfunction getDeviceBrand (brand) {\r\n let deviceBrand = brand;\r\n if (deviceBrand) {\r\n deviceBrand = brand.toLocaleLowerCase();\r\n }\r\n return deviceBrand\r\n}\r\n\r\nfunction getAppLanguage (defaultLanguage) {\r\n return getLocale$1\r\n ? getLocale$1()\r\n : defaultLanguage\r\n}\r\n\r\nfunction getHostName (result) {\r\n const _platform = 'WeChat' ;\r\n let _hostName = result.hostName || _platform; // mp-jd\r\n {\r\n if (result.environment) {\r\n _hostName = result.environment;\r\n } else if (result.host && result.host.env) {\r\n _hostName = result.host.env;\r\n }\r\n }\r\n\r\n return _hostName\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n useDeviceId(result);\r\n addSafeAreaInsets(result);\r\n populateParameters(result);\r\n }\r\n};\r\n\r\nvar showActionSheet = {\r\n args (fromArgs) {\r\n if (typeof fromArgs === 'object') {\r\n fromArgs.alertText = fromArgs.title;\r\n }\r\n }\r\n};\r\n\r\nvar getAppBaseInfo = {\r\n returnValue: function (result) {\r\n const { version, language, SDKVersion, theme } = result;\r\n\r\n const _hostName = getHostName(result);\r\n\r\n const hostLanguage = language.replace('_', '-');\r\n\r\n result = sortObject(Object.assign(result, {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n hostVersion: version,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: SDKVersion,\r\n hostTheme: theme\r\n }));\r\n }\r\n};\r\n\r\nvar getDeviceInfo = {\r\n returnValue: function (result) {\r\n const { brand, model } = result;\r\n const deviceType = getGetDeviceType(result, model);\r\n const deviceBrand = getDeviceBrand(brand);\r\n useDeviceId(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n deviceType,\r\n deviceBrand,\r\n deviceModel: model\r\n }));\r\n }\r\n};\r\n\r\nvar getWindowInfo = {\r\n returnValue: function (result) {\r\n addSafeAreaInsets(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n windowTop: 0,\r\n windowBottom: 0\r\n }));\r\n }\r\n};\r\n\r\nvar getAppAuthorizeSetting = {\r\n returnValue: function (result) {\r\n const { locationReducedAccuracy } = result;\r\n\r\n result.locationAccuracy = 'unsupported';\r\n if (locationReducedAccuracy === true) {\r\n result.locationAccuracy = 'reduced';\r\n } else if (locationReducedAccuracy === false) {\r\n result.locationAccuracy = 'full';\r\n }\r\n }\r\n};\r\n\r\n// import navigateTo from 'uni-helpers/navigate-to'\r\n\r\nconst compressImage = {\r\n args (fromArgs) {\r\n // https://developers.weixin.qq.com/community/develop/doc/000c08940c865011298e0a43256800?highLine=compressHeight\r\n if (fromArgs.compressedHeight && !fromArgs.compressHeight) {\r\n fromArgs.compressHeight = fromArgs.compressedHeight;\r\n }\r\n if (fromArgs.compressedWidth && !fromArgs.compressWidth) {\r\n fromArgs.compressWidth = fromArgs.compressedWidth;\r\n }\r\n }\r\n};\r\n\r\nconst protocols = {\r\n redirectTo,\r\n // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP\r\n previewImage,\r\n getSystemInfo,\r\n getSystemInfoSync: getSystemInfo,\r\n showActionSheet,\r\n getAppBaseInfo,\r\n getDeviceInfo,\r\n getWindowInfo,\r\n getAppAuthorizeSetting,\r\n compressImage\r\n};\r\nconst todos = [\r\n 'vibrate',\r\n 'preloadPage',\r\n 'unPreloadPage',\r\n 'loadSubPackage'\r\n];\r\nconst canIUses = [];\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n return function (res) {\r\n return method(processReturnValue(methodName, res, returnValue))\r\n }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n if (isFn(argsOption)) {\r\n argsOption = argsOption(fromArgs, toArgs) || {};\r\n }\r\n for (const key in fromArgs) {\r\n if (hasOwn(argsOption, key)) {\r\n let keyOption = argsOption[key];\r\n if (isFn(keyOption)) {\r\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n }\r\n if (!keyOption) { // 不支持的参数\r\n console.warn(`The '${methodName}' method of platform '微信小程序' does not support option '${key}'`);\r\n } else if (isStr(keyOption)) { // 重写参数 key\r\n toArgs[keyOption] = fromArgs[key];\r\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n }\r\n } else if (CALLBACKS.indexOf(key) !== -1) {\r\n if (isFn(fromArgs[key])) {\r\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n }\r\n } else {\r\n if (!keepFromArgs) {\r\n toArgs[key] = fromArgs[key];\r\n }\r\n }\r\n }\r\n return toArgs\r\n } else if (isFn(fromArgs)) {\r\n fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n }\r\n return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n res = protocols.returnValue(methodName, res);\r\n }\r\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n if (hasOwn(protocols, methodName)) {\r\n const protocol = protocols[methodName];\r\n if (!protocol) { // 暂不支持的 api\r\n return function () {\r\n console.error(`Platform '微信小程序' does not support '${methodName}'.`);\r\n }\r\n }\r\n return function (arg1, arg2) { // 目前 api 最多两个参数\r\n let options = protocol;\r\n if (isFn(protocol)) {\r\n options = protocol(arg1);\r\n }\r\n\r\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n const args = [arg1];\r\n if (typeof arg2 !== 'undefined') {\r\n args.push(arg2);\r\n }\r\n if (isFn(options.name)) {\r\n methodName = options.name(arg1);\r\n } else if (isStr(options.name)) {\r\n methodName = options.name;\r\n }\r\n const returnValue = wx[methodName].apply(wx, args);\r\n if (isSyncApi(methodName)) { // 同步 api\r\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n }\r\n return returnValue\r\n }\r\n }\r\n return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n 'onTabBarMidButtonTap',\r\n 'subscribePush',\r\n 'unsubscribePush',\r\n 'onPush',\r\n 'offPush',\r\n 'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n return function todoApi ({\r\n fail,\r\n complete\r\n }) {\r\n const res = {\r\n errMsg: `${name}:fail method '${name}' not supported`\r\n };\r\n isFn(fail) && fail(res);\r\n isFn(complete) && complete(res);\r\n }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n oauth: ['weixin'],\r\n share: ['weixin'],\r\n payment: ['wxpay'],\r\n push: ['weixin']\r\n};\r\n\r\nfunction getProvider ({\r\n service,\r\n success,\r\n fail,\r\n complete\r\n}) {\r\n let res = false;\r\n if (providers[service]) {\r\n res = {\r\n errMsg: 'getProvider:ok',\r\n service,\r\n provider: providers[service]\r\n };\r\n isFn(success) && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getProvider:fail service not found'\r\n };\r\n isFn(fail) && fail(res);\r\n }\r\n isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n let Emitter;\r\n return function getUniEmitter () {\r\n if (!Emitter) {\r\n Emitter = new Vue();\r\n }\r\n return Emitter\r\n }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\n/**\r\n * 框架内 try-catch\r\n */\r\n/**\r\n * 开发者 try-catch\r\n */\r\nfunction tryCatch (fn) {\r\n return function () {\r\n try {\r\n return fn.apply(fn, arguments)\r\n } catch (e) {\r\n // TODO\r\n console.error(e);\r\n }\r\n }\r\n}\r\n\r\nfunction getApiCallbacks (params) {\r\n const apiCallbacks = {};\r\n for (const name in params) {\r\n const param = params[name];\r\n if (isFn(param)) {\r\n apiCallbacks[name] = tryCatch(param);\r\n delete params[name];\r\n }\r\n }\r\n return apiCallbacks\r\n}\r\n\r\nlet cid;\r\nlet cidErrMsg;\r\nlet enabled;\r\n\r\nfunction normalizePushMessage (message) {\r\n try {\r\n return JSON.parse(message)\r\n } catch (e) {}\r\n return message\r\n}\r\n\r\nfunction invokePushCallback (\r\n args\r\n) {\r\n if (args.type === 'enabled') {\r\n enabled = true;\r\n } else if (args.type === 'clientId') {\r\n cid = args.cid;\r\n cidErrMsg = args.errMsg;\r\n invokeGetPushCidCallbacks(cid, args.errMsg);\r\n } else if (args.type === 'pushMsg') {\r\n const message = {\r\n type: 'receive',\r\n data: normalizePushMessage(args.message)\r\n };\r\n for (let i = 0; i < onPushMessageCallbacks.length; i++) {\r\n const callback = onPushMessageCallbacks[i];\r\n callback(message);\r\n // 该消息已被阻止\r\n if (message.stopped) {\r\n break\r\n }\r\n }\r\n } else if (args.type === 'click') {\r\n onPushMessageCallbacks.forEach((callback) => {\r\n callback({\r\n type: 'click',\r\n data: normalizePushMessage(args.message)\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst getPushCidCallbacks = [];\r\n\r\nfunction invokeGetPushCidCallbacks (cid, errMsg) {\r\n getPushCidCallbacks.forEach((callback) => {\r\n callback(cid, errMsg);\r\n });\r\n getPushCidCallbacks.length = 0;\r\n}\r\n\r\nfunction getPushClientId (args) {\r\n if (!isPlainObject(args)) {\r\n args = {};\r\n }\r\n const {\r\n success,\r\n fail,\r\n complete\r\n } = getApiCallbacks(args);\r\n const hasSuccess = isFn(success);\r\n const hasFail = isFn(fail);\r\n const hasComplete = isFn(complete);\r\n\r\n Promise.resolve().then(() => {\r\n if (typeof enabled === 'undefined') {\r\n enabled = false;\r\n cid = '';\r\n cidErrMsg = 'uniPush is not enabled';\r\n }\r\n getPushCidCallbacks.push((cid, errMsg) => {\r\n let res;\r\n if (cid) {\r\n res = {\r\n errMsg: 'getPushClientId:ok',\r\n cid\r\n };\r\n hasSuccess && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getPushClientId:fail' + (errMsg ? ' ' + errMsg : '')\r\n };\r\n hasFail && fail(res);\r\n }\r\n hasComplete && complete(res);\r\n });\r\n if (typeof cid !== 'undefined') {\r\n invokeGetPushCidCallbacks(cid, cidErrMsg);\r\n }\r\n });\r\n}\r\n\r\nconst onPushMessageCallbacks = [];\r\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\r\nconst onPushMessage = (fn) => {\r\n if (onPushMessageCallbacks.indexOf(fn) === -1) {\r\n onPushMessageCallbacks.push(fn);\r\n }\r\n};\r\n\r\nconst offPushMessage = (fn) => {\r\n if (!fn) {\r\n onPushMessageCallbacks.length = 0;\r\n } else {\r\n const index = onPushMessageCallbacks.indexOf(fn);\r\n if (index > -1) {\r\n onPushMessageCallbacks.splice(index, 1);\r\n }\r\n }\r\n};\r\n\r\nlet baseInfo = wx.getAppBaseInfo && wx.getAppBaseInfo();\r\nif (!baseInfo) {\r\n baseInfo = wx.getSystemInfoSync();\r\n}\r\nconst host = baseInfo ? baseInfo.host : null;\r\nconst shareVideoMessage =\r\n host && host.env === 'SAAASDK' ? wx.miniapp.shareVideoMessage : wx.shareVideoMessage;\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n shareVideoMessage: shareVideoMessage,\r\n getPushClientId: getPushClientId,\r\n onPushMessage: onPushMessage,\r\n offPushMessage: offPushMessage,\r\n invokePushCallback: invokePushCallback\r\n});\r\n\r\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n const $children = vm.$children;\r\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n const childVm = $children[i];\r\n if (childVm.$scope._$vueId === vuePid) {\r\n return childVm\r\n }\r\n }\r\n // 反向递归查找\r\n let parentVm;\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n parentVm = findVmByVueId($children[i], vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n return Behavior(options)\r\n}\r\n\r\nfunction isPage () {\r\n return !!this.route\r\n}\r\n\r\nfunction initRelation (detail) {\r\n this.triggerEvent('__l', detail);\r\n}\r\n\r\nfunction selectAllComponents (mpInstance, selector, $refs) {\r\n const components = mpInstance.selectAllComponents(selector) || [];\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || toSkip(component);\r\n {\r\n if (component.dataset.vueGeneric === 'scoped') {\r\n component.selectAllComponents('.scoped-ref').forEach(scopedComponent => {\r\n selectAllComponents(scopedComponent, selector, $refs);\r\n });\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction syncRefs (refs, newRefs) {\r\n const oldKeys = new Set(...Object.keys(refs));\r\n const newKeys = Object.keys(newRefs);\r\n newKeys.forEach(key => {\r\n const oldValue = refs[key];\r\n const newValue = newRefs[key];\r\n if (Array.isArray(oldValue) && Array.isArray(newValue) && oldValue.length === newValue.length && newValue.every(value => oldValue.includes(value))) {\r\n return\r\n }\r\n refs[key] = newValue;\r\n oldKeys.delete(key);\r\n });\r\n oldKeys.forEach(key => {\r\n delete refs[key];\r\n });\r\n return refs\r\n}\r\n\r\nfunction initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n const refs = {};\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n selectAllComponents(mpInstance, '.vue-ref', $refs);\r\n // TODO 暂不考虑 for 中的 scoped\r\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for') || [];\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!$refs[ref]) {\r\n $refs[ref] = [];\r\n }\r\n $refs[ref].push(component.$vm || toSkip(component));\r\n });\r\n return syncRefs(refs, $refs)\r\n }\r\n });\r\n}\r\n\r\nfunction handleLink (event) {\r\n const {\r\n vuePid,\r\n vueOptions\r\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction markMPComponent (component) {\r\n // 在 Vue 中标记为小程序组件\r\n const IS_MP = '__v_isMPComponent';\r\n Object.defineProperty(component, IS_MP, {\r\n configurable: true,\r\n enumerable: false,\r\n value: true\r\n });\r\n return component\r\n}\r\n\r\nfunction toSkip (obj) {\r\n const OB = '__ob__';\r\n const SKIP = '__v_skip';\r\n if (isObject(obj) && Object.isExtensible(obj)) {\r\n // 避免被 @vue/composition-api 观测\r\n Object.defineProperty(obj, OB, {\r\n configurable: true,\r\n enumerable: false,\r\n value: {\r\n [SKIP]: true\r\n }\r\n });\r\n }\r\n return obj\r\n}\r\n\r\nconst WORKLET_RE = /_(.*)_worklet_factory_/;\r\nfunction initWorkletMethods (mpMethods, vueMethods) {\r\n if (vueMethods) {\r\n Object.keys(vueMethods).forEach((name) => {\r\n const matches = name.match(WORKLET_RE);\r\n if (matches) {\r\n const workletName = matches[1];\r\n mpMethods[name] = vueMethods[name];\r\n mpMethods[workletName] = vueMethods[workletName];\r\n }\r\n });\r\n }\r\n}\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n const newTriggerEvent = function (event, ...args) {\r\n // 事件名统一转驼峰格式,仅处理:当前组件为 vue 组件、当前组件为 vue 组件子组件\r\n if (this.$vm || (this.dataset && this.dataset.comType)) {\r\n event = customize(event);\r\n } else {\r\n // 针对微信/QQ小程序单独补充驼峰格式事件,以兼容历史项目\r\n const newEvent = customize(event);\r\n if (newEvent !== event) {\r\n oldTriggerEvent.apply(this, [newEvent, ...args]);\r\n }\r\n }\r\n return oldTriggerEvent.apply(this, [event, ...args])\r\n };\r\n try {\r\n // 京东小程序 triggerEvent 为只读\r\n mpInstance.triggerEvent = newTriggerEvent;\r\n } catch (error) {\r\n mpInstance._triggerEvent = newTriggerEvent;\r\n }\r\n}\r\n\r\nfunction initHook (name, options, isComponent) {\r\n const oldHook = options[name];\r\n options[name] = function (...args) {\r\n markMPComponent(this);\r\n initTriggerEvent(this);\r\n if (oldHook) {\r\n return oldHook.apply(this, args)\r\n }\r\n };\r\n}\r\nif (!MPPage.__$wrappered) {\r\n MPPage.__$wrappered = true;\r\n Page = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n };\r\n Page.after = MPPage.after;\r\n\r\n Component = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n };\r\n}\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onAddToFavorites',\r\n 'onShareTimeline',\r\n 'onShareAppMessage',\r\n 'onPageScroll',\r\n 'onResize',\r\n 'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n const mpInstance = vm.$mp[vm.mpType];\r\n mocks.forEach(mock => {\r\n if (hasOwn(mpInstance, mock)) {\r\n vm[mock] = mpInstance[mock];\r\n }\r\n });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n if (!vueOptions) {\r\n return true\r\n }\r\n\r\n if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n return true\r\n }\r\n\r\n vueOptions = vueOptions.default || vueOptions;\r\n\r\n if (isFn(vueOptions)) {\r\n if (isFn(vueOptions.extendOptions[hook])) {\r\n return true\r\n }\r\n if (vueOptions.super &&\r\n vueOptions.super.options &&\r\n Array.isArray(vueOptions.super.options[hook])) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n if (isFn(vueOptions[hook]) || Array.isArray(vueOptions[hook])) {\r\n return true\r\n }\r\n const mixins = vueOptions.mixins;\r\n if (Array.isArray(mixins)) {\r\n return !!mixins.find(mixin => hasHook(hook, mixin))\r\n }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n hooks.forEach(hook => {\r\n if (hasHook(hook, vueOptions)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n });\r\n}\r\n\r\nfunction initUnknownHooks (mpOptions, vueOptions, excludes = []) {\r\n findHooks(vueOptions).forEach((hook) => initHook$1(mpOptions, hook, excludes));\r\n}\r\n\r\nfunction findHooks (vueOptions, hooks = []) {\r\n if (vueOptions) {\r\n Object.keys(vueOptions).forEach((name) => {\r\n if (name.indexOf('on') === 0 && isFn(vueOptions[name])) {\r\n hooks.push(name);\r\n }\r\n });\r\n }\r\n return hooks\r\n}\r\n\r\nfunction initHook$1 (mpOptions, hook, excludes) {\r\n if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n vueOptions = vueOptions.default || vueOptions;\r\n let VueComponent;\r\n if (isFn(vueOptions)) {\r\n VueComponent = vueOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\r\n vueOptions = VueComponent.options;\r\n return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n if (Array.isArray(vueSlots) && vueSlots.length) {\r\n const $slots = Object.create(null);\r\n vueSlots.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n vm.$scopedSlots = vm.$slots = $slots;\r\n }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n vueIds = (vueIds || '').split(',');\r\n const len = vueIds.length;\r\n\r\n if (len === 1) {\r\n mpInstance._$vueId = vueIds[0];\r\n } else if (len === 2) {\r\n mpInstance._$vueId = vueIds[0];\r\n mpInstance._$vuePid = vueIds[1];\r\n }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n let data = vueOptions.data || {};\r\n const methods = vueOptions.methods || {};\r\n\r\n if (typeof data === 'function') {\r\n try {\r\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n } catch (e) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n }\r\n }\r\n } else {\r\n try {\r\n // 对 data 格式化\r\n data = JSON.parse(JSON.stringify(data));\r\n } catch (e) { }\r\n }\r\n\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n }\r\n\r\n Object.keys(methods).forEach(methodName => {\r\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n data[methodName] = methods[methodName];\r\n }\r\n });\r\n\r\n return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n return function observer (newVal, oldVal) {\r\n if (this.$vm) {\r\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n }\r\n }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n const vueBehaviors = vueOptions.behaviors;\r\n const vueExtends = vueOptions.extends;\r\n const vueMixins = vueOptions.mixins;\r\n\r\n let vueProps = vueOptions.props;\r\n\r\n if (!vueProps) {\r\n vueOptions.props = vueProps = [];\r\n }\r\n\r\n const behaviors = [];\r\n if (Array.isArray(vueBehaviors)) {\r\n vueBehaviors.forEach(behavior => {\r\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\r\n if (behavior === 'uni://form-field') {\r\n if (Array.isArray(vueProps)) {\r\n vueProps.push('name');\r\n vueProps.push('value');\r\n } else {\r\n vueProps.name = {\r\n type: String,\r\n default: ''\r\n };\r\n vueProps.value = {\r\n type: [String, Number, Boolean, Array, Object, Date],\r\n default: ''\r\n };\r\n }\r\n }\r\n });\r\n }\r\n if (isPlainObject(vueExtends) && vueExtends.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueExtends.props, true)\r\n })\r\n );\r\n }\r\n if (Array.isArray(vueMixins)) {\r\n vueMixins.forEach(vueMixin => {\r\n if (isPlainObject(vueMixin) && vueMixin.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueMixin.props, true)\r\n })\r\n );\r\n }\r\n });\r\n }\r\n return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n // [String]=>String\r\n if (Array.isArray(type) && type.length === 1) {\r\n return type[0]\r\n }\r\n return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '', options) {\r\n const properties = {};\r\n if (!isBehavior) {\r\n properties.vueId = {\r\n type: String,\r\n value: ''\r\n };\r\n {\r\n if ( options.virtualHost) {\r\n properties.virtualHostStyle = {\r\n type: null,\r\n value: ''\r\n };\r\n properties.virtualHostClass = {\r\n type: null,\r\n value: ''\r\n };\r\n }\r\n }\r\n // scopedSlotsCompiler auto\r\n properties.scopedSlotsCompiler = {\r\n type: String,\r\n value: ''\r\n };\r\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n type: null,\r\n value: [],\r\n observer: function (newVal, oldVal) {\r\n const $slots = Object.create(null);\r\n newVal.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n this.setData({\r\n $slots\r\n });\r\n }\r\n };\r\n }\r\n if (Array.isArray(props)) { // ['title']\r\n props.forEach(key => {\r\n properties[key] = {\r\n type: null,\r\n observer: createObserver(key)\r\n };\r\n });\r\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n Object.keys(props).forEach(key => {\r\n const opts = props[key];\r\n if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n let value = opts.default;\r\n if (isFn(value)) {\r\n value = value();\r\n }\r\n\r\n opts.type = parsePropType(key, opts.type);\r\n\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n value,\r\n observer: createObserver(key)\r\n };\r\n } else { // content:String\r\n const type = parsePropType(key, opts);\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n observer: createObserver(key)\r\n };\r\n }\r\n });\r\n }\r\n return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n // TODO 又得兼容 mpvue 的 mp 对象\r\n try {\r\n event.mp = JSON.parse(JSON.stringify(event));\r\n } catch (e) { }\r\n\r\n event.stopPropagation = noop;\r\n event.preventDefault = noop;\r\n\r\n event.target = event.target || {};\r\n\r\n if (!hasOwn(event, 'detail')) {\r\n event.detail = {};\r\n }\r\n\r\n if (hasOwn(event, 'markerId')) {\r\n event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n event.detail.markerId = event.markerId;\r\n }\r\n\r\n if (isPlainObject(event.detail)) {\r\n event.target = Object.assign({}, event.target, event.detail);\r\n }\r\n\r\n return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n let context = vm;\r\n dataPathsArray.forEach(dataPathArray => {\r\n const dataPath = dataPathArray[0];\r\n const value = dataPathArray[2];\r\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n const propPath = dataPathArray[1];\r\n const valuePath = dataPathArray[3];\r\n\r\n let vFor;\r\n if (Number.isInteger(dataPath)) {\r\n vFor = dataPath;\r\n } else if (!dataPath) {\r\n vFor = context;\r\n } else if (typeof dataPath === 'string' && dataPath) {\r\n if (dataPath.indexOf('#s#') === 0) {\r\n vFor = dataPath.substr(3);\r\n } else {\r\n vFor = vm.__get_value(dataPath, context);\r\n }\r\n }\r\n\r\n if (Number.isInteger(vFor)) {\r\n context = value;\r\n } else if (!propPath) {\r\n context = vFor[value];\r\n } else {\r\n if (Array.isArray(vFor)) {\r\n context = vFor.find(vForItem => {\r\n return vm.__get_value(propPath, vForItem) === value\r\n });\r\n } else if (isPlainObject(vFor)) {\r\n context = Object.keys(vFor).find(vForKey => {\r\n return vm.__get_value(propPath, vFor[vForKey]) === value\r\n });\r\n } else {\r\n console.error('v-for 暂不支持循环数据:', vFor);\r\n }\r\n }\r\n\r\n if (valuePath) {\r\n context = vm.__get_value(valuePath, context);\r\n }\r\n }\r\n });\r\n return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event, __args__) {\r\n const extraObj = {};\r\n\r\n if (Array.isArray(extra) && extra.length) {\r\n /**\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *'test'\r\n */\r\n extra.forEach((dataPath, index) => {\r\n if (typeof dataPath === 'string') {\r\n if (!dataPath) { // model,prop.sync\r\n extraObj['$' + index] = vm;\r\n } else {\r\n if (dataPath === '$event') { // $event\r\n extraObj['$' + index] = event;\r\n } else if (dataPath === 'arguments') {\r\n extraObj['$' + index] = event.detail ? event.detail.__args__ || __args__ : __args__;\r\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n } else {\r\n extraObj['$' + index] = vm.__get_value(dataPath);\r\n }\r\n }\r\n } else {\r\n extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n }\r\n });\r\n }\r\n\r\n return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n const obj = {};\r\n for (let i = 1; i < arr.length; i++) {\r\n const element = arr[i];\r\n obj[element[0]] = element[1];\r\n }\r\n return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n\r\n // fixed 用户直接触发 mpInstance.triggerEvent\r\n const __args__ = isPlainObject(event.detail)\r\n ? event.detail.__args__ || [event.detail]\r\n : [event.detail];\r\n\r\n if (isCustom) { // 自定义事件\r\n isCustomMPEvent = event.currentTarget &&\r\n event.currentTarget.dataset &&\r\n event.currentTarget.dataset.comType === 'wx';\r\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n if (isCustomMPEvent) {\r\n return [event]\r\n }\r\n return __args__\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event, __args__);\r\n\r\n const ret = [];\r\n args.forEach(arg => {\r\n if (arg === '$event') {\r\n if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n ret.push(event.target.value);\r\n } else {\r\n if (isCustom && !isCustomMPEvent) {\r\n ret.push(__args__[0]);\r\n } else { // wxcomponent 组件或内置组件\r\n ret.push(event);\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(arg) && arg[0] === 'o') {\r\n ret.push(getObjByArray(arg));\r\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n ret.push(extraObj[arg]);\r\n } else {\r\n ret.push(arg);\r\n }\r\n }\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n return (eventType === optType) ||\r\n (\r\n optType === 'regionchange' &&\r\n (\r\n eventType === 'begin' ||\r\n eventType === 'end'\r\n )\r\n )\r\n}\r\n\r\nfunction getContextVm (vm) {\r\n let $parent = vm.$parent;\r\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\r\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\r\n $parent = $parent.$parent;\r\n }\r\n return $parent && $parent.$parent\r\n}\r\n\r\nfunction handleEvent (event) {\r\n event = wrapper$1(event);\r\n\r\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n const dataset = (event.currentTarget || event.target).dataset;\r\n if (!dataset) {\r\n return console.warn('事件信息不存在')\r\n }\r\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n if (!eventOpts) {\r\n return console.warn('事件信息不存在')\r\n }\r\n\r\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n const eventType = event.type;\r\n\r\n const ret = [];\r\n\r\n eventOpts.forEach(eventOpt => {\r\n let type = eventOpt[0];\r\n const eventsArray = eventOpt[1];\r\n\r\n const isCustom = type.charAt(0) === CUSTOM;\r\n type = isCustom ? type.slice(1) : type;\r\n const isOnce = type.charAt(0) === ONCE;\r\n type = isOnce ? type.slice(1) : type;\r\n\r\n if (eventsArray && isMatchEventType(eventType, type)) {\r\n eventsArray.forEach(eventArray => {\r\n const methodName = eventArray[0];\r\n if (methodName) {\r\n let handlerCtx = this.$vm;\r\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\r\n }\r\n if (methodName === '$emit') {\r\n handlerCtx.$emit.apply(handlerCtx,\r\n processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n ));\r\n return\r\n }\r\n const handler = handlerCtx[methodName];\r\n if (!isFn(handler)) {\r\n const type = this.$vm.mpType === 'page' ? 'Page' : 'Component';\r\n const path = this.route || this.is;\r\n throw new Error(`${type} \"${path}\" does not have a method \"${methodName}\"`)\r\n }\r\n if (isOnce) {\r\n if (handler.once) {\r\n return\r\n }\r\n handler.once = true;\r\n }\r\n let params = processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n );\r\n params = Array.isArray(params) ? params : [];\r\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\r\n if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\r\n // eslint-disable-next-line no-sparse-arrays\r\n params = params.concat([, , , , , , , , , , event]);\r\n }\r\n ret.push(handler.apply(handlerCtx, params));\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (\r\n eventType === 'input' &&\r\n ret.length === 1 &&\r\n typeof ret[0] !== 'undefined'\r\n ) {\r\n return ret[0]\r\n }\r\n}\r\n\r\nconst eventChannels = {};\r\n\r\nfunction getEventChannel (id) {\r\n const eventChannel = eventChannels[id];\r\n delete eventChannels[id];\r\n return eventChannel\r\n}\r\n\r\nconst hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound',\r\n 'onThemeChange',\r\n 'onUnhandledRejection'\r\n];\r\n\r\nfunction initEventChannel () {\r\n Vue.prototype.getOpenerEventChannel = function () {\r\n // 微信小程序使用自身getOpenerEventChannel\r\n {\r\n return this.$scope.getOpenerEventChannel()\r\n }\r\n };\r\n const callHook = Vue.prototype.__call_hook;\r\n Vue.prototype.__call_hook = function (hook, args) {\r\n if (hook === 'onLoad' && args && args.__id__) {\r\n this.__eventChannel__ = getEventChannel(args.__id__);\r\n delete args.__id__;\r\n }\r\n return callHook.call(this, hook, args)\r\n };\r\n}\r\n\r\nfunction initScopedSlotsParams () {\r\n const center = {};\r\n const parents = {};\r\n\r\n function currentId (fn) {\r\n const vueIds = this.$options.propsData.vueId;\r\n if (vueIds) {\r\n const vueId = vueIds.split(',')[0];\r\n fn(vueId);\r\n }\r\n }\r\n\r\n Vue.prototype.$hasSSP = function (vueId) {\r\n const slot = center[vueId];\r\n if (!slot) {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n return slot\r\n };\r\n\r\n Vue.prototype.$getSSP = function (vueId, name, needAll) {\r\n const slot = center[vueId];\r\n if (slot) {\r\n const params = slot[name] || [];\r\n if (needAll) {\r\n return params\r\n }\r\n return params[0]\r\n }\r\n };\r\n\r\n Vue.prototype.$setSSP = function (name, value) {\r\n let index = 0;\r\n currentId.call(this, vueId => {\r\n const slot = center[vueId];\r\n const params = slot[name] = slot[name] || [];\r\n params.push(value);\r\n index = params.length - 1;\r\n });\r\n return index\r\n };\r\n\r\n Vue.prototype.$initSSP = function () {\r\n currentId.call(this, vueId => {\r\n center[vueId] = {};\r\n });\r\n };\r\n\r\n Vue.prototype.$callSSP = function () {\r\n currentId.call(this, vueId => {\r\n if (parents[vueId]) {\r\n parents[vueId].$forceUpdate();\r\n }\r\n });\r\n };\r\n\r\n Vue.mixin({\r\n destroyed () {\r\n const propsData = this.$options.propsData;\r\n const vueId = propsData && propsData.vueId;\r\n if (vueId) {\r\n delete center[vueId];\r\n delete parents[vueId];\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n initEventChannel();\r\n {\r\n initScopedSlotsParams();\r\n }\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\r\n uniIdMixin(Vue);\r\n\r\n Vue.prototype.mpHost = \"mp-weixin\";\r\n\r\n Vue.mixin({\r\n beforeCreate () {\r\n if (!this.$options.mpType) {\r\n return\r\n }\r\n\r\n this.mpType = this.$options.mpType;\r\n\r\n this.$mp = {\r\n data: {},\r\n [this.mpType]: this.$options.mpInstance\r\n };\r\n\r\n this.$scope = this.$options.mpInstance;\r\n\r\n delete this.$options.mpType;\r\n delete this.$options.mpInstance;\r\n if (\r\n ( this.mpType === 'page') &&\r\n typeof getApp === 'function'\r\n ) { // hack vue-i18n\r\n const app = getApp();\r\n if (app.$vm && app.$vm.$i18n) {\r\n this._i18n = app.$vm.$i18n;\r\n }\r\n }\r\n if (this.mpType !== 'app') {\r\n initRefs(this);\r\n initMocks(this, mocks);\r\n }\r\n }\r\n });\r\n\r\n const appOptions = {\r\n onLaunch (args) {\r\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n return\r\n }\r\n {\r\n if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\r\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\r\n }\r\n }\r\n\r\n this.$vm = vm;\r\n\r\n this.$vm.$mp = {\r\n app: this\r\n };\r\n\r\n this.$vm.$scope = this;\r\n // vm 上也挂载 globalData\r\n this.$vm.globalData = this.globalData;\r\n\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted', args);\r\n\r\n this.$vm.__call_hook('onLaunch', args);\r\n }\r\n };\r\n\r\n // 兼容旧版本 globalData\r\n appOptions.globalData = vm.$options.globalData || {};\r\n // 将 methods 中的方法挂在 getApp() 中\r\n const methods = vm.$options.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(name => {\r\n appOptions[name] = methods[name];\r\n });\r\n }\r\n\r\n initAppLocale(Vue, vm, normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN);\r\n\r\n initHooks(appOptions, hooks);\r\n initUnknownHooks(appOptions, vm.$options);\r\n\r\n return appOptions\r\n}\r\n\r\nfunction parseApp (vm) {\r\n return parseBaseApp(vm, {\r\n mocks,\r\n initRefs\r\n })\r\n}\r\n\r\nfunction createApp (vm) {\r\n App(parseApp(vm));\r\n return vm\r\n}\r\n\r\nconst encodeReserveRE = /[!'()*]/g;\r\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\r\nconst commaRE = /%2C/g;\r\n\r\n// fixed encodeURIComponent which is more conformant to RFC3986:\r\n// - escapes [!'()*]\r\n// - preserve commas\r\nconst encode = str => encodeURIComponent(str)\r\n .replace(encodeReserveRE, encodeReserveReplacer)\r\n .replace(commaRE, ',');\r\n\r\nfunction stringifyQuery (obj, encodeStr = encode) {\r\n const res = obj ? Object.keys(obj).map(key => {\r\n const val = obj[key];\r\n\r\n if (val === undefined) {\r\n return ''\r\n }\r\n\r\n if (val === null) {\r\n return encodeStr(key)\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n const result = [];\r\n val.forEach(val2 => {\r\n if (val2 === undefined) {\r\n return\r\n }\r\n if (val2 === null) {\r\n result.push(encodeStr(key));\r\n } else {\r\n result.push(encodeStr(key) + '=' + encodeStr(val2));\r\n }\r\n });\r\n return result.join('&')\r\n }\r\n\r\n return encodeStr(key) + '=' + encodeStr(val)\r\n }).filter(x => x.length > 0).join('&') : null;\r\n return res ? `?${res}` : ''\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}, needVueOptions) {\r\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const options = {\r\n multipleSlots: true,\r\n // styleIsolation: 'apply-shared',\r\n addGlobalClass: true,\r\n ...(vueOptions.options || {})\r\n };\r\n\r\n {\r\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\r\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\r\n Object.assign(options, vueOptions['mp-weixin'].options);\r\n }\r\n }\r\n\r\n const componentOptions = {\r\n options,\r\n data: initData(vueOptions, Vue.prototype),\r\n behaviors: initBehaviors(vueOptions, initBehavior),\r\n properties: initProperties(vueOptions.props, false, vueOptions.__file, options),\r\n lifetimes: {\r\n attached () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n vueOptions: options\r\n });\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n },\r\n ready () {\r\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n if (this.$vm) {\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n }\r\n },\r\n detached () {\r\n this.$vm && this.$vm.$destroy();\r\n }\r\n },\r\n pageLifetimes: {\r\n show (args) {\r\n this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n },\r\n hide () {\r\n this.$vm && this.$vm.__call_hook('onPageHide');\r\n },\r\n resize (size) {\r\n this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n }\r\n },\r\n methods: {\r\n __l: handleLink,\r\n __e: handleEvent\r\n }\r\n };\r\n // externalClasses\r\n if (vueOptions.externalClasses) {\r\n componentOptions.externalClasses = vueOptions.externalClasses;\r\n }\r\n\r\n if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n vueOptions.wxsCallMethods.forEach(callMethod => {\r\n componentOptions.methods[callMethod] = function (args) {\r\n return this.$vm[callMethod](args)\r\n };\r\n });\r\n }\r\n\r\n if (needVueOptions) {\r\n return [componentOptions, vueOptions, VueComponent]\r\n }\r\n if (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions, needVueOptions) {\r\n return parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n }, needVueOptions)\r\n}\r\n\r\nconst hooks$1 = [\r\n 'onShow',\r\n 'onHide',\r\n 'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions) {\r\n const [pageOptions, vueOptions] = parseComponent(vuePageOptions, true);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vueOptions);\r\n\r\n pageOptions.methods.onLoad = function (query) {\r\n this.options = query;\r\n const copyQuery = Object.assign({}, query);\r\n delete copyQuery.__id__;\r\n this.$page = {\r\n fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\r\n };\r\n this.$vm.$mp.query = query; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', query);\r\n };\r\n {\r\n initUnknownHooks(pageOptions.methods, vuePageOptions, ['onReady']);\r\n }\r\n {\r\n initWorkletMethods(pageOptions.methods, vueOptions.methods);\r\n }\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n return parseBasePage(vuePageOptions)\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n {\r\n return Component(parsePage(vuePageOptions))\r\n }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n {\r\n return Component(parseComponent(vueOptions))\r\n }\r\n}\r\n\r\nfunction createSubpackageApp (vm) {\r\n const appOptions = parseApp(vm);\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n vm.$scope = app;\r\n const globalData = app.globalData;\r\n if (globalData) {\r\n Object.keys(appOptions.globalData).forEach(name => {\r\n if (!hasOwn(globalData, name)) {\r\n globalData[name] = appOptions.globalData[name];\r\n }\r\n });\r\n }\r\n Object.keys(appOptions).forEach(name => {\r\n if (!hasOwn(app, name)) {\r\n app[name] = appOptions[name];\r\n }\r\n });\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\nfunction createPlugin (vm) {\r\n const appOptions = parseApp(vm);\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n : canIUseApi;\r\n if (!wx.canIUse(apiName)) {\r\n protocols[canIUseApi] = false;\r\n }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\r\n uni = new Proxy({}, {\r\n get (target, name) {\r\n if (hasOwn(target, name)) {\r\n return target[name]\r\n }\r\n if (baseApi[name]) {\r\n return baseApi[name]\r\n }\r\n if (api[name]) {\r\n return promisify(name, api[name])\r\n }\r\n {\r\n if (extraApi[name]) {\r\n return promisify(name, extraApi[name])\r\n }\r\n if (todoApis[name]) {\r\n return promisify(name, todoApis[name])\r\n }\r\n }\r\n if (eventApi[name]) {\r\n return eventApi[name]\r\n }\r\n return promisify(name, wrapper(name, wx[name]))\r\n },\r\n set (target, name, value) {\r\n target[name] = value;\r\n return true\r\n }\r\n });\r\n} else {\r\n Object.keys(baseApi).forEach(name => {\r\n uni[name] = baseApi[name];\r\n });\r\n\r\n {\r\n Object.keys(todoApis).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n Object.keys(extraApi).forEach(name => {\r\n uni[name] = promisify(name, extraApi[name]);\r\n });\r\n }\r\n\r\n Object.keys(eventApi).forEach(name => {\r\n uni[name] = eventApi[name];\r\n });\r\n\r\n Object.keys(api).forEach(name => {\r\n uni[name] = promisify(name, api[name]);\r\n });\r\n\r\n Object.keys(wx).forEach(name => {\r\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\r\n uni[name] = promisify(name, wrapper(name, wx[name]));\r\n }\r\n });\r\n}\r\n\r\nwx.createApp = createApp;\r\nwx.createPage = createPage;\r\nwx.createComponent = createComponent;\r\nwx.createSubpackageApp = createSubpackageApp;\r\nwx.createPlugin = createPlugin;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\r\n","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","const isObject = (val) => val !== null && typeof val === 'object';\nconst defaultDelimiters = ['{', '}'];\nclass BaseFormatter {\n constructor() {\n this._caches = Object.create(null);\n }\n interpolate(message, values, delimiters = defaultDelimiters) {\n if (!values) {\n return [message];\n }\n let tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message, delimiters);\n this._caches[message] = tokens;\n }\n return compile(tokens, values);\n }\n}\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\nfunction parse(format, [startDelimiter, endDelimiter]) {\n const tokens = [];\n let position = 0;\n let text = '';\n while (position < format.length) {\n let char = format[position++];\n if (char === startDelimiter) {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n text = '';\n let sub = '';\n char = format[position++];\n while (char !== undefined && char !== endDelimiter) {\n sub += char;\n char = format[position++];\n }\n const isClosed = char === endDelimiter;\n const type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type });\n }\n // else if (char === '%') {\n // // when found rails i18n syntax, skip text capture\n // if (format[position] !== '{') {\n // text += char\n // }\n // }\n else {\n text += char;\n }\n }\n text && tokens.push({ type: 'text', value: text });\n return tokens;\n}\nfunction compile(tokens, values) {\n const compiled = [];\n let index = 0;\n const mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') {\n return compiled;\n }\n while (index < tokens.length) {\n const token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break;\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break;\n case 'named':\n if (mode === 'named') {\n compiled.push(values[token.value]);\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\n }\n }\n break;\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Detect 'unknown' type of token!`);\n }\n break;\n }\n index++;\n }\n return compiled;\n}\n\nconst LOCALE_ZH_HANS = 'zh-Hans';\nconst LOCALE_ZH_HANT = 'zh-Hant';\nconst LOCALE_EN = 'en';\nconst LOCALE_FR = 'fr';\nconst LOCALE_ES = 'es';\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst defaultFormatter = new BaseFormatter();\nfunction include(str, parts) {\n return !!parts.find((part) => str.indexOf(part) !== -1);\n}\nfunction startsWith(str, parts) {\n return parts.find((part) => str.indexOf(part) === 0);\n}\nfunction normalizeLocale(locale, messages) {\n if (!locale) {\n return;\n }\n locale = locale.trim().replace(/_/g, '-');\n if (messages && messages[locale]) {\n return locale;\n }\n locale = locale.toLowerCase();\n if (locale === 'chinese') {\n // 支付宝\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('zh') === 0) {\n if (locale.indexOf('-hans') > -1) {\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('-hant') > -1) {\n return LOCALE_ZH_HANT;\n }\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\n return LOCALE_ZH_HANT;\n }\n return LOCALE_ZH_HANS;\n }\n let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];\n if (messages && Object.keys(messages).length > 0) {\n locales = Object.keys(messages);\n }\n const lang = startsWith(locale, locales);\n if (lang) {\n return lang;\n }\n}\nclass I18n {\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\n this.locale = LOCALE_EN;\n this.fallbackLocale = LOCALE_EN;\n this.message = {};\n this.messages = {};\n this.watchers = [];\n if (fallbackLocale) {\n this.fallbackLocale = fallbackLocale;\n }\n this.formater = formater || defaultFormatter;\n this.messages = messages || {};\n this.setLocale(locale || LOCALE_EN);\n if (watcher) {\n this.watchLocale(watcher);\n }\n }\n setLocale(locale) {\n const oldLocale = this.locale;\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\n if (!this.messages[this.locale]) {\n // 可能初始化时不存在\n this.messages[this.locale] = {};\n }\n this.message = this.messages[this.locale];\n // 仅发生变化时,通知\n if (oldLocale !== this.locale) {\n this.watchers.forEach((watcher) => {\n watcher(this.locale, oldLocale);\n });\n }\n }\n getLocale() {\n return this.locale;\n }\n watchLocale(fn) {\n const index = this.watchers.push(fn) - 1;\n return () => {\n this.watchers.splice(index, 1);\n };\n }\n add(locale, message, override = true) {\n const curMessages = this.messages[locale];\n if (curMessages) {\n if (override) {\n Object.assign(curMessages, message);\n }\n else {\n Object.keys(message).forEach((key) => {\n if (!hasOwn(curMessages, key)) {\n curMessages[key] = message[key];\n }\n });\n }\n }\n else {\n this.messages[locale] = message;\n }\n }\n f(message, values, delimiters) {\n return this.formater.interpolate(message, values, delimiters).join('');\n }\n t(key, locale, values) {\n let message = this.message;\n if (typeof locale === 'string') {\n locale = normalizeLocale(locale, this.messages);\n locale && (message = this.messages[locale]);\n }\n else {\n values = locale;\n }\n if (!hasOwn(message, key)) {\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\n return key;\n }\n return this.formater.interpolate(message[key], values).join('');\n }\n}\n\nfunction watchAppLocale(appVm, i18n) {\n // 需要保证 watch 的触发在组件渲染之前\n if (appVm.$watchLocale) {\n // vue2\n appVm.$watchLocale((newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n else {\n appVm.$watch(() => appVm.$locale, (newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n}\nfunction getDefaultLocale() {\n if (typeof uni !== 'undefined' && uni.getLocale) {\n return uni.getLocale();\n }\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\n if (typeof global !== 'undefined' && global.getLocale) {\n return global.getLocale();\n }\n return LOCALE_EN;\n}\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\n // 兼容旧版本入参\n if (typeof locale !== 'string') {\n [locale, messages] = [\n messages,\n locale,\n ];\n }\n if (typeof locale !== 'string') {\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\n locale = getDefaultLocale();\n }\n if (typeof fallbackLocale !== 'string') {\n fallbackLocale =\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\n LOCALE_EN;\n }\n const i18n = new I18n({\n locale,\n fallbackLocale,\n messages,\n watcher,\n });\n let t = (key, values) => {\n if (typeof getApp !== 'function') {\n // app view\n /* eslint-disable no-func-assign */\n t = function (key, values) {\n return i18n.t(key, values);\n };\n }\n else {\n let isWatchedAppLocale = false;\n t = function (key, values) {\n const appVm = getApp().$vm;\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\n // options: {\n // \ttype: Array,\n // \tdefault () {\n // \t\treturn [{\n // \t\t\ticon: 'shop',\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\n // \t\t}, {\n // \t\t\ticon: 'cart',\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\n // \t\t}]\n // \t}\n // },\n if (appVm) {\n // 触发响应式\n appVm.$locale;\n if (!isWatchedAppLocale) {\n isWatchedAppLocale = true;\n watchAppLocale(appVm, i18n);\n }\n }\n return i18n.t(key, values);\n };\n }\n return t(key, values);\n };\n return {\n i18n,\n f(message, values, delimiters) {\n return i18n.f(message, values, delimiters);\n },\n t(key, values) {\n return t(key, values);\n },\n add(locale, message, override = true) {\n return i18n.add(locale, message, override);\n },\n watch(fn) {\n return i18n.watchLocale(fn);\n },\n getLocale() {\n return i18n.getLocale();\n },\n setLocale(newLocale) {\n return i18n.setLocale(newLocale);\n },\n };\n}\n\nconst isString = (val) => typeof val === 'string';\nlet formater;\nfunction hasI18nJson(jsonObj, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n return walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n return true;\n }\n }\n else {\n return hasI18nJson(value, delimiters);\n }\n });\n}\nfunction parseI18nJson(jsonObj, values, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, values, delimiters);\n }\n }\n else {\n parseI18nJson(value, values, delimiters);\n }\n });\n return jsonObj;\n}\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\n if (!isI18nStr(jsonStr, delimiters)) {\n return jsonStr;\n }\n if (!formater) {\n formater = new BaseFormatter();\n }\n const localeValues = [];\n Object.keys(locales).forEach((name) => {\n if (name !== locale) {\n localeValues.push({\n locale: name,\n values: locales[name],\n });\n }\n });\n localeValues.unshift({ locale, values: locales[locale] });\n try {\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\n }\n catch (e) { }\n return jsonStr;\n}\nfunction isI18nStr(value, delimiters) {\n return value.indexOf(delimiters[0]) > -1;\n}\nfunction compileStr(value, values, delimiters) {\n return formater.interpolate(value, values, delimiters).join('');\n}\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\n const value = jsonObj[key];\n if (isString(value)) {\n // 存在国际化\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\n if (localeValues.length > 1) {\n // 格式化国际化语言\n const valueLocales = (jsonObj[key + 'Locales'] = {});\n localeValues.forEach((localValue) => {\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\n });\n }\n }\n }\n else {\n compileJsonObj(value, localeValues, delimiters);\n }\n}\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\n walkJsonObj(jsonObj, (jsonObj, key) => {\n compileValue(jsonObj, key, localeValues, delimiters);\n });\n return jsonObj;\n}\nfunction walkJsonObj(jsonObj, walk) {\n if (Array.isArray(jsonObj)) {\n for (let i = 0; i < jsonObj.length; i++) {\n if (walk(jsonObj, i)) {\n return true;\n }\n }\n }\n else if (isObject(jsonObj)) {\n for (const key in jsonObj) {\n if (walk(jsonObj, key)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction resolveLocale(locales) {\n return (locale) => {\n if (!locale) {\n return locale;\n }\n locale = normalizeLocale(locale) || locale;\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\n };\n}\nfunction resolveLocaleChain(locale) {\n const chain = [];\n const tokens = locale.split('-');\n while (tokens.length) {\n chain.push(tokens.join('-'));\n tokens.pop();\n }\n return chain;\n}\n\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n * Vue.js v2.6.11\n * (c) 2014-2023 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n return ('') + vm.$options.__file\n }\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm && vm.$options.name !== 'PageBody') {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n !vm.$options.isReserved && tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n Dep.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n Dep.target = Dep.SharedObject.target;\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue &&\n !value.__v_isMPComponent\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\r\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\r\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\r\n if (isUndef(propOptions)) {\r\n return res\r\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\r\n var attrs = data.attrs;\n var props = data.props;\r\n if (isDef(attrs) || isDef(props)) {\r\n for (var key in propOptions) {\r\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\r\n }\r\n }\r\n return res\r\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n // fixed by xxxxxx 临时 hack 掉 uni-app 中的异步 name slot page\n if(child.asyncMeta && child.asyncMeta.data && child.asyncMeta.data.slot === 'page'){\n (slots['page'] || (slots['page'] = [])).push(child);\n }else{\n (slots.default || (slots.default = [])).push(child);\n }\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n return res && (\n res.length === 0 ||\n (res.length === 1 && res[0].isComment) // #9658\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i, i, i); // fixed by xxxxxx\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i, i, i); // fixed by xxxxxx\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length, i, i++)); // fixed by xxxxxx\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i, i); // fixed by xxxxxx\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n // fixed by xxxxxx app-plus scopedSlot\n nodes = scopedSlotFn(props, this, props._i) || fallback;\n } else {\n nodes = this.$slots[name] || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n callHook(componentInstance, 'onServiceCreated');\n callHook(componentInstance, 'onServiceAttached');\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag, context); // fixed by xxxxxx\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent // activeInstance in lifecycle state\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n \n // fixed by xxxxxx update properties(mp runtime)\n vm._$updateProperties && vm._$updateProperties(vm);\n \n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n {\n if(vm.mpHost === 'mp-baidu' || vm.mpHost === 'mp-kuaishou' || vm.mpHost === 'mp-xhs'){//百度、快手、小红书 observer 在 setData callback 之后触发,直接忽略该 warn\n return\n }\n //fixed by xxxxxx __next_tick_pending,uni://form-field 时不告警\n if(\n key === 'value' && \n Array.isArray(vm.$options.behaviors) &&\n vm.$options.behaviors.indexOf('uni://form-field') !== -1\n ){\n return\n }\n if(vm._getFormData){\n return\n }\n var $parent = vm.$parent;\n while($parent){\n if($parent.__next_tick_pending){\n return \n }\n $parent = $parent.$parent;\n }\n }\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.SharedObject.target) {// fixed by xxxxxx\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n try {\n cb.call(vm, watcher.value);\n } catch (error) {\n handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n }\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n !vm._$fallback && initInjections(vm); // resolve injections before data/props \n initState(vm);\n !vm._$fallback && initProvide(vm); // resolve provide after data/props\n !vm._$fallback && callHook(vm, 'created'); \n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.11';\n\n/**\n * https://raw.githubusercontent.com/Tencent/westore/master/packages/westore/utils/diff.js\n */\nvar ARRAYTYPE = '[object Array]';\nvar OBJECTTYPE = '[object Object]';\nvar NULLTYPE = '[object Null]';\nvar UNDEFINEDTYPE = '[object Undefined]';\n// const FUNCTIONTYPE = '[object Function]'\n\nfunction diff(current, pre) {\n var result = {};\n syncKeys(current, pre);\n _diff(current, pre, '', result);\n return result\n}\n\nfunction syncKeys(current, pre) {\n if (current === pre) { return }\n var rootCurrentType = type(current);\n var rootPreType = type(pre);\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n if(Object.keys(current).length >= Object.keys(pre).length){\n for (var key in pre) {\n var currentValue = current[key];\n if (currentValue === undefined) {\n current[key] = null;\n } else {\n syncKeys(currentValue, pre[key]);\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach(function (item, index) {\n syncKeys(current[index], item);\n });\n }\n }\n}\n\nfunction nullOrUndefined(currentType, preType) {\n if(\n (currentType === NULLTYPE || currentType === UNDEFINEDTYPE) && \n (preType === NULLTYPE || preType === UNDEFINEDTYPE)\n ) {\n return false\n }\n return true\n}\n\nfunction _diff(current, pre, path, result) {\n if (current === pre) { return }\n var rootCurrentType = type(current);\n var rootPreType = type(pre);\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current);\n } else {\n var loop = function ( key ) {\n var currentValue = current[key];\n var preValue = pre[key];\n var currentType = type(currentValue);\n var preType = type(preValue);\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue !== pre[key] && nullOrUndefined(currentType, preType)) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n currentValue.forEach(function (item, index) {\n _diff(item, preValue[index], (path == '' ? '' : path + \".\") + key + '[' + index + ']', result);\n });\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n for (var subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + \".\") + key + '.' + subKey, result);\n }\n }\n }\n };\n\n for (var key in current) loop( key );\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current);\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current);\n } else {\n current.forEach(function (item, index) {\n _diff(item, pre[index], path + '[' + index + ']', result);\n });\n }\n }\n } else {\n setResult(result, path, current);\n }\n}\n\nfunction setResult(result, k, v) {\n // if (type(v) != FUNCTIONTYPE) {\n result[k] = v;\n // }\n}\n\nfunction type(obj) {\n return Object.prototype.toString.call(obj)\n}\n\n/* */\r\n\r\nfunction flushCallbacks$1(vm) {\r\n if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n var mpInstance = vm.$scope;\r\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\r\n ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');\r\n }\r\n var copies = vm.__next_tick_callbacks.slice(0);\r\n vm.__next_tick_callbacks.length = 0;\r\n for (var i = 0; i < copies.length; i++) {\r\n copies[i]();\r\n }\r\n }\r\n}\r\n\r\nfunction hasRenderWatcher(vm) {\r\n return queue.find(function (watcher) { return vm._watcher === watcher; })\r\n}\r\n\r\nfunction nextTick$1(vm, cb) {\r\n //1.nextTick 之前 已 setData 且 setData 还未回调完成\r\n //2.nextTick 之前存在 render watcher\r\n if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {\n if(process.env.VUE_APP_DEBUG){\n var mpInstance = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\n ']:nextVueTick');\n }\r\n return nextTick(cb, vm)\r\n }else{\n if(process.env.VUE_APP_DEBUG){\n var mpInstance$1 = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +\n ']:nextMPTick');\n }\n }\r\n var _resolve;\r\n if (!vm.__next_tick_callbacks) {\r\n vm.__next_tick_callbacks = [];\r\n }\r\n vm.__next_tick_callbacks.push(function () {\r\n if (cb) {\r\n try {\r\n cb.call(vm);\r\n } catch (e) {\r\n handleError(e, vm, 'nextTick');\r\n }\r\n } else if (_resolve) {\r\n _resolve(vm);\r\n }\r\n });\r\n // $flow-disable-line\r\n if (!cb && typeof Promise !== 'undefined') {\r\n return new Promise(function (resolve) {\r\n _resolve = resolve;\r\n })\r\n }\r\n}\n\n/* */\r\n\r\nfunction clearInstance(key, value) {\r\n // 简易去除 Vue 和小程序组件实例\r\n if (value) {\r\n if (value._isVue || value.__v_isMPComponent) {\r\n return {}\r\n }\r\n }\r\n return value\r\n}\r\n\r\nfunction cloneWithData(vm) {\r\n // 确保当前 vm 所有数据被同步\r\n var ret = Object.create(null);\r\n var dataKeys = [].concat(\r\n Object.keys(vm._data || {}),\r\n Object.keys(vm._computedWatchers || {}));\r\n\r\n dataKeys.reduce(function(ret, key) {\r\n ret[key] = vm[key];\r\n return ret\r\n }, ret);\r\n\r\n // vue-composition-api\r\n var compositionApiState = vm.__composition_api_state__ || vm.__secret_vfa_state__;\r\n var rawBindings = compositionApiState && compositionApiState.rawBindings;\r\n if (rawBindings) {\r\n Object.keys(rawBindings).forEach(function (key) {\r\n ret[key] = vm[key];\r\n });\r\n }\r\n\r\n //TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据\r\n Object.assign(ret, vm.$mp.data || {});\r\n if (\r\n Array.isArray(vm.$options.behaviors) &&\r\n vm.$options.behaviors.indexOf('uni://form-field') !== -1\r\n ) { //form-field\r\n ret['name'] = vm.name;\r\n ret['value'] = vm.value;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(ret, clearInstance))\r\n}\r\n\r\nvar patch = function(oldVnode, vnode) {\n var this$1 = this;\n\r\n if (vnode === null) { //destroy\r\n return\r\n }\r\n if (this.mpType === 'page' || this.mpType === 'component') {\r\n var mpInstance = this.$scope;\r\n var data = Object.create(null);\r\n try {\r\n data = cloneWithData(this);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n data.__webviewId__ = mpInstance.data.__webviewId__;\r\n var mpData = Object.create(null);\r\n Object.keys(data).forEach(function (key) { //仅同步 data 中有的数据\r\n mpData[key] = mpInstance.data[key];\r\n });\r\n var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);\r\n if (Object.keys(diffData).length) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +\r\n ']差量更新',\r\n JSON.stringify(diffData));\r\n }\r\n this.__next_tick_pending = true;\r\n mpInstance.setData(diffData, function () {\r\n this$1.__next_tick_pending = false;\r\n flushCallbacks$1(this$1);\r\n });\r\n } else {\r\n flushCallbacks$1(this);\r\n }\r\n }\r\n};\n\n/* */\n\nfunction createEmptyRender() {\n\n}\n\nfunction mountComponent$1(\n vm,\n el,\n hydrating\n) {\n if (!vm.mpType) {//main.js 中的 new Vue\n return vm\n }\n if (vm.mpType === 'app') {\n vm.$options.render = createEmptyRender;\n }\n if (!vm.$options.render) {\n vm.$options.render = createEmptyRender;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n \n !vm._$fallback && callHook(vm, 'beforeMount');\n\n var updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before() {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n return vm\n}\n\n/* */\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/* */\r\n\r\nvar MP_METHODS = ['createSelectorQuery', 'createIntersectionObserver', 'selectAllComponents', 'selectComponent'];\r\n\r\nfunction getTarget(obj, path) {\r\n var parts = path.split('.');\r\n var key = parts[0];\r\n if (key.indexOf('__$n') === 0) { //number index\r\n key = parseInt(key.replace('__$n', ''));\r\n }\r\n if (parts.length === 1) {\r\n return obj[key]\r\n }\r\n return getTarget(obj[key], parts.slice(1).join('.'))\r\n}\r\n\r\nfunction internalMixin(Vue) {\r\n\r\n Vue.config.errorHandler = function(err, vm, info) {\r\n Vue.util.warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\r\n console.error(err);\r\n /* eslint-disable no-undef */\r\n var app = typeof getApp === 'function' && getApp();\r\n if (app && app.onError) {\r\n app.onError(err);\r\n }\r\n };\r\n\r\n var oldEmit = Vue.prototype.$emit;\r\n\r\n Vue.prototype.$emit = function(event) {\r\n if (this.$scope && event) {\r\n var triggerEvent = this.$scope['_triggerEvent'] || this.$scope['triggerEvent'];\r\n if (triggerEvent) {\r\n try {\r\n triggerEvent.call(this.$scope, event, {\r\n __args__: toArray(arguments, 1)\r\n });\r\n } catch (error) {\r\n\r\n }\r\n }\r\n }\r\n return oldEmit.apply(this, arguments)\r\n };\r\n\r\n Vue.prototype.$nextTick = function(fn) {\r\n return nextTick$1(this, fn)\r\n };\r\n\r\n MP_METHODS.forEach(function (method) {\r\n Vue.prototype[method] = function(args) {\r\n if (this.$scope && this.$scope[method]) {\r\n return this.$scope[method](args)\r\n }\r\n // mp-alipay\r\n if (typeof my === 'undefined') {\r\n return\r\n }\r\n if (method === 'createSelectorQuery') {\r\n /* eslint-disable no-undef */\r\n return my.createSelectorQuery(args)\r\n } else if (method === 'createIntersectionObserver') {\r\n /* eslint-disable no-undef */\r\n return my.createIntersectionObserver(args)\r\n }\r\n // TODO mp-alipay 暂不支持 selectAllComponents,selectComponent\r\n };\r\n });\r\n\r\n Vue.prototype.__init_provide = initProvide;\r\n\r\n Vue.prototype.__init_injections = initInjections;\r\n\r\n Vue.prototype.__call_hook = function(hook, args) {\r\n var vm = this;\r\n // #7573 disable dep collection when invoking lifecycle hooks\r\n pushTarget();\r\n var handlers = vm.$options[hook];\r\n var info = hook + \" hook\";\r\n var ret;\r\n if (handlers) {\r\n for (var i = 0, j = handlers.length; i < j; i++) {\r\n ret = invokeWithErrorHandling(handlers[i], vm, args ? [args] : null, vm, info);\r\n }\r\n }\r\n if (vm._hasHookEvent) {\r\n vm.$emit('hook:' + hook, args);\r\n }\r\n popTarget();\r\n return ret\r\n };\r\n\r\n Vue.prototype.__set_model = function(target, key, value, modifiers) {\r\n if (Array.isArray(modifiers)) {\r\n if (modifiers.indexOf('trim') !== -1) {\r\n value = value.trim();\r\n }\r\n if (modifiers.indexOf('number') !== -1) {\r\n value = this._n(value);\r\n }\r\n }\r\n if (!target) {\r\n target = this;\r\n }\r\n // 解决动态属性添加\r\n Vue.set(target, key, value);\r\n };\r\n\r\n Vue.prototype.__set_sync = function(target, key, value) {\r\n if (!target) {\r\n target = this;\r\n }\r\n // 解决动态属性添加\r\n Vue.set(target, key, value);\r\n };\r\n\r\n Vue.prototype.__get_orig = function(item) {\r\n if (isPlainObject(item)) {\r\n return item['$orig'] || item\r\n }\r\n return item\r\n };\r\n\r\n Vue.prototype.__get_value = function(dataPath, target) {\r\n return getTarget(target || this, dataPath)\r\n };\r\n\r\n\r\n Vue.prototype.__get_class = function(dynamicClass, staticClass) {\r\n return renderClass(staticClass, dynamicClass)\r\n };\r\n\r\n Vue.prototype.__get_style = function(dynamicStyle, staticStyle) {\r\n if (!dynamicStyle && !staticStyle) {\r\n return ''\r\n }\r\n var dynamicStyleObj = normalizeStyleBinding(dynamicStyle);\r\n var styleObj = staticStyle ? extend(staticStyle, dynamicStyleObj) : dynamicStyleObj;\r\n return Object.keys(styleObj).map(function (name) { return ((hyphenate(name)) + \":\" + (styleObj[name])); }).join(';')\r\n };\r\n\r\n Vue.prototype.__map = function(val, iteratee) {\r\n //TODO 暂不考虑 string\r\n var ret, i, l, keys, key;\r\n if (Array.isArray(val)) {\r\n ret = new Array(val.length);\r\n for (i = 0, l = val.length; i < l; i++) {\r\n ret[i] = iteratee(val[i], i);\r\n }\r\n return ret\r\n } else if (isObject(val)) {\r\n keys = Object.keys(val);\r\n ret = Object.create(null);\r\n for (i = 0, l = keys.length; i < l; i++) {\r\n key = keys[i];\r\n ret[key] = iteratee(val[key], key, i);\r\n }\r\n return ret\r\n } else if (typeof val === 'number') {\r\n ret = new Array(val);\r\n for (i = 0, l = val; i < l; i++) {\r\n // 第一个参数暂时仍和小程序一致\r\n ret[i] = iteratee(i, i);\r\n }\r\n return ret\r\n }\r\n return []\r\n };\r\n\r\n}\n\n/* */\r\n\r\nvar LIFECYCLE_HOOKS$1 = [\r\n //App\r\n 'onLaunch',\r\n 'onShow',\r\n 'onHide',\r\n 'onUniNViewMessage',\r\n 'onPageNotFound',\r\n 'onThemeChange',\r\n 'onError',\r\n 'onUnhandledRejection',\r\n //Page\r\n 'onInit',\r\n 'onLoad',\r\n // 'onShow',\r\n 'onReady',\r\n // 'onHide',\r\n 'onUnload',\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onTabItemTap',\r\n 'onAddToFavorites',\r\n 'onShareTimeline',\r\n 'onShareAppMessage',\r\n 'onResize',\r\n 'onPageScroll',\r\n 'onNavigationBarButtonTap',\r\n 'onBackPress',\r\n 'onNavigationBarSearchInputChanged',\r\n 'onNavigationBarSearchInputConfirmed',\r\n 'onNavigationBarSearchInputClicked',\r\n 'onUploadDouyinVideo',\r\n 'onNFCReadMessage',\r\n //Component\r\n // 'onReady', // 兼容旧版本,应该移除该事件\r\n 'onPageShow',\r\n 'onPageHide',\r\n 'onPageResize'\r\n];\r\nfunction lifecycleMixin$1(Vue) {\r\n\r\n //fixed vue-class-component\r\n var oldExtend = Vue.extend;\r\n Vue.extend = function(extendOptions) {\r\n extendOptions = extendOptions || {};\r\n\r\n var methods = extendOptions.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(function (methodName) {\r\n if (LIFECYCLE_HOOKS$1.indexOf(methodName)!==-1) {\r\n extendOptions[methodName] = methods[methodName];\r\n delete methods[methodName];\r\n }\r\n });\r\n }\r\n\r\n return oldExtend.call(this, extendOptions)\r\n };\r\n\r\n var strategies = Vue.config.optionMergeStrategies;\r\n var mergeHook = strategies.created;\r\n LIFECYCLE_HOOKS$1.forEach(function (hook) {\r\n strategies[hook] = mergeHook;\r\n });\r\n\r\n Vue.prototype.__lifecycle_hooks__ = LIFECYCLE_HOOKS$1;\r\n}\n\n/* */\r\n\n// install platform patch function\r\nVue.prototype.__patch__ = patch;\r\n\r\n// public mount method\r\nVue.prototype.$mount = function(\r\n el ,\r\n hydrating \r\n) {\r\n return mountComponent$1(this, el, hydrating)\r\n};\r\n\r\nlifecycleMixin$1(Vue);\r\ninternalMixin(Vue);\n\n/* */\n\nexport default Vue;\n","/* eslint-disable */\r\nvar provinceData = [\r\n\t// {\r\n // \"label\": \"北京市\",\r\n // \"value\": \"11\"\r\n // },\r\n // {\r\n // \"label\": \"天津市\",\r\n // \"value\": \"12\"\r\n // },\r\n // {\r\n // \"label\": \"河北省\",\r\n // \"value\": \"13\"\r\n // },\r\n // {\r\n // \"label\": \"山西省\",\r\n // \"value\": \"14\"\r\n // },\r\n // {\r\n // \"label\": \"内蒙古自治区\",\r\n // \"value\": \"15\"\r\n // },\r\n // {\r\n // \"label\": \"辽宁省\",\r\n // \"value\": \"21\"\r\n // },\r\n // {\r\n // \"label\": \"吉林省\",\r\n // \"value\": \"22\"\r\n // },\r\n // {\r\n // \"label\": \"黑龙江省\",\r\n // \"value\": \"23\"\r\n // },\r\n // {\r\n // \"label\": \"上海市\",\r\n // \"value\": \"31\"\r\n // },\r\n // {\r\n // \"label\": \"江苏省\",\r\n // \"value\": \"32\"\r\n // },\r\n // {\r\n // \"label\": \"浙江省\",\r\n // \"value\": \"33\"\r\n // },\r\n // {\r\n // \"label\": \"安徽省\",\r\n // \"value\": \"34\"\r\n // },\r\n // {\r\n // \"label\": \"福建省\",\r\n // \"value\": \"35\"\r\n // },\r\n // {\r\n // \"label\": \"江西省\",\r\n // \"value\": \"36\"\r\n // },\r\n // {\r\n // \"label\": \"山东省\",\r\n // \"value\": \"37\"\r\n // },\r\n // {\r\n // \"label\": \"河南省\",\r\n // \"value\": \"41\"\r\n // },\r\n // {\r\n // \"label\": \"湖北省\",\r\n // \"value\": \"42\"\r\n // },\r\n // {\r\n // \"label\": \"湖南省\",\r\n // \"value\": \"43\"\r\n // },\r\n {\r\n \"label\": \"广东省\",\r\n \"value\": \"44\"\r\n }\r\n //,\r\n // {\r\n // \"label\": \"广西壮族自治区\",\r\n // \"value\": \"45\"\r\n // },\r\n // {\r\n // \"label\": \"海南省\",\r\n // \"value\": \"46\"\r\n // },\r\n // {\r\n // \"label\": \"重庆市\",\r\n // \"value\": \"50\"\r\n // },\r\n // {\r\n // \"label\": \"四川省\",\r\n // \"value\": \"51\"\r\n // },\r\n // {\r\n // \"label\": \"贵州省\",\r\n // \"value\": \"52\"\r\n // },\r\n // {\r\n // \"label\": \"云南省\",\r\n // \"value\": \"53\"\r\n // },\r\n // {\r\n // \"label\": \"西藏自治区\",\r\n // \"value\": \"54\"\r\n // },\r\n // {\r\n // \"label\": \"陕西省\",\r\n // \"value\": \"61\"\r\n // },\r\n // {\r\n // \"label\": \"甘肃省\",\r\n // \"value\": \"62\"\r\n // },\r\n // {\r\n // \"label\": \"青海省\",\r\n // \"value\": \"63\"\r\n // },\r\n // {\r\n // \"label\": \"宁夏回族自治区\",\r\n // \"value\": \"64\"\r\n // },\r\n // {\r\n // \"label\": \"新疆维吾尔自治区\",\r\n // \"value\": \"65\"\r\n // },\r\n // {\r\n // \"label\": \"台湾\",\r\n // \"value\": \"66\"\r\n // },\r\n // {\r\n // \"label\": \"香港\",\r\n // \"value\": \"67\"\r\n // },\r\n // {\r\n // \"label\": \"澳门\",\r\n // \"value\": \"68\"\r\n // }\r\n]\r\nexport default provinceData;\r\n","/* eslint-disable */\r\nvar cityData = [\r\n // [{\r\n // \"label\": \"市辖区\",\r\n // \"value\": \"1101\"\r\n // }],\r\n // [{\r\n // \"label\": \"市辖区\",\r\n // \"value\": \"1201\"\r\n // }],\r\n // [{\r\n // \"label\": \"石家庄市\",\r\n // \"value\": \"1301\"\r\n // },\r\n // {\r\n // \"label\": \"唐山市\",\r\n // \"value\": \"1302\"\r\n // },\r\n // {\r\n // \"label\": \"秦皇岛市\",\r\n // \"value\": \"1303\"\r\n // },\r\n // {\r\n // \"label\": \"邯郸市\",\r\n // \"value\": \"1304\"\r\n // },\r\n // {\r\n // \"label\": \"邢台市\",\r\n // \"value\": \"1305\"\r\n // },\r\n // {\r\n // \"label\": \"保定市\",\r\n // \"value\": \"1306\"\r\n // },\r\n // {\r\n // \"label\": \"张家口市\",\r\n // \"value\": \"1307\"\r\n // },\r\n // {\r\n // \"label\": \"承德市\",\r\n // \"value\": \"1308\"\r\n // },\r\n // {\r\n // \"label\": \"沧州市\",\r\n // \"value\": \"1309\"\r\n // },\r\n // {\r\n // \"label\": \"廊坊市\",\r\n // \"value\": \"1310\"\r\n // },\r\n // {\r\n // \"label\": \"衡水市\",\r\n // \"value\": \"1311\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"太原市\",\r\n // \"value\": \"1401\"\r\n // },\r\n // {\r\n // \"label\": \"大同市\",\r\n // \"value\": \"1402\"\r\n // },\r\n // {\r\n // \"label\": \"阳泉市\",\r\n // \"value\": \"1403\"\r\n // },\r\n // {\r\n // \"label\": \"长治市\",\r\n // \"value\": \"1404\"\r\n // },\r\n // {\r\n // \"label\": \"晋城市\",\r\n // \"value\": \"1405\"\r\n // },\r\n // {\r\n // \"label\": \"朔州市\",\r\n // \"value\": \"1406\"\r\n // },\r\n // {\r\n // \"label\": \"晋中市\",\r\n // \"value\": \"1407\"\r\n // },\r\n // {\r\n // \"label\": \"运城市\",\r\n // \"value\": \"1408\"\r\n // },\r\n // {\r\n // \"label\": \"忻州市\",\r\n // \"value\": \"1409\"\r\n // },\r\n // {\r\n // \"label\": \"临汾市\",\r\n // \"value\": \"1410\"\r\n // },\r\n // {\r\n // \"label\": \"吕梁市\",\r\n // \"value\": \"1411\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"呼和浩特市\",\r\n // \"value\": \"1501\"\r\n // },\r\n // {\r\n // \"label\": \"包头市\",\r\n // \"value\": \"1502\"\r\n // },\r\n // {\r\n // \"label\": \"乌海市\",\r\n // \"value\": \"1503\"\r\n // },\r\n // {\r\n // \"label\": \"赤峰市\",\r\n // \"value\": \"1504\"\r\n // },\r\n // {\r\n // \"label\": \"通辽市\",\r\n // \"value\": \"1505\"\r\n // },\r\n // {\r\n // \"label\": \"鄂尔多斯市\",\r\n // \"value\": \"1506\"\r\n // },\r\n // {\r\n // \"label\": \"呼伦贝尔市\",\r\n // \"value\": \"1507\"\r\n // },\r\n // {\r\n // \"label\": \"巴彦淖尔市\",\r\n // \"value\": \"1508\"\r\n // },\r\n // {\r\n // \"label\": \"乌兰察布市\",\r\n // \"value\": \"1509\"\r\n // },\r\n // {\r\n // \"label\": \"兴安盟\",\r\n // \"value\": \"1522\"\r\n // },\r\n // {\r\n // \"label\": \"锡林郭勒盟\",\r\n // \"value\": \"1525\"\r\n // },\r\n // {\r\n // \"label\": \"阿拉善盟\",\r\n // \"value\": \"1529\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"沈阳市\",\r\n // \"value\": \"2101\"\r\n // },\r\n // {\r\n // \"label\": \"大连市\",\r\n // \"value\": \"2102\"\r\n // },\r\n // {\r\n // \"label\": \"鞍山市\",\r\n // \"value\": \"2103\"\r\n // },\r\n // {\r\n // \"label\": \"抚顺市\",\r\n // \"value\": \"2104\"\r\n // },\r\n // {\r\n // \"label\": \"本溪市\",\r\n // \"value\": \"2105\"\r\n // },\r\n // {\r\n // \"label\": \"丹东市\",\r\n // \"value\": \"2106\"\r\n // },\r\n // {\r\n // \"label\": \"锦州市\",\r\n // \"value\": \"2107\"\r\n // },\r\n // {\r\n // \"label\": \"营口市\",\r\n // \"value\": \"2108\"\r\n // },\r\n // {\r\n // \"label\": \"阜新市\",\r\n // \"value\": \"2109\"\r\n // },\r\n // {\r\n // \"label\": \"辽阳市\",\r\n // \"value\": \"2110\"\r\n // },\r\n // {\r\n // \"label\": \"盘锦市\",\r\n // \"value\": \"2111\"\r\n // },\r\n // {\r\n // \"label\": \"铁岭市\",\r\n // \"value\": \"2112\"\r\n // },\r\n // {\r\n // \"label\": \"朝阳市\",\r\n // \"value\": \"2113\"\r\n // },\r\n // {\r\n // \"label\": \"葫芦岛市\",\r\n // \"value\": \"2114\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"长春市\",\r\n // \"value\": \"2201\"\r\n // },\r\n // {\r\n // \"label\": \"吉林市\",\r\n // \"value\": \"2202\"\r\n // },\r\n // {\r\n // \"label\": \"四平市\",\r\n // \"value\": \"2203\"\r\n // },\r\n // {\r\n // \"label\": \"辽源市\",\r\n // \"value\": \"2204\"\r\n // },\r\n // {\r\n // \"label\": \"通化市\",\r\n // \"value\": \"2205\"\r\n // },\r\n // {\r\n // \"label\": \"白山市\",\r\n // \"value\": \"2206\"\r\n // },\r\n // {\r\n // \"label\": \"松原市\",\r\n // \"value\": \"2207\"\r\n // },\r\n // {\r\n // \"label\": \"白城市\",\r\n // \"value\": \"2208\"\r\n // },\r\n // {\r\n // \"label\": \"延边朝鲜族自治州\",\r\n // \"value\": \"2224\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"哈尔滨市\",\r\n // \"value\": \"2301\"\r\n // },\r\n // {\r\n // \"label\": \"齐齐哈尔市\",\r\n // \"value\": \"2302\"\r\n // },\r\n // {\r\n // \"label\": \"鸡西市\",\r\n // \"value\": \"2303\"\r\n // },\r\n // {\r\n // \"label\": \"鹤岗市\",\r\n // \"value\": \"2304\"\r\n // },\r\n // {\r\n // \"label\": \"双鸭山市\",\r\n // \"value\": \"2305\"\r\n // },\r\n // {\r\n // \"label\": \"大庆市\",\r\n // \"value\": \"2306\"\r\n // },\r\n // {\r\n // \"label\": \"伊春市\",\r\n // \"value\": \"2307\"\r\n // },\r\n // {\r\n // \"label\": \"佳木斯市\",\r\n // \"value\": \"2308\"\r\n // },\r\n // {\r\n // \"label\": \"七台河市\",\r\n // \"value\": \"2309\"\r\n // },\r\n // {\r\n // \"label\": \"牡丹江市\",\r\n // \"value\": \"2310\"\r\n // },\r\n // {\r\n // \"label\": \"黑河市\",\r\n // \"value\": \"2311\"\r\n // },\r\n // {\r\n // \"label\": \"绥化市\",\r\n // \"value\": \"2312\"\r\n // },\r\n // {\r\n // \"label\": \"大兴安岭地区\",\r\n // \"value\": \"2327\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"市辖区\",\r\n // \"value\": \"3101\"\r\n // }],\r\n // [{\r\n // \"label\": \"南京市\",\r\n // \"value\": \"3201\"\r\n // },\r\n // {\r\n // \"label\": \"无锡市\",\r\n // \"value\": \"3202\"\r\n // },\r\n // {\r\n // \"label\": \"徐州市\",\r\n // \"value\": \"3203\"\r\n // },\r\n // {\r\n // \"label\": \"常州市\",\r\n // \"value\": \"3204\"\r\n // },\r\n // {\r\n // \"label\": \"苏州市\",\r\n // \"value\": \"3205\"\r\n // },\r\n // {\r\n // \"label\": \"南通市\",\r\n // \"value\": \"3206\"\r\n // },\r\n // {\r\n // \"label\": \"连云港市\",\r\n // \"value\": \"3207\"\r\n // },\r\n // {\r\n // \"label\": \"淮安市\",\r\n // \"value\": \"3208\"\r\n // },\r\n // {\r\n // \"label\": \"盐城市\",\r\n // \"value\": \"3209\"\r\n // },\r\n // {\r\n // \"label\": \"扬州市\",\r\n // \"value\": \"3210\"\r\n // },\r\n // {\r\n // \"label\": \"镇江市\",\r\n // \"value\": \"3211\"\r\n // },\r\n // {\r\n // \"label\": \"泰州市\",\r\n // \"value\": \"3212\"\r\n // },\r\n // {\r\n // \"label\": \"宿迁市\",\r\n // \"value\": \"3213\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"杭州市\",\r\n // \"value\": \"3301\"\r\n // },\r\n // {\r\n // \"label\": \"宁波市\",\r\n // \"value\": \"3302\"\r\n // },\r\n // {\r\n // \"label\": \"温州市\",\r\n // \"value\": \"3303\"\r\n // },\r\n // {\r\n // \"label\": \"嘉兴市\",\r\n // \"value\": \"3304\"\r\n // },\r\n // {\r\n // \"label\": \"湖州市\",\r\n // \"value\": \"3305\"\r\n // },\r\n // {\r\n // \"label\": \"绍兴市\",\r\n // \"value\": \"3306\"\r\n // },\r\n // {\r\n // \"label\": \"金华市\",\r\n // \"value\": \"3307\"\r\n // },\r\n // {\r\n // \"label\": \"衢州市\",\r\n // \"value\": \"3308\"\r\n // },\r\n // {\r\n // \"label\": \"舟山市\",\r\n // \"value\": \"3309\"\r\n // },\r\n // {\r\n // \"label\": \"台州市\",\r\n // \"value\": \"3310\"\r\n // },\r\n // {\r\n // \"label\": \"丽水市\",\r\n // \"value\": \"3311\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"合肥市\",\r\n // \"value\": \"3401\"\r\n // },\r\n // {\r\n // \"label\": \"芜湖市\",\r\n // \"value\": \"3402\"\r\n // },\r\n // {\r\n // \"label\": \"蚌埠市\",\r\n // \"value\": \"3403\"\r\n // },\r\n // {\r\n // \"label\": \"淮南市\",\r\n // \"value\": \"3404\"\r\n // },\r\n // {\r\n // \"label\": \"马鞍山市\",\r\n // \"value\": \"3405\"\r\n // },\r\n // {\r\n // \"label\": \"淮北市\",\r\n // \"value\": \"3406\"\r\n // },\r\n // {\r\n // \"label\": \"铜陵市\",\r\n // \"value\": \"3407\"\r\n // },\r\n // {\r\n // \"label\": \"安庆市\",\r\n // \"value\": \"3408\"\r\n // },\r\n // {\r\n // \"label\": \"黄山市\",\r\n // \"value\": \"3410\"\r\n // },\r\n // {\r\n // \"label\": \"滁州市\",\r\n // \"value\": \"3411\"\r\n // },\r\n // {\r\n // \"label\": \"阜阳市\",\r\n // \"value\": \"3412\"\r\n // },\r\n // {\r\n // \"label\": \"宿州市\",\r\n // \"value\": \"3413\"\r\n // },\r\n // {\r\n // \"label\": \"六安市\",\r\n // \"value\": \"3415\"\r\n // },\r\n // {\r\n // \"label\": \"亳州市\",\r\n // \"value\": \"3416\"\r\n // },\r\n // {\r\n // \"label\": \"池州市\",\r\n // \"value\": \"3417\"\r\n // },\r\n // {\r\n // \"label\": \"宣城市\",\r\n // \"value\": \"3418\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"福州市\",\r\n // \"value\": \"3501\"\r\n // },\r\n // {\r\n // \"label\": \"厦门市\",\r\n // \"value\": \"3502\"\r\n // },\r\n // {\r\n // \"label\": \"莆田市\",\r\n // \"value\": \"3503\"\r\n // },\r\n // {\r\n // \"label\": \"三明市\",\r\n // \"value\": \"3504\"\r\n // },\r\n // {\r\n // \"label\": \"泉州市\",\r\n // \"value\": \"3505\"\r\n // },\r\n // {\r\n // \"label\": \"漳州市\",\r\n // \"value\": \"3506\"\r\n // },\r\n // {\r\n // \"label\": \"南平市\",\r\n // \"value\": \"3507\"\r\n // },\r\n // {\r\n // \"label\": \"龙岩市\",\r\n // \"value\": \"3508\"\r\n // },\r\n // {\r\n // \"label\": \"宁德市\",\r\n // \"value\": \"3509\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"南昌市\",\r\n // \"value\": \"3601\"\r\n // },\r\n // {\r\n // \"label\": \"景德镇市\",\r\n // \"value\": \"3602\"\r\n // },\r\n // {\r\n // \"label\": \"萍乡市\",\r\n // \"value\": \"3603\"\r\n // },\r\n // {\r\n // \"label\": \"九江市\",\r\n // \"value\": \"3604\"\r\n // },\r\n // {\r\n // \"label\": \"新余市\",\r\n // \"value\": \"3605\"\r\n // },\r\n // {\r\n // \"label\": \"鹰潭市\",\r\n // \"value\": \"3606\"\r\n // },\r\n // {\r\n // \"label\": \"赣州市\",\r\n // \"value\": \"3607\"\r\n // },\r\n // {\r\n // \"label\": \"吉安市\",\r\n // \"value\": \"3608\"\r\n // },\r\n // {\r\n // \"label\": \"宜春市\",\r\n // \"value\": \"3609\"\r\n // },\r\n // {\r\n // \"label\": \"抚州市\",\r\n // \"value\": \"3610\"\r\n // },\r\n // {\r\n // \"label\": \"上饶市\",\r\n // \"value\": \"3611\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"济南市\",\r\n // \"value\": \"3701\"\r\n // },\r\n // {\r\n // \"label\": \"青岛市\",\r\n // \"value\": \"3702\"\r\n // },\r\n // {\r\n // \"label\": \"淄博市\",\r\n // \"value\": \"3703\"\r\n // },\r\n // {\r\n // \"label\": \"枣庄市\",\r\n // \"value\": \"3704\"\r\n // },\r\n // {\r\n // \"label\": \"东营市\",\r\n // \"value\": \"3705\"\r\n // },\r\n // {\r\n // \"label\": \"烟台市\",\r\n // \"value\": \"3706\"\r\n // },\r\n // {\r\n // \"label\": \"潍坊市\",\r\n // \"value\": \"3707\"\r\n // },\r\n // {\r\n // \"label\": \"济宁市\",\r\n // \"value\": \"3708\"\r\n // },\r\n // {\r\n // \"label\": \"泰安市\",\r\n // \"value\": \"3709\"\r\n // },\r\n // {\r\n // \"label\": \"威海市\",\r\n // \"value\": \"3710\"\r\n // },\r\n // {\r\n // \"label\": \"日照市\",\r\n // \"value\": \"3711\"\r\n // },\r\n // {\r\n // \"label\": \"莱芜市\",\r\n // \"value\": \"3712\"\r\n // },\r\n // {\r\n // \"label\": \"临沂市\",\r\n // \"value\": \"3713\"\r\n // },\r\n // {\r\n // \"label\": \"德州市\",\r\n // \"value\": \"3714\"\r\n // },\r\n // {\r\n // \"label\": \"聊城市\",\r\n // \"value\": \"3715\"\r\n // },\r\n // {\r\n // \"label\": \"滨州市\",\r\n // \"value\": \"3716\"\r\n // },\r\n // {\r\n // \"label\": \"菏泽市\",\r\n // \"value\": \"3717\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"郑州市\",\r\n // \"value\": \"4101\"\r\n // },\r\n // {\r\n // \"label\": \"开封市\",\r\n // \"value\": \"4102\"\r\n // },\r\n // {\r\n // \"label\": \"洛阳市\",\r\n // \"value\": \"4103\"\r\n // },\r\n // {\r\n // \"label\": \"平顶山市\",\r\n // \"value\": \"4104\"\r\n // },\r\n // {\r\n // \"label\": \"安阳市\",\r\n // \"value\": \"4105\"\r\n // },\r\n // {\r\n // \"label\": \"鹤壁市\",\r\n // \"value\": \"4106\"\r\n // },\r\n // {\r\n // \"label\": \"新乡市\",\r\n // \"value\": \"4107\"\r\n // },\r\n // {\r\n // \"label\": \"焦作市\",\r\n // \"value\": \"4108\"\r\n // },\r\n // {\r\n // \"label\": \"濮阳市\",\r\n // \"value\": \"4109\"\r\n // },\r\n // {\r\n // \"label\": \"许昌市\",\r\n // \"value\": \"4110\"\r\n // },\r\n // {\r\n // \"label\": \"漯河市\",\r\n // \"value\": \"4111\"\r\n // },\r\n // {\r\n // \"label\": \"三门峡市\",\r\n // \"value\": \"4112\"\r\n // },\r\n // {\r\n // \"label\": \"南阳市\",\r\n // \"value\": \"4113\"\r\n // },\r\n // {\r\n // \"label\": \"商丘市\",\r\n // \"value\": \"4114\"\r\n // },\r\n // {\r\n // \"label\": \"信阳市\",\r\n // \"value\": \"4115\"\r\n // },\r\n // {\r\n // \"label\": \"周口市\",\r\n // \"value\": \"4116\"\r\n // },\r\n // {\r\n // \"label\": \"驻马店市\",\r\n // \"value\": \"4117\"\r\n // },\r\n // {\r\n // \"label\": \"省直辖县级行政区划\",\r\n // \"value\": \"4190\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"武汉市\",\r\n // \"value\": \"4201\"\r\n // },\r\n // {\r\n // \"label\": \"黄石市\",\r\n // \"value\": \"4202\"\r\n // },\r\n // {\r\n // \"label\": \"十堰市\",\r\n // \"value\": \"4203\"\r\n // },\r\n // {\r\n // \"label\": \"宜昌市\",\r\n // \"value\": \"4205\"\r\n // },\r\n // {\r\n // \"label\": \"襄阳市\",\r\n // \"value\": \"4206\"\r\n // },\r\n // {\r\n // \"label\": \"鄂州市\",\r\n // \"value\": \"4207\"\r\n // },\r\n // {\r\n // \"label\": \"荆门市\",\r\n // \"value\": \"4208\"\r\n // },\r\n // {\r\n // \"label\": \"孝感市\",\r\n // \"value\": \"4209\"\r\n // },\r\n // {\r\n // \"label\": \"荆州市\",\r\n // \"value\": \"4210\"\r\n // },\r\n // {\r\n // \"label\": \"黄冈市\",\r\n // \"value\": \"4211\"\r\n // },\r\n // {\r\n // \"label\": \"咸宁市\",\r\n // \"value\": \"4212\"\r\n // },\r\n // {\r\n // \"label\": \"随州市\",\r\n // \"value\": \"4213\"\r\n // },\r\n // {\r\n // \"label\": \"恩施土家族苗族自治州\",\r\n // \"value\": \"4228\"\r\n // },\r\n // {\r\n // \"label\": \"省直辖县级行政区划\",\r\n // \"value\": \"4290\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"长沙市\",\r\n // \"value\": \"4301\"\r\n // },\r\n // {\r\n // \"label\": \"株洲市\",\r\n // \"value\": \"4302\"\r\n // },\r\n // {\r\n // \"label\": \"湘潭市\",\r\n // \"value\": \"4303\"\r\n // },\r\n // {\r\n // \"label\": \"衡阳市\",\r\n // \"value\": \"4304\"\r\n // },\r\n // {\r\n // \"label\": \"邵阳市\",\r\n // \"value\": \"4305\"\r\n // },\r\n // {\r\n // \"label\": \"岳阳市\",\r\n // \"value\": \"4306\"\r\n // },\r\n // {\r\n // \"label\": \"常德市\",\r\n // \"value\": \"4307\"\r\n // },\r\n // {\r\n // \"label\": \"张家界市\",\r\n // \"value\": \"4308\"\r\n // },\r\n // {\r\n // \"label\": \"益阳市\",\r\n // \"value\": \"4309\"\r\n // },\r\n // {\r\n // \"label\": \"郴州市\",\r\n // \"value\": \"4310\"\r\n // },\r\n // {\r\n // \"label\": \"永州市\",\r\n // \"value\": \"4311\"\r\n // },\r\n // {\r\n // \"label\": \"怀化市\",\r\n // \"value\": \"4312\"\r\n // },\r\n // {\r\n // \"label\": \"娄底市\",\r\n // \"value\": \"4313\"\r\n // },\r\n // {\r\n // \"label\": \"湘西土家族苗族自治州\",\r\n // \"value\": \"4331\"\r\n // }\r\n // ],\r\n \r\n [\r\n\t // {\r\n // \"label\": \"广州市\",\r\n // \"value\": \"4401\"\r\n // },\r\n // {\r\n // \"label\": \"韶关市\",\r\n // \"value\": \"4402\"\r\n // },\r\n\t\r\n {\r\n \"label\": \"深圳市\",\r\n \"value\": \"4403\"\r\n }\r\n\t// ,\r\n // {\r\n // \"label\": \"珠海市\",\r\n // \"value\": \"4404\"\r\n // },\r\n // {\r\n // \"label\": \"汕头市\",\r\n // \"value\": \"4405\"\r\n // },\r\n // {\r\n // \"label\": \"佛山市\",\r\n // \"value\": \"4406\"\r\n // },\r\n // {\r\n // \"label\": \"江门市\",\r\n // \"value\": \"4407\"\r\n // },\r\n // {\r\n // \"label\": \"湛江市\",\r\n // \"value\": \"4408\"\r\n // },\r\n // {\r\n // \"label\": \"茂名市\",\r\n // \"value\": \"4409\"\r\n // },\r\n // {\r\n // \"label\": \"肇庆市\",\r\n // \"value\": \"4412\"\r\n // },\r\n // {\r\n // \"label\": \"惠州市\",\r\n // \"value\": \"4413\"\r\n // },\r\n // {\r\n // \"label\": \"梅州市\",\r\n // \"value\": \"4414\"\r\n // },\r\n // {\r\n // \"label\": \"汕尾市\",\r\n // \"value\": \"4415\"\r\n // },\r\n // {\r\n // \"label\": \"河源市\",\r\n // \"value\": \"4416\"\r\n // },\r\n // {\r\n // \"label\": \"阳江市\",\r\n // \"value\": \"4417\"\r\n // },\r\n // {\r\n // \"label\": \"清远市\",\r\n // \"value\": \"4418\"\r\n // },\r\n // {\r\n // \"label\": \"东莞市\",\r\n // \"value\": \"4419\"\r\n // },\r\n // {\r\n // \"label\": \"中山市\",\r\n // \"value\": \"4420\"\r\n // },\r\n // {\r\n // \"label\": \"潮州市\",\r\n // \"value\": \"4451\"\r\n // },\r\n // {\r\n // \"label\": \"揭阳市\",\r\n // \"value\": \"4452\"\r\n // },\r\n // {\r\n // \"label\": \"云浮市\",\r\n // \"value\": \"4453\"\r\n // }\r\n ]\r\n // ,\r\n // [{\r\n // \"label\": \"南宁市\",\r\n // \"value\": \"4501\"\r\n // },\r\n // {\r\n // \"label\": \"柳州市\",\r\n // \"value\": \"4502\"\r\n // },\r\n // {\r\n // \"label\": \"桂林市\",\r\n // \"value\": \"4503\"\r\n // },\r\n // {\r\n // \"label\": \"梧州市\",\r\n // \"value\": \"4504\"\r\n // },\r\n // {\r\n // \"label\": \"北海市\",\r\n // \"value\": \"4505\"\r\n // },\r\n // {\r\n // \"label\": \"防城港市\",\r\n // \"value\": \"4506\"\r\n // },\r\n // {\r\n // \"label\": \"钦州市\",\r\n // \"value\": \"4507\"\r\n // },\r\n // {\r\n // \"label\": \"贵港市\",\r\n // \"value\": \"4508\"\r\n // },\r\n // {\r\n // \"label\": \"玉林市\",\r\n // \"value\": \"4509\"\r\n // },\r\n // {\r\n // \"label\": \"百色市\",\r\n // \"value\": \"4510\"\r\n // },\r\n // {\r\n // \"label\": \"贺州市\",\r\n // \"value\": \"4511\"\r\n // },\r\n // {\r\n // \"label\": \"河池市\",\r\n // \"value\": \"4512\"\r\n // },\r\n // {\r\n // \"label\": \"来宾市\",\r\n // \"value\": \"4513\"\r\n // },\r\n // {\r\n // \"label\": \"崇左市\",\r\n // \"value\": \"4514\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"海口市\",\r\n // \"value\": \"4601\"\r\n // },\r\n // {\r\n // \"label\": \"三亚市\",\r\n // \"value\": \"4602\"\r\n // },\r\n // {\r\n // \"label\": \"三沙市\",\r\n // \"value\": \"4603\"\r\n // },\r\n // {\r\n // \"label\": \"儋州市\",\r\n // \"value\": \"4604\"\r\n // },\r\n // {\r\n // \"label\": \"省直辖县级行政区划\",\r\n // \"value\": \"4690\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"市辖区\",\r\n // \"value\": \"5001\"\r\n // },\r\n // {\r\n // \"label\": \"县\",\r\n // \"value\": \"5002\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"成都市\",\r\n // \"value\": \"5101\"\r\n // },\r\n // {\r\n // \"label\": \"自贡市\",\r\n // \"value\": \"5103\"\r\n // },\r\n // {\r\n // \"label\": \"攀枝花市\",\r\n // \"value\": \"5104\"\r\n // },\r\n // {\r\n // \"label\": \"泸州市\",\r\n // \"value\": \"5105\"\r\n // },\r\n // {\r\n // \"label\": \"德阳市\",\r\n // \"value\": \"5106\"\r\n // },\r\n // {\r\n // \"label\": \"绵阳市\",\r\n // \"value\": \"5107\"\r\n // },\r\n // {\r\n // \"label\": \"广元市\",\r\n // \"value\": \"5108\"\r\n // },\r\n // {\r\n // \"label\": \"遂宁市\",\r\n // \"value\": \"5109\"\r\n // },\r\n // {\r\n // \"label\": \"内江市\",\r\n // \"value\": \"5110\"\r\n // },\r\n // {\r\n // \"label\": \"乐山市\",\r\n // \"value\": \"5111\"\r\n // },\r\n // {\r\n // \"label\": \"南充市\",\r\n // \"value\": \"5113\"\r\n // },\r\n // {\r\n // \"label\": \"眉山市\",\r\n // \"value\": \"5114\"\r\n // },\r\n // {\r\n // \"label\": \"宜宾市\",\r\n // \"value\": \"5115\"\r\n // },\r\n // {\r\n // \"label\": \"广安市\",\r\n // \"value\": \"5116\"\r\n // },\r\n // {\r\n // \"label\": \"达州市\",\r\n // \"value\": \"5117\"\r\n // },\r\n // {\r\n // \"label\": \"雅安市\",\r\n // \"value\": \"5118\"\r\n // },\r\n // {\r\n // \"label\": \"巴中市\",\r\n // \"value\": \"5119\"\r\n // },\r\n // {\r\n // \"label\": \"资阳市\",\r\n // \"value\": \"5120\"\r\n // },\r\n // {\r\n // \"label\": \"阿坝藏族羌族自治州\",\r\n // \"value\": \"5132\"\r\n // },\r\n // {\r\n // \"label\": \"甘孜藏族自治州\",\r\n // \"value\": \"5133\"\r\n // },\r\n // {\r\n // \"label\": \"凉山彝族自治州\",\r\n // \"value\": \"5134\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"贵阳市\",\r\n // \"value\": \"5201\"\r\n // },\r\n // {\r\n // \"label\": \"六盘水市\",\r\n // \"value\": \"5202\"\r\n // },\r\n // {\r\n // \"label\": \"遵义市\",\r\n // \"value\": \"5203\"\r\n // },\r\n // {\r\n // \"label\": \"安顺市\",\r\n // \"value\": \"5204\"\r\n // },\r\n // {\r\n // \"label\": \"毕节市\",\r\n // \"value\": \"5205\"\r\n // },\r\n // {\r\n // \"label\": \"铜仁市\",\r\n // \"value\": \"5206\"\r\n // },\r\n // {\r\n // \"label\": \"黔西南布依族苗族自治州\",\r\n // \"value\": \"5223\"\r\n // },\r\n // {\r\n // \"label\": \"黔东南苗族侗族自治州\",\r\n // \"value\": \"5226\"\r\n // },\r\n // {\r\n // \"label\": \"黔南布依族苗族自治州\",\r\n // \"value\": \"5227\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"昆明市\",\r\n // \"value\": \"5301\"\r\n // },\r\n // {\r\n // \"label\": \"曲靖市\",\r\n // \"value\": \"5303\"\r\n // },\r\n // {\r\n // \"label\": \"玉溪市\",\r\n // \"value\": \"5304\"\r\n // },\r\n // {\r\n // \"label\": \"保山市\",\r\n // \"value\": \"5305\"\r\n // },\r\n // {\r\n // \"label\": \"昭通市\",\r\n // \"value\": \"5306\"\r\n // },\r\n // {\r\n // \"label\": \"丽江市\",\r\n // \"value\": \"5307\"\r\n // },\r\n // {\r\n // \"label\": \"普洱市\",\r\n // \"value\": \"5308\"\r\n // },\r\n // {\r\n // \"label\": \"临沧市\",\r\n // \"value\": \"5309\"\r\n // },\r\n // {\r\n // \"label\": \"楚雄彝族自治州\",\r\n // \"value\": \"5323\"\r\n // },\r\n // {\r\n // \"label\": \"红河哈尼族彝族自治州\",\r\n // \"value\": \"5325\"\r\n // },\r\n // {\r\n // \"label\": \"文山壮族苗族自治州\",\r\n // \"value\": \"5326\"\r\n // },\r\n // {\r\n // \"label\": \"西双版纳傣族自治州\",\r\n // \"value\": \"5328\"\r\n // },\r\n // {\r\n // \"label\": \"大理白族自治州\",\r\n // \"value\": \"5329\"\r\n // },\r\n // {\r\n // \"label\": \"德宏傣族景颇族自治州\",\r\n // \"value\": \"5331\"\r\n // },\r\n // {\r\n // \"label\": \"怒江傈僳族自治州\",\r\n // \"value\": \"5333\"\r\n // },\r\n // {\r\n // \"label\": \"迪庆藏族自治州\",\r\n // \"value\": \"5334\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"拉萨市\",\r\n // \"value\": \"5401\"\r\n // },\r\n // {\r\n // \"label\": \"日喀则市\",\r\n // \"value\": \"5402\"\r\n // },\r\n // {\r\n // \"label\": \"昌都市\",\r\n // \"value\": \"5403\"\r\n // },\r\n // {\r\n // \"label\": \"林芝市\",\r\n // \"value\": \"5404\"\r\n // },\r\n // {\r\n // \"label\": \"山南市\",\r\n // \"value\": \"5405\"\r\n // },\r\n // {\r\n // \"label\": \"那曲地区\",\r\n // \"value\": \"5424\"\r\n // },\r\n // {\r\n // \"label\": \"阿里地区\",\r\n // \"value\": \"5425\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"西安市\",\r\n // \"value\": \"6101\"\r\n // },\r\n // {\r\n // \"label\": \"铜川市\",\r\n // \"value\": \"6102\"\r\n // },\r\n // {\r\n // \"label\": \"宝鸡市\",\r\n // \"value\": \"6103\"\r\n // },\r\n // {\r\n // \"label\": \"咸阳市\",\r\n // \"value\": \"6104\"\r\n // },\r\n // {\r\n // \"label\": \"渭南市\",\r\n // \"value\": \"6105\"\r\n // },\r\n // {\r\n // \"label\": \"延安市\",\r\n // \"value\": \"6106\"\r\n // },\r\n // {\r\n // \"label\": \"汉中市\",\r\n // \"value\": \"6107\"\r\n // },\r\n // {\r\n // \"label\": \"榆林市\",\r\n // \"value\": \"6108\"\r\n // },\r\n // {\r\n // \"label\": \"安康市\",\r\n // \"value\": \"6109\"\r\n // },\r\n // {\r\n // \"label\": \"商洛市\",\r\n // \"value\": \"6110\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"兰州市\",\r\n // \"value\": \"6201\"\r\n // },\r\n // {\r\n // \"label\": \"嘉峪关市\",\r\n // \"value\": \"6202\"\r\n // },\r\n // {\r\n // \"label\": \"金昌市\",\r\n // \"value\": \"6203\"\r\n // },\r\n // {\r\n // \"label\": \"白银市\",\r\n // \"value\": \"6204\"\r\n // },\r\n // {\r\n // \"label\": \"天水市\",\r\n // \"value\": \"6205\"\r\n // },\r\n // {\r\n // \"label\": \"武威市\",\r\n // \"value\": \"6206\"\r\n // },\r\n // {\r\n // \"label\": \"张掖市\",\r\n // \"value\": \"6207\"\r\n // },\r\n // {\r\n // \"label\": \"平凉市\",\r\n // \"value\": \"6208\"\r\n // },\r\n // {\r\n // \"label\": \"酒泉市\",\r\n // \"value\": \"6209\"\r\n // },\r\n // {\r\n // \"label\": \"庆阳市\",\r\n // \"value\": \"6210\"\r\n // },\r\n // {\r\n // \"label\": \"定西市\",\r\n // \"value\": \"6211\"\r\n // },\r\n // {\r\n // \"label\": \"陇南市\",\r\n // \"value\": \"6212\"\r\n // },\r\n // {\r\n // \"label\": \"临夏回族自治州\",\r\n // \"value\": \"6229\"\r\n // },\r\n // {\r\n // \"label\": \"甘南藏族自治州\",\r\n // \"value\": \"6230\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"西宁市\",\r\n // \"value\": \"6301\"\r\n // },\r\n // {\r\n // \"label\": \"海东市\",\r\n // \"value\": \"6302\"\r\n // },\r\n // {\r\n // \"label\": \"海北藏族自治州\",\r\n // \"value\": \"6322\"\r\n // },\r\n // {\r\n // \"label\": \"黄南藏族自治州\",\r\n // \"value\": \"6323\"\r\n // },\r\n // {\r\n // \"label\": \"海南藏族自治州\",\r\n // \"value\": \"6325\"\r\n // },\r\n // {\r\n // \"label\": \"果洛藏族自治州\",\r\n // \"value\": \"6326\"\r\n // },\r\n // {\r\n // \"label\": \"玉树藏族自治州\",\r\n // \"value\": \"6327\"\r\n // },\r\n // {\r\n // \"label\": \"海西蒙古族藏族自治州\",\r\n // \"value\": \"6328\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"银川市\",\r\n // \"value\": \"6401\"\r\n // },\r\n // {\r\n // \"label\": \"石嘴山市\",\r\n // \"value\": \"6402\"\r\n // },\r\n // {\r\n // \"label\": \"吴忠市\",\r\n // \"value\": \"6403\"\r\n // },\r\n // {\r\n // \"label\": \"固原市\",\r\n // \"value\": \"6404\"\r\n // },\r\n // {\r\n // \"label\": \"中卫市\",\r\n // \"value\": \"6405\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"乌鲁木齐市\",\r\n // \"value\": \"6501\"\r\n // },\r\n // {\r\n // \"label\": \"克拉玛依市\",\r\n // \"value\": \"6502\"\r\n // },\r\n // {\r\n // \"label\": \"吐鲁番市\",\r\n // \"value\": \"6504\"\r\n // },\r\n // {\r\n // \"label\": \"哈密市\",\r\n // \"value\": \"6505\"\r\n // },\r\n // {\r\n // \"label\": \"昌吉回族自治州\",\r\n // \"value\": \"6523\"\r\n // },\r\n // {\r\n // \"label\": \"博尔塔拉蒙古自治州\",\r\n // \"value\": \"6527\"\r\n // },\r\n // {\r\n // \"label\": \"巴音郭楞蒙古自治州\",\r\n // \"value\": \"6528\"\r\n // },\r\n // {\r\n // \"label\": \"阿克苏地区\",\r\n // \"value\": \"6529\"\r\n // },\r\n // {\r\n // \"label\": \"克孜勒苏柯尔克孜自治州\",\r\n // \"value\": \"6530\"\r\n // },\r\n // {\r\n // \"label\": \"喀什地区\",\r\n // \"value\": \"6531\"\r\n // },\r\n // {\r\n // \"label\": \"和田地区\",\r\n // \"value\": \"6532\"\r\n // },\r\n // {\r\n // \"label\": \"伊犁哈萨克自治州\",\r\n // \"value\": \"6540\"\r\n // },\r\n // {\r\n // \"label\": \"塔城地区\",\r\n // \"value\": \"6542\"\r\n // },\r\n // {\r\n // \"label\": \"阿勒泰地区\",\r\n // \"value\": \"6543\"\r\n // },\r\n // {\r\n // \"label\": \"自治区直辖县级行政区划\",\r\n // \"value\": \"6590\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"台北\",\r\n // \"value\": \"6601\"\r\n // },\r\n // {\r\n // \"label\": \"高雄\",\r\n // \"value\": \"6602\"\r\n // },\r\n // {\r\n // \"label\": \"基隆\",\r\n // \"value\": \"6603\"\r\n // },\r\n // {\r\n // \"label\": \"台中\",\r\n // \"value\": \"6604\"\r\n // },\r\n // {\r\n // \"label\": \"台南\",\r\n // \"value\": \"6605\"\r\n // },\r\n // {\r\n // \"label\": \"新竹\",\r\n // \"value\": \"6606\"\r\n // },\r\n // {\r\n // \"label\": \"嘉义\",\r\n // \"value\": \"6607\"\r\n // },\r\n // {\r\n // \"label\": \"宜兰\",\r\n // \"value\": \"6608\"\r\n // },\r\n // {\r\n // \"label\": \"桃园\",\r\n // \"value\": \"6609\"\r\n // },\r\n // {\r\n // \"label\": \"苗栗\",\r\n // \"value\": \"6610\"\r\n // },\r\n // {\r\n // \"label\": \"彰化\",\r\n // \"value\": \"6611\"\r\n // },\r\n // {\r\n // \"label\": \"南投\",\r\n // \"value\": \"6612\"\r\n // },\r\n // {\r\n // \"label\": \"云林\",\r\n // \"value\": \"6613\"\r\n // },\r\n // {\r\n // \"label\": \"屏东\",\r\n // \"value\": \"6614\"\r\n // },\r\n // {\r\n // \"label\": \"台东\",\r\n // \"value\": \"6615\"\r\n // },\r\n // {\r\n // \"label\": \"花莲\",\r\n // \"value\": \"6616\"\r\n // },\r\n // {\r\n // \"label\": \"澎湖\",\r\n // \"value\": \"6617\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"香港岛\",\r\n // \"value\": \"6701\"\r\n // },\r\n // {\r\n // \"label\": \"九龙\",\r\n // \"value\": \"6702\"\r\n // },\r\n // {\r\n // \"label\": \"新界\",\r\n // \"value\": \"6703\"\r\n // }\r\n // ],\r\n // [{\r\n // \"label\": \"澳门半岛\",\r\n // \"value\": \"6801\"\r\n // },\r\n // {\r\n // \"label\": \"氹仔岛\",\r\n // \"value\": \"6802\"\r\n // },\r\n // {\r\n // \"label\": \"路环岛\",\r\n // \"value\": \"6803\"\r\n // },\r\n // {\r\n // \"label\": \"路氹城\",\r\n // \"value\": \"6804\"\r\n // }\r\n // ]\r\n\r\n]\r\nexport default cityData;\r\n","// /* eslint-disable */\r\n var areaData = [\r\n// [\r\n// [{\r\n// \"label\": \"东城区\",\r\n// \"value\": \"110101\"\r\n// },\r\n// {\r\n// \"label\": \"西城区\",\r\n// \"value\": \"110102\"\r\n// },\r\n// {\r\n// \"label\": \"朝阳区\",\r\n// \"value\": \"110105\"\r\n// },\r\n// {\r\n// \"label\": \"丰台区\",\r\n// \"value\": \"110106\"\r\n// },\r\n// {\r\n// \"label\": \"石景山区\",\r\n// \"value\": \"110107\"\r\n// },\r\n// {\r\n// \"label\": \"海淀区\",\r\n// \"value\": \"110108\"\r\n// },\r\n// {\r\n// \"label\": \"门头沟区\",\r\n// \"value\": \"110109\"\r\n// },\r\n// {\r\n// \"label\": \"房山区\",\r\n// \"value\": \"110111\"\r\n// },\r\n// {\r\n// \"label\": \"通州区\",\r\n// \"value\": \"110112\"\r\n// },\r\n// {\r\n// \"label\": \"顺义区\",\r\n// \"value\": \"110113\"\r\n// },\r\n// {\r\n// \"label\": \"昌平区\",\r\n// \"value\": \"110114\"\r\n// },\r\n// {\r\n// \"label\": \"大兴区\",\r\n// \"value\": \"110115\"\r\n// },\r\n// {\r\n// \"label\": \"怀柔区\",\r\n// \"value\": \"110116\"\r\n// },\r\n// {\r\n// \"label\": \"平谷区\",\r\n// \"value\": \"110117\"\r\n// },\r\n// {\r\n// \"label\": \"密云区\",\r\n// \"value\": \"110118\"\r\n// },\r\n// {\r\n// \"label\": \"延庆区\",\r\n// \"value\": \"110119\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"和平区\",\r\n// \"value\": \"120101\"\r\n// },\r\n// {\r\n// \"label\": \"河东区\",\r\n// \"value\": \"120102\"\r\n// },\r\n// {\r\n// \"label\": \"河西区\",\r\n// \"value\": \"120103\"\r\n// },\r\n// {\r\n// \"label\": \"南开区\",\r\n// \"value\": \"120104\"\r\n// },\r\n// {\r\n// \"label\": \"河北区\",\r\n// \"value\": \"120105\"\r\n// },\r\n// {\r\n// \"label\": \"红桥区\",\r\n// \"value\": \"120106\"\r\n// },\r\n// {\r\n// \"label\": \"东丽区\",\r\n// \"value\": \"120110\"\r\n// },\r\n// {\r\n// \"label\": \"西青区\",\r\n// \"value\": \"120111\"\r\n// },\r\n// {\r\n// \"label\": \"津南区\",\r\n// \"value\": \"120112\"\r\n// },\r\n// {\r\n// \"label\": \"北辰区\",\r\n// \"value\": \"120113\"\r\n// },\r\n// {\r\n// \"label\": \"武清区\",\r\n// \"value\": \"120114\"\r\n// },\r\n// {\r\n// \"label\": \"宝坻区\",\r\n// \"value\": \"120115\"\r\n// },\r\n// {\r\n// \"label\": \"滨海新区\",\r\n// \"value\": \"120116\"\r\n// },\r\n// {\r\n// \"label\": \"宁河区\",\r\n// \"value\": \"120117\"\r\n// },\r\n// {\r\n// \"label\": \"静海区\",\r\n// \"value\": \"120118\"\r\n// },\r\n// {\r\n// \"label\": \"蓟州区\",\r\n// \"value\": \"120119\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"长安区\",\r\n// \"value\": \"130102\"\r\n// },\r\n// {\r\n// \"label\": \"桥西区\",\r\n// \"value\": \"130104\"\r\n// },\r\n// {\r\n// \"label\": \"新华区\",\r\n// \"value\": \"130105\"\r\n// },\r\n// {\r\n// \"label\": \"井陉矿区\",\r\n// \"value\": \"130107\"\r\n// },\r\n// {\r\n// \"label\": \"裕华区\",\r\n// \"value\": \"130108\"\r\n// },\r\n// {\r\n// \"label\": \"藁城区\",\r\n// \"value\": \"130109\"\r\n// },\r\n// {\r\n// \"label\": \"鹿泉区\",\r\n// \"value\": \"130110\"\r\n// },\r\n// {\r\n// \"label\": \"栾城区\",\r\n// \"value\": \"130111\"\r\n// },\r\n// {\r\n// \"label\": \"井陉县\",\r\n// \"value\": \"130121\"\r\n// },\r\n// {\r\n// \"label\": \"正定县\",\r\n// \"value\": \"130123\"\r\n// },\r\n// {\r\n// \"label\": \"行唐县\",\r\n// \"value\": \"130125\"\r\n// },\r\n// {\r\n// \"label\": \"灵寿县\",\r\n// \"value\": \"130126\"\r\n// },\r\n// {\r\n// \"label\": \"高邑县\",\r\n// \"value\": \"130127\"\r\n// },\r\n// {\r\n// \"label\": \"深泽县\",\r\n// \"value\": \"130128\"\r\n// },\r\n// {\r\n// \"label\": \"赞皇县\",\r\n// \"value\": \"130129\"\r\n// },\r\n// {\r\n// \"label\": \"无极县\",\r\n// \"value\": \"130130\"\r\n// },\r\n// {\r\n// \"label\": \"平山县\",\r\n// \"value\": \"130131\"\r\n// },\r\n// {\r\n// \"label\": \"元氏县\",\r\n// \"value\": \"130132\"\r\n// },\r\n// {\r\n// \"label\": \"赵县\",\r\n// \"value\": \"130133\"\r\n// },\r\n// {\r\n// \"label\": \"石家庄高新技术产业开发区\",\r\n// \"value\": \"130171\"\r\n// },\r\n// {\r\n// \"label\": \"石家庄循环化工园区\",\r\n// \"value\": \"130172\"\r\n// },\r\n// {\r\n// \"label\": \"辛集市\",\r\n// \"value\": \"130181\"\r\n// },\r\n// {\r\n// \"label\": \"晋州市\",\r\n// \"value\": \"130183\"\r\n// },\r\n// {\r\n// \"label\": \"新乐市\",\r\n// \"value\": \"130184\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"路南区\",\r\n// \"value\": \"130202\"\r\n// },\r\n// {\r\n// \"label\": \"路北区\",\r\n// \"value\": \"130203\"\r\n// },\r\n// {\r\n// \"label\": \"古冶区\",\r\n// \"value\": \"130204\"\r\n// },\r\n// {\r\n// \"label\": \"开平区\",\r\n// \"value\": \"130205\"\r\n// },\r\n// {\r\n// \"label\": \"丰南区\",\r\n// \"value\": \"130207\"\r\n// },\r\n// {\r\n// \"label\": \"丰润区\",\r\n// \"value\": \"130208\"\r\n// },\r\n// {\r\n// \"label\": \"曹妃甸区\",\r\n// \"value\": \"130209\"\r\n// },\r\n// {\r\n// \"label\": \"滦县\",\r\n// \"value\": \"130223\"\r\n// },\r\n// {\r\n// \"label\": \"滦南县\",\r\n// \"value\": \"130224\"\r\n// },\r\n// {\r\n// \"label\": \"乐亭县\",\r\n// \"value\": \"130225\"\r\n// },\r\n// {\r\n// \"label\": \"迁西县\",\r\n// \"value\": \"130227\"\r\n// },\r\n// {\r\n// \"label\": \"玉田县\",\r\n// \"value\": \"130229\"\r\n// },\r\n// {\r\n// \"label\": \"唐山市芦台经济技术开发区\",\r\n// \"value\": \"130271\"\r\n// },\r\n// {\r\n// \"label\": \"唐山市汉沽管理区\",\r\n// \"value\": \"130272\"\r\n// },\r\n// {\r\n// \"label\": \"唐山高新技术产业开发区\",\r\n// \"value\": \"130273\"\r\n// },\r\n// {\r\n// \"label\": \"河北唐山海港经济开发区\",\r\n// \"value\": \"130274\"\r\n// },\r\n// {\r\n// \"label\": \"遵化市\",\r\n// \"value\": \"130281\"\r\n// },\r\n// {\r\n// \"label\": \"迁安市\",\r\n// \"value\": \"130283\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"海港区\",\r\n// \"value\": \"130302\"\r\n// },\r\n// {\r\n// \"label\": \"山海关区\",\r\n// \"value\": \"130303\"\r\n// },\r\n// {\r\n// \"label\": \"北戴河区\",\r\n// \"value\": \"130304\"\r\n// },\r\n// {\r\n// \"label\": \"抚宁区\",\r\n// \"value\": \"130306\"\r\n// },\r\n// {\r\n// \"label\": \"青龙满族自治县\",\r\n// \"value\": \"130321\"\r\n// },\r\n// {\r\n// \"label\": \"昌黎县\",\r\n// \"value\": \"130322\"\r\n// },\r\n// {\r\n// \"label\": \"卢龙县\",\r\n// \"value\": \"130324\"\r\n// },\r\n// {\r\n// \"label\": \"秦皇岛市经济技术开发区\",\r\n// \"value\": \"130371\"\r\n// },\r\n// {\r\n// \"label\": \"北戴河新区\",\r\n// \"value\": \"130372\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"邯山区\",\r\n// \"value\": \"130402\"\r\n// },\r\n// {\r\n// \"label\": \"丛台区\",\r\n// \"value\": \"130403\"\r\n// },\r\n// {\r\n// \"label\": \"复兴区\",\r\n// \"value\": \"130404\"\r\n// },\r\n// {\r\n// \"label\": \"峰峰矿区\",\r\n// \"value\": \"130406\"\r\n// },\r\n// {\r\n// \"label\": \"肥乡区\",\r\n// \"value\": \"130407\"\r\n// },\r\n// {\r\n// \"label\": \"永年区\",\r\n// \"value\": \"130408\"\r\n// },\r\n// {\r\n// \"label\": \"临漳县\",\r\n// \"value\": \"130423\"\r\n// },\r\n// {\r\n// \"label\": \"成安县\",\r\n// \"value\": \"130424\"\r\n// },\r\n// {\r\n// \"label\": \"大名县\",\r\n// \"value\": \"130425\"\r\n// },\r\n// {\r\n// \"label\": \"涉县\",\r\n// \"value\": \"130426\"\r\n// },\r\n// {\r\n// \"label\": \"磁县\",\r\n// \"value\": \"130427\"\r\n// },\r\n// {\r\n// \"label\": \"邱县\",\r\n// \"value\": \"130430\"\r\n// },\r\n// {\r\n// \"label\": \"鸡泽县\",\r\n// \"value\": \"130431\"\r\n// },\r\n// {\r\n// \"label\": \"广平县\",\r\n// \"value\": \"130432\"\r\n// },\r\n// {\r\n// \"label\": \"馆陶县\",\r\n// \"value\": \"130433\"\r\n// },\r\n// {\r\n// \"label\": \"魏县\",\r\n// \"value\": \"130434\"\r\n// },\r\n// {\r\n// \"label\": \"曲周县\",\r\n// \"value\": \"130435\"\r\n// },\r\n// {\r\n// \"label\": \"邯郸经济技术开发区\",\r\n// \"value\": \"130471\"\r\n// },\r\n// {\r\n// \"label\": \"邯郸冀南新区\",\r\n// \"value\": \"130473\"\r\n// },\r\n// {\r\n// \"label\": \"武安市\",\r\n// \"value\": \"130481\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"桥东区\",\r\n// \"value\": \"130502\"\r\n// },\r\n// {\r\n// \"label\": \"桥西区\",\r\n// \"value\": \"130503\"\r\n// },\r\n// {\r\n// \"label\": \"邢台县\",\r\n// \"value\": \"130521\"\r\n// },\r\n// {\r\n// \"label\": \"临城县\",\r\n// \"value\": \"130522\"\r\n// },\r\n// {\r\n// \"label\": \"内丘县\",\r\n// \"value\": \"130523\"\r\n// },\r\n// {\r\n// \"label\": \"柏乡县\",\r\n// \"value\": \"130524\"\r\n// },\r\n// {\r\n// \"label\": \"隆尧县\",\r\n// \"value\": \"130525\"\r\n// },\r\n// {\r\n// \"label\": \"任县\",\r\n// \"value\": \"130526\"\r\n// },\r\n// {\r\n// \"label\": \"南和县\",\r\n// \"value\": \"130527\"\r\n// },\r\n// {\r\n// \"label\": \"宁晋县\",\r\n// \"value\": \"130528\"\r\n// },\r\n// {\r\n// \"label\": \"巨鹿县\",\r\n// \"value\": \"130529\"\r\n// },\r\n// {\r\n// \"label\": \"新河县\",\r\n// \"value\": \"130530\"\r\n// },\r\n// {\r\n// \"label\": \"广宗县\",\r\n// \"value\": \"130531\"\r\n// },\r\n// {\r\n// \"label\": \"平乡县\",\r\n// \"value\": \"130532\"\r\n// },\r\n// {\r\n// \"label\": \"威县\",\r\n// \"value\": \"130533\"\r\n// },\r\n// {\r\n// \"label\": \"清河县\",\r\n// \"value\": \"130534\"\r\n// },\r\n// {\r\n// \"label\": \"临西县\",\r\n// \"value\": \"130535\"\r\n// },\r\n// {\r\n// \"label\": \"河北邢台经济开发区\",\r\n// \"value\": \"130571\"\r\n// },\r\n// {\r\n// \"label\": \"南宫市\",\r\n// \"value\": \"130581\"\r\n// },\r\n// {\r\n// \"label\": \"沙河市\",\r\n// \"value\": \"130582\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"竞秀区\",\r\n// \"value\": \"130602\"\r\n// },\r\n// {\r\n// \"label\": \"莲池区\",\r\n// \"value\": \"130606\"\r\n// },\r\n// {\r\n// \"label\": \"满城区\",\r\n// \"value\": \"130607\"\r\n// },\r\n// {\r\n// \"label\": \"清苑区\",\r\n// \"value\": \"130608\"\r\n// },\r\n// {\r\n// \"label\": \"徐水区\",\r\n// \"value\": \"130609\"\r\n// },\r\n// {\r\n// \"label\": \"涞水县\",\r\n// \"value\": \"130623\"\r\n// },\r\n// {\r\n// \"label\": \"阜平县\",\r\n// \"value\": \"130624\"\r\n// },\r\n// {\r\n// \"label\": \"定兴县\",\r\n// \"value\": \"130626\"\r\n// },\r\n// {\r\n// \"label\": \"唐县\",\r\n// \"value\": \"130627\"\r\n// },\r\n// {\r\n// \"label\": \"高阳县\",\r\n// \"value\": \"130628\"\r\n// },\r\n// {\r\n// \"label\": \"容城县\",\r\n// \"value\": \"130629\"\r\n// },\r\n// {\r\n// \"label\": \"涞源县\",\r\n// \"value\": \"130630\"\r\n// },\r\n// {\r\n// \"label\": \"望都县\",\r\n// \"value\": \"130631\"\r\n// },\r\n// {\r\n// \"label\": \"安新县\",\r\n// \"value\": \"130632\"\r\n// },\r\n// {\r\n// \"label\": \"易县\",\r\n// \"value\": \"130633\"\r\n// },\r\n// {\r\n// \"label\": \"曲阳县\",\r\n// \"value\": \"130634\"\r\n// },\r\n// {\r\n// \"label\": \"蠡县\",\r\n// \"value\": \"130635\"\r\n// },\r\n// {\r\n// \"label\": \"顺平县\",\r\n// \"value\": \"130636\"\r\n// },\r\n// {\r\n// \"label\": \"博野县\",\r\n// \"value\": \"130637\"\r\n// },\r\n// {\r\n// \"label\": \"雄县\",\r\n// \"value\": \"130638\"\r\n// },\r\n// {\r\n// \"label\": \"保定高新技术产业开发区\",\r\n// \"value\": \"130671\"\r\n// },\r\n// {\r\n// \"label\": \"保定白沟新城\",\r\n// \"value\": \"130672\"\r\n// },\r\n// {\r\n// \"label\": \"涿州市\",\r\n// \"value\": \"130681\"\r\n// },\r\n// {\r\n// \"label\": \"定州市\",\r\n// \"value\": \"130682\"\r\n// },\r\n// {\r\n// \"label\": \"安国市\",\r\n// \"value\": \"130683\"\r\n// },\r\n// {\r\n// \"label\": \"高碑店市\",\r\n// \"value\": \"130684\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"桥东区\",\r\n// \"value\": \"130702\"\r\n// },\r\n// {\r\n// \"label\": \"桥西区\",\r\n// \"value\": \"130703\"\r\n// },\r\n// {\r\n// \"label\": \"宣化区\",\r\n// \"value\": \"130705\"\r\n// },\r\n// {\r\n// \"label\": \"下花园区\",\r\n// \"value\": \"130706\"\r\n// },\r\n// {\r\n// \"label\": \"万全区\",\r\n// \"value\": \"130708\"\r\n// },\r\n// {\r\n// \"label\": \"崇礼区\",\r\n// \"value\": \"130709\"\r\n// },\r\n// {\r\n// \"label\": \"张北县\",\r\n// \"value\": \"130722\"\r\n// },\r\n// {\r\n// \"label\": \"康保县\",\r\n// \"value\": \"130723\"\r\n// },\r\n// {\r\n// \"label\": \"沽源县\",\r\n// \"value\": \"130724\"\r\n// },\r\n// {\r\n// \"label\": \"尚义县\",\r\n// \"value\": \"130725\"\r\n// },\r\n// {\r\n// \"label\": \"蔚县\",\r\n// \"value\": \"130726\"\r\n// },\r\n// {\r\n// \"label\": \"阳原县\",\r\n// \"value\": \"130727\"\r\n// },\r\n// {\r\n// \"label\": \"怀安县\",\r\n// \"value\": \"130728\"\r\n// },\r\n// {\r\n// \"label\": \"怀来县\",\r\n// \"value\": \"130730\"\r\n// },\r\n// {\r\n// \"label\": \"涿鹿县\",\r\n// \"value\": \"130731\"\r\n// },\r\n// {\r\n// \"label\": \"赤城县\",\r\n// \"value\": \"130732\"\r\n// },\r\n// {\r\n// \"label\": \"张家口市高新技术产业开发区\",\r\n// \"value\": \"130771\"\r\n// },\r\n// {\r\n// \"label\": \"张家口市察北管理区\",\r\n// \"value\": \"130772\"\r\n// },\r\n// {\r\n// \"label\": \"张家口市塞北管理区\",\r\n// \"value\": \"130773\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"双桥区\",\r\n// \"value\": \"130802\"\r\n// },\r\n// {\r\n// \"label\": \"双滦区\",\r\n// \"value\": \"130803\"\r\n// },\r\n// {\r\n// \"label\": \"鹰手营子矿区\",\r\n// \"value\": \"130804\"\r\n// },\r\n// {\r\n// \"label\": \"承德县\",\r\n// \"value\": \"130821\"\r\n// },\r\n// {\r\n// \"label\": \"兴隆县\",\r\n// \"value\": \"130822\"\r\n// },\r\n// {\r\n// \"label\": \"滦平县\",\r\n// \"value\": \"130824\"\r\n// },\r\n// {\r\n// \"label\": \"隆化县\",\r\n// \"value\": \"130825\"\r\n// },\r\n// {\r\n// \"label\": \"丰宁满族自治县\",\r\n// \"value\": \"130826\"\r\n// },\r\n// {\r\n// \"label\": \"宽城满族自治县\",\r\n// \"value\": \"130827\"\r\n// },\r\n// {\r\n// \"label\": \"围场满族蒙古族自治县\",\r\n// \"value\": \"130828\"\r\n// },\r\n// {\r\n// \"label\": \"承德高新技术产业开发区\",\r\n// \"value\": \"130871\"\r\n// },\r\n// {\r\n// \"label\": \"平泉市\",\r\n// \"value\": \"130881\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"新华区\",\r\n// \"value\": \"130902\"\r\n// },\r\n// {\r\n// \"label\": \"运河区\",\r\n// \"value\": \"130903\"\r\n// },\r\n// {\r\n// \"label\": \"沧县\",\r\n// \"value\": \"130921\"\r\n// },\r\n// {\r\n// \"label\": \"青县\",\r\n// \"value\": \"130922\"\r\n// },\r\n// {\r\n// \"label\": \"东光县\",\r\n// \"value\": \"130923\"\r\n// },\r\n// {\r\n// \"label\": \"海兴县\",\r\n// \"value\": \"130924\"\r\n// },\r\n// {\r\n// \"label\": \"盐山县\",\r\n// \"value\": \"130925\"\r\n// },\r\n// {\r\n// \"label\": \"肃宁县\",\r\n// \"value\": \"130926\"\r\n// },\r\n// {\r\n// \"label\": \"南皮县\",\r\n// \"value\": \"130927\"\r\n// },\r\n// {\r\n// \"label\": \"吴桥县\",\r\n// \"value\": \"130928\"\r\n// },\r\n// {\r\n// \"label\": \"献县\",\r\n// \"value\": \"130929\"\r\n// },\r\n// {\r\n// \"label\": \"孟村回族自治县\",\r\n// \"value\": \"130930\"\r\n// },\r\n// {\r\n// \"label\": \"河北沧州经济开发区\",\r\n// \"value\": \"130971\"\r\n// },\r\n// {\r\n// \"label\": \"沧州高新技术产业开发区\",\r\n// \"value\": \"130972\"\r\n// },\r\n// {\r\n// \"label\": \"沧州渤海新区\",\r\n// \"value\": \"130973\"\r\n// },\r\n// {\r\n// \"label\": \"泊头市\",\r\n// \"value\": \"130981\"\r\n// },\r\n// {\r\n// \"label\": \"任丘市\",\r\n// \"value\": \"130982\"\r\n// },\r\n// {\r\n// \"label\": \"黄骅市\",\r\n// \"value\": \"130983\"\r\n// },\r\n// {\r\n// \"label\": \"河间市\",\r\n// \"value\": \"130984\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"安次区\",\r\n// \"value\": \"131002\"\r\n// },\r\n// {\r\n// \"label\": \"广阳区\",\r\n// \"value\": \"131003\"\r\n// },\r\n// {\r\n// \"label\": \"固安县\",\r\n// \"value\": \"131022\"\r\n// },\r\n// {\r\n// \"label\": \"永清县\",\r\n// \"value\": \"131023\"\r\n// },\r\n// {\r\n// \"label\": \"香河县\",\r\n// \"value\": \"131024\"\r\n// },\r\n// {\r\n// \"label\": \"大城县\",\r\n// \"value\": \"131025\"\r\n// },\r\n// {\r\n// \"label\": \"文安县\",\r\n// \"value\": \"131026\"\r\n// },\r\n// {\r\n// \"label\": \"大厂回族自治县\",\r\n// \"value\": \"131028\"\r\n// },\r\n// {\r\n// \"label\": \"廊坊经济技术开发区\",\r\n// \"value\": \"131071\"\r\n// },\r\n// {\r\n// \"label\": \"霸州市\",\r\n// \"value\": \"131081\"\r\n// },\r\n// {\r\n// \"label\": \"三河市\",\r\n// \"value\": \"131082\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"桃城区\",\r\n// \"value\": \"131102\"\r\n// },\r\n// {\r\n// \"label\": \"冀州区\",\r\n// \"value\": \"131103\"\r\n// },\r\n// {\r\n// \"label\": \"枣强县\",\r\n// \"value\": \"131121\"\r\n// },\r\n// {\r\n// \"label\": \"武邑县\",\r\n// \"value\": \"131122\"\r\n// },\r\n// {\r\n// \"label\": \"武强县\",\r\n// \"value\": \"131123\"\r\n// },\r\n// {\r\n// \"label\": \"饶阳县\",\r\n// \"value\": \"131124\"\r\n// },\r\n// {\r\n// \"label\": \"安平县\",\r\n// \"value\": \"131125\"\r\n// },\r\n// {\r\n// \"label\": \"故城县\",\r\n// \"value\": \"131126\"\r\n// },\r\n// {\r\n// \"label\": \"景县\",\r\n// \"value\": \"131127\"\r\n// },\r\n// {\r\n// \"label\": \"阜城县\",\r\n// \"value\": \"131128\"\r\n// },\r\n// {\r\n// \"label\": \"河北衡水经济开发区\",\r\n// \"value\": \"131171\"\r\n// },\r\n// {\r\n// \"label\": \"衡水滨湖新区\",\r\n// \"value\": \"131172\"\r\n// },\r\n// {\r\n// \"label\": \"深州市\",\r\n// \"value\": \"131182\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"小店区\",\r\n// \"value\": \"140105\"\r\n// },\r\n// {\r\n// \"label\": \"迎泽区\",\r\n// \"value\": \"140106\"\r\n// },\r\n// {\r\n// \"label\": \"杏花岭区\",\r\n// \"value\": \"140107\"\r\n// },\r\n// {\r\n// \"label\": \"尖草坪区\",\r\n// \"value\": \"140108\"\r\n// },\r\n// {\r\n// \"label\": \"万柏林区\",\r\n// \"value\": \"140109\"\r\n// },\r\n// {\r\n// \"label\": \"晋源区\",\r\n// \"value\": \"140110\"\r\n// },\r\n// {\r\n// \"label\": \"清徐县\",\r\n// \"value\": \"140121\"\r\n// },\r\n// {\r\n// \"label\": \"阳曲县\",\r\n// \"value\": \"140122\"\r\n// },\r\n// {\r\n// \"label\": \"娄烦县\",\r\n// \"value\": \"140123\"\r\n// },\r\n// {\r\n// \"label\": \"山西转型综合改革示范区\",\r\n// \"value\": \"140171\"\r\n// },\r\n// {\r\n// \"label\": \"古交市\",\r\n// \"value\": \"140181\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"城区\",\r\n// \"value\": \"140202\"\r\n// },\r\n// {\r\n// \"label\": \"矿区\",\r\n// \"value\": \"140203\"\r\n// },\r\n// {\r\n// \"label\": \"南郊区\",\r\n// \"value\": \"140211\"\r\n// },\r\n// {\r\n// \"label\": \"新荣区\",\r\n// \"value\": \"140212\"\r\n// },\r\n// {\r\n// \"label\": \"阳高县\",\r\n// \"value\": \"140221\"\r\n// },\r\n// {\r\n// \"label\": \"天镇县\",\r\n// \"value\": \"140222\"\r\n// },\r\n// {\r\n// \"label\": \"广灵县\",\r\n// \"value\": \"140223\"\r\n// },\r\n// {\r\n// \"label\": \"灵丘县\",\r\n// \"value\": \"140224\"\r\n// },\r\n// {\r\n// \"label\": \"浑源县\",\r\n// \"value\": \"140225\"\r\n// },\r\n// {\r\n// \"label\": \"左云县\",\r\n// \"value\": \"140226\"\r\n// },\r\n// {\r\n// \"label\": \"大同县\",\r\n// \"value\": \"140227\"\r\n// },\r\n// {\r\n// \"label\": \"山西大同经济开发区\",\r\n// \"value\": \"140271\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"城区\",\r\n// \"value\": \"140302\"\r\n// },\r\n// {\r\n// \"label\": \"矿区\",\r\n// \"value\": \"140303\"\r\n// },\r\n// {\r\n// \"label\": \"郊区\",\r\n// \"value\": \"140311\"\r\n// },\r\n// {\r\n// \"label\": \"平定县\",\r\n// \"value\": \"140321\"\r\n// },\r\n// {\r\n// \"label\": \"盂县\",\r\n// \"value\": \"140322\"\r\n// },\r\n// {\r\n// \"label\": \"山西阳泉经济开发区\",\r\n// \"value\": \"140371\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"城区\",\r\n// \"value\": \"140402\"\r\n// },\r\n// {\r\n// \"label\": \"郊区\",\r\n// \"value\": \"140411\"\r\n// },\r\n// {\r\n// \"label\": \"长治县\",\r\n// \"value\": \"140421\"\r\n// },\r\n// {\r\n// \"label\": \"襄垣县\",\r\n// \"value\": \"140423\"\r\n// },\r\n// {\r\n// \"label\": \"屯留县\",\r\n// \"value\": \"140424\"\r\n// },\r\n// {\r\n// \"label\": \"平顺县\",\r\n// \"value\": \"140425\"\r\n// },\r\n// {\r\n// \"label\": \"黎城县\",\r\n// \"value\": \"140426\"\r\n// },\r\n// {\r\n// \"label\": \"壶关县\",\r\n// \"value\": \"140427\"\r\n// },\r\n// {\r\n// \"label\": \"长子县\",\r\n// \"value\": \"140428\"\r\n// },\r\n// {\r\n// \"label\": \"武乡县\",\r\n// \"value\": \"140429\"\r\n// },\r\n// {\r\n// \"label\": \"沁县\",\r\n// \"value\": \"140430\"\r\n// },\r\n// {\r\n// \"label\": \"沁源县\",\r\n// \"value\": \"140431\"\r\n// },\r\n// {\r\n// \"label\": \"山西长治高新技术产业园区\",\r\n// \"value\": \"140471\"\r\n// },\r\n// {\r\n// \"label\": \"潞城市\",\r\n// \"value\": \"140481\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"城区\",\r\n// \"value\": \"140502\"\r\n// },\r\n// {\r\n// \"label\": \"沁水县\",\r\n// \"value\": \"140521\"\r\n// },\r\n// {\r\n// \"label\": \"阳城县\",\r\n// \"value\": \"140522\"\r\n// },\r\n// {\r\n// \"label\": \"陵川县\",\r\n// \"value\": \"140524\"\r\n// },\r\n// {\r\n// \"label\": \"泽州县\",\r\n// \"value\": \"140525\"\r\n// },\r\n// {\r\n// \"label\": \"高平市\",\r\n// \"value\": \"140581\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"朔城区\",\r\n// \"value\": \"140602\"\r\n// },\r\n// {\r\n// \"label\": \"平鲁区\",\r\n// \"value\": \"140603\"\r\n// },\r\n// {\r\n// \"label\": \"山阴县\",\r\n// \"value\": \"140621\"\r\n// },\r\n// {\r\n// \"label\": \"应县\",\r\n// \"value\": \"140622\"\r\n// },\r\n// {\r\n// \"label\": \"右玉县\",\r\n// \"value\": \"140623\"\r\n// },\r\n// {\r\n// \"label\": \"怀仁县\",\r\n// \"value\": \"140624\"\r\n// },\r\n// {\r\n// \"label\": \"山西朔州经济开发区\",\r\n// \"value\": \"140671\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"榆次区\",\r\n// \"value\": \"140702\"\r\n// },\r\n// {\r\n// \"label\": \"榆社县\",\r\n// \"value\": \"140721\"\r\n// },\r\n// {\r\n// \"label\": \"左权县\",\r\n// \"value\": \"140722\"\r\n// },\r\n// {\r\n// \"label\": \"和顺县\",\r\n// \"value\": \"140723\"\r\n// },\r\n// {\r\n// \"label\": \"昔阳县\",\r\n// \"value\": \"140724\"\r\n// },\r\n// {\r\n// \"label\": \"寿阳县\",\r\n// \"value\": \"140725\"\r\n// },\r\n// {\r\n// \"label\": \"太谷县\",\r\n// \"value\": \"140726\"\r\n// },\r\n// {\r\n// \"label\": \"祁县\",\r\n// \"value\": \"140727\"\r\n// },\r\n// {\r\n// \"label\": \"平遥县\",\r\n// \"value\": \"140728\"\r\n// },\r\n// {\r\n// \"label\": \"灵石县\",\r\n// \"value\": \"140729\"\r\n// },\r\n// {\r\n// \"label\": \"介休市\",\r\n// \"value\": \"140781\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"盐湖区\",\r\n// \"value\": \"140802\"\r\n// },\r\n// {\r\n// \"label\": \"临猗县\",\r\n// \"value\": \"140821\"\r\n// },\r\n// {\r\n// \"label\": \"万荣县\",\r\n// \"value\": \"140822\"\r\n// },\r\n// {\r\n// \"label\": \"闻喜县\",\r\n// \"value\": \"140823\"\r\n// },\r\n// {\r\n// \"label\": \"稷山县\",\r\n// \"value\": \"140824\"\r\n// },\r\n// {\r\n// \"label\": \"新绛县\",\r\n// \"value\": \"140825\"\r\n// },\r\n// {\r\n// \"label\": \"绛县\",\r\n// \"value\": \"140826\"\r\n// },\r\n// {\r\n// \"label\": \"垣曲县\",\r\n// \"value\": \"140827\"\r\n// },\r\n// {\r\n// \"label\": \"夏县\",\r\n// \"value\": \"140828\"\r\n// },\r\n// {\r\n// \"label\": \"平陆县\",\r\n// \"value\": \"140829\"\r\n// },\r\n// {\r\n// \"label\": \"芮城县\",\r\n// \"value\": \"140830\"\r\n// },\r\n// {\r\n// \"label\": \"永济市\",\r\n// \"value\": \"140881\"\r\n// },\r\n// {\r\n// \"label\": \"河津市\",\r\n// \"value\": \"140882\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"忻府区\",\r\n// \"value\": \"140902\"\r\n// },\r\n// {\r\n// \"label\": \"定襄县\",\r\n// \"value\": \"140921\"\r\n// },\r\n// {\r\n// \"label\": \"五台县\",\r\n// \"value\": \"140922\"\r\n// },\r\n// {\r\n// \"label\": \"代县\",\r\n// \"value\": \"140923\"\r\n// },\r\n// {\r\n// \"label\": \"繁峙县\",\r\n// \"value\": \"140924\"\r\n// },\r\n// {\r\n// \"label\": \"宁武县\",\r\n// \"value\": \"140925\"\r\n// },\r\n// {\r\n// \"label\": \"静乐县\",\r\n// \"value\": \"140926\"\r\n// },\r\n// {\r\n// \"label\": \"神池县\",\r\n// \"value\": \"140927\"\r\n// },\r\n// {\r\n// \"label\": \"五寨县\",\r\n// \"value\": \"140928\"\r\n// },\r\n// {\r\n// \"label\": \"岢岚县\",\r\n// \"value\": \"140929\"\r\n// },\r\n// {\r\n// \"label\": \"河曲县\",\r\n// \"value\": \"140930\"\r\n// },\r\n// {\r\n// \"label\": \"保德县\",\r\n// \"value\": \"140931\"\r\n// },\r\n// {\r\n// \"label\": \"偏关县\",\r\n// \"value\": \"140932\"\r\n// },\r\n// {\r\n// \"label\": \"五台山风景名胜区\",\r\n// \"value\": \"140971\"\r\n// },\r\n// {\r\n// \"label\": \"原平市\",\r\n// \"value\": \"140981\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"尧都区\",\r\n// \"value\": \"141002\"\r\n// },\r\n// {\r\n// \"label\": \"曲沃县\",\r\n// \"value\": \"141021\"\r\n// },\r\n// {\r\n// \"label\": \"翼城县\",\r\n// \"value\": \"141022\"\r\n// },\r\n// {\r\n// \"label\": \"襄汾县\",\r\n// \"value\": \"141023\"\r\n// },\r\n// {\r\n// \"label\": \"洪洞县\",\r\n// \"value\": \"141024\"\r\n// },\r\n// {\r\n// \"label\": \"古县\",\r\n// \"value\": \"141025\"\r\n// },\r\n// {\r\n// \"label\": \"安泽县\",\r\n// \"value\": \"141026\"\r\n// },\r\n// {\r\n// \"label\": \"浮山县\",\r\n// \"value\": \"141027\"\r\n// },\r\n// {\r\n// \"label\": \"吉县\",\r\n// \"value\": \"141028\"\r\n// },\r\n// {\r\n// \"label\": \"乡宁县\",\r\n// \"value\": \"141029\"\r\n// },\r\n// {\r\n// \"label\": \"大宁县\",\r\n// \"value\": \"141030\"\r\n// },\r\n// {\r\n// \"label\": \"隰县\",\r\n// \"value\": \"141031\"\r\n// },\r\n// {\r\n// \"label\": \"永和县\",\r\n// \"value\": \"141032\"\r\n// },\r\n// {\r\n// \"label\": \"蒲县\",\r\n// \"value\": \"141033\"\r\n// },\r\n// {\r\n// \"label\": \"汾西县\",\r\n// \"value\": \"141034\"\r\n// },\r\n// {\r\n// \"label\": \"侯马市\",\r\n// \"value\": \"141081\"\r\n// },\r\n// {\r\n// \"label\": \"霍州市\",\r\n// \"value\": \"141082\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"离石区\",\r\n// \"value\": \"141102\"\r\n// },\r\n// {\r\n// \"label\": \"文水县\",\r\n// \"value\": \"141121\"\r\n// },\r\n// {\r\n// \"label\": \"交城县\",\r\n// \"value\": \"141122\"\r\n// },\r\n// {\r\n// \"label\": \"兴县\",\r\n// \"value\": \"141123\"\r\n// },\r\n// {\r\n// \"label\": \"临县\",\r\n// \"value\": \"141124\"\r\n// },\r\n// {\r\n// \"label\": \"柳林县\",\r\n// \"value\": \"141125\"\r\n// },\r\n// {\r\n// \"label\": \"石楼县\",\r\n// \"value\": \"141126\"\r\n// },\r\n// {\r\n// \"label\": \"岚县\",\r\n// \"value\": \"141127\"\r\n// },\r\n// {\r\n// \"label\": \"方山县\",\r\n// \"value\": \"141128\"\r\n// },\r\n// {\r\n// \"label\": \"中阳县\",\r\n// \"value\": \"141129\"\r\n// },\r\n// {\r\n// \"label\": \"交口县\",\r\n// \"value\": \"141130\"\r\n// },\r\n// {\r\n// \"label\": \"孝义市\",\r\n// \"value\": \"141181\"\r\n// },\r\n// {\r\n// \"label\": \"汾阳市\",\r\n// \"value\": \"141182\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"新城区\",\r\n// \"value\": \"150102\"\r\n// },\r\n// {\r\n// \"label\": \"回民区\",\r\n// \"value\": \"150103\"\r\n// },\r\n// {\r\n// \"label\": \"玉泉区\",\r\n// \"value\": \"150104\"\r\n// },\r\n// {\r\n// \"label\": \"赛罕区\",\r\n// \"value\": \"150105\"\r\n// },\r\n// {\r\n// \"label\": \"土默特左旗\",\r\n// \"value\": \"150121\"\r\n// },\r\n// {\r\n// \"label\": \"托克托县\",\r\n// \"value\": \"150122\"\r\n// },\r\n// {\r\n// \"label\": \"和林格尔县\",\r\n// \"value\": \"150123\"\r\n// },\r\n// {\r\n// \"label\": \"清水河县\",\r\n// \"value\": \"150124\"\r\n// },\r\n// {\r\n// \"label\": \"武川县\",\r\n// \"value\": \"150125\"\r\n// },\r\n// {\r\n// \"label\": \"呼和浩特金海工业园区\",\r\n// \"value\": \"150171\"\r\n// },\r\n// {\r\n// \"label\": \"呼和浩特经济技术开发区\",\r\n// \"value\": \"150172\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东河区\",\r\n// \"value\": \"150202\"\r\n// },\r\n// {\r\n// \"label\": \"昆都仑区\",\r\n// \"value\": \"150203\"\r\n// },\r\n// {\r\n// \"label\": \"青山区\",\r\n// \"value\": \"150204\"\r\n// },\r\n// {\r\n// \"label\": \"石拐区\",\r\n// \"value\": \"150205\"\r\n// },\r\n// {\r\n// \"label\": \"白云鄂博矿区\",\r\n// \"value\": \"150206\"\r\n// },\r\n// {\r\n// \"label\": \"九原区\",\r\n// \"value\": \"150207\"\r\n// },\r\n// {\r\n// \"label\": \"土默特右旗\",\r\n// \"value\": \"150221\"\r\n// },\r\n// {\r\n// \"label\": \"固阳县\",\r\n// \"value\": \"150222\"\r\n// },\r\n// {\r\n// \"label\": \"达尔罕茂明安联合旗\",\r\n// \"value\": \"150223\"\r\n// },\r\n// {\r\n// \"label\": \"包头稀土高新技术产业开发区\",\r\n// \"value\": \"150271\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"海勃湾区\",\r\n// \"value\": \"150302\"\r\n// },\r\n// {\r\n// \"label\": \"海南区\",\r\n// \"value\": \"150303\"\r\n// },\r\n// {\r\n// \"label\": \"乌达区\",\r\n// \"value\": \"150304\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"红山区\",\r\n// \"value\": \"150402\"\r\n// },\r\n// {\r\n// \"label\": \"元宝山区\",\r\n// \"value\": \"150403\"\r\n// },\r\n// {\r\n// \"label\": \"松山区\",\r\n// \"value\": \"150404\"\r\n// },\r\n// {\r\n// \"label\": \"阿鲁科尔沁旗\",\r\n// \"value\": \"150421\"\r\n// },\r\n// {\r\n// \"label\": \"巴林左旗\",\r\n// \"value\": \"150422\"\r\n// },\r\n// {\r\n// \"label\": \"巴林右旗\",\r\n// \"value\": \"150423\"\r\n// },\r\n// {\r\n// \"label\": \"林西县\",\r\n// \"value\": \"150424\"\r\n// },\r\n// {\r\n// \"label\": \"克什克腾旗\",\r\n// \"value\": \"150425\"\r\n// },\r\n// {\r\n// \"label\": \"翁牛特旗\",\r\n// \"value\": \"150426\"\r\n// },\r\n// {\r\n// \"label\": \"喀喇沁旗\",\r\n// \"value\": \"150428\"\r\n// },\r\n// {\r\n// \"label\": \"宁城县\",\r\n// \"value\": \"150429\"\r\n// },\r\n// {\r\n// \"label\": \"敖汉旗\",\r\n// \"value\": \"150430\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"科尔沁区\",\r\n// \"value\": \"150502\"\r\n// },\r\n// {\r\n// \"label\": \"科尔沁左翼中旗\",\r\n// \"value\": \"150521\"\r\n// },\r\n// {\r\n// \"label\": \"科尔沁左翼后旗\",\r\n// \"value\": \"150522\"\r\n// },\r\n// {\r\n// \"label\": \"开鲁县\",\r\n// \"value\": \"150523\"\r\n// },\r\n// {\r\n// \"label\": \"库伦旗\",\r\n// \"value\": \"150524\"\r\n// },\r\n// {\r\n// \"label\": \"奈曼旗\",\r\n// \"value\": \"150525\"\r\n// },\r\n// {\r\n// \"label\": \"扎鲁特旗\",\r\n// \"value\": \"150526\"\r\n// },\r\n// {\r\n// \"label\": \"通辽经济技术开发区\",\r\n// \"value\": \"150571\"\r\n// },\r\n// {\r\n// \"label\": \"霍林郭勒市\",\r\n// \"value\": \"150581\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东胜区\",\r\n// \"value\": \"150602\"\r\n// },\r\n// {\r\n// \"label\": \"康巴什区\",\r\n// \"value\": \"150603\"\r\n// },\r\n// {\r\n// \"label\": \"达拉特旗\",\r\n// \"value\": \"150621\"\r\n// },\r\n// {\r\n// \"label\": \"准格尔旗\",\r\n// \"value\": \"150622\"\r\n// },\r\n// {\r\n// \"label\": \"鄂托克前旗\",\r\n// \"value\": \"150623\"\r\n// },\r\n// {\r\n// \"label\": \"鄂托克旗\",\r\n// \"value\": \"150624\"\r\n// },\r\n// {\r\n// \"label\": \"杭锦旗\",\r\n// \"value\": \"150625\"\r\n// },\r\n// {\r\n// \"label\": \"乌审旗\",\r\n// \"value\": \"150626\"\r\n// },\r\n// {\r\n// \"label\": \"伊金霍洛旗\",\r\n// \"value\": \"150627\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"海拉尔区\",\r\n// \"value\": \"150702\"\r\n// },\r\n// {\r\n// \"label\": \"扎赉诺尔区\",\r\n// \"value\": \"150703\"\r\n// },\r\n// {\r\n// \"label\": \"阿荣旗\",\r\n// \"value\": \"150721\"\r\n// },\r\n// {\r\n// \"label\": \"莫力达瓦达斡尔族自治旗\",\r\n// \"value\": \"150722\"\r\n// },\r\n// {\r\n// \"label\": \"鄂伦春自治旗\",\r\n// \"value\": \"150723\"\r\n// },\r\n// {\r\n// \"label\": \"鄂温克族自治旗\",\r\n// \"value\": \"150724\"\r\n// },\r\n// {\r\n// \"label\": \"陈巴尔虎旗\",\r\n// \"value\": \"150725\"\r\n// },\r\n// {\r\n// \"label\": \"新巴尔虎左旗\",\r\n// \"value\": \"150726\"\r\n// },\r\n// {\r\n// \"label\": \"新巴尔虎右旗\",\r\n// \"value\": \"150727\"\r\n// },\r\n// {\r\n// \"label\": \"满洲里市\",\r\n// \"value\": \"150781\"\r\n// },\r\n// {\r\n// \"label\": \"牙克石市\",\r\n// \"value\": \"150782\"\r\n// },\r\n// {\r\n// \"label\": \"扎兰屯市\",\r\n// \"value\": \"150783\"\r\n// },\r\n// {\r\n// \"label\": \"额尔古纳市\",\r\n// \"value\": \"150784\"\r\n// },\r\n// {\r\n// \"label\": \"根河市\",\r\n// \"value\": \"150785\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"临河区\",\r\n// \"value\": \"150802\"\r\n// },\r\n// {\r\n// \"label\": \"五原县\",\r\n// \"value\": \"150821\"\r\n// },\r\n// {\r\n// \"label\": \"磴口县\",\r\n// \"value\": \"150822\"\r\n// },\r\n// {\r\n// \"label\": \"乌拉特前旗\",\r\n// \"value\": \"150823\"\r\n// },\r\n// {\r\n// \"label\": \"乌拉特中旗\",\r\n// \"value\": \"150824\"\r\n// },\r\n// {\r\n// \"label\": \"乌拉特后旗\",\r\n// \"value\": \"150825\"\r\n// },\r\n// {\r\n// \"label\": \"杭锦后旗\",\r\n// \"value\": \"150826\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"集宁区\",\r\n// \"value\": \"150902\"\r\n// },\r\n// {\r\n// \"label\": \"卓资县\",\r\n// \"value\": \"150921\"\r\n// },\r\n// {\r\n// \"label\": \"化德县\",\r\n// \"value\": \"150922\"\r\n// },\r\n// {\r\n// \"label\": \"商都县\",\r\n// \"value\": \"150923\"\r\n// },\r\n// {\r\n// \"label\": \"兴和县\",\r\n// \"value\": \"150924\"\r\n// },\r\n// {\r\n// \"label\": \"凉城县\",\r\n// \"value\": \"150925\"\r\n// },\r\n// {\r\n// \"label\": \"察哈尔右翼前旗\",\r\n// \"value\": \"150926\"\r\n// },\r\n// {\r\n// \"label\": \"察哈尔右翼中旗\",\r\n// \"value\": \"150927\"\r\n// },\r\n// {\r\n// \"label\": \"察哈尔右翼后旗\",\r\n// \"value\": \"150928\"\r\n// },\r\n// {\r\n// \"label\": \"四子王旗\",\r\n// \"value\": \"150929\"\r\n// },\r\n// {\r\n// \"label\": \"丰镇市\",\r\n// \"value\": \"150981\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"乌兰浩特市\",\r\n// \"value\": \"152201\"\r\n// },\r\n// {\r\n// \"label\": \"阿尔山市\",\r\n// \"value\": \"152202\"\r\n// },\r\n// {\r\n// \"label\": \"科尔沁右翼前旗\",\r\n// \"value\": \"152221\"\r\n// },\r\n// {\r\n// \"label\": \"科尔沁右翼中旗\",\r\n// \"value\": \"152222\"\r\n// },\r\n// {\r\n// \"label\": \"扎赉特旗\",\r\n// \"value\": \"152223\"\r\n// },\r\n// {\r\n// \"label\": \"突泉县\",\r\n// \"value\": \"152224\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"二连浩特市\",\r\n// \"value\": \"152501\"\r\n// },\r\n// {\r\n// \"label\": \"锡林浩特市\",\r\n// \"value\": \"152502\"\r\n// },\r\n// {\r\n// \"label\": \"阿巴嘎旗\",\r\n// \"value\": \"152522\"\r\n// },\r\n// {\r\n// \"label\": \"苏尼特左旗\",\r\n// \"value\": \"152523\"\r\n// },\r\n// {\r\n// \"label\": \"苏尼特右旗\",\r\n// \"value\": \"152524\"\r\n// },\r\n// {\r\n// \"label\": \"东乌珠穆沁旗\",\r\n// \"value\": \"152525\"\r\n// },\r\n// {\r\n// \"label\": \"西乌珠穆沁旗\",\r\n// \"value\": \"152526\"\r\n// },\r\n// {\r\n// \"label\": \"太仆寺旗\",\r\n// \"value\": \"152527\"\r\n// },\r\n// {\r\n// \"label\": \"镶黄旗\",\r\n// \"value\": \"152528\"\r\n// },\r\n// {\r\n// \"label\": \"正镶白旗\",\r\n// \"value\": \"152529\"\r\n// },\r\n// {\r\n// \"label\": \"正蓝旗\",\r\n// \"value\": \"152530\"\r\n// },\r\n// {\r\n// \"label\": \"多伦县\",\r\n// \"value\": \"152531\"\r\n// },\r\n// {\r\n// \"label\": \"乌拉盖管委会\",\r\n// \"value\": \"152571\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"阿拉善左旗\",\r\n// \"value\": \"152921\"\r\n// },\r\n// {\r\n// \"label\": \"阿拉善右旗\",\r\n// \"value\": \"152922\"\r\n// },\r\n// {\r\n// \"label\": \"额济纳旗\",\r\n// \"value\": \"152923\"\r\n// },\r\n// {\r\n// \"label\": \"内蒙古阿拉善经济开发区\",\r\n// \"value\": \"152971\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"和平区\",\r\n// \"value\": \"210102\"\r\n// },\r\n// {\r\n// \"label\": \"沈河区\",\r\n// \"value\": \"210103\"\r\n// },\r\n// {\r\n// \"label\": \"大东区\",\r\n// \"value\": \"210104\"\r\n// },\r\n// {\r\n// \"label\": \"皇姑区\",\r\n// \"value\": \"210105\"\r\n// },\r\n// {\r\n// \"label\": \"铁西区\",\r\n// \"value\": \"210106\"\r\n// },\r\n// {\r\n// \"label\": \"苏家屯区\",\r\n// \"value\": \"210111\"\r\n// },\r\n// {\r\n// \"label\": \"浑南区\",\r\n// \"value\": \"210112\"\r\n// },\r\n// {\r\n// \"label\": \"沈北新区\",\r\n// \"value\": \"210113\"\r\n// },\r\n// {\r\n// \"label\": \"于洪区\",\r\n// \"value\": \"210114\"\r\n// },\r\n// {\r\n// \"label\": \"辽中区\",\r\n// \"value\": \"210115\"\r\n// },\r\n// {\r\n// \"label\": \"康平县\",\r\n// \"value\": \"210123\"\r\n// },\r\n// {\r\n// \"label\": \"法库县\",\r\n// \"value\": \"210124\"\r\n// },\r\n// {\r\n// \"label\": \"新民市\",\r\n// \"value\": \"210181\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"中山区\",\r\n// \"value\": \"210202\"\r\n// },\r\n// {\r\n// \"label\": \"西岗区\",\r\n// \"value\": \"210203\"\r\n// },\r\n// {\r\n// \"label\": \"沙河口区\",\r\n// \"value\": \"210204\"\r\n// },\r\n// {\r\n// \"label\": \"甘井子区\",\r\n// \"value\": \"210211\"\r\n// },\r\n// {\r\n// \"label\": \"旅顺口区\",\r\n// \"value\": \"210212\"\r\n// },\r\n// {\r\n// \"label\": \"金州区\",\r\n// \"value\": \"210213\"\r\n// },\r\n// {\r\n// \"label\": \"普兰店区\",\r\n// \"value\": \"210214\"\r\n// },\r\n// {\r\n// \"label\": \"长海县\",\r\n// \"value\": \"210224\"\r\n// },\r\n// {\r\n// \"label\": \"瓦房店市\",\r\n// \"value\": \"210281\"\r\n// },\r\n// {\r\n// \"label\": \"庄河市\",\r\n// \"value\": \"210283\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"铁东区\",\r\n// \"value\": \"210302\"\r\n// },\r\n// {\r\n// \"label\": \"铁西区\",\r\n// \"value\": \"210303\"\r\n// },\r\n// {\r\n// \"label\": \"立山区\",\r\n// \"value\": \"210304\"\r\n// },\r\n// {\r\n// \"label\": \"千山区\",\r\n// \"value\": \"210311\"\r\n// },\r\n// {\r\n// \"label\": \"台安县\",\r\n// \"value\": \"210321\"\r\n// },\r\n// {\r\n// \"label\": \"岫岩满族自治县\",\r\n// \"value\": \"210323\"\r\n// },\r\n// {\r\n// \"label\": \"海城市\",\r\n// \"value\": \"210381\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"新抚区\",\r\n// \"value\": \"210402\"\r\n// },\r\n// {\r\n// \"label\": \"东洲区\",\r\n// \"value\": \"210403\"\r\n// },\r\n// {\r\n// \"label\": \"望花区\",\r\n// \"value\": \"210404\"\r\n// },\r\n// {\r\n// \"label\": \"顺城区\",\r\n// \"value\": \"210411\"\r\n// },\r\n// {\r\n// \"label\": \"抚顺县\",\r\n// \"value\": \"210421\"\r\n// },\r\n// {\r\n// \"label\": \"新宾满族自治县\",\r\n// \"value\": \"210422\"\r\n// },\r\n// {\r\n// \"label\": \"清原满族自治县\",\r\n// \"value\": \"210423\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"平山区\",\r\n// \"value\": \"210502\"\r\n// },\r\n// {\r\n// \"label\": \"溪湖区\",\r\n// \"value\": \"210503\"\r\n// },\r\n// {\r\n// \"label\": \"明山区\",\r\n// \"value\": \"210504\"\r\n// },\r\n// {\r\n// \"label\": \"南芬区\",\r\n// \"value\": \"210505\"\r\n// },\r\n// {\r\n// \"label\": \"本溪满族自治县\",\r\n// \"value\": \"210521\"\r\n// },\r\n// {\r\n// \"label\": \"桓仁满族自治县\",\r\n// \"value\": \"210522\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"元宝区\",\r\n// \"value\": \"210602\"\r\n// },\r\n// {\r\n// \"label\": \"振兴区\",\r\n// \"value\": \"210603\"\r\n// },\r\n// {\r\n// \"label\": \"振安区\",\r\n// \"value\": \"210604\"\r\n// },\r\n// {\r\n// \"label\": \"宽甸满族自治县\",\r\n// \"value\": \"210624\"\r\n// },\r\n// {\r\n// \"label\": \"东港市\",\r\n// \"value\": \"210681\"\r\n// },\r\n// {\r\n// \"label\": \"凤城市\",\r\n// \"value\": \"210682\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"古塔区\",\r\n// \"value\": \"210702\"\r\n// },\r\n// {\r\n// \"label\": \"凌河区\",\r\n// \"value\": \"210703\"\r\n// },\r\n// {\r\n// \"label\": \"太和区\",\r\n// \"value\": \"210711\"\r\n// },\r\n// {\r\n// \"label\": \"黑山县\",\r\n// \"value\": \"210726\"\r\n// },\r\n// {\r\n// \"label\": \"义县\",\r\n// \"value\": \"210727\"\r\n// },\r\n// {\r\n// \"label\": \"凌海市\",\r\n// \"value\": \"210781\"\r\n// },\r\n// {\r\n// \"label\": \"北镇市\",\r\n// \"value\": \"210782\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"站前区\",\r\n// \"value\": \"210802\"\r\n// },\r\n// {\r\n// \"label\": \"西市区\",\r\n// \"value\": \"210803\"\r\n// },\r\n// {\r\n// \"label\": \"鲅鱼圈区\",\r\n// \"value\": \"210804\"\r\n// },\r\n// {\r\n// \"label\": \"老边区\",\r\n// \"value\": \"210811\"\r\n// },\r\n// {\r\n// \"label\": \"盖州市\",\r\n// \"value\": \"210881\"\r\n// },\r\n// {\r\n// \"label\": \"大石桥市\",\r\n// \"value\": \"210882\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"海州区\",\r\n// \"value\": \"210902\"\r\n// },\r\n// {\r\n// \"label\": \"新邱区\",\r\n// \"value\": \"210903\"\r\n// },\r\n// {\r\n// \"label\": \"太平区\",\r\n// \"value\": \"210904\"\r\n// },\r\n// {\r\n// \"label\": \"清河门区\",\r\n// \"value\": \"210905\"\r\n// },\r\n// {\r\n// \"label\": \"细河区\",\r\n// \"value\": \"210911\"\r\n// },\r\n// {\r\n// \"label\": \"阜新蒙古族自治县\",\r\n// \"value\": \"210921\"\r\n// },\r\n// {\r\n// \"label\": \"彰武县\",\r\n// \"value\": \"210922\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"白塔区\",\r\n// \"value\": \"211002\"\r\n// },\r\n// {\r\n// \"label\": \"文圣区\",\r\n// \"value\": \"211003\"\r\n// },\r\n// {\r\n// \"label\": \"宏伟区\",\r\n// \"value\": \"211004\"\r\n// },\r\n// {\r\n// \"label\": \"弓长岭区\",\r\n// \"value\": \"211005\"\r\n// },\r\n// {\r\n// \"label\": \"太子河区\",\r\n// \"value\": \"211011\"\r\n// },\r\n// {\r\n// \"label\": \"辽阳县\",\r\n// \"value\": \"211021\"\r\n// },\r\n// {\r\n// \"label\": \"灯塔市\",\r\n// \"value\": \"211081\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"双台子区\",\r\n// \"value\": \"211102\"\r\n// },\r\n// {\r\n// \"label\": \"兴隆台区\",\r\n// \"value\": \"211103\"\r\n// },\r\n// {\r\n// \"label\": \"大洼区\",\r\n// \"value\": \"211104\"\r\n// },\r\n// {\r\n// \"label\": \"盘山县\",\r\n// \"value\": \"211122\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"银州区\",\r\n// \"value\": \"211202\"\r\n// },\r\n// {\r\n// \"label\": \"清河区\",\r\n// \"value\": \"211204\"\r\n// },\r\n// {\r\n// \"label\": \"铁岭县\",\r\n// \"value\": \"211221\"\r\n// },\r\n// {\r\n// \"label\": \"西丰县\",\r\n// \"value\": \"211223\"\r\n// },\r\n// {\r\n// \"label\": \"昌图县\",\r\n// \"value\": \"211224\"\r\n// },\r\n// {\r\n// \"label\": \"调兵山市\",\r\n// \"value\": \"211281\"\r\n// },\r\n// {\r\n// \"label\": \"开原市\",\r\n// \"value\": \"211282\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"双塔区\",\r\n// \"value\": \"211302\"\r\n// },\r\n// {\r\n// \"label\": \"龙城区\",\r\n// \"value\": \"211303\"\r\n// },\r\n// {\r\n// \"label\": \"朝阳县\",\r\n// \"value\": \"211321\"\r\n// },\r\n// {\r\n// \"label\": \"建平县\",\r\n// \"value\": \"211322\"\r\n// },\r\n// {\r\n// \"label\": \"喀喇沁左翼蒙古族自治县\",\r\n// \"value\": \"211324\"\r\n// },\r\n// {\r\n// \"label\": \"北票市\",\r\n// \"value\": \"211381\"\r\n// },\r\n// {\r\n// \"label\": \"凌源市\",\r\n// \"value\": \"211382\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"连山区\",\r\n// \"value\": \"211402\"\r\n// },\r\n// {\r\n// \"label\": \"龙港区\",\r\n// \"value\": \"211403\"\r\n// },\r\n// {\r\n// \"label\": \"南票区\",\r\n// \"value\": \"211404\"\r\n// },\r\n// {\r\n// \"label\": \"绥中县\",\r\n// \"value\": \"211421\"\r\n// },\r\n// {\r\n// \"label\": \"建昌县\",\r\n// \"value\": \"211422\"\r\n// },\r\n// {\r\n// \"label\": \"兴城市\",\r\n// \"value\": \"211481\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"南关区\",\r\n// \"value\": \"220102\"\r\n// },\r\n// {\r\n// \"label\": \"宽城区\",\r\n// \"value\": \"220103\"\r\n// },\r\n// {\r\n// \"label\": \"朝阳区\",\r\n// \"value\": \"220104\"\r\n// },\r\n// {\r\n// \"label\": \"二道区\",\r\n// \"value\": \"220105\"\r\n// },\r\n// {\r\n// \"label\": \"绿园区\",\r\n// \"value\": \"220106\"\r\n// },\r\n// {\r\n// \"label\": \"双阳区\",\r\n// \"value\": \"220112\"\r\n// },\r\n// {\r\n// \"label\": \"九台区\",\r\n// \"value\": \"220113\"\r\n// },\r\n// {\r\n// \"label\": \"农安县\",\r\n// \"value\": \"220122\"\r\n// },\r\n// {\r\n// \"label\": \"长春经济技术开发区\",\r\n// \"value\": \"220171\"\r\n// },\r\n// {\r\n// \"label\": \"长春净月高新技术产业开发区\",\r\n// \"value\": \"220172\"\r\n// },\r\n// {\r\n// \"label\": \"长春高新技术产业开发区\",\r\n// \"value\": \"220173\"\r\n// },\r\n// {\r\n// \"label\": \"长春汽车经济技术开发区\",\r\n// \"value\": \"220174\"\r\n// },\r\n// {\r\n// \"label\": \"榆树市\",\r\n// \"value\": \"220182\"\r\n// },\r\n// {\r\n// \"label\": \"德惠市\",\r\n// \"value\": \"220183\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"昌邑区\",\r\n// \"value\": \"220202\"\r\n// },\r\n// {\r\n// \"label\": \"龙潭区\",\r\n// \"value\": \"220203\"\r\n// },\r\n// {\r\n// \"label\": \"船营区\",\r\n// \"value\": \"220204\"\r\n// },\r\n// {\r\n// \"label\": \"丰满区\",\r\n// \"value\": \"220211\"\r\n// },\r\n// {\r\n// \"label\": \"永吉县\",\r\n// \"value\": \"220221\"\r\n// },\r\n// {\r\n// \"label\": \"吉林经济开发区\",\r\n// \"value\": \"220271\"\r\n// },\r\n// {\r\n// \"label\": \"吉林高新技术产业开发区\",\r\n// \"value\": \"220272\"\r\n// },\r\n// {\r\n// \"label\": \"吉林中国新加坡食品区\",\r\n// \"value\": \"220273\"\r\n// },\r\n// {\r\n// \"label\": \"蛟河市\",\r\n// \"value\": \"220281\"\r\n// },\r\n// {\r\n// \"label\": \"桦甸市\",\r\n// \"value\": \"220282\"\r\n// },\r\n// {\r\n// \"label\": \"舒兰市\",\r\n// \"value\": \"220283\"\r\n// },\r\n// {\r\n// \"label\": \"磐石市\",\r\n// \"value\": \"220284\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"铁西区\",\r\n// \"value\": \"220302\"\r\n// },\r\n// {\r\n// \"label\": \"铁东区\",\r\n// \"value\": \"220303\"\r\n// },\r\n// {\r\n// \"label\": \"梨树县\",\r\n// \"value\": \"220322\"\r\n// },\r\n// {\r\n// \"label\": \"伊通满族自治县\",\r\n// \"value\": \"220323\"\r\n// },\r\n// {\r\n// \"label\": \"公主岭市\",\r\n// \"value\": \"220381\"\r\n// },\r\n// {\r\n// \"label\": \"双辽市\",\r\n// \"value\": \"220382\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"龙山区\",\r\n// \"value\": \"220402\"\r\n// },\r\n// {\r\n// \"label\": \"西安区\",\r\n// \"value\": \"220403\"\r\n// },\r\n// {\r\n// \"label\": \"东丰县\",\r\n// \"value\": \"220421\"\r\n// },\r\n// {\r\n// \"label\": \"东辽县\",\r\n// \"value\": \"220422\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东昌区\",\r\n// \"value\": \"220502\"\r\n// },\r\n// {\r\n// \"label\": \"二道江区\",\r\n// \"value\": \"220503\"\r\n// },\r\n// {\r\n// \"label\": \"通化县\",\r\n// \"value\": \"220521\"\r\n// },\r\n// {\r\n// \"label\": \"辉南县\",\r\n// \"value\": \"220523\"\r\n// },\r\n// {\r\n// \"label\": \"柳河县\",\r\n// \"value\": \"220524\"\r\n// },\r\n// {\r\n// \"label\": \"梅河口市\",\r\n// \"value\": \"220581\"\r\n// },\r\n// {\r\n// \"label\": \"集安市\",\r\n// \"value\": \"220582\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"浑江区\",\r\n// \"value\": \"220602\"\r\n// },\r\n// {\r\n// \"label\": \"江源区\",\r\n// \"value\": \"220605\"\r\n// },\r\n// {\r\n// \"label\": \"抚松县\",\r\n// \"value\": \"220621\"\r\n// },\r\n// {\r\n// \"label\": \"靖宇县\",\r\n// \"value\": \"220622\"\r\n// },\r\n// {\r\n// \"label\": \"长白朝鲜族自治县\",\r\n// \"value\": \"220623\"\r\n// },\r\n// {\r\n// \"label\": \"临江市\",\r\n// \"value\": \"220681\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"宁江区\",\r\n// \"value\": \"220702\"\r\n// },\r\n// {\r\n// \"label\": \"前郭尔罗斯蒙古族自治县\",\r\n// \"value\": \"220721\"\r\n// },\r\n// {\r\n// \"label\": \"长岭县\",\r\n// \"value\": \"220722\"\r\n// },\r\n// {\r\n// \"label\": \"乾安县\",\r\n// \"value\": \"220723\"\r\n// },\r\n// {\r\n// \"label\": \"吉林松原经济开发区\",\r\n// \"value\": \"220771\"\r\n// },\r\n// {\r\n// \"label\": \"扶余市\",\r\n// \"value\": \"220781\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"洮北区\",\r\n// \"value\": \"220802\"\r\n// },\r\n// {\r\n// \"label\": \"镇赉县\",\r\n// \"value\": \"220821\"\r\n// },\r\n// {\r\n// \"label\": \"通榆县\",\r\n// \"value\": \"220822\"\r\n// },\r\n// {\r\n// \"label\": \"吉林白城经济开发区\",\r\n// \"value\": \"220871\"\r\n// },\r\n// {\r\n// \"label\": \"洮南市\",\r\n// \"value\": \"220881\"\r\n// },\r\n// {\r\n// \"label\": \"大安市\",\r\n// \"value\": \"220882\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"延吉市\",\r\n// \"value\": \"222401\"\r\n// },\r\n// {\r\n// \"label\": \"图们市\",\r\n// \"value\": \"222402\"\r\n// },\r\n// {\r\n// \"label\": \"敦化市\",\r\n// \"value\": \"222403\"\r\n// },\r\n// {\r\n// \"label\": \"珲春市\",\r\n// \"value\": \"222404\"\r\n// },\r\n// {\r\n// \"label\": \"龙井市\",\r\n// \"value\": \"222405\"\r\n// },\r\n// {\r\n// \"label\": \"和龙市\",\r\n// \"value\": \"222406\"\r\n// },\r\n// {\r\n// \"label\": \"汪清县\",\r\n// \"value\": \"222424\"\r\n// },\r\n// {\r\n// \"label\": \"安图县\",\r\n// \"value\": \"222426\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"道里区\",\r\n// \"value\": \"230102\"\r\n// },\r\n// {\r\n// \"label\": \"南岗区\",\r\n// \"value\": \"230103\"\r\n// },\r\n// {\r\n// \"label\": \"道外区\",\r\n// \"value\": \"230104\"\r\n// },\r\n// {\r\n// \"label\": \"平房区\",\r\n// \"value\": \"230108\"\r\n// },\r\n// {\r\n// \"label\": \"松北区\",\r\n// \"value\": \"230109\"\r\n// },\r\n// {\r\n// \"label\": \"香坊区\",\r\n// \"value\": \"230110\"\r\n// },\r\n// {\r\n// \"label\": \"呼兰区\",\r\n// \"value\": \"230111\"\r\n// },\r\n// {\r\n// \"label\": \"阿城区\",\r\n// \"value\": \"230112\"\r\n// },\r\n// {\r\n// \"label\": \"双城区\",\r\n// \"value\": \"230113\"\r\n// },\r\n// {\r\n// \"label\": \"依兰县\",\r\n// \"value\": \"230123\"\r\n// },\r\n// {\r\n// \"label\": \"方正县\",\r\n// \"value\": \"230124\"\r\n// },\r\n// {\r\n// \"label\": \"宾县\",\r\n// \"value\": \"230125\"\r\n// },\r\n// {\r\n// \"label\": \"巴彦县\",\r\n// \"value\": \"230126\"\r\n// },\r\n// {\r\n// \"label\": \"木兰县\",\r\n// \"value\": \"230127\"\r\n// },\r\n// {\r\n// \"label\": \"通河县\",\r\n// \"value\": \"230128\"\r\n// },\r\n// {\r\n// \"label\": \"延寿县\",\r\n// \"value\": \"230129\"\r\n// },\r\n// {\r\n// \"label\": \"尚志市\",\r\n// \"value\": \"230183\"\r\n// },\r\n// {\r\n// \"label\": \"五常市\",\r\n// \"value\": \"230184\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"龙沙区\",\r\n// \"value\": \"230202\"\r\n// },\r\n// {\r\n// \"label\": \"建华区\",\r\n// \"value\": \"230203\"\r\n// },\r\n// {\r\n// \"label\": \"铁锋区\",\r\n// \"value\": \"230204\"\r\n// },\r\n// {\r\n// \"label\": \"昂昂溪区\",\r\n// \"value\": \"230205\"\r\n// },\r\n// {\r\n// \"label\": \"富拉尔基区\",\r\n// \"value\": \"230206\"\r\n// },\r\n// {\r\n// \"label\": \"碾子山区\",\r\n// \"value\": \"230207\"\r\n// },\r\n// {\r\n// \"label\": \"梅里斯达斡尔族区\",\r\n// \"value\": \"230208\"\r\n// },\r\n// {\r\n// \"label\": \"龙江县\",\r\n// \"value\": \"230221\"\r\n// },\r\n// {\r\n// \"label\": \"依安县\",\r\n// \"value\": \"230223\"\r\n// },\r\n// {\r\n// \"label\": \"泰来县\",\r\n// \"value\": \"230224\"\r\n// },\r\n// {\r\n// \"label\": \"甘南县\",\r\n// \"value\": \"230225\"\r\n// },\r\n// {\r\n// \"label\": \"富裕县\",\r\n// \"value\": \"230227\"\r\n// },\r\n// {\r\n// \"label\": \"克山县\",\r\n// \"value\": \"230229\"\r\n// },\r\n// {\r\n// \"label\": \"克东县\",\r\n// \"value\": \"230230\"\r\n// },\r\n// {\r\n// \"label\": \"拜泉县\",\r\n// \"value\": \"230231\"\r\n// },\r\n// {\r\n// \"label\": \"讷河市\",\r\n// \"value\": \"230281\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"鸡冠区\",\r\n// \"value\": \"230302\"\r\n// },\r\n// {\r\n// \"label\": \"恒山区\",\r\n// \"value\": \"230303\"\r\n// },\r\n// {\r\n// \"label\": \"滴道区\",\r\n// \"value\": \"230304\"\r\n// },\r\n// {\r\n// \"label\": \"梨树区\",\r\n// \"value\": \"230305\"\r\n// },\r\n// {\r\n// \"label\": \"城子河区\",\r\n// \"value\": \"230306\"\r\n// },\r\n// {\r\n// \"label\": \"麻山区\",\r\n// \"value\": \"230307\"\r\n// },\r\n// {\r\n// \"label\": \"鸡东县\",\r\n// \"value\": \"230321\"\r\n// },\r\n// {\r\n// \"label\": \"虎林市\",\r\n// \"value\": \"230381\"\r\n// },\r\n// {\r\n// \"label\": \"密山市\",\r\n// \"value\": \"230382\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"向阳区\",\r\n// \"value\": \"230402\"\r\n// },\r\n// {\r\n// \"label\": \"工农区\",\r\n// \"value\": \"230403\"\r\n// },\r\n// {\r\n// \"label\": \"南山区\",\r\n// \"value\": \"230404\"\r\n// },\r\n// {\r\n// \"label\": \"兴安区\",\r\n// \"value\": \"230405\"\r\n// },\r\n// {\r\n// \"label\": \"东山区\",\r\n// \"value\": \"230406\"\r\n// },\r\n// {\r\n// \"label\": \"兴山区\",\r\n// \"value\": \"230407\"\r\n// },\r\n// {\r\n// \"label\": \"萝北县\",\r\n// \"value\": \"230421\"\r\n// },\r\n// {\r\n// \"label\": \"绥滨县\",\r\n// \"value\": \"230422\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"尖山区\",\r\n// \"value\": \"230502\"\r\n// },\r\n// {\r\n// \"label\": \"岭东区\",\r\n// \"value\": \"230503\"\r\n// },\r\n// {\r\n// \"label\": \"四方台区\",\r\n// \"value\": \"230505\"\r\n// },\r\n// {\r\n// \"label\": \"宝山区\",\r\n// \"value\": \"230506\"\r\n// },\r\n// {\r\n// \"label\": \"集贤县\",\r\n// \"value\": \"230521\"\r\n// },\r\n// {\r\n// \"label\": \"友谊县\",\r\n// \"value\": \"230522\"\r\n// },\r\n// {\r\n// \"label\": \"宝清县\",\r\n// \"value\": \"230523\"\r\n// },\r\n// {\r\n// \"label\": \"饶河县\",\r\n// \"value\": \"230524\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"萨尔图区\",\r\n// \"value\": \"230602\"\r\n// },\r\n// {\r\n// \"label\": \"龙凤区\",\r\n// \"value\": \"230603\"\r\n// },\r\n// {\r\n// \"label\": \"让胡路区\",\r\n// \"value\": \"230604\"\r\n// },\r\n// {\r\n// \"label\": \"红岗区\",\r\n// \"value\": \"230605\"\r\n// },\r\n// {\r\n// \"label\": \"大同区\",\r\n// \"value\": \"230606\"\r\n// },\r\n// {\r\n// \"label\": \"肇州县\",\r\n// \"value\": \"230621\"\r\n// },\r\n// {\r\n// \"label\": \"肇源县\",\r\n// \"value\": \"230622\"\r\n// },\r\n// {\r\n// \"label\": \"林甸县\",\r\n// \"value\": \"230623\"\r\n// },\r\n// {\r\n// \"label\": \"杜尔伯特蒙古族自治县\",\r\n// \"value\": \"230624\"\r\n// },\r\n// {\r\n// \"label\": \"大庆高新技术产业开发区\",\r\n// \"value\": \"230671\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"伊春区\",\r\n// \"value\": \"230702\"\r\n// },\r\n// {\r\n// \"label\": \"南岔区\",\r\n// \"value\": \"230703\"\r\n// },\r\n// {\r\n// \"label\": \"友好区\",\r\n// \"value\": \"230704\"\r\n// },\r\n// {\r\n// \"label\": \"西林区\",\r\n// \"value\": \"230705\"\r\n// },\r\n// {\r\n// \"label\": \"翠峦区\",\r\n// \"value\": \"230706\"\r\n// },\r\n// {\r\n// \"label\": \"新青区\",\r\n// \"value\": \"230707\"\r\n// },\r\n// {\r\n// \"label\": \"美溪区\",\r\n// \"value\": \"230708\"\r\n// },\r\n// {\r\n// \"label\": \"金山屯区\",\r\n// \"value\": \"230709\"\r\n// },\r\n// {\r\n// \"label\": \"五营区\",\r\n// \"value\": \"230710\"\r\n// },\r\n// {\r\n// \"label\": \"乌马河区\",\r\n// \"value\": \"230711\"\r\n// },\r\n// {\r\n// \"label\": \"汤旺河区\",\r\n// \"value\": \"230712\"\r\n// },\r\n// {\r\n// \"label\": \"带岭区\",\r\n// \"value\": \"230713\"\r\n// },\r\n// {\r\n// \"label\": \"乌伊岭区\",\r\n// \"value\": \"230714\"\r\n// },\r\n// {\r\n// \"label\": \"红星区\",\r\n// \"value\": \"230715\"\r\n// },\r\n// {\r\n// \"label\": \"上甘岭区\",\r\n// \"value\": \"230716\"\r\n// },\r\n// {\r\n// \"label\": \"嘉荫县\",\r\n// \"value\": \"230722\"\r\n// },\r\n// {\r\n// \"label\": \"铁力市\",\r\n// \"value\": \"230781\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"向阳区\",\r\n// \"value\": \"230803\"\r\n// },\r\n// {\r\n// \"label\": \"前进区\",\r\n// \"value\": \"230804\"\r\n// },\r\n// {\r\n// \"label\": \"东风区\",\r\n// \"value\": \"230805\"\r\n// },\r\n// {\r\n// \"label\": \"郊区\",\r\n// \"value\": \"230811\"\r\n// },\r\n// {\r\n// \"label\": \"桦南县\",\r\n// \"value\": \"230822\"\r\n// },\r\n// {\r\n// \"label\": \"桦川县\",\r\n// \"value\": \"230826\"\r\n// },\r\n// {\r\n// \"label\": \"汤原县\",\r\n// \"value\": \"230828\"\r\n// },\r\n// {\r\n// \"label\": \"同江市\",\r\n// \"value\": \"230881\"\r\n// },\r\n// {\r\n// \"label\": \"富锦市\",\r\n// \"value\": \"230882\"\r\n// },\r\n// {\r\n// \"label\": \"抚远市\",\r\n// \"value\": \"230883\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"新兴区\",\r\n// \"value\": \"230902\"\r\n// },\r\n// {\r\n// \"label\": \"桃山区\",\r\n// \"value\": \"230903\"\r\n// },\r\n// {\r\n// \"label\": \"茄子河区\",\r\n// \"value\": \"230904\"\r\n// },\r\n// {\r\n// \"label\": \"勃利县\",\r\n// \"value\": \"230921\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东安区\",\r\n// \"value\": \"231002\"\r\n// },\r\n// {\r\n// \"label\": \"阳明区\",\r\n// \"value\": \"231003\"\r\n// },\r\n// {\r\n// \"label\": \"爱民区\",\r\n// \"value\": \"231004\"\r\n// },\r\n// {\r\n// \"label\": \"西安区\",\r\n// \"value\": \"231005\"\r\n// },\r\n// {\r\n// \"label\": \"林口县\",\r\n// \"value\": \"231025\"\r\n// },\r\n// {\r\n// \"label\": \"牡丹江经济技术开发区\",\r\n// \"value\": \"231071\"\r\n// },\r\n// {\r\n// \"label\": \"绥芬河市\",\r\n// \"value\": \"231081\"\r\n// },\r\n// {\r\n// \"label\": \"海林市\",\r\n// \"value\": \"231083\"\r\n// },\r\n// {\r\n// \"label\": \"宁安市\",\r\n// \"value\": \"231084\"\r\n// },\r\n// {\r\n// \"label\": \"穆棱市\",\r\n// \"value\": \"231085\"\r\n// },\r\n// {\r\n// \"label\": \"东宁市\",\r\n// \"value\": \"231086\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"爱辉区\",\r\n// \"value\": \"231102\"\r\n// },\r\n// {\r\n// \"label\": \"嫩江县\",\r\n// \"value\": \"231121\"\r\n// },\r\n// {\r\n// \"label\": \"逊克县\",\r\n// \"value\": \"231123\"\r\n// },\r\n// {\r\n// \"label\": \"孙吴县\",\r\n// \"value\": \"231124\"\r\n// },\r\n// {\r\n// \"label\": \"北安市\",\r\n// \"value\": \"231181\"\r\n// },\r\n// {\r\n// \"label\": \"五大连池市\",\r\n// \"value\": \"231182\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"北林区\",\r\n// \"value\": \"231202\"\r\n// },\r\n// {\r\n// \"label\": \"望奎县\",\r\n// \"value\": \"231221\"\r\n// },\r\n// {\r\n// \"label\": \"兰西县\",\r\n// \"value\": \"231222\"\r\n// },\r\n// {\r\n// \"label\": \"青冈县\",\r\n// \"value\": \"231223\"\r\n// },\r\n// {\r\n// \"label\": \"庆安县\",\r\n// \"value\": \"231224\"\r\n// },\r\n// {\r\n// \"label\": \"明水县\",\r\n// \"value\": \"231225\"\r\n// },\r\n// {\r\n// \"label\": \"绥棱县\",\r\n// \"value\": \"231226\"\r\n// },\r\n// {\r\n// \"label\": \"安达市\",\r\n// \"value\": \"231281\"\r\n// },\r\n// {\r\n// \"label\": \"肇东市\",\r\n// \"value\": \"231282\"\r\n// },\r\n// {\r\n// \"label\": \"海伦市\",\r\n// \"value\": \"231283\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"加格达奇区\",\r\n// \"value\": \"232701\"\r\n// },\r\n// {\r\n// \"label\": \"松岭区\",\r\n// \"value\": \"232702\"\r\n// },\r\n// {\r\n// \"label\": \"新林区\",\r\n// \"value\": \"232703\"\r\n// },\r\n// {\r\n// \"label\": \"呼中区\",\r\n// \"value\": \"232704\"\r\n// },\r\n// {\r\n// \"label\": \"呼玛县\",\r\n// \"value\": \"232721\"\r\n// },\r\n// {\r\n// \"label\": \"塔河县\",\r\n// \"value\": \"232722\"\r\n// },\r\n// {\r\n// \"label\": \"漠河县\",\r\n// \"value\": \"232723\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"黄浦区\",\r\n// \"value\": \"310101\"\r\n// },\r\n// {\r\n// \"label\": \"徐汇区\",\r\n// \"value\": \"310104\"\r\n// },\r\n// {\r\n// \"label\": \"长宁区\",\r\n// \"value\": \"310105\"\r\n// },\r\n// {\r\n// \"label\": \"静安区\",\r\n// \"value\": \"310106\"\r\n// },\r\n// {\r\n// \"label\": \"普陀区\",\r\n// \"value\": \"310107\"\r\n// },\r\n// {\r\n// \"label\": \"虹口区\",\r\n// \"value\": \"310109\"\r\n// },\r\n// {\r\n// \"label\": \"杨浦区\",\r\n// \"value\": \"310110\"\r\n// },\r\n// {\r\n// \"label\": \"闵行区\",\r\n// \"value\": \"310112\"\r\n// },\r\n// {\r\n// \"label\": \"宝山区\",\r\n// \"value\": \"310113\"\r\n// },\r\n// {\r\n// \"label\": \"嘉定区\",\r\n// \"value\": \"310114\"\r\n// },\r\n// {\r\n// \"label\": \"浦东新区\",\r\n// \"value\": \"310115\"\r\n// },\r\n// {\r\n// \"label\": \"金山区\",\r\n// \"value\": \"310116\"\r\n// },\r\n// {\r\n// \"label\": \"松江区\",\r\n// \"value\": \"310117\"\r\n// },\r\n// {\r\n// \"label\": \"青浦区\",\r\n// \"value\": \"310118\"\r\n// },\r\n// {\r\n// \"label\": \"奉贤区\",\r\n// \"value\": \"310120\"\r\n// },\r\n// {\r\n// \"label\": \"崇明区\",\r\n// \"value\": \"310151\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"玄武区\",\r\n// \"value\": \"320102\"\r\n// },\r\n// {\r\n// \"label\": \"秦淮区\",\r\n// \"value\": \"320104\"\r\n// },\r\n// {\r\n// \"label\": \"建邺区\",\r\n// \"value\": \"320105\"\r\n// },\r\n// {\r\n// \"label\": \"鼓楼区\",\r\n// \"value\": \"320106\"\r\n// },\r\n// {\r\n// \"label\": \"浦口区\",\r\n// \"value\": \"320111\"\r\n// },\r\n// {\r\n// \"label\": \"栖霞区\",\r\n// \"value\": \"320113\"\r\n// },\r\n// {\r\n// \"label\": \"雨花台区\",\r\n// \"value\": \"320114\"\r\n// },\r\n// {\r\n// \"label\": \"江宁区\",\r\n// \"value\": \"320115\"\r\n// },\r\n// {\r\n// \"label\": \"六合区\",\r\n// \"value\": \"320116\"\r\n// },\r\n// {\r\n// \"label\": \"溧水区\",\r\n// \"value\": \"320117\"\r\n// },\r\n// {\r\n// \"label\": \"高淳区\",\r\n// \"value\": \"320118\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"锡山区\",\r\n// \"value\": \"320205\"\r\n// },\r\n// {\r\n// \"label\": \"惠山区\",\r\n// \"value\": \"320206\"\r\n// },\r\n// {\r\n// \"label\": \"滨湖区\",\r\n// \"value\": \"320211\"\r\n// },\r\n// {\r\n// \"label\": \"梁溪区\",\r\n// \"value\": \"320213\"\r\n// },\r\n// {\r\n// \"label\": \"新吴区\",\r\n// \"value\": \"320214\"\r\n// },\r\n// {\r\n// \"label\": \"江阴市\",\r\n// \"value\": \"320281\"\r\n// },\r\n// {\r\n// \"label\": \"宜兴市\",\r\n// \"value\": \"320282\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"鼓楼区\",\r\n// \"value\": \"320302\"\r\n// },\r\n// {\r\n// \"label\": \"云龙区\",\r\n// \"value\": \"320303\"\r\n// },\r\n// {\r\n// \"label\": \"贾汪区\",\r\n// \"value\": \"320305\"\r\n// },\r\n// {\r\n// \"label\": \"泉山区\",\r\n// \"value\": \"320311\"\r\n// },\r\n// {\r\n// \"label\": \"铜山区\",\r\n// \"value\": \"320312\"\r\n// },\r\n// {\r\n// \"label\": \"丰县\",\r\n// \"value\": \"320321\"\r\n// },\r\n// {\r\n// \"label\": \"沛县\",\r\n// \"value\": \"320322\"\r\n// },\r\n// {\r\n// \"label\": \"睢宁县\",\r\n// \"value\": \"320324\"\r\n// },\r\n// {\r\n// \"label\": \"徐州经济技术开发区\",\r\n// \"value\": \"320371\"\r\n// },\r\n// {\r\n// \"label\": \"新沂市\",\r\n// \"value\": \"320381\"\r\n// },\r\n// {\r\n// \"label\": \"邳州市\",\r\n// \"value\": \"320382\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"天宁区\",\r\n// \"value\": \"320402\"\r\n// },\r\n// {\r\n// \"label\": \"钟楼区\",\r\n// \"value\": \"320404\"\r\n// },\r\n// {\r\n// \"label\": \"新北区\",\r\n// \"value\": \"320411\"\r\n// },\r\n// {\r\n// \"label\": \"武进区\",\r\n// \"value\": \"320412\"\r\n// },\r\n// {\r\n// \"label\": \"金坛区\",\r\n// \"value\": \"320413\"\r\n// },\r\n// {\r\n// \"label\": \"溧阳市\",\r\n// \"value\": \"320481\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"虎丘区\",\r\n// \"value\": \"320505\"\r\n// },\r\n// {\r\n// \"label\": \"吴中区\",\r\n// \"value\": \"320506\"\r\n// },\r\n// {\r\n// \"label\": \"相城区\",\r\n// \"value\": \"320507\"\r\n// },\r\n// {\r\n// \"label\": \"姑苏区\",\r\n// \"value\": \"320508\"\r\n// },\r\n// {\r\n// \"label\": \"吴江区\",\r\n// \"value\": \"320509\"\r\n// },\r\n// {\r\n// \"label\": \"苏州工业园区\",\r\n// \"value\": \"320571\"\r\n// },\r\n// {\r\n// \"label\": \"常熟市\",\r\n// \"value\": \"320581\"\r\n// },\r\n// {\r\n// \"label\": \"张家港市\",\r\n// \"value\": \"320582\"\r\n// },\r\n// {\r\n// \"label\": \"昆山市\",\r\n// \"value\": \"320583\"\r\n// },\r\n// {\r\n// \"label\": \"太仓市\",\r\n// \"value\": \"320585\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"崇川区\",\r\n// \"value\": \"320602\"\r\n// },\r\n// {\r\n// \"label\": \"港闸区\",\r\n// \"value\": \"320611\"\r\n// },\r\n// {\r\n// \"label\": \"通州区\",\r\n// \"value\": \"320612\"\r\n// },\r\n// {\r\n// \"label\": \"海安县\",\r\n// \"value\": \"320621\"\r\n// },\r\n// {\r\n// \"label\": \"如东县\",\r\n// \"value\": \"320623\"\r\n// },\r\n// {\r\n// \"label\": \"南通经济技术开发区\",\r\n// \"value\": \"320671\"\r\n// },\r\n// {\r\n// \"label\": \"启东市\",\r\n// \"value\": \"320681\"\r\n// },\r\n// {\r\n// \"label\": \"如皋市\",\r\n// \"value\": \"320682\"\r\n// },\r\n// {\r\n// \"label\": \"海门市\",\r\n// \"value\": \"320684\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"连云区\",\r\n// \"value\": \"320703\"\r\n// },\r\n// {\r\n// \"label\": \"海州区\",\r\n// \"value\": \"320706\"\r\n// },\r\n// {\r\n// \"label\": \"赣榆区\",\r\n// \"value\": \"320707\"\r\n// },\r\n// {\r\n// \"label\": \"东海县\",\r\n// \"value\": \"320722\"\r\n// },\r\n// {\r\n// \"label\": \"灌云县\",\r\n// \"value\": \"320723\"\r\n// },\r\n// {\r\n// \"label\": \"灌南县\",\r\n// \"value\": \"320724\"\r\n// },\r\n// {\r\n// \"label\": \"连云港经济技术开发区\",\r\n// \"value\": \"320771\"\r\n// },\r\n// {\r\n// \"label\": \"连云港高新技术产业开发区\",\r\n// \"value\": \"320772\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"淮安区\",\r\n// \"value\": \"320803\"\r\n// },\r\n// {\r\n// \"label\": \"淮阴区\",\r\n// \"value\": \"320804\"\r\n// },\r\n// {\r\n// \"label\": \"清江浦区\",\r\n// \"value\": \"320812\"\r\n// },\r\n// {\r\n// \"label\": \"洪泽区\",\r\n// \"value\": \"320813\"\r\n// },\r\n// {\r\n// \"label\": \"涟水县\",\r\n// \"value\": \"320826\"\r\n// },\r\n// {\r\n// \"label\": \"盱眙县\",\r\n// \"value\": \"320830\"\r\n// },\r\n// {\r\n// \"label\": \"金湖县\",\r\n// \"value\": \"320831\"\r\n// },\r\n// {\r\n// \"label\": \"淮安经济技术开发区\",\r\n// \"value\": \"320871\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"亭湖区\",\r\n// \"value\": \"320902\"\r\n// },\r\n// {\r\n// \"label\": \"盐都区\",\r\n// \"value\": \"320903\"\r\n// },\r\n// {\r\n// \"label\": \"大丰区\",\r\n// \"value\": \"320904\"\r\n// },\r\n// {\r\n// \"label\": \"响水县\",\r\n// \"value\": \"320921\"\r\n// },\r\n// {\r\n// \"label\": \"滨海县\",\r\n// \"value\": \"320922\"\r\n// },\r\n// {\r\n// \"label\": \"阜宁县\",\r\n// \"value\": \"320923\"\r\n// },\r\n// {\r\n// \"label\": \"射阳县\",\r\n// \"value\": \"320924\"\r\n// },\r\n// {\r\n// \"label\": \"建湖县\",\r\n// \"value\": \"320925\"\r\n// },\r\n// {\r\n// \"label\": \"盐城经济技术开发区\",\r\n// \"value\": \"320971\"\r\n// },\r\n// {\r\n// \"label\": \"东台市\",\r\n// \"value\": \"320981\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"广陵区\",\r\n// \"value\": \"321002\"\r\n// },\r\n// {\r\n// \"label\": \"邗江区\",\r\n// \"value\": \"321003\"\r\n// },\r\n// {\r\n// \"label\": \"江都区\",\r\n// \"value\": \"321012\"\r\n// },\r\n// {\r\n// \"label\": \"宝应县\",\r\n// \"value\": \"321023\"\r\n// },\r\n// {\r\n// \"label\": \"扬州经济技术开发区\",\r\n// \"value\": \"321071\"\r\n// },\r\n// {\r\n// \"label\": \"仪征市\",\r\n// \"value\": \"321081\"\r\n// },\r\n// {\r\n// \"label\": \"高邮市\",\r\n// \"value\": \"321084\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"京口区\",\r\n// \"value\": \"321102\"\r\n// },\r\n// {\r\n// \"label\": \"润州区\",\r\n// \"value\": \"321111\"\r\n// },\r\n// {\r\n// \"label\": \"丹徒区\",\r\n// \"value\": \"321112\"\r\n// },\r\n// {\r\n// \"label\": \"镇江新区\",\r\n// \"value\": \"321171\"\r\n// },\r\n// {\r\n// \"label\": \"丹阳市\",\r\n// \"value\": \"321181\"\r\n// },\r\n// {\r\n// \"label\": \"扬中市\",\r\n// \"value\": \"321182\"\r\n// },\r\n// {\r\n// \"label\": \"句容市\",\r\n// \"value\": \"321183\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"海陵区\",\r\n// \"value\": \"321202\"\r\n// },\r\n// {\r\n// \"label\": \"高港区\",\r\n// \"value\": \"321203\"\r\n// },\r\n// {\r\n// \"label\": \"姜堰区\",\r\n// \"value\": \"321204\"\r\n// },\r\n// {\r\n// \"label\": \"泰州医药高新技术产业开发区\",\r\n// \"value\": \"321271\"\r\n// },\r\n// {\r\n// \"label\": \"兴化市\",\r\n// \"value\": \"321281\"\r\n// },\r\n// {\r\n// \"label\": \"靖江市\",\r\n// \"value\": \"321282\"\r\n// },\r\n// {\r\n// \"label\": \"泰兴市\",\r\n// \"value\": \"321283\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"宿城区\",\r\n// \"value\": \"321302\"\r\n// },\r\n// {\r\n// \"label\": \"宿豫区\",\r\n// \"value\": \"321311\"\r\n// },\r\n// {\r\n// \"label\": \"沭阳县\",\r\n// \"value\": \"321322\"\r\n// },\r\n// {\r\n// \"label\": \"泗阳县\",\r\n// \"value\": \"321323\"\r\n// },\r\n// {\r\n// \"label\": \"泗洪县\",\r\n// \"value\": \"321324\"\r\n// },\r\n// {\r\n// \"label\": \"宿迁经济技术开发区\",\r\n// \"value\": \"321371\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"上城区\",\r\n// \"value\": \"330102\"\r\n// },\r\n// {\r\n// \"label\": \"下城区\",\r\n// \"value\": \"330103\"\r\n// },\r\n// {\r\n// \"label\": \"江干区\",\r\n// \"value\": \"330104\"\r\n// },\r\n// {\r\n// \"label\": \"拱墅区\",\r\n// \"value\": \"330105\"\r\n// },\r\n// {\r\n// \"label\": \"西湖区\",\r\n// \"value\": \"330106\"\r\n// },\r\n// {\r\n// \"label\": \"滨江区\",\r\n// \"value\": \"330108\"\r\n// },\r\n// {\r\n// \"label\": \"萧山区\",\r\n// \"value\": \"330109\"\r\n// },\r\n// {\r\n// \"label\": \"余杭区\",\r\n// \"value\": \"330110\"\r\n// },\r\n// {\r\n// \"label\": \"富阳区\",\r\n// \"value\": \"330111\"\r\n// },\r\n// {\r\n// \"label\": \"临安区\",\r\n// \"value\": \"330112\"\r\n// },\r\n// {\r\n// \"label\": \"桐庐县\",\r\n// \"value\": \"330122\"\r\n// },\r\n// {\r\n// \"label\": \"淳安县\",\r\n// \"value\": \"330127\"\r\n// },\r\n// {\r\n// \"label\": \"建德市\",\r\n// \"value\": \"330182\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"海曙区\",\r\n// \"value\": \"330203\"\r\n// },\r\n// {\r\n// \"label\": \"江北区\",\r\n// \"value\": \"330205\"\r\n// },\r\n// {\r\n// \"label\": \"北仑区\",\r\n// \"value\": \"330206\"\r\n// },\r\n// {\r\n// \"label\": \"镇海区\",\r\n// \"value\": \"330211\"\r\n// },\r\n// {\r\n// \"label\": \"鄞州区\",\r\n// \"value\": \"330212\"\r\n// },\r\n// {\r\n// \"label\": \"奉化区\",\r\n// \"value\": \"330213\"\r\n// },\r\n// {\r\n// \"label\": \"象山县\",\r\n// \"value\": \"330225\"\r\n// },\r\n// {\r\n// \"label\": \"宁海县\",\r\n// \"value\": \"330226\"\r\n// },\r\n// {\r\n// \"label\": \"余姚市\",\r\n// \"value\": \"330281\"\r\n// },\r\n// {\r\n// \"label\": \"慈溪市\",\r\n// \"value\": \"330282\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"鹿城区\",\r\n// \"value\": \"330302\"\r\n// },\r\n// {\r\n// \"label\": \"龙湾区\",\r\n// \"value\": \"330303\"\r\n// },\r\n// {\r\n// \"label\": \"瓯海区\",\r\n// \"value\": \"330304\"\r\n// },\r\n// {\r\n// \"label\": \"洞头区\",\r\n// \"value\": \"330305\"\r\n// },\r\n// {\r\n// \"label\": \"永嘉县\",\r\n// \"value\": \"330324\"\r\n// },\r\n// {\r\n// \"label\": \"平阳县\",\r\n// \"value\": \"330326\"\r\n// },\r\n// {\r\n// \"label\": \"苍南县\",\r\n// \"value\": \"330327\"\r\n// },\r\n// {\r\n// \"label\": \"文成县\",\r\n// \"value\": \"330328\"\r\n// },\r\n// {\r\n// \"label\": \"泰顺县\",\r\n// \"value\": \"330329\"\r\n// },\r\n// {\r\n// \"label\": \"温州经济技术开发区\",\r\n// \"value\": \"330371\"\r\n// },\r\n// {\r\n// \"label\": \"瑞安市\",\r\n// \"value\": \"330381\"\r\n// },\r\n// {\r\n// \"label\": \"乐清市\",\r\n// \"value\": \"330382\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"南湖区\",\r\n// \"value\": \"330402\"\r\n// },\r\n// {\r\n// \"label\": \"秀洲区\",\r\n// \"value\": \"330411\"\r\n// },\r\n// {\r\n// \"label\": \"嘉善县\",\r\n// \"value\": \"330421\"\r\n// },\r\n// {\r\n// \"label\": \"海盐县\",\r\n// \"value\": \"330424\"\r\n// },\r\n// {\r\n// \"label\": \"海宁市\",\r\n// \"value\": \"330481\"\r\n// },\r\n// {\r\n// \"label\": \"平湖市\",\r\n// \"value\": \"330482\"\r\n// },\r\n// {\r\n// \"label\": \"桐乡市\",\r\n// \"value\": \"330483\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"吴兴区\",\r\n// \"value\": \"330502\"\r\n// },\r\n// {\r\n// \"label\": \"南浔区\",\r\n// \"value\": \"330503\"\r\n// },\r\n// {\r\n// \"label\": \"德清县\",\r\n// \"value\": \"330521\"\r\n// },\r\n// {\r\n// \"label\": \"长兴县\",\r\n// \"value\": \"330522\"\r\n// },\r\n// {\r\n// \"label\": \"安吉县\",\r\n// \"value\": \"330523\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"越城区\",\r\n// \"value\": \"330602\"\r\n// },\r\n// {\r\n// \"label\": \"柯桥区\",\r\n// \"value\": \"330603\"\r\n// },\r\n// {\r\n// \"label\": \"上虞区\",\r\n// \"value\": \"330604\"\r\n// },\r\n// {\r\n// \"label\": \"新昌县\",\r\n// \"value\": \"330624\"\r\n// },\r\n// {\r\n// \"label\": \"诸暨市\",\r\n// \"value\": \"330681\"\r\n// },\r\n// {\r\n// \"label\": \"嵊州市\",\r\n// \"value\": \"330683\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"婺城区\",\r\n// \"value\": \"330702\"\r\n// },\r\n// {\r\n// \"label\": \"金东区\",\r\n// \"value\": \"330703\"\r\n// },\r\n// {\r\n// \"label\": \"武义县\",\r\n// \"value\": \"330723\"\r\n// },\r\n// {\r\n// \"label\": \"浦江县\",\r\n// \"value\": \"330726\"\r\n// },\r\n// {\r\n// \"label\": \"磐安县\",\r\n// \"value\": \"330727\"\r\n// },\r\n// {\r\n// \"label\": \"兰溪市\",\r\n// \"value\": \"330781\"\r\n// },\r\n// {\r\n// \"label\": \"义乌市\",\r\n// \"value\": \"330782\"\r\n// },\r\n// {\r\n// \"label\": \"东阳市\",\r\n// \"value\": \"330783\"\r\n// },\r\n// {\r\n// \"label\": \"永康市\",\r\n// \"value\": \"330784\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"柯城区\",\r\n// \"value\": \"330802\"\r\n// },\r\n// {\r\n// \"label\": \"衢江区\",\r\n// \"value\": \"330803\"\r\n// },\r\n// {\r\n// \"label\": \"常山县\",\r\n// \"value\": \"330822\"\r\n// },\r\n// {\r\n// \"label\": \"开化县\",\r\n// \"value\": \"330824\"\r\n// },\r\n// {\r\n// \"label\": \"龙游县\",\r\n// \"value\": \"330825\"\r\n// },\r\n// {\r\n// \"label\": \"江山市\",\r\n// \"value\": \"330881\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"定海区\",\r\n// \"value\": \"330902\"\r\n// },\r\n// {\r\n// \"label\": \"普陀区\",\r\n// \"value\": \"330903\"\r\n// },\r\n// {\r\n// \"label\": \"岱山县\",\r\n// \"value\": \"330921\"\r\n// },\r\n// {\r\n// \"label\": \"嵊泗县\",\r\n// \"value\": \"330922\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"椒江区\",\r\n// \"value\": \"331002\"\r\n// },\r\n// {\r\n// \"label\": \"黄岩区\",\r\n// \"value\": \"331003\"\r\n// },\r\n// {\r\n// \"label\": \"路桥区\",\r\n// \"value\": \"331004\"\r\n// },\r\n// {\r\n// \"label\": \"三门县\",\r\n// \"value\": \"331022\"\r\n// },\r\n// {\r\n// \"label\": \"天台县\",\r\n// \"value\": \"331023\"\r\n// },\r\n// {\r\n// \"label\": \"仙居县\",\r\n// \"value\": \"331024\"\r\n// },\r\n// {\r\n// \"label\": \"温岭市\",\r\n// \"value\": \"331081\"\r\n// },\r\n// {\r\n// \"label\": \"临海市\",\r\n// \"value\": \"331082\"\r\n// },\r\n// {\r\n// \"label\": \"玉环市\",\r\n// \"value\": \"331083\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"莲都区\",\r\n// \"value\": \"331102\"\r\n// },\r\n// {\r\n// \"label\": \"青田县\",\r\n// \"value\": \"331121\"\r\n// },\r\n// {\r\n// \"label\": \"缙云县\",\r\n// \"value\": \"331122\"\r\n// },\r\n// {\r\n// \"label\": \"遂昌县\",\r\n// \"value\": \"331123\"\r\n// },\r\n// {\r\n// \"label\": \"松阳县\",\r\n// \"value\": \"331124\"\r\n// },\r\n// {\r\n// \"label\": \"云和县\",\r\n// \"value\": \"331125\"\r\n// },\r\n// {\r\n// \"label\": \"庆元县\",\r\n// \"value\": \"331126\"\r\n// },\r\n// {\r\n// \"label\": \"景宁畲族自治县\",\r\n// \"value\": \"331127\"\r\n// },\r\n// {\r\n// \"label\": \"龙泉市\",\r\n// \"value\": \"331181\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"瑶海区\",\r\n// \"value\": \"340102\"\r\n// },\r\n// {\r\n// \"label\": \"庐阳区\",\r\n// \"value\": \"340103\"\r\n// },\r\n// {\r\n// \"label\": \"蜀山区\",\r\n// \"value\": \"340104\"\r\n// },\r\n// {\r\n// \"label\": \"包河区\",\r\n// \"value\": \"340111\"\r\n// },\r\n// {\r\n// \"label\": \"长丰县\",\r\n// \"value\": \"340121\"\r\n// },\r\n// {\r\n// \"label\": \"肥东县\",\r\n// \"value\": \"340122\"\r\n// },\r\n// {\r\n// \"label\": \"肥西县\",\r\n// \"value\": \"340123\"\r\n// },\r\n// {\r\n// \"label\": \"庐江县\",\r\n// \"value\": \"340124\"\r\n// },\r\n// {\r\n// \"label\": \"合肥高新技术产业开发区\",\r\n// \"value\": \"340171\"\r\n// },\r\n// {\r\n// \"label\": \"合肥经济技术开发区\",\r\n// \"value\": \"340172\"\r\n// },\r\n// {\r\n// \"label\": \"合肥新站高新技术产业开发区\",\r\n// \"value\": \"340173\"\r\n// },\r\n// {\r\n// \"label\": \"巢湖市\",\r\n// \"value\": \"340181\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"镜湖区\",\r\n// \"value\": \"340202\"\r\n// },\r\n// {\r\n// \"label\": \"弋江区\",\r\n// \"value\": \"340203\"\r\n// },\r\n// {\r\n// \"label\": \"鸠江区\",\r\n// \"value\": \"340207\"\r\n// },\r\n// {\r\n// \"label\": \"三山区\",\r\n// \"value\": \"340208\"\r\n// },\r\n// {\r\n// \"label\": \"芜湖县\",\r\n// \"value\": \"340221\"\r\n// },\r\n// {\r\n// \"label\": \"繁昌县\",\r\n// \"value\": \"340222\"\r\n// },\r\n// {\r\n// \"label\": \"南陵县\",\r\n// \"value\": \"340223\"\r\n// },\r\n// {\r\n// \"label\": \"无为县\",\r\n// \"value\": \"340225\"\r\n// },\r\n// {\r\n// \"label\": \"芜湖经济技术开发区\",\r\n// \"value\": \"340271\"\r\n// },\r\n// {\r\n// \"label\": \"安徽芜湖长江大桥经济开发区\",\r\n// \"value\": \"340272\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"龙子湖区\",\r\n// \"value\": \"340302\"\r\n// },\r\n// {\r\n// \"label\": \"蚌山区\",\r\n// \"value\": \"340303\"\r\n// },\r\n// {\r\n// \"label\": \"禹会区\",\r\n// \"value\": \"340304\"\r\n// },\r\n// {\r\n// \"label\": \"淮上区\",\r\n// \"value\": \"340311\"\r\n// },\r\n// {\r\n// \"label\": \"怀远县\",\r\n// \"value\": \"340321\"\r\n// },\r\n// {\r\n// \"label\": \"五河县\",\r\n// \"value\": \"340322\"\r\n// },\r\n// {\r\n// \"label\": \"固镇县\",\r\n// \"value\": \"340323\"\r\n// },\r\n// {\r\n// \"label\": \"蚌埠市高新技术开发区\",\r\n// \"value\": \"340371\"\r\n// },\r\n// {\r\n// \"label\": \"蚌埠市经济开发区\",\r\n// \"value\": \"340372\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"大通区\",\r\n// \"value\": \"340402\"\r\n// },\r\n// {\r\n// \"label\": \"田家庵区\",\r\n// \"value\": \"340403\"\r\n// },\r\n// {\r\n// \"label\": \"谢家集区\",\r\n// \"value\": \"340404\"\r\n// },\r\n// {\r\n// \"label\": \"八公山区\",\r\n// \"value\": \"340405\"\r\n// },\r\n// {\r\n// \"label\": \"潘集区\",\r\n// \"value\": \"340406\"\r\n// },\r\n// {\r\n// \"label\": \"凤台县\",\r\n// \"value\": \"340421\"\r\n// },\r\n// {\r\n// \"label\": \"寿县\",\r\n// \"value\": \"340422\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"花山区\",\r\n// \"value\": \"340503\"\r\n// },\r\n// {\r\n// \"label\": \"雨山区\",\r\n// \"value\": \"340504\"\r\n// },\r\n// {\r\n// \"label\": \"博望区\",\r\n// \"value\": \"340506\"\r\n// },\r\n// {\r\n// \"label\": \"当涂县\",\r\n// \"value\": \"340521\"\r\n// },\r\n// {\r\n// \"label\": \"含山县\",\r\n// \"value\": \"340522\"\r\n// },\r\n// {\r\n// \"label\": \"和县\",\r\n// \"value\": \"340523\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"杜集区\",\r\n// \"value\": \"340602\"\r\n// },\r\n// {\r\n// \"label\": \"相山区\",\r\n// \"value\": \"340603\"\r\n// },\r\n// {\r\n// \"label\": \"烈山区\",\r\n// \"value\": \"340604\"\r\n// },\r\n// {\r\n// \"label\": \"濉溪县\",\r\n// \"value\": \"340621\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"铜官区\",\r\n// \"value\": \"340705\"\r\n// },\r\n// {\r\n// \"label\": \"义安区\",\r\n// \"value\": \"340706\"\r\n// },\r\n// {\r\n// \"label\": \"郊区\",\r\n// \"value\": \"340711\"\r\n// },\r\n// {\r\n// \"label\": \"枞阳县\",\r\n// \"value\": \"340722\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"迎江区\",\r\n// \"value\": \"340802\"\r\n// },\r\n// {\r\n// \"label\": \"大观区\",\r\n// \"value\": \"340803\"\r\n// },\r\n// {\r\n// \"label\": \"宜秀区\",\r\n// \"value\": \"340811\"\r\n// },\r\n// {\r\n// \"label\": \"怀宁县\",\r\n// \"value\": \"340822\"\r\n// },\r\n// {\r\n// \"label\": \"潜山县\",\r\n// \"value\": \"340824\"\r\n// },\r\n// {\r\n// \"label\": \"太湖县\",\r\n// \"value\": \"340825\"\r\n// },\r\n// {\r\n// \"label\": \"宿松县\",\r\n// \"value\": \"340826\"\r\n// },\r\n// {\r\n// \"label\": \"望江县\",\r\n// \"value\": \"340827\"\r\n// },\r\n// {\r\n// \"label\": \"岳西县\",\r\n// \"value\": \"340828\"\r\n// },\r\n// {\r\n// \"label\": \"安徽安庆经济开发区\",\r\n// \"value\": \"340871\"\r\n// },\r\n// {\r\n// \"label\": \"桐城市\",\r\n// \"value\": \"340881\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"屯溪区\",\r\n// \"value\": \"341002\"\r\n// },\r\n// {\r\n// \"label\": \"黄山区\",\r\n// \"value\": \"341003\"\r\n// },\r\n// {\r\n// \"label\": \"徽州区\",\r\n// \"value\": \"341004\"\r\n// },\r\n// {\r\n// \"label\": \"歙县\",\r\n// \"value\": \"341021\"\r\n// },\r\n// {\r\n// \"label\": \"休宁县\",\r\n// \"value\": \"341022\"\r\n// },\r\n// {\r\n// \"label\": \"黟县\",\r\n// \"value\": \"341023\"\r\n// },\r\n// {\r\n// \"label\": \"祁门县\",\r\n// \"value\": \"341024\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"琅琊区\",\r\n// \"value\": \"341102\"\r\n// },\r\n// {\r\n// \"label\": \"南谯区\",\r\n// \"value\": \"341103\"\r\n// },\r\n// {\r\n// \"label\": \"来安县\",\r\n// \"value\": \"341122\"\r\n// },\r\n// {\r\n// \"label\": \"全椒县\",\r\n// \"value\": \"341124\"\r\n// },\r\n// {\r\n// \"label\": \"定远县\",\r\n// \"value\": \"341125\"\r\n// },\r\n// {\r\n// \"label\": \"凤阳县\",\r\n// \"value\": \"341126\"\r\n// },\r\n// {\r\n// \"label\": \"苏滁现代产业园\",\r\n// \"value\": \"341171\"\r\n// },\r\n// {\r\n// \"label\": \"滁州经济技术开发区\",\r\n// \"value\": \"341172\"\r\n// },\r\n// {\r\n// \"label\": \"天长市\",\r\n// \"value\": \"341181\"\r\n// },\r\n// {\r\n// \"label\": \"明光市\",\r\n// \"value\": \"341182\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"颍州区\",\r\n// \"value\": \"341202\"\r\n// },\r\n// {\r\n// \"label\": \"颍东区\",\r\n// \"value\": \"341203\"\r\n// },\r\n// {\r\n// \"label\": \"颍泉区\",\r\n// \"value\": \"341204\"\r\n// },\r\n// {\r\n// \"label\": \"临泉县\",\r\n// \"value\": \"341221\"\r\n// },\r\n// {\r\n// \"label\": \"太和县\",\r\n// \"value\": \"341222\"\r\n// },\r\n// {\r\n// \"label\": \"阜南县\",\r\n// \"value\": \"341225\"\r\n// },\r\n// {\r\n// \"label\": \"颍上县\",\r\n// \"value\": \"341226\"\r\n// },\r\n// {\r\n// \"label\": \"阜阳合肥现代产业园区\",\r\n// \"value\": \"341271\"\r\n// },\r\n// {\r\n// \"label\": \"阜阳经济技术开发区\",\r\n// \"value\": \"341272\"\r\n// },\r\n// {\r\n// \"label\": \"界首市\",\r\n// \"value\": \"341282\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"埇桥区\",\r\n// \"value\": \"341302\"\r\n// },\r\n// {\r\n// \"label\": \"砀山县\",\r\n// \"value\": \"341321\"\r\n// },\r\n// {\r\n// \"label\": \"萧县\",\r\n// \"value\": \"341322\"\r\n// },\r\n// {\r\n// \"label\": \"灵璧县\",\r\n// \"value\": \"341323\"\r\n// },\r\n// {\r\n// \"label\": \"泗县\",\r\n// \"value\": \"341324\"\r\n// },\r\n// {\r\n// \"label\": \"宿州马鞍山现代产业园区\",\r\n// \"value\": \"341371\"\r\n// },\r\n// {\r\n// \"label\": \"宿州经济技术开发区\",\r\n// \"value\": \"341372\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"金安区\",\r\n// \"value\": \"341502\"\r\n// },\r\n// {\r\n// \"label\": \"裕安区\",\r\n// \"value\": \"341503\"\r\n// },\r\n// {\r\n// \"label\": \"叶集区\",\r\n// \"value\": \"341504\"\r\n// },\r\n// {\r\n// \"label\": \"霍邱县\",\r\n// \"value\": \"341522\"\r\n// },\r\n// {\r\n// \"label\": \"舒城县\",\r\n// \"value\": \"341523\"\r\n// },\r\n// {\r\n// \"label\": \"金寨县\",\r\n// \"value\": \"341524\"\r\n// },\r\n// {\r\n// \"label\": \"霍山县\",\r\n// \"value\": \"341525\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"谯城区\",\r\n// \"value\": \"341602\"\r\n// },\r\n// {\r\n// \"label\": \"涡阳县\",\r\n// \"value\": \"341621\"\r\n// },\r\n// {\r\n// \"label\": \"蒙城县\",\r\n// \"value\": \"341622\"\r\n// },\r\n// {\r\n// \"label\": \"利辛县\",\r\n// \"value\": \"341623\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"贵池区\",\r\n// \"value\": \"341702\"\r\n// },\r\n// {\r\n// \"label\": \"东至县\",\r\n// \"value\": \"341721\"\r\n// },\r\n// {\r\n// \"label\": \"石台县\",\r\n// \"value\": \"341722\"\r\n// },\r\n// {\r\n// \"label\": \"青阳县\",\r\n// \"value\": \"341723\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"宣州区\",\r\n// \"value\": \"341802\"\r\n// },\r\n// {\r\n// \"label\": \"郎溪县\",\r\n// \"value\": \"341821\"\r\n// },\r\n// {\r\n// \"label\": \"广德县\",\r\n// \"value\": \"341822\"\r\n// },\r\n// {\r\n// \"label\": \"泾县\",\r\n// \"value\": \"341823\"\r\n// },\r\n// {\r\n// \"label\": \"绩溪县\",\r\n// \"value\": \"341824\"\r\n// },\r\n// {\r\n// \"label\": \"旌德县\",\r\n// \"value\": \"341825\"\r\n// },\r\n// {\r\n// \"label\": \"宣城市经济开发区\",\r\n// \"value\": \"341871\"\r\n// },\r\n// {\r\n// \"label\": \"宁国市\",\r\n// \"value\": \"341881\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"鼓楼区\",\r\n// \"value\": \"350102\"\r\n// },\r\n// {\r\n// \"label\": \"台江区\",\r\n// \"value\": \"350103\"\r\n// },\r\n// {\r\n// \"label\": \"仓山区\",\r\n// \"value\": \"350104\"\r\n// },\r\n// {\r\n// \"label\": \"马尾区\",\r\n// \"value\": \"350105\"\r\n// },\r\n// {\r\n// \"label\": \"晋安区\",\r\n// \"value\": \"350111\"\r\n// },\r\n// {\r\n// \"label\": \"闽侯县\",\r\n// \"value\": \"350121\"\r\n// },\r\n// {\r\n// \"label\": \"连江县\",\r\n// \"value\": \"350122\"\r\n// },\r\n// {\r\n// \"label\": \"罗源县\",\r\n// \"value\": \"350123\"\r\n// },\r\n// {\r\n// \"label\": \"闽清县\",\r\n// \"value\": \"350124\"\r\n// },\r\n// {\r\n// \"label\": \"永泰县\",\r\n// \"value\": \"350125\"\r\n// },\r\n// {\r\n// \"label\": \"平潭县\",\r\n// \"value\": \"350128\"\r\n// },\r\n// {\r\n// \"label\": \"福清市\",\r\n// \"value\": \"350181\"\r\n// },\r\n// {\r\n// \"label\": \"长乐市\",\r\n// \"value\": \"350182\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"思明区\",\r\n// \"value\": \"350203\"\r\n// },\r\n// {\r\n// \"label\": \"海沧区\",\r\n// \"value\": \"350205\"\r\n// },\r\n// {\r\n// \"label\": \"湖里区\",\r\n// \"value\": \"350206\"\r\n// },\r\n// {\r\n// \"label\": \"集美区\",\r\n// \"value\": \"350211\"\r\n// },\r\n// {\r\n// \"label\": \"同安区\",\r\n// \"value\": \"350212\"\r\n// },\r\n// {\r\n// \"label\": \"翔安区\",\r\n// \"value\": \"350213\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"城厢区\",\r\n// \"value\": \"350302\"\r\n// },\r\n// {\r\n// \"label\": \"涵江区\",\r\n// \"value\": \"350303\"\r\n// },\r\n// {\r\n// \"label\": \"荔城区\",\r\n// \"value\": \"350304\"\r\n// },\r\n// {\r\n// \"label\": \"秀屿区\",\r\n// \"value\": \"350305\"\r\n// },\r\n// {\r\n// \"label\": \"仙游县\",\r\n// \"value\": \"350322\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"梅列区\",\r\n// \"value\": \"350402\"\r\n// },\r\n// {\r\n// \"label\": \"三元区\",\r\n// \"value\": \"350403\"\r\n// },\r\n// {\r\n// \"label\": \"明溪县\",\r\n// \"value\": \"350421\"\r\n// },\r\n// {\r\n// \"label\": \"清流县\",\r\n// \"value\": \"350423\"\r\n// },\r\n// {\r\n// \"label\": \"宁化县\",\r\n// \"value\": \"350424\"\r\n// },\r\n// {\r\n// \"label\": \"大田县\",\r\n// \"value\": \"350425\"\r\n// },\r\n// {\r\n// \"label\": \"尤溪县\",\r\n// \"value\": \"350426\"\r\n// },\r\n// {\r\n// \"label\": \"沙县\",\r\n// \"value\": \"350427\"\r\n// },\r\n// {\r\n// \"label\": \"将乐县\",\r\n// \"value\": \"350428\"\r\n// },\r\n// {\r\n// \"label\": \"泰宁县\",\r\n// \"value\": \"350429\"\r\n// },\r\n// {\r\n// \"label\": \"建宁县\",\r\n// \"value\": \"350430\"\r\n// },\r\n// {\r\n// \"label\": \"永安市\",\r\n// \"value\": \"350481\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"鲤城区\",\r\n// \"value\": \"350502\"\r\n// },\r\n// {\r\n// \"label\": \"丰泽区\",\r\n// \"value\": \"350503\"\r\n// },\r\n// {\r\n// \"label\": \"洛江区\",\r\n// \"value\": \"350504\"\r\n// },\r\n// {\r\n// \"label\": \"泉港区\",\r\n// \"value\": \"350505\"\r\n// },\r\n// {\r\n// \"label\": \"惠安县\",\r\n// \"value\": \"350521\"\r\n// },\r\n// {\r\n// \"label\": \"安溪县\",\r\n// \"value\": \"350524\"\r\n// },\r\n// {\r\n// \"label\": \"永春县\",\r\n// \"value\": \"350525\"\r\n// },\r\n// {\r\n// \"label\": \"德化县\",\r\n// \"value\": \"350526\"\r\n// },\r\n// {\r\n// \"label\": \"金门县\",\r\n// \"value\": \"350527\"\r\n// },\r\n// {\r\n// \"label\": \"石狮市\",\r\n// \"value\": \"350581\"\r\n// },\r\n// {\r\n// \"label\": \"晋江市\",\r\n// \"value\": \"350582\"\r\n// },\r\n// {\r\n// \"label\": \"南安市\",\r\n// \"value\": \"350583\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"芗城区\",\r\n// \"value\": \"350602\"\r\n// },\r\n// {\r\n// \"label\": \"龙文区\",\r\n// \"value\": \"350603\"\r\n// },\r\n// {\r\n// \"label\": \"云霄县\",\r\n// \"value\": \"350622\"\r\n// },\r\n// {\r\n// \"label\": \"漳浦县\",\r\n// \"value\": \"350623\"\r\n// },\r\n// {\r\n// \"label\": \"诏安县\",\r\n// \"value\": \"350624\"\r\n// },\r\n// {\r\n// \"label\": \"长泰县\",\r\n// \"value\": \"350625\"\r\n// },\r\n// {\r\n// \"label\": \"东山县\",\r\n// \"value\": \"350626\"\r\n// },\r\n// {\r\n// \"label\": \"南靖县\",\r\n// \"value\": \"350627\"\r\n// },\r\n// {\r\n// \"label\": \"平和县\",\r\n// \"value\": \"350628\"\r\n// },\r\n// {\r\n// \"label\": \"华安县\",\r\n// \"value\": \"350629\"\r\n// },\r\n// {\r\n// \"label\": \"龙海市\",\r\n// \"value\": \"350681\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"延平区\",\r\n// \"value\": \"350702\"\r\n// },\r\n// {\r\n// \"label\": \"建阳区\",\r\n// \"value\": \"350703\"\r\n// },\r\n// {\r\n// \"label\": \"顺昌县\",\r\n// \"value\": \"350721\"\r\n// },\r\n// {\r\n// \"label\": \"浦城县\",\r\n// \"value\": \"350722\"\r\n// },\r\n// {\r\n// \"label\": \"光泽县\",\r\n// \"value\": \"350723\"\r\n// },\r\n// {\r\n// \"label\": \"松溪县\",\r\n// \"value\": \"350724\"\r\n// },\r\n// {\r\n// \"label\": \"政和县\",\r\n// \"value\": \"350725\"\r\n// },\r\n// {\r\n// \"label\": \"邵武市\",\r\n// \"value\": \"350781\"\r\n// },\r\n// {\r\n// \"label\": \"武夷山市\",\r\n// \"value\": \"350782\"\r\n// },\r\n// {\r\n// \"label\": \"建瓯市\",\r\n// \"value\": \"350783\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"新罗区\",\r\n// \"value\": \"350802\"\r\n// },\r\n// {\r\n// \"label\": \"永定区\",\r\n// \"value\": \"350803\"\r\n// },\r\n// {\r\n// \"label\": \"长汀县\",\r\n// \"value\": \"350821\"\r\n// },\r\n// {\r\n// \"label\": \"上杭县\",\r\n// \"value\": \"350823\"\r\n// },\r\n// {\r\n// \"label\": \"武平县\",\r\n// \"value\": \"350824\"\r\n// },\r\n// {\r\n// \"label\": \"连城县\",\r\n// \"value\": \"350825\"\r\n// },\r\n// {\r\n// \"label\": \"漳平市\",\r\n// \"value\": \"350881\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"蕉城区\",\r\n// \"value\": \"350902\"\r\n// },\r\n// {\r\n// \"label\": \"霞浦县\",\r\n// \"value\": \"350921\"\r\n// },\r\n// {\r\n// \"label\": \"古田县\",\r\n// \"value\": \"350922\"\r\n// },\r\n// {\r\n// \"label\": \"屏南县\",\r\n// \"value\": \"350923\"\r\n// },\r\n// {\r\n// \"label\": \"寿宁县\",\r\n// \"value\": \"350924\"\r\n// },\r\n// {\r\n// \"label\": \"周宁县\",\r\n// \"value\": \"350925\"\r\n// },\r\n// {\r\n// \"label\": \"柘荣县\",\r\n// \"value\": \"350926\"\r\n// },\r\n// {\r\n// \"label\": \"福安市\",\r\n// \"value\": \"350981\"\r\n// },\r\n// {\r\n// \"label\": \"福鼎市\",\r\n// \"value\": \"350982\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"东湖区\",\r\n// \"value\": \"360102\"\r\n// },\r\n// {\r\n// \"label\": \"西湖区\",\r\n// \"value\": \"360103\"\r\n// },\r\n// {\r\n// \"label\": \"青云谱区\",\r\n// \"value\": \"360104\"\r\n// },\r\n// {\r\n// \"label\": \"湾里区\",\r\n// \"value\": \"360105\"\r\n// },\r\n// {\r\n// \"label\": \"青山湖区\",\r\n// \"value\": \"360111\"\r\n// },\r\n// {\r\n// \"label\": \"新建区\",\r\n// \"value\": \"360112\"\r\n// },\r\n// {\r\n// \"label\": \"南昌县\",\r\n// \"value\": \"360121\"\r\n// },\r\n// {\r\n// \"label\": \"安义县\",\r\n// \"value\": \"360123\"\r\n// },\r\n// {\r\n// \"label\": \"进贤县\",\r\n// \"value\": \"360124\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"昌江区\",\r\n// \"value\": \"360202\"\r\n// },\r\n// {\r\n// \"label\": \"珠山区\",\r\n// \"value\": \"360203\"\r\n// },\r\n// {\r\n// \"label\": \"浮梁县\",\r\n// \"value\": \"360222\"\r\n// },\r\n// {\r\n// \"label\": \"乐平市\",\r\n// \"value\": \"360281\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"安源区\",\r\n// \"value\": \"360302\"\r\n// },\r\n// {\r\n// \"label\": \"湘东区\",\r\n// \"value\": \"360313\"\r\n// },\r\n// {\r\n// \"label\": \"莲花县\",\r\n// \"value\": \"360321\"\r\n// },\r\n// {\r\n// \"label\": \"上栗县\",\r\n// \"value\": \"360322\"\r\n// },\r\n// {\r\n// \"label\": \"芦溪县\",\r\n// \"value\": \"360323\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"濂溪区\",\r\n// \"value\": \"360402\"\r\n// },\r\n// {\r\n// \"label\": \"浔阳区\",\r\n// \"value\": \"360403\"\r\n// },\r\n// {\r\n// \"label\": \"柴桑区\",\r\n// \"value\": \"360404\"\r\n// },\r\n// {\r\n// \"label\": \"武宁县\",\r\n// \"value\": \"360423\"\r\n// },\r\n// {\r\n// \"label\": \"修水县\",\r\n// \"value\": \"360424\"\r\n// },\r\n// {\r\n// \"label\": \"永修县\",\r\n// \"value\": \"360425\"\r\n// },\r\n// {\r\n// \"label\": \"德安县\",\r\n// \"value\": \"360426\"\r\n// },\r\n// {\r\n// \"label\": \"都昌县\",\r\n// \"value\": \"360428\"\r\n// },\r\n// {\r\n// \"label\": \"湖口县\",\r\n// \"value\": \"360429\"\r\n// },\r\n// {\r\n// \"label\": \"彭泽县\",\r\n// \"value\": \"360430\"\r\n// },\r\n// {\r\n// \"label\": \"瑞昌市\",\r\n// \"value\": \"360481\"\r\n// },\r\n// {\r\n// \"label\": \"共青城市\",\r\n// \"value\": \"360482\"\r\n// },\r\n// {\r\n// \"label\": \"庐山市\",\r\n// \"value\": \"360483\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"渝水区\",\r\n// \"value\": \"360502\"\r\n// },\r\n// {\r\n// \"label\": \"分宜县\",\r\n// \"value\": \"360521\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"月湖区\",\r\n// \"value\": \"360602\"\r\n// },\r\n// {\r\n// \"label\": \"余江县\",\r\n// \"value\": \"360622\"\r\n// },\r\n// {\r\n// \"label\": \"贵溪市\",\r\n// \"value\": \"360681\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"章贡区\",\r\n// \"value\": \"360702\"\r\n// },\r\n// {\r\n// \"label\": \"南康区\",\r\n// \"value\": \"360703\"\r\n// },\r\n// {\r\n// \"label\": \"赣县区\",\r\n// \"value\": \"360704\"\r\n// },\r\n// {\r\n// \"label\": \"信丰县\",\r\n// \"value\": \"360722\"\r\n// },\r\n// {\r\n// \"label\": \"大余县\",\r\n// \"value\": \"360723\"\r\n// },\r\n// {\r\n// \"label\": \"上犹县\",\r\n// \"value\": \"360724\"\r\n// },\r\n// {\r\n// \"label\": \"崇义县\",\r\n// \"value\": \"360725\"\r\n// },\r\n// {\r\n// \"label\": \"安远县\",\r\n// \"value\": \"360726\"\r\n// },\r\n// {\r\n// \"label\": \"龙南县\",\r\n// \"value\": \"360727\"\r\n// },\r\n// {\r\n// \"label\": \"定南县\",\r\n// \"value\": \"360728\"\r\n// },\r\n// {\r\n// \"label\": \"全南县\",\r\n// \"value\": \"360729\"\r\n// },\r\n// {\r\n// \"label\": \"宁都县\",\r\n// \"value\": \"360730\"\r\n// },\r\n// {\r\n// \"label\": \"于都县\",\r\n// \"value\": \"360731\"\r\n// },\r\n// {\r\n// \"label\": \"兴国县\",\r\n// \"value\": \"360732\"\r\n// },\r\n// {\r\n// \"label\": \"会昌县\",\r\n// \"value\": \"360733\"\r\n// },\r\n// {\r\n// \"label\": \"寻乌县\",\r\n// \"value\": \"360734\"\r\n// },\r\n// {\r\n// \"label\": \"石城县\",\r\n// \"value\": \"360735\"\r\n// },\r\n// {\r\n// \"label\": \"瑞金市\",\r\n// \"value\": \"360781\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"吉州区\",\r\n// \"value\": \"360802\"\r\n// },\r\n// {\r\n// \"label\": \"青原区\",\r\n// \"value\": \"360803\"\r\n// },\r\n// {\r\n// \"label\": \"吉安县\",\r\n// \"value\": \"360821\"\r\n// },\r\n// {\r\n// \"label\": \"吉水县\",\r\n// \"value\": \"360822\"\r\n// },\r\n// {\r\n// \"label\": \"峡江县\",\r\n// \"value\": \"360823\"\r\n// },\r\n// {\r\n// \"label\": \"新干县\",\r\n// \"value\": \"360824\"\r\n// },\r\n// {\r\n// \"label\": \"永丰县\",\r\n// \"value\": \"360825\"\r\n// },\r\n// {\r\n// \"label\": \"泰和县\",\r\n// \"value\": \"360826\"\r\n// },\r\n// {\r\n// \"label\": \"遂川县\",\r\n// \"value\": \"360827\"\r\n// },\r\n// {\r\n// \"label\": \"万安县\",\r\n// \"value\": \"360828\"\r\n// },\r\n// {\r\n// \"label\": \"安福县\",\r\n// \"value\": \"360829\"\r\n// },\r\n// {\r\n// \"label\": \"永新县\",\r\n// \"value\": \"360830\"\r\n// },\r\n// {\r\n// \"label\": \"井冈山市\",\r\n// \"value\": \"360881\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"袁州区\",\r\n// \"value\": \"360902\"\r\n// },\r\n// {\r\n// \"label\": \"奉新县\",\r\n// \"value\": \"360921\"\r\n// },\r\n// {\r\n// \"label\": \"万载县\",\r\n// \"value\": \"360922\"\r\n// },\r\n// {\r\n// \"label\": \"上高县\",\r\n// \"value\": \"360923\"\r\n// },\r\n// {\r\n// \"label\": \"宜丰县\",\r\n// \"value\": \"360924\"\r\n// },\r\n// {\r\n// \"label\": \"靖安县\",\r\n// \"value\": \"360925\"\r\n// },\r\n// {\r\n// \"label\": \"铜鼓县\",\r\n// \"value\": \"360926\"\r\n// },\r\n// {\r\n// \"label\": \"丰城市\",\r\n// \"value\": \"360981\"\r\n// },\r\n// {\r\n// \"label\": \"樟树市\",\r\n// \"value\": \"360982\"\r\n// },\r\n// {\r\n// \"label\": \"高安市\",\r\n// \"value\": \"360983\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"临川区\",\r\n// \"value\": \"361002\"\r\n// },\r\n// {\r\n// \"label\": \"东乡区\",\r\n// \"value\": \"361003\"\r\n// },\r\n// {\r\n// \"label\": \"南城县\",\r\n// \"value\": \"361021\"\r\n// },\r\n// {\r\n// \"label\": \"黎川县\",\r\n// \"value\": \"361022\"\r\n// },\r\n// {\r\n// \"label\": \"南丰县\",\r\n// \"value\": \"361023\"\r\n// },\r\n// {\r\n// \"label\": \"崇仁县\",\r\n// \"value\": \"361024\"\r\n// },\r\n// {\r\n// \"label\": \"乐安县\",\r\n// \"value\": \"361025\"\r\n// },\r\n// {\r\n// \"label\": \"宜黄县\",\r\n// \"value\": \"361026\"\r\n// },\r\n// {\r\n// \"label\": \"金溪县\",\r\n// \"value\": \"361027\"\r\n// },\r\n// {\r\n// \"label\": \"资溪县\",\r\n// \"value\": \"361028\"\r\n// },\r\n// {\r\n// \"label\": \"广昌县\",\r\n// \"value\": \"361030\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"信州区\",\r\n// \"value\": \"361102\"\r\n// },\r\n// {\r\n// \"label\": \"广丰区\",\r\n// \"value\": \"361103\"\r\n// },\r\n// {\r\n// \"label\": \"上饶县\",\r\n// \"value\": \"361121\"\r\n// },\r\n// {\r\n// \"label\": \"玉山县\",\r\n// \"value\": \"361123\"\r\n// },\r\n// {\r\n// \"label\": \"铅山县\",\r\n// \"value\": \"361124\"\r\n// },\r\n// {\r\n// \"label\": \"横峰县\",\r\n// \"value\": \"361125\"\r\n// },\r\n// {\r\n// \"label\": \"弋阳县\",\r\n// \"value\": \"361126\"\r\n// },\r\n// {\r\n// \"label\": \"余干县\",\r\n// \"value\": \"361127\"\r\n// },\r\n// {\r\n// \"label\": \"鄱阳县\",\r\n// \"value\": \"361128\"\r\n// },\r\n// {\r\n// \"label\": \"万年县\",\r\n// \"value\": \"361129\"\r\n// },\r\n// {\r\n// \"label\": \"婺源县\",\r\n// \"value\": \"361130\"\r\n// },\r\n// {\r\n// \"label\": \"德兴市\",\r\n// \"value\": \"361181\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"历下区\",\r\n// \"value\": \"370102\"\r\n// },\r\n// {\r\n// \"label\": \"市中区\",\r\n// \"value\": \"370103\"\r\n// },\r\n// {\r\n// \"label\": \"槐荫区\",\r\n// \"value\": \"370104\"\r\n// },\r\n// {\r\n// \"label\": \"天桥区\",\r\n// \"value\": \"370105\"\r\n// },\r\n// {\r\n// \"label\": \"历城区\",\r\n// \"value\": \"370112\"\r\n// },\r\n// {\r\n// \"label\": \"长清区\",\r\n// \"value\": \"370113\"\r\n// },\r\n// {\r\n// \"label\": \"章丘区\",\r\n// \"value\": \"370114\"\r\n// },\r\n// {\r\n// \"label\": \"平阴县\",\r\n// \"value\": \"370124\"\r\n// },\r\n// {\r\n// \"label\": \"济阳县\",\r\n// \"value\": \"370125\"\r\n// },\r\n// {\r\n// \"label\": \"商河县\",\r\n// \"value\": \"370126\"\r\n// },\r\n// {\r\n// \"label\": \"济南高新技术产业开发区\",\r\n// \"value\": \"370171\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"市南区\",\r\n// \"value\": \"370202\"\r\n// },\r\n// {\r\n// \"label\": \"市北区\",\r\n// \"value\": \"370203\"\r\n// },\r\n// {\r\n// \"label\": \"黄岛区\",\r\n// \"value\": \"370211\"\r\n// },\r\n// {\r\n// \"label\": \"崂山区\",\r\n// \"value\": \"370212\"\r\n// },\r\n// {\r\n// \"label\": \"李沧区\",\r\n// \"value\": \"370213\"\r\n// },\r\n// {\r\n// \"label\": \"城阳区\",\r\n// \"value\": \"370214\"\r\n// },\r\n// {\r\n// \"label\": \"即墨区\",\r\n// \"value\": \"370215\"\r\n// },\r\n// {\r\n// \"label\": \"青岛高新技术产业开发区\",\r\n// \"value\": \"370271\"\r\n// },\r\n// {\r\n// \"label\": \"胶州市\",\r\n// \"value\": \"370281\"\r\n// },\r\n// {\r\n// \"label\": \"平度市\",\r\n// \"value\": \"370283\"\r\n// },\r\n// {\r\n// \"label\": \"莱西市\",\r\n// \"value\": \"370285\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"淄川区\",\r\n// \"value\": \"370302\"\r\n// },\r\n// {\r\n// \"label\": \"张店区\",\r\n// \"value\": \"370303\"\r\n// },\r\n// {\r\n// \"label\": \"博山区\",\r\n// \"value\": \"370304\"\r\n// },\r\n// {\r\n// \"label\": \"临淄区\",\r\n// \"value\": \"370305\"\r\n// },\r\n// {\r\n// \"label\": \"周村区\",\r\n// \"value\": \"370306\"\r\n// },\r\n// {\r\n// \"label\": \"桓台县\",\r\n// \"value\": \"370321\"\r\n// },\r\n// {\r\n// \"label\": \"高青县\",\r\n// \"value\": \"370322\"\r\n// },\r\n// {\r\n// \"label\": \"沂源县\",\r\n// \"value\": \"370323\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"市中区\",\r\n// \"value\": \"370402\"\r\n// },\r\n// {\r\n// \"label\": \"薛城区\",\r\n// \"value\": \"370403\"\r\n// },\r\n// {\r\n// \"label\": \"峄城区\",\r\n// \"value\": \"370404\"\r\n// },\r\n// {\r\n// \"label\": \"台儿庄区\",\r\n// \"value\": \"370405\"\r\n// },\r\n// {\r\n// \"label\": \"山亭区\",\r\n// \"value\": \"370406\"\r\n// },\r\n// {\r\n// \"label\": \"滕州市\",\r\n// \"value\": \"370481\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东营区\",\r\n// \"value\": \"370502\"\r\n// },\r\n// {\r\n// \"label\": \"河口区\",\r\n// \"value\": \"370503\"\r\n// },\r\n// {\r\n// \"label\": \"垦利区\",\r\n// \"value\": \"370505\"\r\n// },\r\n// {\r\n// \"label\": \"利津县\",\r\n// \"value\": \"370522\"\r\n// },\r\n// {\r\n// \"label\": \"广饶县\",\r\n// \"value\": \"370523\"\r\n// },\r\n// {\r\n// \"label\": \"东营经济技术开发区\",\r\n// \"value\": \"370571\"\r\n// },\r\n// {\r\n// \"label\": \"东营港经济开发区\",\r\n// \"value\": \"370572\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"芝罘区\",\r\n// \"value\": \"370602\"\r\n// },\r\n// {\r\n// \"label\": \"福山区\",\r\n// \"value\": \"370611\"\r\n// },\r\n// {\r\n// \"label\": \"牟平区\",\r\n// \"value\": \"370612\"\r\n// },\r\n// {\r\n// \"label\": \"莱山区\",\r\n// \"value\": \"370613\"\r\n// },\r\n// {\r\n// \"label\": \"长岛县\",\r\n// \"value\": \"370634\"\r\n// },\r\n// {\r\n// \"label\": \"烟台高新技术产业开发区\",\r\n// \"value\": \"370671\"\r\n// },\r\n// {\r\n// \"label\": \"烟台经济技术开发区\",\r\n// \"value\": \"370672\"\r\n// },\r\n// {\r\n// \"label\": \"龙口市\",\r\n// \"value\": \"370681\"\r\n// },\r\n// {\r\n// \"label\": \"莱阳市\",\r\n// \"value\": \"370682\"\r\n// },\r\n// {\r\n// \"label\": \"莱州市\",\r\n// \"value\": \"370683\"\r\n// },\r\n// {\r\n// \"label\": \"蓬莱市\",\r\n// \"value\": \"370684\"\r\n// },\r\n// {\r\n// \"label\": \"招远市\",\r\n// \"value\": \"370685\"\r\n// },\r\n// {\r\n// \"label\": \"栖霞市\",\r\n// \"value\": \"370686\"\r\n// },\r\n// {\r\n// \"label\": \"海阳市\",\r\n// \"value\": \"370687\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"潍城区\",\r\n// \"value\": \"370702\"\r\n// },\r\n// {\r\n// \"label\": \"寒亭区\",\r\n// \"value\": \"370703\"\r\n// },\r\n// {\r\n// \"label\": \"坊子区\",\r\n// \"value\": \"370704\"\r\n// },\r\n// {\r\n// \"label\": \"奎文区\",\r\n// \"value\": \"370705\"\r\n// },\r\n// {\r\n// \"label\": \"临朐县\",\r\n// \"value\": \"370724\"\r\n// },\r\n// {\r\n// \"label\": \"昌乐县\",\r\n// \"value\": \"370725\"\r\n// },\r\n// {\r\n// \"label\": \"潍坊滨海经济技术开发区\",\r\n// \"value\": \"370772\"\r\n// },\r\n// {\r\n// \"label\": \"青州市\",\r\n// \"value\": \"370781\"\r\n// },\r\n// {\r\n// \"label\": \"诸城市\",\r\n// \"value\": \"370782\"\r\n// },\r\n// {\r\n// \"label\": \"寿光市\",\r\n// \"value\": \"370783\"\r\n// },\r\n// {\r\n// \"label\": \"安丘市\",\r\n// \"value\": \"370784\"\r\n// },\r\n// {\r\n// \"label\": \"高密市\",\r\n// \"value\": \"370785\"\r\n// },\r\n// {\r\n// \"label\": \"昌邑市\",\r\n// \"value\": \"370786\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"任城区\",\r\n// \"value\": \"370811\"\r\n// },\r\n// {\r\n// \"label\": \"兖州区\",\r\n// \"value\": \"370812\"\r\n// },\r\n// {\r\n// \"label\": \"微山县\",\r\n// \"value\": \"370826\"\r\n// },\r\n// {\r\n// \"label\": \"鱼台县\",\r\n// \"value\": \"370827\"\r\n// },\r\n// {\r\n// \"label\": \"金乡县\",\r\n// \"value\": \"370828\"\r\n// },\r\n// {\r\n// \"label\": \"嘉祥县\",\r\n// \"value\": \"370829\"\r\n// },\r\n// {\r\n// \"label\": \"汶上县\",\r\n// \"value\": \"370830\"\r\n// },\r\n// {\r\n// \"label\": \"泗水县\",\r\n// \"value\": \"370831\"\r\n// },\r\n// {\r\n// \"label\": \"梁山县\",\r\n// \"value\": \"370832\"\r\n// },\r\n// {\r\n// \"label\": \"济宁高新技术产业开发区\",\r\n// \"value\": \"370871\"\r\n// },\r\n// {\r\n// \"label\": \"曲阜市\",\r\n// \"value\": \"370881\"\r\n// },\r\n// {\r\n// \"label\": \"邹城市\",\r\n// \"value\": \"370883\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"泰山区\",\r\n// \"value\": \"370902\"\r\n// },\r\n// {\r\n// \"label\": \"岱岳区\",\r\n// \"value\": \"370911\"\r\n// },\r\n// {\r\n// \"label\": \"宁阳县\",\r\n// \"value\": \"370921\"\r\n// },\r\n// {\r\n// \"label\": \"东平县\",\r\n// \"value\": \"370923\"\r\n// },\r\n// {\r\n// \"label\": \"新泰市\",\r\n// \"value\": \"370982\"\r\n// },\r\n// {\r\n// \"label\": \"肥城市\",\r\n// \"value\": \"370983\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"环翠区\",\r\n// \"value\": \"371002\"\r\n// },\r\n// {\r\n// \"label\": \"文登区\",\r\n// \"value\": \"371003\"\r\n// },\r\n// {\r\n// \"label\": \"威海火炬高技术产业开发区\",\r\n// \"value\": \"371071\"\r\n// },\r\n// {\r\n// \"label\": \"威海经济技术开发区\",\r\n// \"value\": \"371072\"\r\n// },\r\n// {\r\n// \"label\": \"威海临港经济技术开发区\",\r\n// \"value\": \"371073\"\r\n// },\r\n// {\r\n// \"label\": \"荣成市\",\r\n// \"value\": \"371082\"\r\n// },\r\n// {\r\n// \"label\": \"乳山市\",\r\n// \"value\": \"371083\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东港区\",\r\n// \"value\": \"371102\"\r\n// },\r\n// {\r\n// \"label\": \"岚山区\",\r\n// \"value\": \"371103\"\r\n// },\r\n// {\r\n// \"label\": \"五莲县\",\r\n// \"value\": \"371121\"\r\n// },\r\n// {\r\n// \"label\": \"莒县\",\r\n// \"value\": \"371122\"\r\n// },\r\n// {\r\n// \"label\": \"日照经济技术开发区\",\r\n// \"value\": \"371171\"\r\n// },\r\n// {\r\n// \"label\": \"日照国际海洋城\",\r\n// \"value\": \"371172\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"莱城区\",\r\n// \"value\": \"371202\"\r\n// },\r\n// {\r\n// \"label\": \"钢城区\",\r\n// \"value\": \"371203\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"兰山区\",\r\n// \"value\": \"371302\"\r\n// },\r\n// {\r\n// \"label\": \"罗庄区\",\r\n// \"value\": \"371311\"\r\n// },\r\n// {\r\n// \"label\": \"河东区\",\r\n// \"value\": \"371312\"\r\n// },\r\n// {\r\n// \"label\": \"沂南县\",\r\n// \"value\": \"371321\"\r\n// },\r\n// {\r\n// \"label\": \"郯城县\",\r\n// \"value\": \"371322\"\r\n// },\r\n// {\r\n// \"label\": \"沂水县\",\r\n// \"value\": \"371323\"\r\n// },\r\n// {\r\n// \"label\": \"兰陵县\",\r\n// \"value\": \"371324\"\r\n// },\r\n// {\r\n// \"label\": \"费县\",\r\n// \"value\": \"371325\"\r\n// },\r\n// {\r\n// \"label\": \"平邑县\",\r\n// \"value\": \"371326\"\r\n// },\r\n// {\r\n// \"label\": \"莒南县\",\r\n// \"value\": \"371327\"\r\n// },\r\n// {\r\n// \"label\": \"蒙阴县\",\r\n// \"value\": \"371328\"\r\n// },\r\n// {\r\n// \"label\": \"临沭县\",\r\n// \"value\": \"371329\"\r\n// },\r\n// {\r\n// \"label\": \"临沂高新技术产业开发区\",\r\n// \"value\": \"371371\"\r\n// },\r\n// {\r\n// \"label\": \"临沂经济技术开发区\",\r\n// \"value\": \"371372\"\r\n// },\r\n// {\r\n// \"label\": \"临沂临港经济开发区\",\r\n// \"value\": \"371373\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"德城区\",\r\n// \"value\": \"371402\"\r\n// },\r\n// {\r\n// \"label\": \"陵城区\",\r\n// \"value\": \"371403\"\r\n// },\r\n// {\r\n// \"label\": \"宁津县\",\r\n// \"value\": \"371422\"\r\n// },\r\n// {\r\n// \"label\": \"庆云县\",\r\n// \"value\": \"371423\"\r\n// },\r\n// {\r\n// \"label\": \"临邑县\",\r\n// \"value\": \"371424\"\r\n// },\r\n// {\r\n// \"label\": \"齐河县\",\r\n// \"value\": \"371425\"\r\n// },\r\n// {\r\n// \"label\": \"平原县\",\r\n// \"value\": \"371426\"\r\n// },\r\n// {\r\n// \"label\": \"夏津县\",\r\n// \"value\": \"371427\"\r\n// },\r\n// {\r\n// \"label\": \"武城县\",\r\n// \"value\": \"371428\"\r\n// },\r\n// {\r\n// \"label\": \"德州经济技术开发区\",\r\n// \"value\": \"371471\"\r\n// },\r\n// {\r\n// \"label\": \"德州运河经济开发区\",\r\n// \"value\": \"371472\"\r\n// },\r\n// {\r\n// \"label\": \"乐陵市\",\r\n// \"value\": \"371481\"\r\n// },\r\n// {\r\n// \"label\": \"禹城市\",\r\n// \"value\": \"371482\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东昌府区\",\r\n// \"value\": \"371502\"\r\n// },\r\n// {\r\n// \"label\": \"阳谷县\",\r\n// \"value\": \"371521\"\r\n// },\r\n// {\r\n// \"label\": \"莘县\",\r\n// \"value\": \"371522\"\r\n// },\r\n// {\r\n// \"label\": \"茌平县\",\r\n// \"value\": \"371523\"\r\n// },\r\n// {\r\n// \"label\": \"东阿县\",\r\n// \"value\": \"371524\"\r\n// },\r\n// {\r\n// \"label\": \"冠县\",\r\n// \"value\": \"371525\"\r\n// },\r\n// {\r\n// \"label\": \"高唐县\",\r\n// \"value\": \"371526\"\r\n// },\r\n// {\r\n// \"label\": \"临清市\",\r\n// \"value\": \"371581\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"滨城区\",\r\n// \"value\": \"371602\"\r\n// },\r\n// {\r\n// \"label\": \"沾化区\",\r\n// \"value\": \"371603\"\r\n// },\r\n// {\r\n// \"label\": \"惠民县\",\r\n// \"value\": \"371621\"\r\n// },\r\n// {\r\n// \"label\": \"阳信县\",\r\n// \"value\": \"371622\"\r\n// },\r\n// {\r\n// \"label\": \"无棣县\",\r\n// \"value\": \"371623\"\r\n// },\r\n// {\r\n// \"label\": \"博兴县\",\r\n// \"value\": \"371625\"\r\n// },\r\n// {\r\n// \"label\": \"邹平县\",\r\n// \"value\": \"371626\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"牡丹区\",\r\n// \"value\": \"371702\"\r\n// },\r\n// {\r\n// \"label\": \"定陶区\",\r\n// \"value\": \"371703\"\r\n// },\r\n// {\r\n// \"label\": \"曹县\",\r\n// \"value\": \"371721\"\r\n// },\r\n// {\r\n// \"label\": \"单县\",\r\n// \"value\": \"371722\"\r\n// },\r\n// {\r\n// \"label\": \"成武县\",\r\n// \"value\": \"371723\"\r\n// },\r\n// {\r\n// \"label\": \"巨野县\",\r\n// \"value\": \"371724\"\r\n// },\r\n// {\r\n// \"label\": \"郓城县\",\r\n// \"value\": \"371725\"\r\n// },\r\n// {\r\n// \"label\": \"鄄城县\",\r\n// \"value\": \"371726\"\r\n// },\r\n// {\r\n// \"label\": \"东明县\",\r\n// \"value\": \"371728\"\r\n// },\r\n// {\r\n// \"label\": \"菏泽经济技术开发区\",\r\n// \"value\": \"371771\"\r\n// },\r\n// {\r\n// \"label\": \"菏泽高新技术开发区\",\r\n// \"value\": \"371772\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"中原区\",\r\n// \"value\": \"410102\"\r\n// },\r\n// {\r\n// \"label\": \"二七区\",\r\n// \"value\": \"410103\"\r\n// },\r\n// {\r\n// \"label\": \"管城回族区\",\r\n// \"value\": \"410104\"\r\n// },\r\n// {\r\n// \"label\": \"金水区\",\r\n// \"value\": \"410105\"\r\n// },\r\n// {\r\n// \"label\": \"上街区\",\r\n// \"value\": \"410106\"\r\n// },\r\n// {\r\n// \"label\": \"惠济区\",\r\n// \"value\": \"410108\"\r\n// },\r\n// {\r\n// \"label\": \"中牟县\",\r\n// \"value\": \"410122\"\r\n// },\r\n// {\r\n// \"label\": \"郑州经济技术开发区\",\r\n// \"value\": \"410171\"\r\n// },\r\n// {\r\n// \"label\": \"郑州高新技术产业开发区\",\r\n// \"value\": \"410172\"\r\n// },\r\n// {\r\n// \"label\": \"郑州航空港经济综合实验区\",\r\n// \"value\": \"410173\"\r\n// },\r\n// {\r\n// \"label\": \"巩义市\",\r\n// \"value\": \"410181\"\r\n// },\r\n// {\r\n// \"label\": \"荥阳市\",\r\n// \"value\": \"410182\"\r\n// },\r\n// {\r\n// \"label\": \"新密市\",\r\n// \"value\": \"410183\"\r\n// },\r\n// {\r\n// \"label\": \"新郑市\",\r\n// \"value\": \"410184\"\r\n// },\r\n// {\r\n// \"label\": \"登封市\",\r\n// \"value\": \"410185\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"龙亭区\",\r\n// \"value\": \"410202\"\r\n// },\r\n// {\r\n// \"label\": \"顺河回族区\",\r\n// \"value\": \"410203\"\r\n// },\r\n// {\r\n// \"label\": \"鼓楼区\",\r\n// \"value\": \"410204\"\r\n// },\r\n// {\r\n// \"label\": \"禹王台区\",\r\n// \"value\": \"410205\"\r\n// },\r\n// {\r\n// \"label\": \"祥符区\",\r\n// \"value\": \"410212\"\r\n// },\r\n// {\r\n// \"label\": \"杞县\",\r\n// \"value\": \"410221\"\r\n// },\r\n// {\r\n// \"label\": \"通许县\",\r\n// \"value\": \"410222\"\r\n// },\r\n// {\r\n// \"label\": \"尉氏县\",\r\n// \"value\": \"410223\"\r\n// },\r\n// {\r\n// \"label\": \"兰考县\",\r\n// \"value\": \"410225\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"老城区\",\r\n// \"value\": \"410302\"\r\n// },\r\n// {\r\n// \"label\": \"西工区\",\r\n// \"value\": \"410303\"\r\n// },\r\n// {\r\n// \"label\": \"瀍河回族区\",\r\n// \"value\": \"410304\"\r\n// },\r\n// {\r\n// \"label\": \"涧西区\",\r\n// \"value\": \"410305\"\r\n// },\r\n// {\r\n// \"label\": \"吉利区\",\r\n// \"value\": \"410306\"\r\n// },\r\n// {\r\n// \"label\": \"洛龙区\",\r\n// \"value\": \"410311\"\r\n// },\r\n// {\r\n// \"label\": \"孟津县\",\r\n// \"value\": \"410322\"\r\n// },\r\n// {\r\n// \"label\": \"新安县\",\r\n// \"value\": \"410323\"\r\n// },\r\n// {\r\n// \"label\": \"栾川县\",\r\n// \"value\": \"410324\"\r\n// },\r\n// {\r\n// \"label\": \"嵩县\",\r\n// \"value\": \"410325\"\r\n// },\r\n// {\r\n// \"label\": \"汝阳县\",\r\n// \"value\": \"410326\"\r\n// },\r\n// {\r\n// \"label\": \"宜阳县\",\r\n// \"value\": \"410327\"\r\n// },\r\n// {\r\n// \"label\": \"洛宁县\",\r\n// \"value\": \"410328\"\r\n// },\r\n// {\r\n// \"label\": \"伊川县\",\r\n// \"value\": \"410329\"\r\n// },\r\n// {\r\n// \"label\": \"洛阳高新技术产业开发区\",\r\n// \"value\": \"410371\"\r\n// },\r\n// {\r\n// \"label\": \"偃师市\",\r\n// \"value\": \"410381\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"新华区\",\r\n// \"value\": \"410402\"\r\n// },\r\n// {\r\n// \"label\": \"卫东区\",\r\n// \"value\": \"410403\"\r\n// },\r\n// {\r\n// \"label\": \"石龙区\",\r\n// \"value\": \"410404\"\r\n// },\r\n// {\r\n// \"label\": \"湛河区\",\r\n// \"value\": \"410411\"\r\n// },\r\n// {\r\n// \"label\": \"宝丰县\",\r\n// \"value\": \"410421\"\r\n// },\r\n// {\r\n// \"label\": \"叶县\",\r\n// \"value\": \"410422\"\r\n// },\r\n// {\r\n// \"label\": \"鲁山县\",\r\n// \"value\": \"410423\"\r\n// },\r\n// {\r\n// \"label\": \"郏县\",\r\n// \"value\": \"410425\"\r\n// },\r\n// {\r\n// \"label\": \"平顶山高新技术产业开发区\",\r\n// \"value\": \"410471\"\r\n// },\r\n// {\r\n// \"label\": \"平顶山市新城区\",\r\n// \"value\": \"410472\"\r\n// },\r\n// {\r\n// \"label\": \"舞钢市\",\r\n// \"value\": \"410481\"\r\n// },\r\n// {\r\n// \"label\": \"汝州市\",\r\n// \"value\": \"410482\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"文峰区\",\r\n// \"value\": \"410502\"\r\n// },\r\n// {\r\n// \"label\": \"北关区\",\r\n// \"value\": \"410503\"\r\n// },\r\n// {\r\n// \"label\": \"殷都区\",\r\n// \"value\": \"410505\"\r\n// },\r\n// {\r\n// \"label\": \"龙安区\",\r\n// \"value\": \"410506\"\r\n// },\r\n// {\r\n// \"label\": \"安阳县\",\r\n// \"value\": \"410522\"\r\n// },\r\n// {\r\n// \"label\": \"汤阴县\",\r\n// \"value\": \"410523\"\r\n// },\r\n// {\r\n// \"label\": \"滑县\",\r\n// \"value\": \"410526\"\r\n// },\r\n// {\r\n// \"label\": \"内黄县\",\r\n// \"value\": \"410527\"\r\n// },\r\n// {\r\n// \"label\": \"安阳高新技术产业开发区\",\r\n// \"value\": \"410571\"\r\n// },\r\n// {\r\n// \"label\": \"林州市\",\r\n// \"value\": \"410581\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"鹤山区\",\r\n// \"value\": \"410602\"\r\n// },\r\n// {\r\n// \"label\": \"山城区\",\r\n// \"value\": \"410603\"\r\n// },\r\n// {\r\n// \"label\": \"淇滨区\",\r\n// \"value\": \"410611\"\r\n// },\r\n// {\r\n// \"label\": \"浚县\",\r\n// \"value\": \"410621\"\r\n// },\r\n// {\r\n// \"label\": \"淇县\",\r\n// \"value\": \"410622\"\r\n// },\r\n// {\r\n// \"label\": \"鹤壁经济技术开发区\",\r\n// \"value\": \"410671\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"红旗区\",\r\n// \"value\": \"410702\"\r\n// },\r\n// {\r\n// \"label\": \"卫滨区\",\r\n// \"value\": \"410703\"\r\n// },\r\n// {\r\n// \"label\": \"凤泉区\",\r\n// \"value\": \"410704\"\r\n// },\r\n// {\r\n// \"label\": \"牧野区\",\r\n// \"value\": \"410711\"\r\n// },\r\n// {\r\n// \"label\": \"新乡县\",\r\n// \"value\": \"410721\"\r\n// },\r\n// {\r\n// \"label\": \"获嘉县\",\r\n// \"value\": \"410724\"\r\n// },\r\n// {\r\n// \"label\": \"原阳县\",\r\n// \"value\": \"410725\"\r\n// },\r\n// {\r\n// \"label\": \"延津县\",\r\n// \"value\": \"410726\"\r\n// },\r\n// {\r\n// \"label\": \"封丘县\",\r\n// \"value\": \"410727\"\r\n// },\r\n// {\r\n// \"label\": \"长垣县\",\r\n// \"value\": \"410728\"\r\n// },\r\n// {\r\n// \"label\": \"新乡高新技术产业开发区\",\r\n// \"value\": \"410771\"\r\n// },\r\n// {\r\n// \"label\": \"新乡经济技术开发区\",\r\n// \"value\": \"410772\"\r\n// },\r\n// {\r\n// \"label\": \"新乡市平原城乡一体化示范区\",\r\n// \"value\": \"410773\"\r\n// },\r\n// {\r\n// \"label\": \"卫辉市\",\r\n// \"value\": \"410781\"\r\n// },\r\n// {\r\n// \"label\": \"辉县市\",\r\n// \"value\": \"410782\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"解放区\",\r\n// \"value\": \"410802\"\r\n// },\r\n// {\r\n// \"label\": \"中站区\",\r\n// \"value\": \"410803\"\r\n// },\r\n// {\r\n// \"label\": \"马村区\",\r\n// \"value\": \"410804\"\r\n// },\r\n// {\r\n// \"label\": \"山阳区\",\r\n// \"value\": \"410811\"\r\n// },\r\n// {\r\n// \"label\": \"修武县\",\r\n// \"value\": \"410821\"\r\n// },\r\n// {\r\n// \"label\": \"博爱县\",\r\n// \"value\": \"410822\"\r\n// },\r\n// {\r\n// \"label\": \"武陟县\",\r\n// \"value\": \"410823\"\r\n// },\r\n// {\r\n// \"label\": \"温县\",\r\n// \"value\": \"410825\"\r\n// },\r\n// {\r\n// \"label\": \"焦作城乡一体化示范区\",\r\n// \"value\": \"410871\"\r\n// },\r\n// {\r\n// \"label\": \"沁阳市\",\r\n// \"value\": \"410882\"\r\n// },\r\n// {\r\n// \"label\": \"孟州市\",\r\n// \"value\": \"410883\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"华龙区\",\r\n// \"value\": \"410902\"\r\n// },\r\n// {\r\n// \"label\": \"清丰县\",\r\n// \"value\": \"410922\"\r\n// },\r\n// {\r\n// \"label\": \"南乐县\",\r\n// \"value\": \"410923\"\r\n// },\r\n// {\r\n// \"label\": \"范县\",\r\n// \"value\": \"410926\"\r\n// },\r\n// {\r\n// \"label\": \"台前县\",\r\n// \"value\": \"410927\"\r\n// },\r\n// {\r\n// \"label\": \"濮阳县\",\r\n// \"value\": \"410928\"\r\n// },\r\n// {\r\n// \"label\": \"河南濮阳工业园区\",\r\n// \"value\": \"410971\"\r\n// },\r\n// {\r\n// \"label\": \"濮阳经济技术开发区\",\r\n// \"value\": \"410972\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"魏都区\",\r\n// \"value\": \"411002\"\r\n// },\r\n// {\r\n// \"label\": \"建安区\",\r\n// \"value\": \"411003\"\r\n// },\r\n// {\r\n// \"label\": \"鄢陵县\",\r\n// \"value\": \"411024\"\r\n// },\r\n// {\r\n// \"label\": \"襄城县\",\r\n// \"value\": \"411025\"\r\n// },\r\n// {\r\n// \"label\": \"许昌经济技术开发区\",\r\n// \"value\": \"411071\"\r\n// },\r\n// {\r\n// \"label\": \"禹州市\",\r\n// \"value\": \"411081\"\r\n// },\r\n// {\r\n// \"label\": \"长葛市\",\r\n// \"value\": \"411082\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"源汇区\",\r\n// \"value\": \"411102\"\r\n// },\r\n// {\r\n// \"label\": \"郾城区\",\r\n// \"value\": \"411103\"\r\n// },\r\n// {\r\n// \"label\": \"召陵区\",\r\n// \"value\": \"411104\"\r\n// },\r\n// {\r\n// \"label\": \"舞阳县\",\r\n// \"value\": \"411121\"\r\n// },\r\n// {\r\n// \"label\": \"临颍县\",\r\n// \"value\": \"411122\"\r\n// },\r\n// {\r\n// \"label\": \"漯河经济技术开发区\",\r\n// \"value\": \"411171\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"湖滨区\",\r\n// \"value\": \"411202\"\r\n// },\r\n// {\r\n// \"label\": \"陕州区\",\r\n// \"value\": \"411203\"\r\n// },\r\n// {\r\n// \"label\": \"渑池县\",\r\n// \"value\": \"411221\"\r\n// },\r\n// {\r\n// \"label\": \"卢氏县\",\r\n// \"value\": \"411224\"\r\n// },\r\n// {\r\n// \"label\": \"河南三门峡经济开发区\",\r\n// \"value\": \"411271\"\r\n// },\r\n// {\r\n// \"label\": \"义马市\",\r\n// \"value\": \"411281\"\r\n// },\r\n// {\r\n// \"label\": \"灵宝市\",\r\n// \"value\": \"411282\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"宛城区\",\r\n// \"value\": \"411302\"\r\n// },\r\n// {\r\n// \"label\": \"卧龙区\",\r\n// \"value\": \"411303\"\r\n// },\r\n// {\r\n// \"label\": \"南召县\",\r\n// \"value\": \"411321\"\r\n// },\r\n// {\r\n// \"label\": \"方城县\",\r\n// \"value\": \"411322\"\r\n// },\r\n// {\r\n// \"label\": \"西峡县\",\r\n// \"value\": \"411323\"\r\n// },\r\n// {\r\n// \"label\": \"镇平县\",\r\n// \"value\": \"411324\"\r\n// },\r\n// {\r\n// \"label\": \"内乡县\",\r\n// \"value\": \"411325\"\r\n// },\r\n// {\r\n// \"label\": \"淅川县\",\r\n// \"value\": \"411326\"\r\n// },\r\n// {\r\n// \"label\": \"社旗县\",\r\n// \"value\": \"411327\"\r\n// },\r\n// {\r\n// \"label\": \"唐河县\",\r\n// \"value\": \"411328\"\r\n// },\r\n// {\r\n// \"label\": \"新野县\",\r\n// \"value\": \"411329\"\r\n// },\r\n// {\r\n// \"label\": \"桐柏县\",\r\n// \"value\": \"411330\"\r\n// },\r\n// {\r\n// \"label\": \"南阳高新技术产业开发区\",\r\n// \"value\": \"411371\"\r\n// },\r\n// {\r\n// \"label\": \"南阳市城乡一体化示范区\",\r\n// \"value\": \"411372\"\r\n// },\r\n// {\r\n// \"label\": \"邓州市\",\r\n// \"value\": \"411381\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"梁园区\",\r\n// \"value\": \"411402\"\r\n// },\r\n// {\r\n// \"label\": \"睢阳区\",\r\n// \"value\": \"411403\"\r\n// },\r\n// {\r\n// \"label\": \"民权县\",\r\n// \"value\": \"411421\"\r\n// },\r\n// {\r\n// \"label\": \"睢县\",\r\n// \"value\": \"411422\"\r\n// },\r\n// {\r\n// \"label\": \"宁陵县\",\r\n// \"value\": \"411423\"\r\n// },\r\n// {\r\n// \"label\": \"柘城县\",\r\n// \"value\": \"411424\"\r\n// },\r\n// {\r\n// \"label\": \"虞城县\",\r\n// \"value\": \"411425\"\r\n// },\r\n// {\r\n// \"label\": \"夏邑县\",\r\n// \"value\": \"411426\"\r\n// },\r\n// {\r\n// \"label\": \"豫东综合物流产业聚集区\",\r\n// \"value\": \"411471\"\r\n// },\r\n// {\r\n// \"label\": \"河南商丘经济开发区\",\r\n// \"value\": \"411472\"\r\n// },\r\n// {\r\n// \"label\": \"永城市\",\r\n// \"value\": \"411481\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"浉河区\",\r\n// \"value\": \"411502\"\r\n// },\r\n// {\r\n// \"label\": \"平桥区\",\r\n// \"value\": \"411503\"\r\n// },\r\n// {\r\n// \"label\": \"罗山县\",\r\n// \"value\": \"411521\"\r\n// },\r\n// {\r\n// \"label\": \"光山县\",\r\n// \"value\": \"411522\"\r\n// },\r\n// {\r\n// \"label\": \"新县\",\r\n// \"value\": \"411523\"\r\n// },\r\n// {\r\n// \"label\": \"商城县\",\r\n// \"value\": \"411524\"\r\n// },\r\n// {\r\n// \"label\": \"固始县\",\r\n// \"value\": \"411525\"\r\n// },\r\n// {\r\n// \"label\": \"潢川县\",\r\n// \"value\": \"411526\"\r\n// },\r\n// {\r\n// \"label\": \"淮滨县\",\r\n// \"value\": \"411527\"\r\n// },\r\n// {\r\n// \"label\": \"息县\",\r\n// \"value\": \"411528\"\r\n// },\r\n// {\r\n// \"label\": \"信阳高新技术产业开发区\",\r\n// \"value\": \"411571\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"川汇区\",\r\n// \"value\": \"411602\"\r\n// },\r\n// {\r\n// \"label\": \"扶沟县\",\r\n// \"value\": \"411621\"\r\n// },\r\n// {\r\n// \"label\": \"西华县\",\r\n// \"value\": \"411622\"\r\n// },\r\n// {\r\n// \"label\": \"商水县\",\r\n// \"value\": \"411623\"\r\n// },\r\n// {\r\n// \"label\": \"沈丘县\",\r\n// \"value\": \"411624\"\r\n// },\r\n// {\r\n// \"label\": \"郸城县\",\r\n// \"value\": \"411625\"\r\n// },\r\n// {\r\n// \"label\": \"淮阳县\",\r\n// \"value\": \"411626\"\r\n// },\r\n// {\r\n// \"label\": \"太康县\",\r\n// \"value\": \"411627\"\r\n// },\r\n// {\r\n// \"label\": \"鹿邑县\",\r\n// \"value\": \"411628\"\r\n// },\r\n// {\r\n// \"label\": \"河南周口经济开发区\",\r\n// \"value\": \"411671\"\r\n// },\r\n// {\r\n// \"label\": \"项城市\",\r\n// \"value\": \"411681\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"驿城区\",\r\n// \"value\": \"411702\"\r\n// },\r\n// {\r\n// \"label\": \"西平县\",\r\n// \"value\": \"411721\"\r\n// },\r\n// {\r\n// \"label\": \"上蔡县\",\r\n// \"value\": \"411722\"\r\n// },\r\n// {\r\n// \"label\": \"平舆县\",\r\n// \"value\": \"411723\"\r\n// },\r\n// {\r\n// \"label\": \"正阳县\",\r\n// \"value\": \"411724\"\r\n// },\r\n// {\r\n// \"label\": \"确山县\",\r\n// \"value\": \"411725\"\r\n// },\r\n// {\r\n// \"label\": \"泌阳县\",\r\n// \"value\": \"411726\"\r\n// },\r\n// {\r\n// \"label\": \"汝南县\",\r\n// \"value\": \"411727\"\r\n// },\r\n// {\r\n// \"label\": \"遂平县\",\r\n// \"value\": \"411728\"\r\n// },\r\n// {\r\n// \"label\": \"新蔡县\",\r\n// \"value\": \"411729\"\r\n// },\r\n// {\r\n// \"label\": \"河南驻马店经济开发区\",\r\n// \"value\": \"411771\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"济源市\",\r\n// \"value\": \"419001\"\r\n// }]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"江岸区\",\r\n// \"value\": \"420102\"\r\n// },\r\n// {\r\n// \"label\": \"江汉区\",\r\n// \"value\": \"420103\"\r\n// },\r\n// {\r\n// \"label\": \"硚口区\",\r\n// \"value\": \"420104\"\r\n// },\r\n// {\r\n// \"label\": \"汉阳区\",\r\n// \"value\": \"420105\"\r\n// },\r\n// {\r\n// \"label\": \"武昌区\",\r\n// \"value\": \"420106\"\r\n// },\r\n// {\r\n// \"label\": \"青山区\",\r\n// \"value\": \"420107\"\r\n// },\r\n// {\r\n// \"label\": \"洪山区\",\r\n// \"value\": \"420111\"\r\n// },\r\n// {\r\n// \"label\": \"东西湖区\",\r\n// \"value\": \"420112\"\r\n// },\r\n// {\r\n// \"label\": \"汉南区\",\r\n// \"value\": \"420113\"\r\n// },\r\n// {\r\n// \"label\": \"蔡甸区\",\r\n// \"value\": \"420114\"\r\n// },\r\n// {\r\n// \"label\": \"江夏区\",\r\n// \"value\": \"420115\"\r\n// },\r\n// {\r\n// \"label\": \"黄陂区\",\r\n// \"value\": \"420116\"\r\n// },\r\n// {\r\n// \"label\": \"新洲区\",\r\n// \"value\": \"420117\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"黄石港区\",\r\n// \"value\": \"420202\"\r\n// },\r\n// {\r\n// \"label\": \"西塞山区\",\r\n// \"value\": \"420203\"\r\n// },\r\n// {\r\n// \"label\": \"下陆区\",\r\n// \"value\": \"420204\"\r\n// },\r\n// {\r\n// \"label\": \"铁山区\",\r\n// \"value\": \"420205\"\r\n// },\r\n// {\r\n// \"label\": \"阳新县\",\r\n// \"value\": \"420222\"\r\n// },\r\n// {\r\n// \"label\": \"大冶市\",\r\n// \"value\": \"420281\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"茅箭区\",\r\n// \"value\": \"420302\"\r\n// },\r\n// {\r\n// \"label\": \"张湾区\",\r\n// \"value\": \"420303\"\r\n// },\r\n// {\r\n// \"label\": \"郧阳区\",\r\n// \"value\": \"420304\"\r\n// },\r\n// {\r\n// \"label\": \"郧西县\",\r\n// \"value\": \"420322\"\r\n// },\r\n// {\r\n// \"label\": \"竹山县\",\r\n// \"value\": \"420323\"\r\n// },\r\n// {\r\n// \"label\": \"竹溪县\",\r\n// \"value\": \"420324\"\r\n// },\r\n// {\r\n// \"label\": \"房县\",\r\n// \"value\": \"420325\"\r\n// },\r\n// {\r\n// \"label\": \"丹江口市\",\r\n// \"value\": \"420381\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"西陵区\",\r\n// \"value\": \"420502\"\r\n// },\r\n// {\r\n// \"label\": \"伍家岗区\",\r\n// \"value\": \"420503\"\r\n// },\r\n// {\r\n// \"label\": \"点军区\",\r\n// \"value\": \"420504\"\r\n// },\r\n// {\r\n// \"label\": \"猇亭区\",\r\n// \"value\": \"420505\"\r\n// },\r\n// {\r\n// \"label\": \"夷陵区\",\r\n// \"value\": \"420506\"\r\n// },\r\n// {\r\n// \"label\": \"远安县\",\r\n// \"value\": \"420525\"\r\n// },\r\n// {\r\n// \"label\": \"兴山县\",\r\n// \"value\": \"420526\"\r\n// },\r\n// {\r\n// \"label\": \"秭归县\",\r\n// \"value\": \"420527\"\r\n// },\r\n// {\r\n// \"label\": \"长阳土家族自治县\",\r\n// \"value\": \"420528\"\r\n// },\r\n// {\r\n// \"label\": \"五峰土家族自治县\",\r\n// \"value\": \"420529\"\r\n// },\r\n// {\r\n// \"label\": \"宜都市\",\r\n// \"value\": \"420581\"\r\n// },\r\n// {\r\n// \"label\": \"当阳市\",\r\n// \"value\": \"420582\"\r\n// },\r\n// {\r\n// \"label\": \"枝江市\",\r\n// \"value\": \"420583\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"襄城区\",\r\n// \"value\": \"420602\"\r\n// },\r\n// {\r\n// \"label\": \"樊城区\",\r\n// \"value\": \"420606\"\r\n// },\r\n// {\r\n// \"label\": \"襄州区\",\r\n// \"value\": \"420607\"\r\n// },\r\n// {\r\n// \"label\": \"南漳县\",\r\n// \"value\": \"420624\"\r\n// },\r\n// {\r\n// \"label\": \"谷城县\",\r\n// \"value\": \"420625\"\r\n// },\r\n// {\r\n// \"label\": \"保康县\",\r\n// \"value\": \"420626\"\r\n// },\r\n// {\r\n// \"label\": \"老河口市\",\r\n// \"value\": \"420682\"\r\n// },\r\n// {\r\n// \"label\": \"枣阳市\",\r\n// \"value\": \"420683\"\r\n// },\r\n// {\r\n// \"label\": \"宜城市\",\r\n// \"value\": \"420684\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"梁子湖区\",\r\n// \"value\": \"420702\"\r\n// },\r\n// {\r\n// \"label\": \"华容区\",\r\n// \"value\": \"420703\"\r\n// },\r\n// {\r\n// \"label\": \"鄂城区\",\r\n// \"value\": \"420704\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东宝区\",\r\n// \"value\": \"420802\"\r\n// },\r\n// {\r\n// \"label\": \"掇刀区\",\r\n// \"value\": \"420804\"\r\n// },\r\n// {\r\n// \"label\": \"京山县\",\r\n// \"value\": \"420821\"\r\n// },\r\n// {\r\n// \"label\": \"沙洋县\",\r\n// \"value\": \"420822\"\r\n// },\r\n// {\r\n// \"label\": \"钟祥市\",\r\n// \"value\": \"420881\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"孝南区\",\r\n// \"value\": \"420902\"\r\n// },\r\n// {\r\n// \"label\": \"孝昌县\",\r\n// \"value\": \"420921\"\r\n// },\r\n// {\r\n// \"label\": \"大悟县\",\r\n// \"value\": \"420922\"\r\n// },\r\n// {\r\n// \"label\": \"云梦县\",\r\n// \"value\": \"420923\"\r\n// },\r\n// {\r\n// \"label\": \"应城市\",\r\n// \"value\": \"420981\"\r\n// },\r\n// {\r\n// \"label\": \"安陆市\",\r\n// \"value\": \"420982\"\r\n// },\r\n// {\r\n// \"label\": \"汉川市\",\r\n// \"value\": \"420984\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"沙市区\",\r\n// \"value\": \"421002\"\r\n// },\r\n// {\r\n// \"label\": \"荆州区\",\r\n// \"value\": \"421003\"\r\n// },\r\n// {\r\n// \"label\": \"公安县\",\r\n// \"value\": \"421022\"\r\n// },\r\n// {\r\n// \"label\": \"监利县\",\r\n// \"value\": \"421023\"\r\n// },\r\n// {\r\n// \"label\": \"江陵县\",\r\n// \"value\": \"421024\"\r\n// },\r\n// {\r\n// \"label\": \"荆州经济技术开发区\",\r\n// \"value\": \"421071\"\r\n// },\r\n// {\r\n// \"label\": \"石首市\",\r\n// \"value\": \"421081\"\r\n// },\r\n// {\r\n// \"label\": \"洪湖市\",\r\n// \"value\": \"421083\"\r\n// },\r\n// {\r\n// \"label\": \"松滋市\",\r\n// \"value\": \"421087\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"黄州区\",\r\n// \"value\": \"421102\"\r\n// },\r\n// {\r\n// \"label\": \"团风县\",\r\n// \"value\": \"421121\"\r\n// },\r\n// {\r\n// \"label\": \"红安县\",\r\n// \"value\": \"421122\"\r\n// },\r\n// {\r\n// \"label\": \"罗田县\",\r\n// \"value\": \"421123\"\r\n// },\r\n// {\r\n// \"label\": \"英山县\",\r\n// \"value\": \"421124\"\r\n// },\r\n// {\r\n// \"label\": \"浠水县\",\r\n// \"value\": \"421125\"\r\n// },\r\n// {\r\n// \"label\": \"蕲春县\",\r\n// \"value\": \"421126\"\r\n// },\r\n// {\r\n// \"label\": \"黄梅县\",\r\n// \"value\": \"421127\"\r\n// },\r\n// {\r\n// \"label\": \"龙感湖管理区\",\r\n// \"value\": \"421171\"\r\n// },\r\n// {\r\n// \"label\": \"麻城市\",\r\n// \"value\": \"421181\"\r\n// },\r\n// {\r\n// \"label\": \"武穴市\",\r\n// \"value\": \"421182\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"咸安区\",\r\n// \"value\": \"421202\"\r\n// },\r\n// {\r\n// \"label\": \"嘉鱼县\",\r\n// \"value\": \"421221\"\r\n// },\r\n// {\r\n// \"label\": \"通城县\",\r\n// \"value\": \"421222\"\r\n// },\r\n// {\r\n// \"label\": \"崇阳县\",\r\n// \"value\": \"421223\"\r\n// },\r\n// {\r\n// \"label\": \"通山县\",\r\n// \"value\": \"421224\"\r\n// },\r\n// {\r\n// \"label\": \"赤壁市\",\r\n// \"value\": \"421281\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"曾都区\",\r\n// \"value\": \"421303\"\r\n// },\r\n// {\r\n// \"label\": \"随县\",\r\n// \"value\": \"421321\"\r\n// },\r\n// {\r\n// \"label\": \"广水市\",\r\n// \"value\": \"421381\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"恩施市\",\r\n// \"value\": \"422801\"\r\n// },\r\n// {\r\n// \"label\": \"利川市\",\r\n// \"value\": \"422802\"\r\n// },\r\n// {\r\n// \"label\": \"建始县\",\r\n// \"value\": \"422822\"\r\n// },\r\n// {\r\n// \"label\": \"巴东县\",\r\n// \"value\": \"422823\"\r\n// },\r\n// {\r\n// \"label\": \"宣恩县\",\r\n// \"value\": \"422825\"\r\n// },\r\n// {\r\n// \"label\": \"咸丰县\",\r\n// \"value\": \"422826\"\r\n// },\r\n// {\r\n// \"label\": \"来凤县\",\r\n// \"value\": \"422827\"\r\n// },\r\n// {\r\n// \"label\": \"鹤峰县\",\r\n// \"value\": \"422828\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"仙桃市\",\r\n// \"value\": \"429004\"\r\n// },\r\n// {\r\n// \"label\": \"潜江市\",\r\n// \"value\": \"429005\"\r\n// },\r\n// {\r\n// \"label\": \"天门市\",\r\n// \"value\": \"429006\"\r\n// },\r\n// {\r\n// \"label\": \"神农架林区\",\r\n// \"value\": \"429021\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"芙蓉区\",\r\n// \"value\": \"430102\"\r\n// },\r\n// {\r\n// \"label\": \"天心区\",\r\n// \"value\": \"430103\"\r\n// },\r\n// {\r\n// \"label\": \"岳麓区\",\r\n// \"value\": \"430104\"\r\n// },\r\n// {\r\n// \"label\": \"开福区\",\r\n// \"value\": \"430105\"\r\n// },\r\n// {\r\n// \"label\": \"雨花区\",\r\n// \"value\": \"430111\"\r\n// },\r\n// {\r\n// \"label\": \"望城区\",\r\n// \"value\": \"430112\"\r\n// },\r\n// {\r\n// \"label\": \"长沙县\",\r\n// \"value\": \"430121\"\r\n// },\r\n// {\r\n// \"label\": \"浏阳市\",\r\n// \"value\": \"430181\"\r\n// },\r\n// {\r\n// \"label\": \"宁乡市\",\r\n// \"value\": \"430182\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"荷塘区\",\r\n// \"value\": \"430202\"\r\n// },\r\n// {\r\n// \"label\": \"芦淞区\",\r\n// \"value\": \"430203\"\r\n// },\r\n// {\r\n// \"label\": \"石峰区\",\r\n// \"value\": \"430204\"\r\n// },\r\n// {\r\n// \"label\": \"天元区\",\r\n// \"value\": \"430211\"\r\n// },\r\n// {\r\n// \"label\": \"株洲县\",\r\n// \"value\": \"430221\"\r\n// },\r\n// {\r\n// \"label\": \"攸县\",\r\n// \"value\": \"430223\"\r\n// },\r\n// {\r\n// \"label\": \"茶陵县\",\r\n// \"value\": \"430224\"\r\n// },\r\n// {\r\n// \"label\": \"炎陵县\",\r\n// \"value\": \"430225\"\r\n// },\r\n// {\r\n// \"label\": \"云龙示范区\",\r\n// \"value\": \"430271\"\r\n// },\r\n// {\r\n// \"label\": \"醴陵市\",\r\n// \"value\": \"430281\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"雨湖区\",\r\n// \"value\": \"430302\"\r\n// },\r\n// {\r\n// \"label\": \"岳塘区\",\r\n// \"value\": \"430304\"\r\n// },\r\n// {\r\n// \"label\": \"湘潭县\",\r\n// \"value\": \"430321\"\r\n// },\r\n// {\r\n// \"label\": \"湖南湘潭高新技术产业园区\",\r\n// \"value\": \"430371\"\r\n// },\r\n// {\r\n// \"label\": \"湘潭昭山示范区\",\r\n// \"value\": \"430372\"\r\n// },\r\n// {\r\n// \"label\": \"湘潭九华示范区\",\r\n// \"value\": \"430373\"\r\n// },\r\n// {\r\n// \"label\": \"湘乡市\",\r\n// \"value\": \"430381\"\r\n// },\r\n// {\r\n// \"label\": \"韶山市\",\r\n// \"value\": \"430382\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"珠晖区\",\r\n// \"value\": \"430405\"\r\n// },\r\n// {\r\n// \"label\": \"雁峰区\",\r\n// \"value\": \"430406\"\r\n// },\r\n// {\r\n// \"label\": \"石鼓区\",\r\n// \"value\": \"430407\"\r\n// },\r\n// {\r\n// \"label\": \"蒸湘区\",\r\n// \"value\": \"430408\"\r\n// },\r\n// {\r\n// \"label\": \"南岳区\",\r\n// \"value\": \"430412\"\r\n// },\r\n// {\r\n// \"label\": \"衡阳县\",\r\n// \"value\": \"430421\"\r\n// },\r\n// {\r\n// \"label\": \"衡南县\",\r\n// \"value\": \"430422\"\r\n// },\r\n// {\r\n// \"label\": \"衡山县\",\r\n// \"value\": \"430423\"\r\n// },\r\n// {\r\n// \"label\": \"衡东县\",\r\n// \"value\": \"430424\"\r\n// },\r\n// {\r\n// \"label\": \"祁东县\",\r\n// \"value\": \"430426\"\r\n// },\r\n// {\r\n// \"label\": \"衡阳综合保税区\",\r\n// \"value\": \"430471\"\r\n// },\r\n// {\r\n// \"label\": \"湖南衡阳高新技术产业园区\",\r\n// \"value\": \"430472\"\r\n// },\r\n// {\r\n// \"label\": \"湖南衡阳松木经济开发区\",\r\n// \"value\": \"430473\"\r\n// },\r\n// {\r\n// \"label\": \"耒阳市\",\r\n// \"value\": \"430481\"\r\n// },\r\n// {\r\n// \"label\": \"常宁市\",\r\n// \"value\": \"430482\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"双清区\",\r\n// \"value\": \"430502\"\r\n// },\r\n// {\r\n// \"label\": \"大祥区\",\r\n// \"value\": \"430503\"\r\n// },\r\n// {\r\n// \"label\": \"北塔区\",\r\n// \"value\": \"430511\"\r\n// },\r\n// {\r\n// \"label\": \"邵东县\",\r\n// \"value\": \"430521\"\r\n// },\r\n// {\r\n// \"label\": \"新邵县\",\r\n// \"value\": \"430522\"\r\n// },\r\n// {\r\n// \"label\": \"邵阳县\",\r\n// \"value\": \"430523\"\r\n// },\r\n// {\r\n// \"label\": \"隆回县\",\r\n// \"value\": \"430524\"\r\n// },\r\n// {\r\n// \"label\": \"洞口县\",\r\n// \"value\": \"430525\"\r\n// },\r\n// {\r\n// \"label\": \"绥宁县\",\r\n// \"value\": \"430527\"\r\n// },\r\n// {\r\n// \"label\": \"新宁县\",\r\n// \"value\": \"430528\"\r\n// },\r\n// {\r\n// \"label\": \"城步苗族自治县\",\r\n// \"value\": \"430529\"\r\n// },\r\n// {\r\n// \"label\": \"武冈市\",\r\n// \"value\": \"430581\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"岳阳楼区\",\r\n// \"value\": \"430602\"\r\n// },\r\n// {\r\n// \"label\": \"云溪区\",\r\n// \"value\": \"430603\"\r\n// },\r\n// {\r\n// \"label\": \"君山区\",\r\n// \"value\": \"430611\"\r\n// },\r\n// {\r\n// \"label\": \"岳阳县\",\r\n// \"value\": \"430621\"\r\n// },\r\n// {\r\n// \"label\": \"华容县\",\r\n// \"value\": \"430623\"\r\n// },\r\n// {\r\n// \"label\": \"湘阴县\",\r\n// \"value\": \"430624\"\r\n// },\r\n// {\r\n// \"label\": \"平江县\",\r\n// \"value\": \"430626\"\r\n// },\r\n// {\r\n// \"label\": \"岳阳市屈原管理区\",\r\n// \"value\": \"430671\"\r\n// },\r\n// {\r\n// \"label\": \"汨罗市\",\r\n// \"value\": \"430681\"\r\n// },\r\n// {\r\n// \"label\": \"临湘市\",\r\n// \"value\": \"430682\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"武陵区\",\r\n// \"value\": \"430702\"\r\n// },\r\n// {\r\n// \"label\": \"鼎城区\",\r\n// \"value\": \"430703\"\r\n// },\r\n// {\r\n// \"label\": \"安乡县\",\r\n// \"value\": \"430721\"\r\n// },\r\n// {\r\n// \"label\": \"汉寿县\",\r\n// \"value\": \"430722\"\r\n// },\r\n// {\r\n// \"label\": \"澧县\",\r\n// \"value\": \"430723\"\r\n// },\r\n// {\r\n// \"label\": \"临澧县\",\r\n// \"value\": \"430724\"\r\n// },\r\n// {\r\n// \"label\": \"桃源县\",\r\n// \"value\": \"430725\"\r\n// },\r\n// {\r\n// \"label\": \"石门县\",\r\n// \"value\": \"430726\"\r\n// },\r\n// {\r\n// \"label\": \"常德市西洞庭管理区\",\r\n// \"value\": \"430771\"\r\n// },\r\n// {\r\n// \"label\": \"津市市\",\r\n// \"value\": \"430781\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"永定区\",\r\n// \"value\": \"430802\"\r\n// },\r\n// {\r\n// \"label\": \"武陵源区\",\r\n// \"value\": \"430811\"\r\n// },\r\n// {\r\n// \"label\": \"慈利县\",\r\n// \"value\": \"430821\"\r\n// },\r\n// {\r\n// \"label\": \"桑植县\",\r\n// \"value\": \"430822\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"资阳区\",\r\n// \"value\": \"430902\"\r\n// },\r\n// {\r\n// \"label\": \"赫山区\",\r\n// \"value\": \"430903\"\r\n// },\r\n// {\r\n// \"label\": \"南县\",\r\n// \"value\": \"430921\"\r\n// },\r\n// {\r\n// \"label\": \"桃江县\",\r\n// \"value\": \"430922\"\r\n// },\r\n// {\r\n// \"label\": \"安化县\",\r\n// \"value\": \"430923\"\r\n// },\r\n// {\r\n// \"label\": \"益阳市大通湖管理区\",\r\n// \"value\": \"430971\"\r\n// },\r\n// {\r\n// \"label\": \"湖南益阳高新技术产业园区\",\r\n// \"value\": \"430972\"\r\n// },\r\n// {\r\n// \"label\": \"沅江市\",\r\n// \"value\": \"430981\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"北湖区\",\r\n// \"value\": \"431002\"\r\n// },\r\n// {\r\n// \"label\": \"苏仙区\",\r\n// \"value\": \"431003\"\r\n// },\r\n// {\r\n// \"label\": \"桂阳县\",\r\n// \"value\": \"431021\"\r\n// },\r\n// {\r\n// \"label\": \"宜章县\",\r\n// \"value\": \"431022\"\r\n// },\r\n// {\r\n// \"label\": \"永兴县\",\r\n// \"value\": \"431023\"\r\n// },\r\n// {\r\n// \"label\": \"嘉禾县\",\r\n// \"value\": \"431024\"\r\n// },\r\n// {\r\n// \"label\": \"临武县\",\r\n// \"value\": \"431025\"\r\n// },\r\n// {\r\n// \"label\": \"汝城县\",\r\n// \"value\": \"431026\"\r\n// },\r\n// {\r\n// \"label\": \"桂东县\",\r\n// \"value\": \"431027\"\r\n// },\r\n// {\r\n// \"label\": \"安仁县\",\r\n// \"value\": \"431028\"\r\n// },\r\n// {\r\n// \"label\": \"资兴市\",\r\n// \"value\": \"431081\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"零陵区\",\r\n// \"value\": \"431102\"\r\n// },\r\n// {\r\n// \"label\": \"冷水滩区\",\r\n// \"value\": \"431103\"\r\n// },\r\n// {\r\n// \"label\": \"祁阳县\",\r\n// \"value\": \"431121\"\r\n// },\r\n// {\r\n// \"label\": \"东安县\",\r\n// \"value\": \"431122\"\r\n// },\r\n// {\r\n// \"label\": \"双牌县\",\r\n// \"value\": \"431123\"\r\n// },\r\n// {\r\n// \"label\": \"道县\",\r\n// \"value\": \"431124\"\r\n// },\r\n// {\r\n// \"label\": \"江永县\",\r\n// \"value\": \"431125\"\r\n// },\r\n// {\r\n// \"label\": \"宁远县\",\r\n// \"value\": \"431126\"\r\n// },\r\n// {\r\n// \"label\": \"蓝山县\",\r\n// \"value\": \"431127\"\r\n// },\r\n// {\r\n// \"label\": \"新田县\",\r\n// \"value\": \"431128\"\r\n// },\r\n// {\r\n// \"label\": \"江华瑶族自治县\",\r\n// \"value\": \"431129\"\r\n// },\r\n// {\r\n// \"label\": \"永州经济技术开发区\",\r\n// \"value\": \"431171\"\r\n// },\r\n// {\r\n// \"label\": \"永州市金洞管理区\",\r\n// \"value\": \"431172\"\r\n// },\r\n// {\r\n// \"label\": \"永州市回龙圩管理区\",\r\n// \"value\": \"431173\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"鹤城区\",\r\n// \"value\": \"431202\"\r\n// },\r\n// {\r\n// \"label\": \"中方县\",\r\n// \"value\": \"431221\"\r\n// },\r\n// {\r\n// \"label\": \"沅陵县\",\r\n// \"value\": \"431222\"\r\n// },\r\n// {\r\n// \"label\": \"辰溪县\",\r\n// \"value\": \"431223\"\r\n// },\r\n// {\r\n// \"label\": \"溆浦县\",\r\n// \"value\": \"431224\"\r\n// },\r\n// {\r\n// \"label\": \"会同县\",\r\n// \"value\": \"431225\"\r\n// },\r\n// {\r\n// \"label\": \"麻阳苗族自治县\",\r\n// \"value\": \"431226\"\r\n// },\r\n// {\r\n// \"label\": \"新晃侗族自治县\",\r\n// \"value\": \"431227\"\r\n// },\r\n// {\r\n// \"label\": \"芷江侗族自治县\",\r\n// \"value\": \"431228\"\r\n// },\r\n// {\r\n// \"label\": \"靖州苗族侗族自治县\",\r\n// \"value\": \"431229\"\r\n// },\r\n// {\r\n// \"label\": \"通道侗族自治县\",\r\n// \"value\": \"431230\"\r\n// },\r\n// {\r\n// \"label\": \"怀化市洪江管理区\",\r\n// \"value\": \"431271\"\r\n// },\r\n// {\r\n// \"label\": \"洪江市\",\r\n// \"value\": \"431281\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"娄星区\",\r\n// \"value\": \"431302\"\r\n// },\r\n// {\r\n// \"label\": \"双峰县\",\r\n// \"value\": \"431321\"\r\n// },\r\n// {\r\n// \"label\": \"新化县\",\r\n// \"value\": \"431322\"\r\n// },\r\n// {\r\n// \"label\": \"冷水江市\",\r\n// \"value\": \"431381\"\r\n// },\r\n// {\r\n// \"label\": \"涟源市\",\r\n// \"value\": \"431382\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"吉首市\",\r\n// \"value\": \"433101\"\r\n// },\r\n// {\r\n// \"label\": \"泸溪县\",\r\n// \"value\": \"433122\"\r\n// },\r\n// {\r\n// \"label\": \"凤凰县\",\r\n// \"value\": \"433123\"\r\n// },\r\n// {\r\n// \"label\": \"花垣县\",\r\n// \"value\": \"433124\"\r\n// },\r\n// {\r\n// \"label\": \"保靖县\",\r\n// \"value\": \"433125\"\r\n// },\r\n// {\r\n// \"label\": \"古丈县\",\r\n// \"value\": \"433126\"\r\n// },\r\n// {\r\n// \"label\": \"永顺县\",\r\n// \"value\": \"433127\"\r\n// },\r\n// {\r\n// \"label\": \"龙山县\",\r\n// \"value\": \"433130\"\r\n// },\r\n// {\r\n// \"label\": \"湖南吉首经济开发区\",\r\n// \"value\": \"433172\"\r\n// },\r\n// {\r\n// \"label\": \"湖南永顺经济开发区\",\r\n// \"value\": \"433173\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"荔湾区\",\r\n// \"value\": \"440103\"\r\n// },\r\n// {\r\n// \"label\": \"越秀区\",\r\n// \"value\": \"440104\"\r\n// },\r\n// {\r\n// \"label\": \"海珠区\",\r\n// \"value\": \"440105\"\r\n// },\r\n// {\r\n// \"label\": \"天河区\",\r\n// \"value\": \"440106\"\r\n// },\r\n// {\r\n// \"label\": \"白云区\",\r\n// \"value\": \"440111\"\r\n// },\r\n// {\r\n// \"label\": \"黄埔区\",\r\n// \"value\": \"440112\"\r\n// },\r\n// {\r\n// \"label\": \"番禺区\",\r\n// \"value\": \"440113\"\r\n// },\r\n// {\r\n// \"label\": \"花都区\",\r\n// \"value\": \"440114\"\r\n// },\r\n// {\r\n// \"label\": \"南沙区\",\r\n// \"value\": \"440115\"\r\n// },\r\n// {\r\n// \"label\": \"从化区\",\r\n// \"value\": \"440117\"\r\n// },\r\n// {\r\n// \"label\": \"增城区\",\r\n// \"value\": \"440118\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"武江区\",\r\n// \"value\": \"440203\"\r\n// },\r\n// {\r\n// \"label\": \"浈江区\",\r\n// \"value\": \"440204\"\r\n// },\r\n// {\r\n// \"label\": \"曲江区\",\r\n// \"value\": \"440205\"\r\n// },\r\n// {\r\n// \"label\": \"始兴县\",\r\n// \"value\": \"440222\"\r\n// },\r\n// {\r\n// \"label\": \"仁化县\",\r\n// \"value\": \"440224\"\r\n// },\r\n// {\r\n// \"label\": \"翁源县\",\r\n// \"value\": \"440229\"\r\n// },\r\n// {\r\n// \"label\": \"乳源瑶族自治县\",\r\n// \"value\": \"440232\"\r\n// },\r\n// {\r\n// \"label\": \"新丰县\",\r\n// \"value\": \"440233\"\r\n// },\r\n// {\r\n// \"label\": \"乐昌市\",\r\n// \"value\": \"440281\"\r\n// },\r\n// {\r\n// \"label\": \"南雄市\",\r\n// \"value\": \"440282\"\r\n// }\r\n// ],\r\n [{\r\n \"label\": \"罗湖区\",\r\n \"value\": \"440303\"\r\n },\r\n {\r\n \"label\": \"福田区\",\r\n \"value\": \"440304\"\r\n },\r\n {\r\n \"label\": \"南山区\",\r\n \"value\": \"440305\"\r\n },\r\n {\r\n \"label\": \"宝安区\",\r\n \"value\": \"440306\"\r\n },\r\n {\r\n \"label\": \"龙岗区\",\r\n \"value\": \"440307\"\r\n },\r\n {\r\n \"label\": \"盐田区\",\r\n \"value\": \"440308\"\r\n },\r\n {\r\n \"label\": \"龙华区\",\r\n \"value\": \"440309\"\r\n },\r\n {\r\n \"label\": \"坪山区\",\r\n \"value\": \"440310\"\r\n }\r\n ]\r\n\t//,\r\n// [{\r\n// \"label\": \"香洲区\",\r\n// \"value\": \"440402\"\r\n// },\r\n// {\r\n// \"label\": \"斗门区\",\r\n// \"value\": \"440403\"\r\n// },\r\n// {\r\n// \"label\": \"金湾区\",\r\n// \"value\": \"440404\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"龙湖区\",\r\n// \"value\": \"440507\"\r\n// },\r\n// {\r\n// \"label\": \"金平区\",\r\n// \"value\": \"440511\"\r\n// },\r\n// {\r\n// \"label\": \"濠江区\",\r\n// \"value\": \"440512\"\r\n// },\r\n// {\r\n// \"label\": \"潮阳区\",\r\n// \"value\": \"440513\"\r\n// },\r\n// {\r\n// \"label\": \"潮南区\",\r\n// \"value\": \"440514\"\r\n// },\r\n// {\r\n// \"label\": \"澄海区\",\r\n// \"value\": \"440515\"\r\n// },\r\n// {\r\n// \"label\": \"南澳县\",\r\n// \"value\": \"440523\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"禅城区\",\r\n// \"value\": \"440604\"\r\n// },\r\n// {\r\n// \"label\": \"南海区\",\r\n// \"value\": \"440605\"\r\n// },\r\n// {\r\n// \"label\": \"顺德区\",\r\n// \"value\": \"440606\"\r\n// },\r\n// {\r\n// \"label\": \"三水区\",\r\n// \"value\": \"440607\"\r\n// },\r\n// {\r\n// \"label\": \"高明区\",\r\n// \"value\": \"440608\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"蓬江区\",\r\n// \"value\": \"440703\"\r\n// },\r\n// {\r\n// \"label\": \"江海区\",\r\n// \"value\": \"440704\"\r\n// },\r\n// {\r\n// \"label\": \"新会区\",\r\n// \"value\": \"440705\"\r\n// },\r\n// {\r\n// \"label\": \"台山市\",\r\n// \"value\": \"440781\"\r\n// },\r\n// {\r\n// \"label\": \"开平市\",\r\n// \"value\": \"440783\"\r\n// },\r\n// {\r\n// \"label\": \"鹤山市\",\r\n// \"value\": \"440784\"\r\n// },\r\n// {\r\n// \"label\": \"恩平市\",\r\n// \"value\": \"440785\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"赤坎区\",\r\n// \"value\": \"440802\"\r\n// },\r\n// {\r\n// \"label\": \"霞山区\",\r\n// \"value\": \"440803\"\r\n// },\r\n// {\r\n// \"label\": \"坡头区\",\r\n// \"value\": \"440804\"\r\n// },\r\n// {\r\n// \"label\": \"麻章区\",\r\n// \"value\": \"440811\"\r\n// },\r\n// {\r\n// \"label\": \"遂溪县\",\r\n// \"value\": \"440823\"\r\n// },\r\n// {\r\n// \"label\": \"徐闻县\",\r\n// \"value\": \"440825\"\r\n// },\r\n// {\r\n// \"label\": \"廉江市\",\r\n// \"value\": \"440881\"\r\n// },\r\n// {\r\n// \"label\": \"雷州市\",\r\n// \"value\": \"440882\"\r\n// },\r\n// {\r\n// \"label\": \"吴川市\",\r\n// \"value\": \"440883\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"茂南区\",\r\n// \"value\": \"440902\"\r\n// },\r\n// {\r\n// \"label\": \"电白区\",\r\n// \"value\": \"440904\"\r\n// },\r\n// {\r\n// \"label\": \"高州市\",\r\n// \"value\": \"440981\"\r\n// },\r\n// {\r\n// \"label\": \"化州市\",\r\n// \"value\": \"440982\"\r\n// },\r\n// {\r\n// \"label\": \"信宜市\",\r\n// \"value\": \"440983\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"端州区\",\r\n// \"value\": \"441202\"\r\n// },\r\n// {\r\n// \"label\": \"鼎湖区\",\r\n// \"value\": \"441203\"\r\n// },\r\n// {\r\n// \"label\": \"高要区\",\r\n// \"value\": \"441204\"\r\n// },\r\n// {\r\n// \"label\": \"广宁县\",\r\n// \"value\": \"441223\"\r\n// },\r\n// {\r\n// \"label\": \"怀集县\",\r\n// \"value\": \"441224\"\r\n// },\r\n// {\r\n// \"label\": \"封开县\",\r\n// \"value\": \"441225\"\r\n// },\r\n// {\r\n// \"label\": \"德庆县\",\r\n// \"value\": \"441226\"\r\n// },\r\n// {\r\n// \"label\": \"四会市\",\r\n// \"value\": \"441284\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"惠城区\",\r\n// \"value\": \"441302\"\r\n// },\r\n// {\r\n// \"label\": \"惠阳区\",\r\n// \"value\": \"441303\"\r\n// },\r\n// {\r\n// \"label\": \"博罗县\",\r\n// \"value\": \"441322\"\r\n// },\r\n// {\r\n// \"label\": \"惠东县\",\r\n// \"value\": \"441323\"\r\n// },\r\n// {\r\n// \"label\": \"龙门县\",\r\n// \"value\": \"441324\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"梅江区\",\r\n// \"value\": \"441402\"\r\n// },\r\n// {\r\n// \"label\": \"梅县区\",\r\n// \"value\": \"441403\"\r\n// },\r\n// {\r\n// \"label\": \"大埔县\",\r\n// \"value\": \"441422\"\r\n// },\r\n// {\r\n// \"label\": \"丰顺县\",\r\n// \"value\": \"441423\"\r\n// },\r\n// {\r\n// \"label\": \"五华县\",\r\n// \"value\": \"441424\"\r\n// },\r\n// {\r\n// \"label\": \"平远县\",\r\n// \"value\": \"441426\"\r\n// },\r\n// {\r\n// \"label\": \"蕉岭县\",\r\n// \"value\": \"441427\"\r\n// },\r\n// {\r\n// \"label\": \"兴宁市\",\r\n// \"value\": \"441481\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"城区\",\r\n// \"value\": \"441502\"\r\n// },\r\n// {\r\n// \"label\": \"海丰县\",\r\n// \"value\": \"441521\"\r\n// },\r\n// {\r\n// \"label\": \"陆河县\",\r\n// \"value\": \"441523\"\r\n// },\r\n// {\r\n// \"label\": \"陆丰市\",\r\n// \"value\": \"441581\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"源城区\",\r\n// \"value\": \"441602\"\r\n// },\r\n// {\r\n// \"label\": \"紫金县\",\r\n// \"value\": \"441621\"\r\n// },\r\n// {\r\n// \"label\": \"龙川县\",\r\n// \"value\": \"441622\"\r\n// },\r\n// {\r\n// \"label\": \"连平县\",\r\n// \"value\": \"441623\"\r\n// },\r\n// {\r\n// \"label\": \"和平县\",\r\n// \"value\": \"441624\"\r\n// },\r\n// {\r\n// \"label\": \"东源县\",\r\n// \"value\": \"441625\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"江城区\",\r\n// \"value\": \"441702\"\r\n// },\r\n// {\r\n// \"label\": \"阳东区\",\r\n// \"value\": \"441704\"\r\n// },\r\n// {\r\n// \"label\": \"阳西县\",\r\n// \"value\": \"441721\"\r\n// },\r\n// {\r\n// \"label\": \"阳春市\",\r\n// \"value\": \"441781\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"清城区\",\r\n// \"value\": \"441802\"\r\n// },\r\n// {\r\n// \"label\": \"清新区\",\r\n// \"value\": \"441803\"\r\n// },\r\n// {\r\n// \"label\": \"佛冈县\",\r\n// \"value\": \"441821\"\r\n// },\r\n// {\r\n// \"label\": \"阳山县\",\r\n// \"value\": \"441823\"\r\n// },\r\n// {\r\n// \"label\": \"连山壮族瑶族自治县\",\r\n// \"value\": \"441825\"\r\n// },\r\n// {\r\n// \"label\": \"连南瑶族自治县\",\r\n// \"value\": \"441826\"\r\n// },\r\n// {\r\n// \"label\": \"英德市\",\r\n// \"value\": \"441881\"\r\n// },\r\n// {\r\n// \"label\": \"连州市\",\r\n// \"value\": \"441882\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东莞市\",\r\n// \"value\": \"441900\"\r\n// }],\r\n// [{\r\n// \"label\": \"中山市\",\r\n// \"value\": \"442000\"\r\n// }],\r\n// [{\r\n// \"label\": \"湘桥区\",\r\n// \"value\": \"445102\"\r\n// },\r\n// {\r\n// \"label\": \"潮安区\",\r\n// \"value\": \"445103\"\r\n// },\r\n// {\r\n// \"label\": \"饶平县\",\r\n// \"value\": \"445122\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"榕城区\",\r\n// \"value\": \"445202\"\r\n// },\r\n// {\r\n// \"label\": \"揭东区\",\r\n// \"value\": \"445203\"\r\n// },\r\n// {\r\n// \"label\": \"揭西县\",\r\n// \"value\": \"445222\"\r\n// },\r\n// {\r\n// \"label\": \"惠来县\",\r\n// \"value\": \"445224\"\r\n// },\r\n// {\r\n// \"label\": \"普宁市\",\r\n// \"value\": \"445281\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"云城区\",\r\n// \"value\": \"445302\"\r\n// },\r\n// {\r\n// \"label\": \"云安区\",\r\n// \"value\": \"445303\"\r\n// },\r\n// {\r\n// \"label\": \"新兴县\",\r\n// \"value\": \"445321\"\r\n// },\r\n// {\r\n// \"label\": \"郁南县\",\r\n// \"value\": \"445322\"\r\n// },\r\n// {\r\n// \"label\": \"罗定市\",\r\n// \"value\": \"445381\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"兴宁区\",\r\n// \"value\": \"450102\"\r\n// },\r\n// {\r\n// \"label\": \"青秀区\",\r\n// \"value\": \"450103\"\r\n// },\r\n// {\r\n// \"label\": \"江南区\",\r\n// \"value\": \"450105\"\r\n// },\r\n// {\r\n// \"label\": \"西乡塘区\",\r\n// \"value\": \"450107\"\r\n// },\r\n// {\r\n// \"label\": \"良庆区\",\r\n// \"value\": \"450108\"\r\n// },\r\n// {\r\n// \"label\": \"邕宁区\",\r\n// \"value\": \"450109\"\r\n// },\r\n// {\r\n// \"label\": \"武鸣区\",\r\n// \"value\": \"450110\"\r\n// },\r\n// {\r\n// \"label\": \"隆安县\",\r\n// \"value\": \"450123\"\r\n// },\r\n// {\r\n// \"label\": \"马山县\",\r\n// \"value\": \"450124\"\r\n// },\r\n// {\r\n// \"label\": \"上林县\",\r\n// \"value\": \"450125\"\r\n// },\r\n// {\r\n// \"label\": \"宾阳县\",\r\n// \"value\": \"450126\"\r\n// },\r\n// {\r\n// \"label\": \"横县\",\r\n// \"value\": \"450127\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"城中区\",\r\n// \"value\": \"450202\"\r\n// },\r\n// {\r\n// \"label\": \"鱼峰区\",\r\n// \"value\": \"450203\"\r\n// },\r\n// {\r\n// \"label\": \"柳南区\",\r\n// \"value\": \"450204\"\r\n// },\r\n// {\r\n// \"label\": \"柳北区\",\r\n// \"value\": \"450205\"\r\n// },\r\n// {\r\n// \"label\": \"柳江区\",\r\n// \"value\": \"450206\"\r\n// },\r\n// {\r\n// \"label\": \"柳城县\",\r\n// \"value\": \"450222\"\r\n// },\r\n// {\r\n// \"label\": \"鹿寨县\",\r\n// \"value\": \"450223\"\r\n// },\r\n// {\r\n// \"label\": \"融安县\",\r\n// \"value\": \"450224\"\r\n// },\r\n// {\r\n// \"label\": \"融水苗族自治县\",\r\n// \"value\": \"450225\"\r\n// },\r\n// {\r\n// \"label\": \"三江侗族自治县\",\r\n// \"value\": \"450226\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"秀峰区\",\r\n// \"value\": \"450302\"\r\n// },\r\n// {\r\n// \"label\": \"叠彩区\",\r\n// \"value\": \"450303\"\r\n// },\r\n// {\r\n// \"label\": \"象山区\",\r\n// \"value\": \"450304\"\r\n// },\r\n// {\r\n// \"label\": \"七星区\",\r\n// \"value\": \"450305\"\r\n// },\r\n// {\r\n// \"label\": \"雁山区\",\r\n// \"value\": \"450311\"\r\n// },\r\n// {\r\n// \"label\": \"临桂区\",\r\n// \"value\": \"450312\"\r\n// },\r\n// {\r\n// \"label\": \"阳朔县\",\r\n// \"value\": \"450321\"\r\n// },\r\n// {\r\n// \"label\": \"灵川县\",\r\n// \"value\": \"450323\"\r\n// },\r\n// {\r\n// \"label\": \"全州县\",\r\n// \"value\": \"450324\"\r\n// },\r\n// {\r\n// \"label\": \"兴安县\",\r\n// \"value\": \"450325\"\r\n// },\r\n// {\r\n// \"label\": \"永福县\",\r\n// \"value\": \"450326\"\r\n// },\r\n// {\r\n// \"label\": \"灌阳县\",\r\n// \"value\": \"450327\"\r\n// },\r\n// {\r\n// \"label\": \"龙胜各族自治县\",\r\n// \"value\": \"450328\"\r\n// },\r\n// {\r\n// \"label\": \"资源县\",\r\n// \"value\": \"450329\"\r\n// },\r\n// {\r\n// \"label\": \"平乐县\",\r\n// \"value\": \"450330\"\r\n// },\r\n// {\r\n// \"label\": \"荔浦县\",\r\n// \"value\": \"450331\"\r\n// },\r\n// {\r\n// \"label\": \"恭城瑶族自治县\",\r\n// \"value\": \"450332\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"万秀区\",\r\n// \"value\": \"450403\"\r\n// },\r\n// {\r\n// \"label\": \"长洲区\",\r\n// \"value\": \"450405\"\r\n// },\r\n// {\r\n// \"label\": \"龙圩区\",\r\n// \"value\": \"450406\"\r\n// },\r\n// {\r\n// \"label\": \"苍梧县\",\r\n// \"value\": \"450421\"\r\n// },\r\n// {\r\n// \"label\": \"藤县\",\r\n// \"value\": \"450422\"\r\n// },\r\n// {\r\n// \"label\": \"蒙山县\",\r\n// \"value\": \"450423\"\r\n// },\r\n// {\r\n// \"label\": \"岑溪市\",\r\n// \"value\": \"450481\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"海城区\",\r\n// \"value\": \"450502\"\r\n// },\r\n// {\r\n// \"label\": \"银海区\",\r\n// \"value\": \"450503\"\r\n// },\r\n// {\r\n// \"label\": \"铁山港区\",\r\n// \"value\": \"450512\"\r\n// },\r\n// {\r\n// \"label\": \"合浦县\",\r\n// \"value\": \"450521\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"港口区\",\r\n// \"value\": \"450602\"\r\n// },\r\n// {\r\n// \"label\": \"防城区\",\r\n// \"value\": \"450603\"\r\n// },\r\n// {\r\n// \"label\": \"上思县\",\r\n// \"value\": \"450621\"\r\n// },\r\n// {\r\n// \"label\": \"东兴市\",\r\n// \"value\": \"450681\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"钦南区\",\r\n// \"value\": \"450702\"\r\n// },\r\n// {\r\n// \"label\": \"钦北区\",\r\n// \"value\": \"450703\"\r\n// },\r\n// {\r\n// \"label\": \"灵山县\",\r\n// \"value\": \"450721\"\r\n// },\r\n// {\r\n// \"label\": \"浦北县\",\r\n// \"value\": \"450722\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"港北区\",\r\n// \"value\": \"450802\"\r\n// },\r\n// {\r\n// \"label\": \"港南区\",\r\n// \"value\": \"450803\"\r\n// },\r\n// {\r\n// \"label\": \"覃塘区\",\r\n// \"value\": \"450804\"\r\n// },\r\n// {\r\n// \"label\": \"平南县\",\r\n// \"value\": \"450821\"\r\n// },\r\n// {\r\n// \"label\": \"桂平市\",\r\n// \"value\": \"450881\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"玉州区\",\r\n// \"value\": \"450902\"\r\n// },\r\n// {\r\n// \"label\": \"福绵区\",\r\n// \"value\": \"450903\"\r\n// },\r\n// {\r\n// \"label\": \"容县\",\r\n// \"value\": \"450921\"\r\n// },\r\n// {\r\n// \"label\": \"陆川县\",\r\n// \"value\": \"450922\"\r\n// },\r\n// {\r\n// \"label\": \"博白县\",\r\n// \"value\": \"450923\"\r\n// },\r\n// {\r\n// \"label\": \"兴业县\",\r\n// \"value\": \"450924\"\r\n// },\r\n// {\r\n// \"label\": \"北流市\",\r\n// \"value\": \"450981\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"右江区\",\r\n// \"value\": \"451002\"\r\n// },\r\n// {\r\n// \"label\": \"田阳县\",\r\n// \"value\": \"451021\"\r\n// },\r\n// {\r\n// \"label\": \"田东县\",\r\n// \"value\": \"451022\"\r\n// },\r\n// {\r\n// \"label\": \"平果县\",\r\n// \"value\": \"451023\"\r\n// },\r\n// {\r\n// \"label\": \"德保县\",\r\n// \"value\": \"451024\"\r\n// },\r\n// {\r\n// \"label\": \"那坡县\",\r\n// \"value\": \"451026\"\r\n// },\r\n// {\r\n// \"label\": \"凌云县\",\r\n// \"value\": \"451027\"\r\n// },\r\n// {\r\n// \"label\": \"乐业县\",\r\n// \"value\": \"451028\"\r\n// },\r\n// {\r\n// \"label\": \"田林县\",\r\n// \"value\": \"451029\"\r\n// },\r\n// {\r\n// \"label\": \"西林县\",\r\n// \"value\": \"451030\"\r\n// },\r\n// {\r\n// \"label\": \"隆林各族自治县\",\r\n// \"value\": \"451031\"\r\n// },\r\n// {\r\n// \"label\": \"靖西市\",\r\n// \"value\": \"451081\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"八步区\",\r\n// \"value\": \"451102\"\r\n// },\r\n// {\r\n// \"label\": \"平桂区\",\r\n// \"value\": \"451103\"\r\n// },\r\n// {\r\n// \"label\": \"昭平县\",\r\n// \"value\": \"451121\"\r\n// },\r\n// {\r\n// \"label\": \"钟山县\",\r\n// \"value\": \"451122\"\r\n// },\r\n// {\r\n// \"label\": \"富川瑶族自治县\",\r\n// \"value\": \"451123\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"金城江区\",\r\n// \"value\": \"451202\"\r\n// },\r\n// {\r\n// \"label\": \"宜州区\",\r\n// \"value\": \"451203\"\r\n// },\r\n// {\r\n// \"label\": \"南丹县\",\r\n// \"value\": \"451221\"\r\n// },\r\n// {\r\n// \"label\": \"天峨县\",\r\n// \"value\": \"451222\"\r\n// },\r\n// {\r\n// \"label\": \"凤山县\",\r\n// \"value\": \"451223\"\r\n// },\r\n// {\r\n// \"label\": \"东兰县\",\r\n// \"value\": \"451224\"\r\n// },\r\n// {\r\n// \"label\": \"罗城仫佬族自治县\",\r\n// \"value\": \"451225\"\r\n// },\r\n// {\r\n// \"label\": \"环江毛南族自治县\",\r\n// \"value\": \"451226\"\r\n// },\r\n// {\r\n// \"label\": \"巴马瑶族自治县\",\r\n// \"value\": \"451227\"\r\n// },\r\n// {\r\n// \"label\": \"都安瑶族自治县\",\r\n// \"value\": \"451228\"\r\n// },\r\n// {\r\n// \"label\": \"大化瑶族自治县\",\r\n// \"value\": \"451229\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"兴宾区\",\r\n// \"value\": \"451302\"\r\n// },\r\n// {\r\n// \"label\": \"忻城县\",\r\n// \"value\": \"451321\"\r\n// },\r\n// {\r\n// \"label\": \"象州县\",\r\n// \"value\": \"451322\"\r\n// },\r\n// {\r\n// \"label\": \"武宣县\",\r\n// \"value\": \"451323\"\r\n// },\r\n// {\r\n// \"label\": \"金秀瑶族自治县\",\r\n// \"value\": \"451324\"\r\n// },\r\n// {\r\n// \"label\": \"合山市\",\r\n// \"value\": \"451381\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"江州区\",\r\n// \"value\": \"451402\"\r\n// },\r\n// {\r\n// \"label\": \"扶绥县\",\r\n// \"value\": \"451421\"\r\n// },\r\n// {\r\n// \"label\": \"宁明县\",\r\n// \"value\": \"451422\"\r\n// },\r\n// {\r\n// \"label\": \"龙州县\",\r\n// \"value\": \"451423\"\r\n// },\r\n// {\r\n// \"label\": \"大新县\",\r\n// \"value\": \"451424\"\r\n// },\r\n// {\r\n// \"label\": \"天等县\",\r\n// \"value\": \"451425\"\r\n// },\r\n// {\r\n// \"label\": \"凭祥市\",\r\n// \"value\": \"451481\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"秀英区\",\r\n// \"value\": \"460105\"\r\n// },\r\n// {\r\n// \"label\": \"龙华区\",\r\n// \"value\": \"460106\"\r\n// },\r\n// {\r\n// \"label\": \"琼山区\",\r\n// \"value\": \"460107\"\r\n// },\r\n// {\r\n// \"label\": \"美兰区\",\r\n// \"value\": \"460108\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"海棠区\",\r\n// \"value\": \"460202\"\r\n// },\r\n// {\r\n// \"label\": \"吉阳区\",\r\n// \"value\": \"460203\"\r\n// },\r\n// {\r\n// \"label\": \"天涯区\",\r\n// \"value\": \"460204\"\r\n// },\r\n// {\r\n// \"label\": \"崖州区\",\r\n// \"value\": \"460205\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"西沙群岛\",\r\n// \"value\": \"460321\"\r\n// },\r\n// {\r\n// \"label\": \"南沙群岛\",\r\n// \"value\": \"460322\"\r\n// },\r\n// {\r\n// \"label\": \"中沙群岛的岛礁及其海域\",\r\n// \"value\": \"460323\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"儋州市\",\r\n// \"value\": \"460400\"\r\n// }],\r\n// [{\r\n// \"label\": \"五指山市\",\r\n// \"value\": \"469001\"\r\n// },\r\n// {\r\n// \"label\": \"琼海市\",\r\n// \"value\": \"469002\"\r\n// },\r\n// {\r\n// \"label\": \"文昌市\",\r\n// \"value\": \"469005\"\r\n// },\r\n// {\r\n// \"label\": \"万宁市\",\r\n// \"value\": \"469006\"\r\n// },\r\n// {\r\n// \"label\": \"东方市\",\r\n// \"value\": \"469007\"\r\n// },\r\n// {\r\n// \"label\": \"定安县\",\r\n// \"value\": \"469021\"\r\n// },\r\n// {\r\n// \"label\": \"屯昌县\",\r\n// \"value\": \"469022\"\r\n// },\r\n// {\r\n// \"label\": \"澄迈县\",\r\n// \"value\": \"469023\"\r\n// },\r\n// {\r\n// \"label\": \"临高县\",\r\n// \"value\": \"469024\"\r\n// },\r\n// {\r\n// \"label\": \"白沙黎族自治县\",\r\n// \"value\": \"469025\"\r\n// },\r\n// {\r\n// \"label\": \"昌江黎族自治县\",\r\n// \"value\": \"469026\"\r\n// },\r\n// {\r\n// \"label\": \"乐东黎族自治县\",\r\n// \"value\": \"469027\"\r\n// },\r\n// {\r\n// \"label\": \"陵水黎族自治县\",\r\n// \"value\": \"469028\"\r\n// },\r\n// {\r\n// \"label\": \"保亭黎族苗族自治县\",\r\n// \"value\": \"469029\"\r\n// },\r\n// {\r\n// \"label\": \"琼中黎族苗族自治县\",\r\n// \"value\": \"469030\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"万州区\",\r\n// \"value\": \"500101\"\r\n// },\r\n// {\r\n// \"label\": \"涪陵区\",\r\n// \"value\": \"500102\"\r\n// },\r\n// {\r\n// \"label\": \"渝中区\",\r\n// \"value\": \"500103\"\r\n// },\r\n// {\r\n// \"label\": \"大渡口区\",\r\n// \"value\": \"500104\"\r\n// },\r\n// {\r\n// \"label\": \"江北区\",\r\n// \"value\": \"500105\"\r\n// },\r\n// {\r\n// \"label\": \"沙坪坝区\",\r\n// \"value\": \"500106\"\r\n// },\r\n// {\r\n// \"label\": \"九龙坡区\",\r\n// \"value\": \"500107\"\r\n// },\r\n// {\r\n// \"label\": \"南岸区\",\r\n// \"value\": \"500108\"\r\n// },\r\n// {\r\n// \"label\": \"北碚区\",\r\n// \"value\": \"500109\"\r\n// },\r\n// {\r\n// \"label\": \"綦江区\",\r\n// \"value\": \"500110\"\r\n// },\r\n// {\r\n// \"label\": \"大足区\",\r\n// \"value\": \"500111\"\r\n// },\r\n// {\r\n// \"label\": \"渝北区\",\r\n// \"value\": \"500112\"\r\n// },\r\n// {\r\n// \"label\": \"巴南区\",\r\n// \"value\": \"500113\"\r\n// },\r\n// {\r\n// \"label\": \"黔江区\",\r\n// \"value\": \"500114\"\r\n// },\r\n// {\r\n// \"label\": \"长寿区\",\r\n// \"value\": \"500115\"\r\n// },\r\n// {\r\n// \"label\": \"江津区\",\r\n// \"value\": \"500116\"\r\n// },\r\n// {\r\n// \"label\": \"合川区\",\r\n// \"value\": \"500117\"\r\n// },\r\n// {\r\n// \"label\": \"永川区\",\r\n// \"value\": \"500118\"\r\n// },\r\n// {\r\n// \"label\": \"南川区\",\r\n// \"value\": \"500119\"\r\n// },\r\n// {\r\n// \"label\": \"璧山区\",\r\n// \"value\": \"500120\"\r\n// },\r\n// {\r\n// \"label\": \"铜梁区\",\r\n// \"value\": \"500151\"\r\n// },\r\n// {\r\n// \"label\": \"潼南区\",\r\n// \"value\": \"500152\"\r\n// },\r\n// {\r\n// \"label\": \"荣昌区\",\r\n// \"value\": \"500153\"\r\n// },\r\n// {\r\n// \"label\": \"开州区\",\r\n// \"value\": \"500154\"\r\n// },\r\n// {\r\n// \"label\": \"梁平区\",\r\n// \"value\": \"500155\"\r\n// },\r\n// {\r\n// \"label\": \"武隆区\",\r\n// \"value\": \"500156\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"城口县\",\r\n// \"value\": \"500229\"\r\n// },\r\n// {\r\n// \"label\": \"丰都县\",\r\n// \"value\": \"500230\"\r\n// },\r\n// {\r\n// \"label\": \"垫江县\",\r\n// \"value\": \"500231\"\r\n// },\r\n// {\r\n// \"label\": \"忠县\",\r\n// \"value\": \"500233\"\r\n// },\r\n// {\r\n// \"label\": \"云阳县\",\r\n// \"value\": \"500235\"\r\n// },\r\n// {\r\n// \"label\": \"奉节县\",\r\n// \"value\": \"500236\"\r\n// },\r\n// {\r\n// \"label\": \"巫山县\",\r\n// \"value\": \"500237\"\r\n// },\r\n// {\r\n// \"label\": \"巫溪县\",\r\n// \"value\": \"500238\"\r\n// },\r\n// {\r\n// \"label\": \"石柱土家族自治县\",\r\n// \"value\": \"500240\"\r\n// },\r\n// {\r\n// \"label\": \"秀山土家族苗族自治县\",\r\n// \"value\": \"500241\"\r\n// },\r\n// {\r\n// \"label\": \"酉阳土家族苗族自治县\",\r\n// \"value\": \"500242\"\r\n// },\r\n// {\r\n// \"label\": \"彭水苗族土家族自治县\",\r\n// \"value\": \"500243\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"锦江区\",\r\n// \"value\": \"510104\"\r\n// },\r\n// {\r\n// \"label\": \"青羊区\",\r\n// \"value\": \"510105\"\r\n// },\r\n// {\r\n// \"label\": \"金牛区\",\r\n// \"value\": \"510106\"\r\n// },\r\n// {\r\n// \"label\": \"武侯区\",\r\n// \"value\": \"510107\"\r\n// },\r\n// {\r\n// \"label\": \"成华区\",\r\n// \"value\": \"510108\"\r\n// },\r\n// {\r\n// \"label\": \"龙泉驿区\",\r\n// \"value\": \"510112\"\r\n// },\r\n// {\r\n// \"label\": \"青白江区\",\r\n// \"value\": \"510113\"\r\n// },\r\n// {\r\n// \"label\": \"新都区\",\r\n// \"value\": \"510114\"\r\n// },\r\n// {\r\n// \"label\": \"温江区\",\r\n// \"value\": \"510115\"\r\n// },\r\n// {\r\n// \"label\": \"双流区\",\r\n// \"value\": \"510116\"\r\n// },\r\n// {\r\n// \"label\": \"郫都区\",\r\n// \"value\": \"510117\"\r\n// },\r\n// {\r\n// \"label\": \"金堂县\",\r\n// \"value\": \"510121\"\r\n// },\r\n// {\r\n// \"label\": \"大邑县\",\r\n// \"value\": \"510129\"\r\n// },\r\n// {\r\n// \"label\": \"蒲江县\",\r\n// \"value\": \"510131\"\r\n// },\r\n// {\r\n// \"label\": \"新津县\",\r\n// \"value\": \"510132\"\r\n// },\r\n// {\r\n// \"label\": \"都江堰市\",\r\n// \"value\": \"510181\"\r\n// },\r\n// {\r\n// \"label\": \"彭州市\",\r\n// \"value\": \"510182\"\r\n// },\r\n// {\r\n// \"label\": \"邛崃市\",\r\n// \"value\": \"510183\"\r\n// },\r\n// {\r\n// \"label\": \"崇州市\",\r\n// \"value\": \"510184\"\r\n// },\r\n// {\r\n// \"label\": \"简阳市\",\r\n// \"value\": \"510185\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"自流井区\",\r\n// \"value\": \"510302\"\r\n// },\r\n// {\r\n// \"label\": \"贡井区\",\r\n// \"value\": \"510303\"\r\n// },\r\n// {\r\n// \"label\": \"大安区\",\r\n// \"value\": \"510304\"\r\n// },\r\n// {\r\n// \"label\": \"沿滩区\",\r\n// \"value\": \"510311\"\r\n// },\r\n// {\r\n// \"label\": \"荣县\",\r\n// \"value\": \"510321\"\r\n// },\r\n// {\r\n// \"label\": \"富顺县\",\r\n// \"value\": \"510322\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东区\",\r\n// \"value\": \"510402\"\r\n// },\r\n// {\r\n// \"label\": \"西区\",\r\n// \"value\": \"510403\"\r\n// },\r\n// {\r\n// \"label\": \"仁和区\",\r\n// \"value\": \"510411\"\r\n// },\r\n// {\r\n// \"label\": \"米易县\",\r\n// \"value\": \"510421\"\r\n// },\r\n// {\r\n// \"label\": \"盐边县\",\r\n// \"value\": \"510422\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"江阳区\",\r\n// \"value\": \"510502\"\r\n// },\r\n// {\r\n// \"label\": \"纳溪区\",\r\n// \"value\": \"510503\"\r\n// },\r\n// {\r\n// \"label\": \"龙马潭区\",\r\n// \"value\": \"510504\"\r\n// },\r\n// {\r\n// \"label\": \"泸县\",\r\n// \"value\": \"510521\"\r\n// },\r\n// {\r\n// \"label\": \"合江县\",\r\n// \"value\": \"510522\"\r\n// },\r\n// {\r\n// \"label\": \"叙永县\",\r\n// \"value\": \"510524\"\r\n// },\r\n// {\r\n// \"label\": \"古蔺县\",\r\n// \"value\": \"510525\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"旌阳区\",\r\n// \"value\": \"510603\"\r\n// },\r\n// {\r\n// \"label\": \"罗江区\",\r\n// \"value\": \"510604\"\r\n// },\r\n// {\r\n// \"label\": \"中江县\",\r\n// \"value\": \"510623\"\r\n// },\r\n// {\r\n// \"label\": \"广汉市\",\r\n// \"value\": \"510681\"\r\n// },\r\n// {\r\n// \"label\": \"什邡市\",\r\n// \"value\": \"510682\"\r\n// },\r\n// {\r\n// \"label\": \"绵竹市\",\r\n// \"value\": \"510683\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"涪城区\",\r\n// \"value\": \"510703\"\r\n// },\r\n// {\r\n// \"label\": \"游仙区\",\r\n// \"value\": \"510704\"\r\n// },\r\n// {\r\n// \"label\": \"安州区\",\r\n// \"value\": \"510705\"\r\n// },\r\n// {\r\n// \"label\": \"三台县\",\r\n// \"value\": \"510722\"\r\n// },\r\n// {\r\n// \"label\": \"盐亭县\",\r\n// \"value\": \"510723\"\r\n// },\r\n// {\r\n// \"label\": \"梓潼县\",\r\n// \"value\": \"510725\"\r\n// },\r\n// {\r\n// \"label\": \"北川羌族自治县\",\r\n// \"value\": \"510726\"\r\n// },\r\n// {\r\n// \"label\": \"平武县\",\r\n// \"value\": \"510727\"\r\n// },\r\n// {\r\n// \"label\": \"江油市\",\r\n// \"value\": \"510781\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"利州区\",\r\n// \"value\": \"510802\"\r\n// },\r\n// {\r\n// \"label\": \"昭化区\",\r\n// \"value\": \"510811\"\r\n// },\r\n// {\r\n// \"label\": \"朝天区\",\r\n// \"value\": \"510812\"\r\n// },\r\n// {\r\n// \"label\": \"旺苍县\",\r\n// \"value\": \"510821\"\r\n// },\r\n// {\r\n// \"label\": \"青川县\",\r\n// \"value\": \"510822\"\r\n// },\r\n// {\r\n// \"label\": \"剑阁县\",\r\n// \"value\": \"510823\"\r\n// },\r\n// {\r\n// \"label\": \"苍溪县\",\r\n// \"value\": \"510824\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"船山区\",\r\n// \"value\": \"510903\"\r\n// },\r\n// {\r\n// \"label\": \"安居区\",\r\n// \"value\": \"510904\"\r\n// },\r\n// {\r\n// \"label\": \"蓬溪县\",\r\n// \"value\": \"510921\"\r\n// },\r\n// {\r\n// \"label\": \"射洪县\",\r\n// \"value\": \"510922\"\r\n// },\r\n// {\r\n// \"label\": \"大英县\",\r\n// \"value\": \"510923\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"市中区\",\r\n// \"value\": \"511002\"\r\n// },\r\n// {\r\n// \"label\": \"东兴区\",\r\n// \"value\": \"511011\"\r\n// },\r\n// {\r\n// \"label\": \"威远县\",\r\n// \"value\": \"511024\"\r\n// },\r\n// {\r\n// \"label\": \"资中县\",\r\n// \"value\": \"511025\"\r\n// },\r\n// {\r\n// \"label\": \"内江经济开发区\",\r\n// \"value\": \"511071\"\r\n// },\r\n// {\r\n// \"label\": \"隆昌市\",\r\n// \"value\": \"511083\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"市中区\",\r\n// \"value\": \"511102\"\r\n// },\r\n// {\r\n// \"label\": \"沙湾区\",\r\n// \"value\": \"511111\"\r\n// },\r\n// {\r\n// \"label\": \"五通桥区\",\r\n// \"value\": \"511112\"\r\n// },\r\n// {\r\n// \"label\": \"金口河区\",\r\n// \"value\": \"511113\"\r\n// },\r\n// {\r\n// \"label\": \"犍为县\",\r\n// \"value\": \"511123\"\r\n// },\r\n// {\r\n// \"label\": \"井研县\",\r\n// \"value\": \"511124\"\r\n// },\r\n// {\r\n// \"label\": \"夹江县\",\r\n// \"value\": \"511126\"\r\n// },\r\n// {\r\n// \"label\": \"沐川县\",\r\n// \"value\": \"511129\"\r\n// },\r\n// {\r\n// \"label\": \"峨边彝族自治县\",\r\n// \"value\": \"511132\"\r\n// },\r\n// {\r\n// \"label\": \"马边彝族自治县\",\r\n// \"value\": \"511133\"\r\n// },\r\n// {\r\n// \"label\": \"峨眉山市\",\r\n// \"value\": \"511181\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"顺庆区\",\r\n// \"value\": \"511302\"\r\n// },\r\n// {\r\n// \"label\": \"高坪区\",\r\n// \"value\": \"511303\"\r\n// },\r\n// {\r\n// \"label\": \"嘉陵区\",\r\n// \"value\": \"511304\"\r\n// },\r\n// {\r\n// \"label\": \"南部县\",\r\n// \"value\": \"511321\"\r\n// },\r\n// {\r\n// \"label\": \"营山县\",\r\n// \"value\": \"511322\"\r\n// },\r\n// {\r\n// \"label\": \"蓬安县\",\r\n// \"value\": \"511323\"\r\n// },\r\n// {\r\n// \"label\": \"仪陇县\",\r\n// \"value\": \"511324\"\r\n// },\r\n// {\r\n// \"label\": \"西充县\",\r\n// \"value\": \"511325\"\r\n// },\r\n// {\r\n// \"label\": \"阆中市\",\r\n// \"value\": \"511381\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"东坡区\",\r\n// \"value\": \"511402\"\r\n// },\r\n// {\r\n// \"label\": \"彭山区\",\r\n// \"value\": \"511403\"\r\n// },\r\n// {\r\n// \"label\": \"仁寿县\",\r\n// \"value\": \"511421\"\r\n// },\r\n// {\r\n// \"label\": \"洪雅县\",\r\n// \"value\": \"511423\"\r\n// },\r\n// {\r\n// \"label\": \"丹棱县\",\r\n// \"value\": \"511424\"\r\n// },\r\n// {\r\n// \"label\": \"青神县\",\r\n// \"value\": \"511425\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"翠屏区\",\r\n// \"value\": \"511502\"\r\n// },\r\n// {\r\n// \"label\": \"南溪区\",\r\n// \"value\": \"511503\"\r\n// },\r\n// {\r\n// \"label\": \"宜宾县\",\r\n// \"value\": \"511521\"\r\n// },\r\n// {\r\n// \"label\": \"江安县\",\r\n// \"value\": \"511523\"\r\n// },\r\n// {\r\n// \"label\": \"长宁县\",\r\n// \"value\": \"511524\"\r\n// },\r\n// {\r\n// \"label\": \"高县\",\r\n// \"value\": \"511525\"\r\n// },\r\n// {\r\n// \"label\": \"珙县\",\r\n// \"value\": \"511526\"\r\n// },\r\n// {\r\n// \"label\": \"筠连县\",\r\n// \"value\": \"511527\"\r\n// },\r\n// {\r\n// \"label\": \"兴文县\",\r\n// \"value\": \"511528\"\r\n// },\r\n// {\r\n// \"label\": \"屏山县\",\r\n// \"value\": \"511529\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"广安区\",\r\n// \"value\": \"511602\"\r\n// },\r\n// {\r\n// \"label\": \"前锋区\",\r\n// \"value\": \"511603\"\r\n// },\r\n// {\r\n// \"label\": \"岳池县\",\r\n// \"value\": \"511621\"\r\n// },\r\n// {\r\n// \"label\": \"武胜县\",\r\n// \"value\": \"511622\"\r\n// },\r\n// {\r\n// \"label\": \"邻水县\",\r\n// \"value\": \"511623\"\r\n// },\r\n// {\r\n// \"label\": \"华蓥市\",\r\n// \"value\": \"511681\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"通川区\",\r\n// \"value\": \"511702\"\r\n// },\r\n// {\r\n// \"label\": \"达川区\",\r\n// \"value\": \"511703\"\r\n// },\r\n// {\r\n// \"label\": \"宣汉县\",\r\n// \"value\": \"511722\"\r\n// },\r\n// {\r\n// \"label\": \"开江县\",\r\n// \"value\": \"511723\"\r\n// },\r\n// {\r\n// \"label\": \"大竹县\",\r\n// \"value\": \"511724\"\r\n// },\r\n// {\r\n// \"label\": \"渠县\",\r\n// \"value\": \"511725\"\r\n// },\r\n// {\r\n// \"label\": \"达州经济开发区\",\r\n// \"value\": \"511771\"\r\n// },\r\n// {\r\n// \"label\": \"万源市\",\r\n// \"value\": \"511781\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"雨城区\",\r\n// \"value\": \"511802\"\r\n// },\r\n// {\r\n// \"label\": \"名山区\",\r\n// \"value\": \"511803\"\r\n// },\r\n// {\r\n// \"label\": \"荥经县\",\r\n// \"value\": \"511822\"\r\n// },\r\n// {\r\n// \"label\": \"汉源县\",\r\n// \"value\": \"511823\"\r\n// },\r\n// {\r\n// \"label\": \"石棉县\",\r\n// \"value\": \"511824\"\r\n// },\r\n// {\r\n// \"label\": \"天全县\",\r\n// \"value\": \"511825\"\r\n// },\r\n// {\r\n// \"label\": \"芦山县\",\r\n// \"value\": \"511826\"\r\n// },\r\n// {\r\n// \"label\": \"宝兴县\",\r\n// \"value\": \"511827\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"巴州区\",\r\n// \"value\": \"511902\"\r\n// },\r\n// {\r\n// \"label\": \"恩阳区\",\r\n// \"value\": \"511903\"\r\n// },\r\n// {\r\n// \"label\": \"通江县\",\r\n// \"value\": \"511921\"\r\n// },\r\n// {\r\n// \"label\": \"南江县\",\r\n// \"value\": \"511922\"\r\n// },\r\n// {\r\n// \"label\": \"平昌县\",\r\n// \"value\": \"511923\"\r\n// },\r\n// {\r\n// \"label\": \"巴中经济开发区\",\r\n// \"value\": \"511971\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"雁江区\",\r\n// \"value\": \"512002\"\r\n// },\r\n// {\r\n// \"label\": \"安岳县\",\r\n// \"value\": \"512021\"\r\n// },\r\n// {\r\n// \"label\": \"乐至县\",\r\n// \"value\": \"512022\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"马尔康市\",\r\n// \"value\": \"513201\"\r\n// },\r\n// {\r\n// \"label\": \"汶川县\",\r\n// \"value\": \"513221\"\r\n// },\r\n// {\r\n// \"label\": \"理县\",\r\n// \"value\": \"513222\"\r\n// },\r\n// {\r\n// \"label\": \"茂县\",\r\n// \"value\": \"513223\"\r\n// },\r\n// {\r\n// \"label\": \"松潘县\",\r\n// \"value\": \"513224\"\r\n// },\r\n// {\r\n// \"label\": \"九寨沟县\",\r\n// \"value\": \"513225\"\r\n// },\r\n// {\r\n// \"label\": \"金川县\",\r\n// \"value\": \"513226\"\r\n// },\r\n// {\r\n// \"label\": \"小金县\",\r\n// \"value\": \"513227\"\r\n// },\r\n// {\r\n// \"label\": \"黑水县\",\r\n// \"value\": \"513228\"\r\n// },\r\n// {\r\n// \"label\": \"壤塘县\",\r\n// \"value\": \"513230\"\r\n// },\r\n// {\r\n// \"label\": \"阿坝县\",\r\n// \"value\": \"513231\"\r\n// },\r\n// {\r\n// \"label\": \"若尔盖县\",\r\n// \"value\": \"513232\"\r\n// },\r\n// {\r\n// \"label\": \"红原县\",\r\n// \"value\": \"513233\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"康定市\",\r\n// \"value\": \"513301\"\r\n// },\r\n// {\r\n// \"label\": \"泸定县\",\r\n// \"value\": \"513322\"\r\n// },\r\n// {\r\n// \"label\": \"丹巴县\",\r\n// \"value\": \"513323\"\r\n// },\r\n// {\r\n// \"label\": \"九龙县\",\r\n// \"value\": \"513324\"\r\n// },\r\n// {\r\n// \"label\": \"雅江县\",\r\n// \"value\": \"513325\"\r\n// },\r\n// {\r\n// \"label\": \"道孚县\",\r\n// \"value\": \"513326\"\r\n// },\r\n// {\r\n// \"label\": \"炉霍县\",\r\n// \"value\": \"513327\"\r\n// },\r\n// {\r\n// \"label\": \"甘孜县\",\r\n// \"value\": \"513328\"\r\n// },\r\n// {\r\n// \"label\": \"新龙县\",\r\n// \"value\": \"513329\"\r\n// },\r\n// {\r\n// \"label\": \"德格县\",\r\n// \"value\": \"513330\"\r\n// },\r\n// {\r\n// \"label\": \"白玉县\",\r\n// \"value\": \"513331\"\r\n// },\r\n// {\r\n// \"label\": \"石渠县\",\r\n// \"value\": \"513332\"\r\n// },\r\n// {\r\n// \"label\": \"色达县\",\r\n// \"value\": \"513333\"\r\n// },\r\n// {\r\n// \"label\": \"理塘县\",\r\n// \"value\": \"513334\"\r\n// },\r\n// {\r\n// \"label\": \"巴塘县\",\r\n// \"value\": \"513335\"\r\n// },\r\n// {\r\n// \"label\": \"乡城县\",\r\n// \"value\": \"513336\"\r\n// },\r\n// {\r\n// \"label\": \"稻城县\",\r\n// \"value\": \"513337\"\r\n// },\r\n// {\r\n// \"label\": \"得荣县\",\r\n// \"value\": \"513338\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"西昌市\",\r\n// \"value\": \"513401\"\r\n// },\r\n// {\r\n// \"label\": \"木里藏族自治县\",\r\n// \"value\": \"513422\"\r\n// },\r\n// {\r\n// \"label\": \"盐源县\",\r\n// \"value\": \"513423\"\r\n// },\r\n// {\r\n// \"label\": \"德昌县\",\r\n// \"value\": \"513424\"\r\n// },\r\n// {\r\n// \"label\": \"会理县\",\r\n// \"value\": \"513425\"\r\n// },\r\n// {\r\n// \"label\": \"会东县\",\r\n// \"value\": \"513426\"\r\n// },\r\n// {\r\n// \"label\": \"宁南县\",\r\n// \"value\": \"513427\"\r\n// },\r\n// {\r\n// \"label\": \"普格县\",\r\n// \"value\": \"513428\"\r\n// },\r\n// {\r\n// \"label\": \"布拖县\",\r\n// \"value\": \"513429\"\r\n// },\r\n// {\r\n// \"label\": \"金阳县\",\r\n// \"value\": \"513430\"\r\n// },\r\n// {\r\n// \"label\": \"昭觉县\",\r\n// \"value\": \"513431\"\r\n// },\r\n// {\r\n// \"label\": \"喜德县\",\r\n// \"value\": \"513432\"\r\n// },\r\n// {\r\n// \"label\": \"冕宁县\",\r\n// \"value\": \"513433\"\r\n// },\r\n// {\r\n// \"label\": \"越西县\",\r\n// \"value\": \"513434\"\r\n// },\r\n// {\r\n// \"label\": \"甘洛县\",\r\n// \"value\": \"513435\"\r\n// },\r\n// {\r\n// \"label\": \"美姑县\",\r\n// \"value\": \"513436\"\r\n// },\r\n// {\r\n// \"label\": \"雷波县\",\r\n// \"value\": \"513437\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"南明区\",\r\n// \"value\": \"520102\"\r\n// },\r\n// {\r\n// \"label\": \"云岩区\",\r\n// \"value\": \"520103\"\r\n// },\r\n// {\r\n// \"label\": \"花溪区\",\r\n// \"value\": \"520111\"\r\n// },\r\n// {\r\n// \"label\": \"乌当区\",\r\n// \"value\": \"520112\"\r\n// },\r\n// {\r\n// \"label\": \"白云区\",\r\n// \"value\": \"520113\"\r\n// },\r\n// {\r\n// \"label\": \"观山湖区\",\r\n// \"value\": \"520115\"\r\n// },\r\n// {\r\n// \"label\": \"开阳县\",\r\n// \"value\": \"520121\"\r\n// },\r\n// {\r\n// \"label\": \"息烽县\",\r\n// \"value\": \"520122\"\r\n// },\r\n// {\r\n// \"label\": \"修文县\",\r\n// \"value\": \"520123\"\r\n// },\r\n// {\r\n// \"label\": \"清镇市\",\r\n// \"value\": \"520181\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"钟山区\",\r\n// \"value\": \"520201\"\r\n// },\r\n// {\r\n// \"label\": \"六枝特区\",\r\n// \"value\": \"520203\"\r\n// },\r\n// {\r\n// \"label\": \"水城县\",\r\n// \"value\": \"520221\"\r\n// },\r\n// {\r\n// \"label\": \"盘州市\",\r\n// \"value\": \"520281\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"红花岗区\",\r\n// \"value\": \"520302\"\r\n// },\r\n// {\r\n// \"label\": \"汇川区\",\r\n// \"value\": \"520303\"\r\n// },\r\n// {\r\n// \"label\": \"播州区\",\r\n// \"value\": \"520304\"\r\n// },\r\n// {\r\n// \"label\": \"桐梓县\",\r\n// \"value\": \"520322\"\r\n// },\r\n// {\r\n// \"label\": \"绥阳县\",\r\n// \"value\": \"520323\"\r\n// },\r\n// {\r\n// \"label\": \"正安县\",\r\n// \"value\": \"520324\"\r\n// },\r\n// {\r\n// \"label\": \"道真仡佬族苗族自治县\",\r\n// \"value\": \"520325\"\r\n// },\r\n// {\r\n// \"label\": \"务川仡佬族苗族自治县\",\r\n// \"value\": \"520326\"\r\n// },\r\n// {\r\n// \"label\": \"凤冈县\",\r\n// \"value\": \"520327\"\r\n// },\r\n// {\r\n// \"label\": \"湄潭县\",\r\n// \"value\": \"520328\"\r\n// },\r\n// {\r\n// \"label\": \"余庆县\",\r\n// \"value\": \"520329\"\r\n// },\r\n// {\r\n// \"label\": \"习水县\",\r\n// \"value\": \"520330\"\r\n// },\r\n// {\r\n// \"label\": \"赤水市\",\r\n// \"value\": \"520381\"\r\n// },\r\n// {\r\n// \"label\": \"仁怀市\",\r\n// \"value\": \"520382\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"西秀区\",\r\n// \"value\": \"520402\"\r\n// },\r\n// {\r\n// \"label\": \"平坝区\",\r\n// \"value\": \"520403\"\r\n// },\r\n// {\r\n// \"label\": \"普定县\",\r\n// \"value\": \"520422\"\r\n// },\r\n// {\r\n// \"label\": \"镇宁布依族苗族自治县\",\r\n// \"value\": \"520423\"\r\n// },\r\n// {\r\n// \"label\": \"关岭布依族苗族自治县\",\r\n// \"value\": \"520424\"\r\n// },\r\n// {\r\n// \"label\": \"紫云苗族布依族自治县\",\r\n// \"value\": \"520425\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"七星关区\",\r\n// \"value\": \"520502\"\r\n// },\r\n// {\r\n// \"label\": \"大方县\",\r\n// \"value\": \"520521\"\r\n// },\r\n// {\r\n// \"label\": \"黔西县\",\r\n// \"value\": \"520522\"\r\n// },\r\n// {\r\n// \"label\": \"金沙县\",\r\n// \"value\": \"520523\"\r\n// },\r\n// {\r\n// \"label\": \"织金县\",\r\n// \"value\": \"520524\"\r\n// },\r\n// {\r\n// \"label\": \"纳雍县\",\r\n// \"value\": \"520525\"\r\n// },\r\n// {\r\n// \"label\": \"威宁彝族回族苗族自治县\",\r\n// \"value\": \"520526\"\r\n// },\r\n// {\r\n// \"label\": \"赫章县\",\r\n// \"value\": \"520527\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"碧江区\",\r\n// \"value\": \"520602\"\r\n// },\r\n// {\r\n// \"label\": \"万山区\",\r\n// \"value\": \"520603\"\r\n// },\r\n// {\r\n// \"label\": \"江口县\",\r\n// \"value\": \"520621\"\r\n// },\r\n// {\r\n// \"label\": \"玉屏侗族自治县\",\r\n// \"value\": \"520622\"\r\n// },\r\n// {\r\n// \"label\": \"石阡县\",\r\n// \"value\": \"520623\"\r\n// },\r\n// {\r\n// \"label\": \"思南县\",\r\n// \"value\": \"520624\"\r\n// },\r\n// {\r\n// \"label\": \"印江土家族苗族自治县\",\r\n// \"value\": \"520625\"\r\n// },\r\n// {\r\n// \"label\": \"德江县\",\r\n// \"value\": \"520626\"\r\n// },\r\n// {\r\n// \"label\": \"沿河土家族自治县\",\r\n// \"value\": \"520627\"\r\n// },\r\n// {\r\n// \"label\": \"松桃苗族自治县\",\r\n// \"value\": \"520628\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"兴义市\",\r\n// \"value\": \"522301\"\r\n// },\r\n// {\r\n// \"label\": \"兴仁县\",\r\n// \"value\": \"522322\"\r\n// },\r\n// {\r\n// \"label\": \"普安县\",\r\n// \"value\": \"522323\"\r\n// },\r\n// {\r\n// \"label\": \"晴隆县\",\r\n// \"value\": \"522324\"\r\n// },\r\n// {\r\n// \"label\": \"贞丰县\",\r\n// \"value\": \"522325\"\r\n// },\r\n// {\r\n// \"label\": \"望谟县\",\r\n// \"value\": \"522326\"\r\n// },\r\n// {\r\n// \"label\": \"册亨县\",\r\n// \"value\": \"522327\"\r\n// },\r\n// {\r\n// \"label\": \"安龙县\",\r\n// \"value\": \"522328\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"凯里市\",\r\n// \"value\": \"522601\"\r\n// },\r\n// {\r\n// \"label\": \"黄平县\",\r\n// \"value\": \"522622\"\r\n// },\r\n// {\r\n// \"label\": \"施秉县\",\r\n// \"value\": \"522623\"\r\n// },\r\n// {\r\n// \"label\": \"三穗县\",\r\n// \"value\": \"522624\"\r\n// },\r\n// {\r\n// \"label\": \"镇远县\",\r\n// \"value\": \"522625\"\r\n// },\r\n// {\r\n// \"label\": \"岑巩县\",\r\n// \"value\": \"522626\"\r\n// },\r\n// {\r\n// \"label\": \"天柱县\",\r\n// \"value\": \"522627\"\r\n// },\r\n// {\r\n// \"label\": \"锦屏县\",\r\n// \"value\": \"522628\"\r\n// },\r\n// {\r\n// \"label\": \"剑河县\",\r\n// \"value\": \"522629\"\r\n// },\r\n// {\r\n// \"label\": \"台江县\",\r\n// \"value\": \"522630\"\r\n// },\r\n// {\r\n// \"label\": \"黎平县\",\r\n// \"value\": \"522631\"\r\n// },\r\n// {\r\n// \"label\": \"榕江县\",\r\n// \"value\": \"522632\"\r\n// },\r\n// {\r\n// \"label\": \"从江县\",\r\n// \"value\": \"522633\"\r\n// },\r\n// {\r\n// \"label\": \"雷山县\",\r\n// \"value\": \"522634\"\r\n// },\r\n// {\r\n// \"label\": \"麻江县\",\r\n// \"value\": \"522635\"\r\n// },\r\n// {\r\n// \"label\": \"丹寨县\",\r\n// \"value\": \"522636\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"都匀市\",\r\n// \"value\": \"522701\"\r\n// },\r\n// {\r\n// \"label\": \"福泉市\",\r\n// \"value\": \"522702\"\r\n// },\r\n// {\r\n// \"label\": \"荔波县\",\r\n// \"value\": \"522722\"\r\n// },\r\n// {\r\n// \"label\": \"贵定县\",\r\n// \"value\": \"522723\"\r\n// },\r\n// {\r\n// \"label\": \"瓮安县\",\r\n// \"value\": \"522725\"\r\n// },\r\n// {\r\n// \"label\": \"独山县\",\r\n// \"value\": \"522726\"\r\n// },\r\n// {\r\n// \"label\": \"平塘县\",\r\n// \"value\": \"522727\"\r\n// },\r\n// {\r\n// \"label\": \"罗甸县\",\r\n// \"value\": \"522728\"\r\n// },\r\n// {\r\n// \"label\": \"长顺县\",\r\n// \"value\": \"522729\"\r\n// },\r\n// {\r\n// \"label\": \"龙里县\",\r\n// \"value\": \"522730\"\r\n// },\r\n// {\r\n// \"label\": \"惠水县\",\r\n// \"value\": \"522731\"\r\n// },\r\n// {\r\n// \"label\": \"三都水族自治县\",\r\n// \"value\": \"522732\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"五华区\",\r\n// \"value\": \"530102\"\r\n// },\r\n// {\r\n// \"label\": \"盘龙区\",\r\n// \"value\": \"530103\"\r\n// },\r\n// {\r\n// \"label\": \"官渡区\",\r\n// \"value\": \"530111\"\r\n// },\r\n// {\r\n// \"label\": \"西山区\",\r\n// \"value\": \"530112\"\r\n// },\r\n// {\r\n// \"label\": \"东川区\",\r\n// \"value\": \"530113\"\r\n// },\r\n// {\r\n// \"label\": \"呈贡区\",\r\n// \"value\": \"530114\"\r\n// },\r\n// {\r\n// \"label\": \"晋宁区\",\r\n// \"value\": \"530115\"\r\n// },\r\n// {\r\n// \"label\": \"富民县\",\r\n// \"value\": \"530124\"\r\n// },\r\n// {\r\n// \"label\": \"宜良县\",\r\n// \"value\": \"530125\"\r\n// },\r\n// {\r\n// \"label\": \"石林彝族自治县\",\r\n// \"value\": \"530126\"\r\n// },\r\n// {\r\n// \"label\": \"嵩明县\",\r\n// \"value\": \"530127\"\r\n// },\r\n// {\r\n// \"label\": \"禄劝彝族苗族自治县\",\r\n// \"value\": \"530128\"\r\n// },\r\n// {\r\n// \"label\": \"寻甸回族彝族自治县\",\r\n// \"value\": \"530129\"\r\n// },\r\n// {\r\n// \"label\": \"安宁市\",\r\n// \"value\": \"530181\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"麒麟区\",\r\n// \"value\": \"530302\"\r\n// },\r\n// {\r\n// \"label\": \"沾益区\",\r\n// \"value\": \"530303\"\r\n// },\r\n// {\r\n// \"label\": \"马龙县\",\r\n// \"value\": \"530321\"\r\n// },\r\n// {\r\n// \"label\": \"陆良县\",\r\n// \"value\": \"530322\"\r\n// },\r\n// {\r\n// \"label\": \"师宗县\",\r\n// \"value\": \"530323\"\r\n// },\r\n// {\r\n// \"label\": \"罗平县\",\r\n// \"value\": \"530324\"\r\n// },\r\n// {\r\n// \"label\": \"富源县\",\r\n// \"value\": \"530325\"\r\n// },\r\n// {\r\n// \"label\": \"会泽县\",\r\n// \"value\": \"530326\"\r\n// },\r\n// {\r\n// \"label\": \"宣威市\",\r\n// \"value\": \"530381\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"红塔区\",\r\n// \"value\": \"530402\"\r\n// },\r\n// {\r\n// \"label\": \"江川区\",\r\n// \"value\": \"530403\"\r\n// },\r\n// {\r\n// \"label\": \"澄江县\",\r\n// \"value\": \"530422\"\r\n// },\r\n// {\r\n// \"label\": \"通海县\",\r\n// \"value\": \"530423\"\r\n// },\r\n// {\r\n// \"label\": \"华宁县\",\r\n// \"value\": \"530424\"\r\n// },\r\n// {\r\n// \"label\": \"易门县\",\r\n// \"value\": \"530425\"\r\n// },\r\n// {\r\n// \"label\": \"峨山彝族自治县\",\r\n// \"value\": \"530426\"\r\n// },\r\n// {\r\n// \"label\": \"新平彝族傣族自治县\",\r\n// \"value\": \"530427\"\r\n// },\r\n// {\r\n// \"label\": \"元江哈尼族彝族傣族自治县\",\r\n// \"value\": \"530428\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"隆阳区\",\r\n// \"value\": \"530502\"\r\n// },\r\n// {\r\n// \"label\": \"施甸县\",\r\n// \"value\": \"530521\"\r\n// },\r\n// {\r\n// \"label\": \"龙陵县\",\r\n// \"value\": \"530523\"\r\n// },\r\n// {\r\n// \"label\": \"昌宁县\",\r\n// \"value\": \"530524\"\r\n// },\r\n// {\r\n// \"label\": \"腾冲市\",\r\n// \"value\": \"530581\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"昭阳区\",\r\n// \"value\": \"530602\"\r\n// },\r\n// {\r\n// \"label\": \"鲁甸县\",\r\n// \"value\": \"530621\"\r\n// },\r\n// {\r\n// \"label\": \"巧家县\",\r\n// \"value\": \"530622\"\r\n// },\r\n// {\r\n// \"label\": \"盐津县\",\r\n// \"value\": \"530623\"\r\n// },\r\n// {\r\n// \"label\": \"大关县\",\r\n// \"value\": \"530624\"\r\n// },\r\n// {\r\n// \"label\": \"永善县\",\r\n// \"value\": \"530625\"\r\n// },\r\n// {\r\n// \"label\": \"绥江县\",\r\n// \"value\": \"530626\"\r\n// },\r\n// {\r\n// \"label\": \"镇雄县\",\r\n// \"value\": \"530627\"\r\n// },\r\n// {\r\n// \"label\": \"彝良县\",\r\n// \"value\": \"530628\"\r\n// },\r\n// {\r\n// \"label\": \"威信县\",\r\n// \"value\": \"530629\"\r\n// },\r\n// {\r\n// \"label\": \"水富县\",\r\n// \"value\": \"530630\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"古城区\",\r\n// \"value\": \"530702\"\r\n// },\r\n// {\r\n// \"label\": \"玉龙纳西族自治县\",\r\n// \"value\": \"530721\"\r\n// },\r\n// {\r\n// \"label\": \"永胜县\",\r\n// \"value\": \"530722\"\r\n// },\r\n// {\r\n// \"label\": \"华坪县\",\r\n// \"value\": \"530723\"\r\n// },\r\n// {\r\n// \"label\": \"宁蒗彝族自治县\",\r\n// \"value\": \"530724\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"思茅区\",\r\n// \"value\": \"530802\"\r\n// },\r\n// {\r\n// \"label\": \"宁洱哈尼族彝族自治县\",\r\n// \"value\": \"530821\"\r\n// },\r\n// {\r\n// \"label\": \"墨江哈尼族自治县\",\r\n// \"value\": \"530822\"\r\n// },\r\n// {\r\n// \"label\": \"景东彝族自治县\",\r\n// \"value\": \"530823\"\r\n// },\r\n// {\r\n// \"label\": \"景谷傣族彝族自治县\",\r\n// \"value\": \"530824\"\r\n// },\r\n// {\r\n// \"label\": \"镇沅彝族哈尼族拉祜族自治县\",\r\n// \"value\": \"530825\"\r\n// },\r\n// {\r\n// \"label\": \"江城哈尼族彝族自治县\",\r\n// \"value\": \"530826\"\r\n// },\r\n// {\r\n// \"label\": \"孟连傣族拉祜族佤族自治县\",\r\n// \"value\": \"530827\"\r\n// },\r\n// {\r\n// \"label\": \"澜沧拉祜族自治县\",\r\n// \"value\": \"530828\"\r\n// },\r\n// {\r\n// \"label\": \"西盟佤族自治县\",\r\n// \"value\": \"530829\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"临翔区\",\r\n// \"value\": \"530902\"\r\n// },\r\n// {\r\n// \"label\": \"凤庆县\",\r\n// \"value\": \"530921\"\r\n// },\r\n// {\r\n// \"label\": \"云县\",\r\n// \"value\": \"530922\"\r\n// },\r\n// {\r\n// \"label\": \"永德县\",\r\n// \"value\": \"530923\"\r\n// },\r\n// {\r\n// \"label\": \"镇康县\",\r\n// \"value\": \"530924\"\r\n// },\r\n// {\r\n// \"label\": \"双江拉祜族佤族布朗族傣族自治县\",\r\n// \"value\": \"530925\"\r\n// },\r\n// {\r\n// \"label\": \"耿马傣族佤族自治县\",\r\n// \"value\": \"530926\"\r\n// },\r\n// {\r\n// \"label\": \"沧源佤族自治县\",\r\n// \"value\": \"530927\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"楚雄市\",\r\n// \"value\": \"532301\"\r\n// },\r\n// {\r\n// \"label\": \"双柏县\",\r\n// \"value\": \"532322\"\r\n// },\r\n// {\r\n// \"label\": \"牟定县\",\r\n// \"value\": \"532323\"\r\n// },\r\n// {\r\n// \"label\": \"南华县\",\r\n// \"value\": \"532324\"\r\n// },\r\n// {\r\n// \"label\": \"姚安县\",\r\n// \"value\": \"532325\"\r\n// },\r\n// {\r\n// \"label\": \"大姚县\",\r\n// \"value\": \"532326\"\r\n// },\r\n// {\r\n// \"label\": \"永仁县\",\r\n// \"value\": \"532327\"\r\n// },\r\n// {\r\n// \"label\": \"元谋县\",\r\n// \"value\": \"532328\"\r\n// },\r\n// {\r\n// \"label\": \"武定县\",\r\n// \"value\": \"532329\"\r\n// },\r\n// {\r\n// \"label\": \"禄丰县\",\r\n// \"value\": \"532331\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"个旧市\",\r\n// \"value\": \"532501\"\r\n// },\r\n// {\r\n// \"label\": \"开远市\",\r\n// \"value\": \"532502\"\r\n// },\r\n// {\r\n// \"label\": \"蒙自市\",\r\n// \"value\": \"532503\"\r\n// },\r\n// {\r\n// \"label\": \"弥勒市\",\r\n// \"value\": \"532504\"\r\n// },\r\n// {\r\n// \"label\": \"屏边苗族自治县\",\r\n// \"value\": \"532523\"\r\n// },\r\n// {\r\n// \"label\": \"建水县\",\r\n// \"value\": \"532524\"\r\n// },\r\n// {\r\n// \"label\": \"石屏县\",\r\n// \"value\": \"532525\"\r\n// },\r\n// {\r\n// \"label\": \"泸西县\",\r\n// \"value\": \"532527\"\r\n// },\r\n// {\r\n// \"label\": \"元阳县\",\r\n// \"value\": \"532528\"\r\n// },\r\n// {\r\n// \"label\": \"红河县\",\r\n// \"value\": \"532529\"\r\n// },\r\n// {\r\n// \"label\": \"金平苗族瑶族傣族自治县\",\r\n// \"value\": \"532530\"\r\n// },\r\n// {\r\n// \"label\": \"绿春县\",\r\n// \"value\": \"532531\"\r\n// },\r\n// {\r\n// \"label\": \"河口瑶族自治县\",\r\n// \"value\": \"532532\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"文山市\",\r\n// \"value\": \"532601\"\r\n// },\r\n// {\r\n// \"label\": \"砚山县\",\r\n// \"value\": \"532622\"\r\n// },\r\n// {\r\n// \"label\": \"西畴县\",\r\n// \"value\": \"532623\"\r\n// },\r\n// {\r\n// \"label\": \"麻栗坡县\",\r\n// \"value\": \"532624\"\r\n// },\r\n// {\r\n// \"label\": \"马关县\",\r\n// \"value\": \"532625\"\r\n// },\r\n// {\r\n// \"label\": \"丘北县\",\r\n// \"value\": \"532626\"\r\n// },\r\n// {\r\n// \"label\": \"广南县\",\r\n// \"value\": \"532627\"\r\n// },\r\n// {\r\n// \"label\": \"富宁县\",\r\n// \"value\": \"532628\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"景洪市\",\r\n// \"value\": \"532801\"\r\n// },\r\n// {\r\n// \"label\": \"勐海县\",\r\n// \"value\": \"532822\"\r\n// },\r\n// {\r\n// \"label\": \"勐腊县\",\r\n// \"value\": \"532823\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"大理市\",\r\n// \"value\": \"532901\"\r\n// },\r\n// {\r\n// \"label\": \"漾濞彝族自治县\",\r\n// \"value\": \"532922\"\r\n// },\r\n// {\r\n// \"label\": \"祥云县\",\r\n// \"value\": \"532923\"\r\n// },\r\n// {\r\n// \"label\": \"宾川县\",\r\n// \"value\": \"532924\"\r\n// },\r\n// {\r\n// \"label\": \"弥渡县\",\r\n// \"value\": \"532925\"\r\n// },\r\n// {\r\n// \"label\": \"南涧彝族自治县\",\r\n// \"value\": \"532926\"\r\n// },\r\n// {\r\n// \"label\": \"巍山彝族回族自治县\",\r\n// \"value\": \"532927\"\r\n// },\r\n// {\r\n// \"label\": \"永平县\",\r\n// \"value\": \"532928\"\r\n// },\r\n// {\r\n// \"label\": \"云龙县\",\r\n// \"value\": \"532929\"\r\n// },\r\n// {\r\n// \"label\": \"洱源县\",\r\n// \"value\": \"532930\"\r\n// },\r\n// {\r\n// \"label\": \"剑川县\",\r\n// \"value\": \"532931\"\r\n// },\r\n// {\r\n// \"label\": \"鹤庆县\",\r\n// \"value\": \"532932\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"瑞丽市\",\r\n// \"value\": \"533102\"\r\n// },\r\n// {\r\n// \"label\": \"芒市\",\r\n// \"value\": \"533103\"\r\n// },\r\n// {\r\n// \"label\": \"梁河县\",\r\n// \"value\": \"533122\"\r\n// },\r\n// {\r\n// \"label\": \"盈江县\",\r\n// \"value\": \"533123\"\r\n// },\r\n// {\r\n// \"label\": \"陇川县\",\r\n// \"value\": \"533124\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"泸水市\",\r\n// \"value\": \"533301\"\r\n// },\r\n// {\r\n// \"label\": \"福贡县\",\r\n// \"value\": \"533323\"\r\n// },\r\n// {\r\n// \"label\": \"贡山独龙族怒族自治县\",\r\n// \"value\": \"533324\"\r\n// },\r\n// {\r\n// \"label\": \"兰坪白族普米族自治县\",\r\n// \"value\": \"533325\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"香格里拉市\",\r\n// \"value\": \"533401\"\r\n// },\r\n// {\r\n// \"label\": \"德钦县\",\r\n// \"value\": \"533422\"\r\n// },\r\n// {\r\n// \"label\": \"维西傈僳族自治县\",\r\n// \"value\": \"533423\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"城关区\",\r\n// \"value\": \"540102\"\r\n// },\r\n// {\r\n// \"label\": \"堆龙德庆区\",\r\n// \"value\": \"540103\"\r\n// },\r\n// {\r\n// \"label\": \"林周县\",\r\n// \"value\": \"540121\"\r\n// },\r\n// {\r\n// \"label\": \"当雄县\",\r\n// \"value\": \"540122\"\r\n// },\r\n// {\r\n// \"label\": \"尼木县\",\r\n// \"value\": \"540123\"\r\n// },\r\n// {\r\n// \"label\": \"曲水县\",\r\n// \"value\": \"540124\"\r\n// },\r\n// {\r\n// \"label\": \"达孜县\",\r\n// \"value\": \"540126\"\r\n// },\r\n// {\r\n// \"label\": \"墨竹工卡县\",\r\n// \"value\": \"540127\"\r\n// },\r\n// {\r\n// \"label\": \"格尔木藏青工业园区\",\r\n// \"value\": \"540171\"\r\n// },\r\n// {\r\n// \"label\": \"拉萨经济技术开发区\",\r\n// \"value\": \"540172\"\r\n// },\r\n// {\r\n// \"label\": \"西藏文化旅游创意园区\",\r\n// \"value\": \"540173\"\r\n// },\r\n// {\r\n// \"label\": \"达孜工业园区\",\r\n// \"value\": \"540174\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"桑珠孜区\",\r\n// \"value\": \"540202\"\r\n// },\r\n// {\r\n// \"label\": \"南木林县\",\r\n// \"value\": \"540221\"\r\n// },\r\n// {\r\n// \"label\": \"江孜县\",\r\n// \"value\": \"540222\"\r\n// },\r\n// {\r\n// \"label\": \"定日县\",\r\n// \"value\": \"540223\"\r\n// },\r\n// {\r\n// \"label\": \"萨迦县\",\r\n// \"value\": \"540224\"\r\n// },\r\n// {\r\n// \"label\": \"拉孜县\",\r\n// \"value\": \"540225\"\r\n// },\r\n// {\r\n// \"label\": \"昂仁县\",\r\n// \"value\": \"540226\"\r\n// },\r\n// {\r\n// \"label\": \"谢通门县\",\r\n// \"value\": \"540227\"\r\n// },\r\n// {\r\n// \"label\": \"白朗县\",\r\n// \"value\": \"540228\"\r\n// },\r\n// {\r\n// \"label\": \"仁布县\",\r\n// \"value\": \"540229\"\r\n// },\r\n// {\r\n// \"label\": \"康马县\",\r\n// \"value\": \"540230\"\r\n// },\r\n// {\r\n// \"label\": \"定结县\",\r\n// \"value\": \"540231\"\r\n// },\r\n// {\r\n// \"label\": \"仲巴县\",\r\n// \"value\": \"540232\"\r\n// },\r\n// {\r\n// \"label\": \"亚东县\",\r\n// \"value\": \"540233\"\r\n// },\r\n// {\r\n// \"label\": \"吉隆县\",\r\n// \"value\": \"540234\"\r\n// },\r\n// {\r\n// \"label\": \"聂拉木县\",\r\n// \"value\": \"540235\"\r\n// },\r\n// {\r\n// \"label\": \"萨嘎县\",\r\n// \"value\": \"540236\"\r\n// },\r\n// {\r\n// \"label\": \"岗巴县\",\r\n// \"value\": \"540237\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"卡若区\",\r\n// \"value\": \"540302\"\r\n// },\r\n// {\r\n// \"label\": \"江达县\",\r\n// \"value\": \"540321\"\r\n// },\r\n// {\r\n// \"label\": \"贡觉县\",\r\n// \"value\": \"540322\"\r\n// },\r\n// {\r\n// \"label\": \"类乌齐县\",\r\n// \"value\": \"540323\"\r\n// },\r\n// {\r\n// \"label\": \"丁青县\",\r\n// \"value\": \"540324\"\r\n// },\r\n// {\r\n// \"label\": \"察雅县\",\r\n// \"value\": \"540325\"\r\n// },\r\n// {\r\n// \"label\": \"八宿县\",\r\n// \"value\": \"540326\"\r\n// },\r\n// {\r\n// \"label\": \"左贡县\",\r\n// \"value\": \"540327\"\r\n// },\r\n// {\r\n// \"label\": \"芒康县\",\r\n// \"value\": \"540328\"\r\n// },\r\n// {\r\n// \"label\": \"洛隆县\",\r\n// \"value\": \"540329\"\r\n// },\r\n// {\r\n// \"label\": \"边坝县\",\r\n// \"value\": \"540330\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"巴宜区\",\r\n// \"value\": \"540402\"\r\n// },\r\n// {\r\n// \"label\": \"工布江达县\",\r\n// \"value\": \"540421\"\r\n// },\r\n// {\r\n// \"label\": \"米林县\",\r\n// \"value\": \"540422\"\r\n// },\r\n// {\r\n// \"label\": \"墨脱县\",\r\n// \"value\": \"540423\"\r\n// },\r\n// {\r\n// \"label\": \"波密县\",\r\n// \"value\": \"540424\"\r\n// },\r\n// {\r\n// \"label\": \"察隅县\",\r\n// \"value\": \"540425\"\r\n// },\r\n// {\r\n// \"label\": \"朗县\",\r\n// \"value\": \"540426\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"乃东区\",\r\n// \"value\": \"540502\"\r\n// },\r\n// {\r\n// \"label\": \"扎囊县\",\r\n// \"value\": \"540521\"\r\n// },\r\n// {\r\n// \"label\": \"贡嘎县\",\r\n// \"value\": \"540522\"\r\n// },\r\n// {\r\n// \"label\": \"桑日县\",\r\n// \"value\": \"540523\"\r\n// },\r\n// {\r\n// \"label\": \"琼结县\",\r\n// \"value\": \"540524\"\r\n// },\r\n// {\r\n// \"label\": \"曲松县\",\r\n// \"value\": \"540525\"\r\n// },\r\n// {\r\n// \"label\": \"措美县\",\r\n// \"value\": \"540526\"\r\n// },\r\n// {\r\n// \"label\": \"洛扎县\",\r\n// \"value\": \"540527\"\r\n// },\r\n// {\r\n// \"label\": \"加查县\",\r\n// \"value\": \"540528\"\r\n// },\r\n// {\r\n// \"label\": \"隆子县\",\r\n// \"value\": \"540529\"\r\n// },\r\n// {\r\n// \"label\": \"错那县\",\r\n// \"value\": \"540530\"\r\n// },\r\n// {\r\n// \"label\": \"浪卡子县\",\r\n// \"value\": \"540531\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"那曲县\",\r\n// \"value\": \"542421\"\r\n// },\r\n// {\r\n// \"label\": \"嘉黎县\",\r\n// \"value\": \"542422\"\r\n// },\r\n// {\r\n// \"label\": \"比如县\",\r\n// \"value\": \"542423\"\r\n// },\r\n// {\r\n// \"label\": \"聂荣县\",\r\n// \"value\": \"542424\"\r\n// },\r\n// {\r\n// \"label\": \"安多县\",\r\n// \"value\": \"542425\"\r\n// },\r\n// {\r\n// \"label\": \"申扎县\",\r\n// \"value\": \"542426\"\r\n// },\r\n// {\r\n// \"label\": \"索县\",\r\n// \"value\": \"542427\"\r\n// },\r\n// {\r\n// \"label\": \"班戈县\",\r\n// \"value\": \"542428\"\r\n// },\r\n// {\r\n// \"label\": \"巴青县\",\r\n// \"value\": \"542429\"\r\n// },\r\n// {\r\n// \"label\": \"尼玛县\",\r\n// \"value\": \"542430\"\r\n// },\r\n// {\r\n// \"label\": \"双湖县\",\r\n// \"value\": \"542431\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"普兰县\",\r\n// \"value\": \"542521\"\r\n// },\r\n// {\r\n// \"label\": \"札达县\",\r\n// \"value\": \"542522\"\r\n// },\r\n// {\r\n// \"label\": \"噶尔县\",\r\n// \"value\": \"542523\"\r\n// },\r\n// {\r\n// \"label\": \"日土县\",\r\n// \"value\": \"542524\"\r\n// },\r\n// {\r\n// \"label\": \"革吉县\",\r\n// \"value\": \"542525\"\r\n// },\r\n// {\r\n// \"label\": \"改则县\",\r\n// \"value\": \"542526\"\r\n// },\r\n// {\r\n// \"label\": \"措勤县\",\r\n// \"value\": \"542527\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"新城区\",\r\n// \"value\": \"610102\"\r\n// },\r\n// {\r\n// \"label\": \"碑林区\",\r\n// \"value\": \"610103\"\r\n// },\r\n// {\r\n// \"label\": \"莲湖区\",\r\n// \"value\": \"610104\"\r\n// },\r\n// {\r\n// \"label\": \"灞桥区\",\r\n// \"value\": \"610111\"\r\n// },\r\n// {\r\n// \"label\": \"未央区\",\r\n// \"value\": \"610112\"\r\n// },\r\n// {\r\n// \"label\": \"雁塔区\",\r\n// \"value\": \"610113\"\r\n// },\r\n// {\r\n// \"label\": \"阎良区\",\r\n// \"value\": \"610114\"\r\n// },\r\n// {\r\n// \"label\": \"临潼区\",\r\n// \"value\": \"610115\"\r\n// },\r\n// {\r\n// \"label\": \"长安区\",\r\n// \"value\": \"610116\"\r\n// },\r\n// {\r\n// \"label\": \"高陵区\",\r\n// \"value\": \"610117\"\r\n// },\r\n// {\r\n// \"label\": \"鄠邑区\",\r\n// \"value\": \"610118\"\r\n// },\r\n// {\r\n// \"label\": \"蓝田县\",\r\n// \"value\": \"610122\"\r\n// },\r\n// {\r\n// \"label\": \"周至县\",\r\n// \"value\": \"610124\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"王益区\",\r\n// \"value\": \"610202\"\r\n// },\r\n// {\r\n// \"label\": \"印台区\",\r\n// \"value\": \"610203\"\r\n// },\r\n// {\r\n// \"label\": \"耀州区\",\r\n// \"value\": \"610204\"\r\n// },\r\n// {\r\n// \"label\": \"宜君县\",\r\n// \"value\": \"610222\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"渭滨区\",\r\n// \"value\": \"610302\"\r\n// },\r\n// {\r\n// \"label\": \"金台区\",\r\n// \"value\": \"610303\"\r\n// },\r\n// {\r\n// \"label\": \"陈仓区\",\r\n// \"value\": \"610304\"\r\n// },\r\n// {\r\n// \"label\": \"凤翔县\",\r\n// \"value\": \"610322\"\r\n// },\r\n// {\r\n// \"label\": \"岐山县\",\r\n// \"value\": \"610323\"\r\n// },\r\n// {\r\n// \"label\": \"扶风县\",\r\n// \"value\": \"610324\"\r\n// },\r\n// {\r\n// \"label\": \"眉县\",\r\n// \"value\": \"610326\"\r\n// },\r\n// {\r\n// \"label\": \"陇县\",\r\n// \"value\": \"610327\"\r\n// },\r\n// {\r\n// \"label\": \"千阳县\",\r\n// \"value\": \"610328\"\r\n// },\r\n// {\r\n// \"label\": \"麟游县\",\r\n// \"value\": \"610329\"\r\n// },\r\n// {\r\n// \"label\": \"凤县\",\r\n// \"value\": \"610330\"\r\n// },\r\n// {\r\n// \"label\": \"太白县\",\r\n// \"value\": \"610331\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"秦都区\",\r\n// \"value\": \"610402\"\r\n// },\r\n// {\r\n// \"label\": \"杨陵区\",\r\n// \"value\": \"610403\"\r\n// },\r\n// {\r\n// \"label\": \"渭城区\",\r\n// \"value\": \"610404\"\r\n// },\r\n// {\r\n// \"label\": \"三原县\",\r\n// \"value\": \"610422\"\r\n// },\r\n// {\r\n// \"label\": \"泾阳县\",\r\n// \"value\": \"610423\"\r\n// },\r\n// {\r\n// \"label\": \"乾县\",\r\n// \"value\": \"610424\"\r\n// },\r\n// {\r\n// \"label\": \"礼泉县\",\r\n// \"value\": \"610425\"\r\n// },\r\n// {\r\n// \"label\": \"永寿县\",\r\n// \"value\": \"610426\"\r\n// },\r\n// {\r\n// \"label\": \"彬县\",\r\n// \"value\": \"610427\"\r\n// },\r\n// {\r\n// \"label\": \"长武县\",\r\n// \"value\": \"610428\"\r\n// },\r\n// {\r\n// \"label\": \"旬邑县\",\r\n// \"value\": \"610429\"\r\n// },\r\n// {\r\n// \"label\": \"淳化县\",\r\n// \"value\": \"610430\"\r\n// },\r\n// {\r\n// \"label\": \"武功县\",\r\n// \"value\": \"610431\"\r\n// },\r\n// {\r\n// \"label\": \"兴平市\",\r\n// \"value\": \"610481\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"临渭区\",\r\n// \"value\": \"610502\"\r\n// },\r\n// {\r\n// \"label\": \"华州区\",\r\n// \"value\": \"610503\"\r\n// },\r\n// {\r\n// \"label\": \"潼关县\",\r\n// \"value\": \"610522\"\r\n// },\r\n// {\r\n// \"label\": \"大荔县\",\r\n// \"value\": \"610523\"\r\n// },\r\n// {\r\n// \"label\": \"合阳县\",\r\n// \"value\": \"610524\"\r\n// },\r\n// {\r\n// \"label\": \"澄城县\",\r\n// \"value\": \"610525\"\r\n// },\r\n// {\r\n// \"label\": \"蒲城县\",\r\n// \"value\": \"610526\"\r\n// },\r\n// {\r\n// \"label\": \"白水县\",\r\n// \"value\": \"610527\"\r\n// },\r\n// {\r\n// \"label\": \"富平县\",\r\n// \"value\": \"610528\"\r\n// },\r\n// {\r\n// \"label\": \"韩城市\",\r\n// \"value\": \"610581\"\r\n// },\r\n// {\r\n// \"label\": \"华阴市\",\r\n// \"value\": \"610582\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"宝塔区\",\r\n// \"value\": \"610602\"\r\n// },\r\n// {\r\n// \"label\": \"安塞区\",\r\n// \"value\": \"610603\"\r\n// },\r\n// {\r\n// \"label\": \"延长县\",\r\n// \"value\": \"610621\"\r\n// },\r\n// {\r\n// \"label\": \"延川县\",\r\n// \"value\": \"610622\"\r\n// },\r\n// {\r\n// \"label\": \"子长县\",\r\n// \"value\": \"610623\"\r\n// },\r\n// {\r\n// \"label\": \"志丹县\",\r\n// \"value\": \"610625\"\r\n// },\r\n// {\r\n// \"label\": \"吴起县\",\r\n// \"value\": \"610626\"\r\n// },\r\n// {\r\n// \"label\": \"甘泉县\",\r\n// \"value\": \"610627\"\r\n// },\r\n// {\r\n// \"label\": \"富县\",\r\n// \"value\": \"610628\"\r\n// },\r\n// {\r\n// \"label\": \"洛川县\",\r\n// \"value\": \"610629\"\r\n// },\r\n// {\r\n// \"label\": \"宜川县\",\r\n// \"value\": \"610630\"\r\n// },\r\n// {\r\n// \"label\": \"黄龙县\",\r\n// \"value\": \"610631\"\r\n// },\r\n// {\r\n// \"label\": \"黄陵县\",\r\n// \"value\": \"610632\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"汉台区\",\r\n// \"value\": \"610702\"\r\n// },\r\n// {\r\n// \"label\": \"南郑区\",\r\n// \"value\": \"610703\"\r\n// },\r\n// {\r\n// \"label\": \"城固县\",\r\n// \"value\": \"610722\"\r\n// },\r\n// {\r\n// \"label\": \"洋县\",\r\n// \"value\": \"610723\"\r\n// },\r\n// {\r\n// \"label\": \"西乡县\",\r\n// \"value\": \"610724\"\r\n// },\r\n// {\r\n// \"label\": \"勉县\",\r\n// \"value\": \"610725\"\r\n// },\r\n// {\r\n// \"label\": \"宁强县\",\r\n// \"value\": \"610726\"\r\n// },\r\n// {\r\n// \"label\": \"略阳县\",\r\n// \"value\": \"610727\"\r\n// },\r\n// {\r\n// \"label\": \"镇巴县\",\r\n// \"value\": \"610728\"\r\n// },\r\n// {\r\n// \"label\": \"留坝县\",\r\n// \"value\": \"610729\"\r\n// },\r\n// {\r\n// \"label\": \"佛坪县\",\r\n// \"value\": \"610730\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"榆阳区\",\r\n// \"value\": \"610802\"\r\n// },\r\n// {\r\n// \"label\": \"横山区\",\r\n// \"value\": \"610803\"\r\n// },\r\n// {\r\n// \"label\": \"府谷县\",\r\n// \"value\": \"610822\"\r\n// },\r\n// {\r\n// \"label\": \"靖边县\",\r\n// \"value\": \"610824\"\r\n// },\r\n// {\r\n// \"label\": \"定边县\",\r\n// \"value\": \"610825\"\r\n// },\r\n// {\r\n// \"label\": \"绥德县\",\r\n// \"value\": \"610826\"\r\n// },\r\n// {\r\n// \"label\": \"米脂县\",\r\n// \"value\": \"610827\"\r\n// },\r\n// {\r\n// \"label\": \"佳县\",\r\n// \"value\": \"610828\"\r\n// },\r\n// {\r\n// \"label\": \"吴堡县\",\r\n// \"value\": \"610829\"\r\n// },\r\n// {\r\n// \"label\": \"清涧县\",\r\n// \"value\": \"610830\"\r\n// },\r\n// {\r\n// \"label\": \"子洲县\",\r\n// \"value\": \"610831\"\r\n// },\r\n// {\r\n// \"label\": \"神木市\",\r\n// \"value\": \"610881\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"汉滨区\",\r\n// \"value\": \"610902\"\r\n// },\r\n// {\r\n// \"label\": \"汉阴县\",\r\n// \"value\": \"610921\"\r\n// },\r\n// {\r\n// \"label\": \"石泉县\",\r\n// \"value\": \"610922\"\r\n// },\r\n// {\r\n// \"label\": \"宁陕县\",\r\n// \"value\": \"610923\"\r\n// },\r\n// {\r\n// \"label\": \"紫阳县\",\r\n// \"value\": \"610924\"\r\n// },\r\n// {\r\n// \"label\": \"岚皋县\",\r\n// \"value\": \"610925\"\r\n// },\r\n// {\r\n// \"label\": \"平利县\",\r\n// \"value\": \"610926\"\r\n// },\r\n// {\r\n// \"label\": \"镇坪县\",\r\n// \"value\": \"610927\"\r\n// },\r\n// {\r\n// \"label\": \"旬阳县\",\r\n// \"value\": \"610928\"\r\n// },\r\n// {\r\n// \"label\": \"白河县\",\r\n// \"value\": \"610929\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"商州区\",\r\n// \"value\": \"611002\"\r\n// },\r\n// {\r\n// \"label\": \"洛南县\",\r\n// \"value\": \"611021\"\r\n// },\r\n// {\r\n// \"label\": \"丹凤县\",\r\n// \"value\": \"611022\"\r\n// },\r\n// {\r\n// \"label\": \"商南县\",\r\n// \"value\": \"611023\"\r\n// },\r\n// {\r\n// \"label\": \"山阳县\",\r\n// \"value\": \"611024\"\r\n// },\r\n// {\r\n// \"label\": \"镇安县\",\r\n// \"value\": \"611025\"\r\n// },\r\n// {\r\n// \"label\": \"柞水县\",\r\n// \"value\": \"611026\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"城关区\",\r\n// \"value\": \"620102\"\r\n// },\r\n// {\r\n// \"label\": \"七里河区\",\r\n// \"value\": \"620103\"\r\n// },\r\n// {\r\n// \"label\": \"西固区\",\r\n// \"value\": \"620104\"\r\n// },\r\n// {\r\n// \"label\": \"安宁区\",\r\n// \"value\": \"620105\"\r\n// },\r\n// {\r\n// \"label\": \"红古区\",\r\n// \"value\": \"620111\"\r\n// },\r\n// {\r\n// \"label\": \"永登县\",\r\n// \"value\": \"620121\"\r\n// },\r\n// {\r\n// \"label\": \"皋兰县\",\r\n// \"value\": \"620122\"\r\n// },\r\n// {\r\n// \"label\": \"榆中县\",\r\n// \"value\": \"620123\"\r\n// },\r\n// {\r\n// \"label\": \"兰州新区\",\r\n// \"value\": \"620171\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"嘉峪关市\",\r\n// \"value\": \"620201\"\r\n// }],\r\n// [{\r\n// \"label\": \"金川区\",\r\n// \"value\": \"620302\"\r\n// },\r\n// {\r\n// \"label\": \"永昌县\",\r\n// \"value\": \"620321\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"白银区\",\r\n// \"value\": \"620402\"\r\n// },\r\n// {\r\n// \"label\": \"平川区\",\r\n// \"value\": \"620403\"\r\n// },\r\n// {\r\n// \"label\": \"靖远县\",\r\n// \"value\": \"620421\"\r\n// },\r\n// {\r\n// \"label\": \"会宁县\",\r\n// \"value\": \"620422\"\r\n// },\r\n// {\r\n// \"label\": \"景泰县\",\r\n// \"value\": \"620423\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"秦州区\",\r\n// \"value\": \"620502\"\r\n// },\r\n// {\r\n// \"label\": \"麦积区\",\r\n// \"value\": \"620503\"\r\n// },\r\n// {\r\n// \"label\": \"清水县\",\r\n// \"value\": \"620521\"\r\n// },\r\n// {\r\n// \"label\": \"秦安县\",\r\n// \"value\": \"620522\"\r\n// },\r\n// {\r\n// \"label\": \"甘谷县\",\r\n// \"value\": \"620523\"\r\n// },\r\n// {\r\n// \"label\": \"武山县\",\r\n// \"value\": \"620524\"\r\n// },\r\n// {\r\n// \"label\": \"张家川回族自治县\",\r\n// \"value\": \"620525\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"凉州区\",\r\n// \"value\": \"620602\"\r\n// },\r\n// {\r\n// \"label\": \"民勤县\",\r\n// \"value\": \"620621\"\r\n// },\r\n// {\r\n// \"label\": \"古浪县\",\r\n// \"value\": \"620622\"\r\n// },\r\n// {\r\n// \"label\": \"天祝藏族自治县\",\r\n// \"value\": \"620623\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"甘州区\",\r\n// \"value\": \"620702\"\r\n// },\r\n// {\r\n// \"label\": \"肃南裕固族自治县\",\r\n// \"value\": \"620721\"\r\n// },\r\n// {\r\n// \"label\": \"民乐县\",\r\n// \"value\": \"620722\"\r\n// },\r\n// {\r\n// \"label\": \"临泽县\",\r\n// \"value\": \"620723\"\r\n// },\r\n// {\r\n// \"label\": \"高台县\",\r\n// \"value\": \"620724\"\r\n// },\r\n// {\r\n// \"label\": \"山丹县\",\r\n// \"value\": \"620725\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"崆峒区\",\r\n// \"value\": \"620802\"\r\n// },\r\n// {\r\n// \"label\": \"泾川县\",\r\n// \"value\": \"620821\"\r\n// },\r\n// {\r\n// \"label\": \"灵台县\",\r\n// \"value\": \"620822\"\r\n// },\r\n// {\r\n// \"label\": \"崇信县\",\r\n// \"value\": \"620823\"\r\n// },\r\n// {\r\n// \"label\": \"华亭县\",\r\n// \"value\": \"620824\"\r\n// },\r\n// {\r\n// \"label\": \"庄浪县\",\r\n// \"value\": \"620825\"\r\n// },\r\n// {\r\n// \"label\": \"静宁县\",\r\n// \"value\": \"620826\"\r\n// },\r\n// {\r\n// \"label\": \"平凉工业园区\",\r\n// \"value\": \"620871\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"肃州区\",\r\n// \"value\": \"620902\"\r\n// },\r\n// {\r\n// \"label\": \"金塔县\",\r\n// \"value\": \"620921\"\r\n// },\r\n// {\r\n// \"label\": \"瓜州县\",\r\n// \"value\": \"620922\"\r\n// },\r\n// {\r\n// \"label\": \"肃北蒙古族自治县\",\r\n// \"value\": \"620923\"\r\n// },\r\n// {\r\n// \"label\": \"阿克塞哈萨克族自治县\",\r\n// \"value\": \"620924\"\r\n// },\r\n// {\r\n// \"label\": \"玉门市\",\r\n// \"value\": \"620981\"\r\n// },\r\n// {\r\n// \"label\": \"敦煌市\",\r\n// \"value\": \"620982\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"西峰区\",\r\n// \"value\": \"621002\"\r\n// },\r\n// {\r\n// \"label\": \"庆城县\",\r\n// \"value\": \"621021\"\r\n// },\r\n// {\r\n// \"label\": \"环县\",\r\n// \"value\": \"621022\"\r\n// },\r\n// {\r\n// \"label\": \"华池县\",\r\n// \"value\": \"621023\"\r\n// },\r\n// {\r\n// \"label\": \"合水县\",\r\n// \"value\": \"621024\"\r\n// },\r\n// {\r\n// \"label\": \"正宁县\",\r\n// \"value\": \"621025\"\r\n// },\r\n// {\r\n// \"label\": \"宁县\",\r\n// \"value\": \"621026\"\r\n// },\r\n// {\r\n// \"label\": \"镇原县\",\r\n// \"value\": \"621027\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"安定区\",\r\n// \"value\": \"621102\"\r\n// },\r\n// {\r\n// \"label\": \"通渭县\",\r\n// \"value\": \"621121\"\r\n// },\r\n// {\r\n// \"label\": \"陇西县\",\r\n// \"value\": \"621122\"\r\n// },\r\n// {\r\n// \"label\": \"渭源县\",\r\n// \"value\": \"621123\"\r\n// },\r\n// {\r\n// \"label\": \"临洮县\",\r\n// \"value\": \"621124\"\r\n// },\r\n// {\r\n// \"label\": \"漳县\",\r\n// \"value\": \"621125\"\r\n// },\r\n// {\r\n// \"label\": \"岷县\",\r\n// \"value\": \"621126\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"武都区\",\r\n// \"value\": \"621202\"\r\n// },\r\n// {\r\n// \"label\": \"成县\",\r\n// \"value\": \"621221\"\r\n// },\r\n// {\r\n// \"label\": \"文县\",\r\n// \"value\": \"621222\"\r\n// },\r\n// {\r\n// \"label\": \"宕昌县\",\r\n// \"value\": \"621223\"\r\n// },\r\n// {\r\n// \"label\": \"康县\",\r\n// \"value\": \"621224\"\r\n// },\r\n// {\r\n// \"label\": \"西和县\",\r\n// \"value\": \"621225\"\r\n// },\r\n// {\r\n// \"label\": \"礼县\",\r\n// \"value\": \"621226\"\r\n// },\r\n// {\r\n// \"label\": \"徽县\",\r\n// \"value\": \"621227\"\r\n// },\r\n// {\r\n// \"label\": \"两当县\",\r\n// \"value\": \"621228\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"临夏市\",\r\n// \"value\": \"622901\"\r\n// },\r\n// {\r\n// \"label\": \"临夏县\",\r\n// \"value\": \"622921\"\r\n// },\r\n// {\r\n// \"label\": \"康乐县\",\r\n// \"value\": \"622922\"\r\n// },\r\n// {\r\n// \"label\": \"永靖县\",\r\n// \"value\": \"622923\"\r\n// },\r\n// {\r\n// \"label\": \"广河县\",\r\n// \"value\": \"622924\"\r\n// },\r\n// {\r\n// \"label\": \"和政县\",\r\n// \"value\": \"622925\"\r\n// },\r\n// {\r\n// \"label\": \"东乡族自治县\",\r\n// \"value\": \"622926\"\r\n// },\r\n// {\r\n// \"label\": \"积石山保安族东乡族撒拉族自治县\",\r\n// \"value\": \"622927\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"合作市\",\r\n// \"value\": \"623001\"\r\n// },\r\n// {\r\n// \"label\": \"临潭县\",\r\n// \"value\": \"623021\"\r\n// },\r\n// {\r\n// \"label\": \"卓尼县\",\r\n// \"value\": \"623022\"\r\n// },\r\n// {\r\n// \"label\": \"舟曲县\",\r\n// \"value\": \"623023\"\r\n// },\r\n// {\r\n// \"label\": \"迭部县\",\r\n// \"value\": \"623024\"\r\n// },\r\n// {\r\n// \"label\": \"玛曲县\",\r\n// \"value\": \"623025\"\r\n// },\r\n// {\r\n// \"label\": \"碌曲县\",\r\n// \"value\": \"623026\"\r\n// },\r\n// {\r\n// \"label\": \"夏河县\",\r\n// \"value\": \"623027\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"城东区\",\r\n// \"value\": \"630102\"\r\n// },\r\n// {\r\n// \"label\": \"城中区\",\r\n// \"value\": \"630103\"\r\n// },\r\n// {\r\n// \"label\": \"城西区\",\r\n// \"value\": \"630104\"\r\n// },\r\n// {\r\n// \"label\": \"城北区\",\r\n// \"value\": \"630105\"\r\n// },\r\n// {\r\n// \"label\": \"大通回族土族自治县\",\r\n// \"value\": \"630121\"\r\n// },\r\n// {\r\n// \"label\": \"湟中县\",\r\n// \"value\": \"630122\"\r\n// },\r\n// {\r\n// \"label\": \"湟源县\",\r\n// \"value\": \"630123\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"乐都区\",\r\n// \"value\": \"630202\"\r\n// },\r\n// {\r\n// \"label\": \"平安区\",\r\n// \"value\": \"630203\"\r\n// },\r\n// {\r\n// \"label\": \"民和回族土族自治县\",\r\n// \"value\": \"630222\"\r\n// },\r\n// {\r\n// \"label\": \"互助土族自治县\",\r\n// \"value\": \"630223\"\r\n// },\r\n// {\r\n// \"label\": \"化隆回族自治县\",\r\n// \"value\": \"630224\"\r\n// },\r\n// {\r\n// \"label\": \"循化撒拉族自治县\",\r\n// \"value\": \"630225\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"门源回族自治县\",\r\n// \"value\": \"632221\"\r\n// },\r\n// {\r\n// \"label\": \"祁连县\",\r\n// \"value\": \"632222\"\r\n// },\r\n// {\r\n// \"label\": \"海晏县\",\r\n// \"value\": \"632223\"\r\n// },\r\n// {\r\n// \"label\": \"刚察县\",\r\n// \"value\": \"632224\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"同仁县\",\r\n// \"value\": \"632321\"\r\n// },\r\n// {\r\n// \"label\": \"尖扎县\",\r\n// \"value\": \"632322\"\r\n// },\r\n// {\r\n// \"label\": \"泽库县\",\r\n// \"value\": \"632323\"\r\n// },\r\n// {\r\n// \"label\": \"河南蒙古族自治县\",\r\n// \"value\": \"632324\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"共和县\",\r\n// \"value\": \"632521\"\r\n// },\r\n// {\r\n// \"label\": \"同德县\",\r\n// \"value\": \"632522\"\r\n// },\r\n// {\r\n// \"label\": \"贵德县\",\r\n// \"value\": \"632523\"\r\n// },\r\n// {\r\n// \"label\": \"兴海县\",\r\n// \"value\": \"632524\"\r\n// },\r\n// {\r\n// \"label\": \"贵南县\",\r\n// \"value\": \"632525\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"玛沁县\",\r\n// \"value\": \"632621\"\r\n// },\r\n// {\r\n// \"label\": \"班玛县\",\r\n// \"value\": \"632622\"\r\n// },\r\n// {\r\n// \"label\": \"甘德县\",\r\n// \"value\": \"632623\"\r\n// },\r\n// {\r\n// \"label\": \"达日县\",\r\n// \"value\": \"632624\"\r\n// },\r\n// {\r\n// \"label\": \"久治县\",\r\n// \"value\": \"632625\"\r\n// },\r\n// {\r\n// \"label\": \"玛多县\",\r\n// \"value\": \"632626\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"玉树市\",\r\n// \"value\": \"632701\"\r\n// },\r\n// {\r\n// \"label\": \"杂多县\",\r\n// \"value\": \"632722\"\r\n// },\r\n// {\r\n// \"label\": \"称多县\",\r\n// \"value\": \"632723\"\r\n// },\r\n// {\r\n// \"label\": \"治多县\",\r\n// \"value\": \"632724\"\r\n// },\r\n// {\r\n// \"label\": \"囊谦县\",\r\n// \"value\": \"632725\"\r\n// },\r\n// {\r\n// \"label\": \"曲麻莱县\",\r\n// \"value\": \"632726\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"格尔木市\",\r\n// \"value\": \"632801\"\r\n// },\r\n// {\r\n// \"label\": \"德令哈市\",\r\n// \"value\": \"632802\"\r\n// },\r\n// {\r\n// \"label\": \"乌兰县\",\r\n// \"value\": \"632821\"\r\n// },\r\n// {\r\n// \"label\": \"都兰县\",\r\n// \"value\": \"632822\"\r\n// },\r\n// {\r\n// \"label\": \"天峻县\",\r\n// \"value\": \"632823\"\r\n// },\r\n// {\r\n// \"label\": \"大柴旦行政委员会\",\r\n// \"value\": \"632857\"\r\n// },\r\n// {\r\n// \"label\": \"冷湖行政委员会\",\r\n// \"value\": \"632858\"\r\n// },\r\n// {\r\n// \"label\": \"茫崖行政委员会\",\r\n// \"value\": \"632859\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"兴庆区\",\r\n// \"value\": \"640104\"\r\n// },\r\n// {\r\n// \"label\": \"西夏区\",\r\n// \"value\": \"640105\"\r\n// },\r\n// {\r\n// \"label\": \"金凤区\",\r\n// \"value\": \"640106\"\r\n// },\r\n// {\r\n// \"label\": \"永宁县\",\r\n// \"value\": \"640121\"\r\n// },\r\n// {\r\n// \"label\": \"贺兰县\",\r\n// \"value\": \"640122\"\r\n// },\r\n// {\r\n// \"label\": \"灵武市\",\r\n// \"value\": \"640181\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"大武口区\",\r\n// \"value\": \"640202\"\r\n// },\r\n// {\r\n// \"label\": \"惠农区\",\r\n// \"value\": \"640205\"\r\n// },\r\n// {\r\n// \"label\": \"平罗县\",\r\n// \"value\": \"640221\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"利通区\",\r\n// \"value\": \"640302\"\r\n// },\r\n// {\r\n// \"label\": \"红寺堡区\",\r\n// \"value\": \"640303\"\r\n// },\r\n// {\r\n// \"label\": \"盐池县\",\r\n// \"value\": \"640323\"\r\n// },\r\n// {\r\n// \"label\": \"同心县\",\r\n// \"value\": \"640324\"\r\n// },\r\n// {\r\n// \"label\": \"青铜峡市\",\r\n// \"value\": \"640381\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"原州区\",\r\n// \"value\": \"640402\"\r\n// },\r\n// {\r\n// \"label\": \"西吉县\",\r\n// \"value\": \"640422\"\r\n// },\r\n// {\r\n// \"label\": \"隆德县\",\r\n// \"value\": \"640423\"\r\n// },\r\n// {\r\n// \"label\": \"泾源县\",\r\n// \"value\": \"640424\"\r\n// },\r\n// {\r\n// \"label\": \"彭阳县\",\r\n// \"value\": \"640425\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"沙坡头区\",\r\n// \"value\": \"640502\"\r\n// },\r\n// {\r\n// \"label\": \"中宁县\",\r\n// \"value\": \"640521\"\r\n// },\r\n// {\r\n// \"label\": \"海原县\",\r\n// \"value\": \"640522\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"天山区\",\r\n// \"value\": \"650102\"\r\n// },\r\n// {\r\n// \"label\": \"沙依巴克区\",\r\n// \"value\": \"650103\"\r\n// },\r\n// {\r\n// \"label\": \"新市区\",\r\n// \"value\": \"650104\"\r\n// },\r\n// {\r\n// \"label\": \"水磨沟区\",\r\n// \"value\": \"650105\"\r\n// },\r\n// {\r\n// \"label\": \"头屯河区\",\r\n// \"value\": \"650106\"\r\n// },\r\n// {\r\n// \"label\": \"达坂城区\",\r\n// \"value\": \"650107\"\r\n// },\r\n// {\r\n// \"label\": \"米东区\",\r\n// \"value\": \"650109\"\r\n// },\r\n// {\r\n// \"label\": \"乌鲁木齐县\",\r\n// \"value\": \"650121\"\r\n// },\r\n// {\r\n// \"label\": \"乌鲁木齐经济技术开发区\",\r\n// \"value\": \"650171\"\r\n// },\r\n// {\r\n// \"label\": \"乌鲁木齐高新技术产业开发区\",\r\n// \"value\": \"650172\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"独山子区\",\r\n// \"value\": \"650202\"\r\n// },\r\n// {\r\n// \"label\": \"克拉玛依区\",\r\n// \"value\": \"650203\"\r\n// },\r\n// {\r\n// \"label\": \"白碱滩区\",\r\n// \"value\": \"650204\"\r\n// },\r\n// {\r\n// \"label\": \"乌尔禾区\",\r\n// \"value\": \"650205\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"高昌区\",\r\n// \"value\": \"650402\"\r\n// },\r\n// {\r\n// \"label\": \"鄯善县\",\r\n// \"value\": \"650421\"\r\n// },\r\n// {\r\n// \"label\": \"托克逊县\",\r\n// \"value\": \"650422\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"伊州区\",\r\n// \"value\": \"650502\"\r\n// },\r\n// {\r\n// \"label\": \"巴里坤哈萨克自治县\",\r\n// \"value\": \"650521\"\r\n// },\r\n// {\r\n// \"label\": \"伊吾县\",\r\n// \"value\": \"650522\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"昌吉市\",\r\n// \"value\": \"652301\"\r\n// },\r\n// {\r\n// \"label\": \"阜康市\",\r\n// \"value\": \"652302\"\r\n// },\r\n// {\r\n// \"label\": \"呼图壁县\",\r\n// \"value\": \"652323\"\r\n// },\r\n// {\r\n// \"label\": \"玛纳斯县\",\r\n// \"value\": \"652324\"\r\n// },\r\n// {\r\n// \"label\": \"奇台县\",\r\n// \"value\": \"652325\"\r\n// },\r\n// {\r\n// \"label\": \"吉木萨尔县\",\r\n// \"value\": \"652327\"\r\n// },\r\n// {\r\n// \"label\": \"木垒哈萨克自治县\",\r\n// \"value\": \"652328\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"博乐市\",\r\n// \"value\": \"652701\"\r\n// },\r\n// {\r\n// \"label\": \"阿拉山口市\",\r\n// \"value\": \"652702\"\r\n// },\r\n// {\r\n// \"label\": \"精河县\",\r\n// \"value\": \"652722\"\r\n// },\r\n// {\r\n// \"label\": \"温泉县\",\r\n// \"value\": \"652723\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"库尔勒市\",\r\n// \"value\": \"652801\"\r\n// },\r\n// {\r\n// \"label\": \"轮台县\",\r\n// \"value\": \"652822\"\r\n// },\r\n// {\r\n// \"label\": \"尉犁县\",\r\n// \"value\": \"652823\"\r\n// },\r\n// {\r\n// \"label\": \"若羌县\",\r\n// \"value\": \"652824\"\r\n// },\r\n// {\r\n// \"label\": \"且末县\",\r\n// \"value\": \"652825\"\r\n// },\r\n// {\r\n// \"label\": \"焉耆回族自治县\",\r\n// \"value\": \"652826\"\r\n// },\r\n// {\r\n// \"label\": \"和静县\",\r\n// \"value\": \"652827\"\r\n// },\r\n// {\r\n// \"label\": \"和硕县\",\r\n// \"value\": \"652828\"\r\n// },\r\n// {\r\n// \"label\": \"博湖县\",\r\n// \"value\": \"652829\"\r\n// },\r\n// {\r\n// \"label\": \"库尔勒经济技术开发区\",\r\n// \"value\": \"652871\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"阿克苏市\",\r\n// \"value\": \"652901\"\r\n// },\r\n// {\r\n// \"label\": \"温宿县\",\r\n// \"value\": \"652922\"\r\n// },\r\n// {\r\n// \"label\": \"库车县\",\r\n// \"value\": \"652923\"\r\n// },\r\n// {\r\n// \"label\": \"沙雅县\",\r\n// \"value\": \"652924\"\r\n// },\r\n// {\r\n// \"label\": \"新和县\",\r\n// \"value\": \"652925\"\r\n// },\r\n// {\r\n// \"label\": \"拜城县\",\r\n// \"value\": \"652926\"\r\n// },\r\n// {\r\n// \"label\": \"乌什县\",\r\n// \"value\": \"652927\"\r\n// },\r\n// {\r\n// \"label\": \"阿瓦提县\",\r\n// \"value\": \"652928\"\r\n// },\r\n// {\r\n// \"label\": \"柯坪县\",\r\n// \"value\": \"652929\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"阿图什市\",\r\n// \"value\": \"653001\"\r\n// },\r\n// {\r\n// \"label\": \"阿克陶县\",\r\n// \"value\": \"653022\"\r\n// },\r\n// {\r\n// \"label\": \"阿合奇县\",\r\n// \"value\": \"653023\"\r\n// },\r\n// {\r\n// \"label\": \"乌恰县\",\r\n// \"value\": \"653024\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"喀什市\",\r\n// \"value\": \"653101\"\r\n// },\r\n// {\r\n// \"label\": \"疏附县\",\r\n// \"value\": \"653121\"\r\n// },\r\n// {\r\n// \"label\": \"疏勒县\",\r\n// \"value\": \"653122\"\r\n// },\r\n// {\r\n// \"label\": \"英吉沙县\",\r\n// \"value\": \"653123\"\r\n// },\r\n// {\r\n// \"label\": \"泽普县\",\r\n// \"value\": \"653124\"\r\n// },\r\n// {\r\n// \"label\": \"莎车县\",\r\n// \"value\": \"653125\"\r\n// },\r\n// {\r\n// \"label\": \"叶城县\",\r\n// \"value\": \"653126\"\r\n// },\r\n// {\r\n// \"label\": \"麦盖提县\",\r\n// \"value\": \"653127\"\r\n// },\r\n// {\r\n// \"label\": \"岳普湖县\",\r\n// \"value\": \"653128\"\r\n// },\r\n// {\r\n// \"label\": \"伽师县\",\r\n// \"value\": \"653129\"\r\n// },\r\n// {\r\n// \"label\": \"巴楚县\",\r\n// \"value\": \"653130\"\r\n// },\r\n// {\r\n// \"label\": \"塔什库尔干塔吉克自治县\",\r\n// \"value\": \"653131\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"和田市\",\r\n// \"value\": \"653201\"\r\n// },\r\n// {\r\n// \"label\": \"和田县\",\r\n// \"value\": \"653221\"\r\n// },\r\n// {\r\n// \"label\": \"墨玉县\",\r\n// \"value\": \"653222\"\r\n// },\r\n// {\r\n// \"label\": \"皮山县\",\r\n// \"value\": \"653223\"\r\n// },\r\n// {\r\n// \"label\": \"洛浦县\",\r\n// \"value\": \"653224\"\r\n// },\r\n// {\r\n// \"label\": \"策勒县\",\r\n// \"value\": \"653225\"\r\n// },\r\n// {\r\n// \"label\": \"于田县\",\r\n// \"value\": \"653226\"\r\n// },\r\n// {\r\n// \"label\": \"民丰县\",\r\n// \"value\": \"653227\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"伊宁市\",\r\n// \"value\": \"654002\"\r\n// },\r\n// {\r\n// \"label\": \"奎屯市\",\r\n// \"value\": \"654003\"\r\n// },\r\n// {\r\n// \"label\": \"霍尔果斯市\",\r\n// \"value\": \"654004\"\r\n// },\r\n// {\r\n// \"label\": \"伊宁县\",\r\n// \"value\": \"654021\"\r\n// },\r\n// {\r\n// \"label\": \"察布查尔锡伯自治县\",\r\n// \"value\": \"654022\"\r\n// },\r\n// {\r\n// \"label\": \"霍城县\",\r\n// \"value\": \"654023\"\r\n// },\r\n// {\r\n// \"label\": \"巩留县\",\r\n// \"value\": \"654024\"\r\n// },\r\n// {\r\n// \"label\": \"新源县\",\r\n// \"value\": \"654025\"\r\n// },\r\n// {\r\n// \"label\": \"昭苏县\",\r\n// \"value\": \"654026\"\r\n// },\r\n// {\r\n// \"label\": \"特克斯县\",\r\n// \"value\": \"654027\"\r\n// },\r\n// {\r\n// \"label\": \"尼勒克县\",\r\n// \"value\": \"654028\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"塔城市\",\r\n// \"value\": \"654201\"\r\n// },\r\n// {\r\n// \"label\": \"乌苏市\",\r\n// \"value\": \"654202\"\r\n// },\r\n// {\r\n// \"label\": \"额敏县\",\r\n// \"value\": \"654221\"\r\n// },\r\n// {\r\n// \"label\": \"沙湾县\",\r\n// \"value\": \"654223\"\r\n// },\r\n// {\r\n// \"label\": \"托里县\",\r\n// \"value\": \"654224\"\r\n// },\r\n// {\r\n// \"label\": \"裕民县\",\r\n// \"value\": \"654225\"\r\n// },\r\n// {\r\n// \"label\": \"和布克赛尔蒙古自治县\",\r\n// \"value\": \"654226\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"阿勒泰市\",\r\n// \"value\": \"654301\"\r\n// },\r\n// {\r\n// \"label\": \"布尔津县\",\r\n// \"value\": \"654321\"\r\n// },\r\n// {\r\n// \"label\": \"富蕴县\",\r\n// \"value\": \"654322\"\r\n// },\r\n// {\r\n// \"label\": \"福海县\",\r\n// \"value\": \"654323\"\r\n// },\r\n// {\r\n// \"label\": \"哈巴河县\",\r\n// \"value\": \"654324\"\r\n// },\r\n// {\r\n// \"label\": \"青河县\",\r\n// \"value\": \"654325\"\r\n// },\r\n// {\r\n// \"label\": \"吉木乃县\",\r\n// \"value\": \"654326\"\r\n// }\r\n// ],\r\n// [{\r\n// \"label\": \"石河子市\",\r\n// \"value\": \"659001\"\r\n// },\r\n// {\r\n// \"label\": \"阿拉尔市\",\r\n// \"value\": \"659002\"\r\n// },\r\n// {\r\n// \"label\": \"图木舒克市\",\r\n// \"value\": \"659003\"\r\n// },\r\n// {\r\n// \"label\": \"五家渠市\",\r\n// \"value\": \"659004\"\r\n// },\r\n// {\r\n// \"label\": \"铁门关市\",\r\n// \"value\": \"659006\"\r\n// }\r\n// ]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"台北\",\r\n// \"value\": \"660101\"\r\n// }],\r\n// [{\r\n// \"label\": \"高雄\",\r\n// \"value\": \"660201\"\r\n// }],\r\n// [{\r\n// \"label\": \"基隆\",\r\n// \"value\": \"660301\"\r\n// }],\r\n// [{\r\n// \"label\": \"台中\",\r\n// \"value\": \"660401\"\r\n// }],\r\n// [{\r\n// \"label\": \"台南\",\r\n// \"value\": \"660501\"\r\n// }],\r\n// [{\r\n// \"label\": \"新竹\",\r\n// \"value\": \"660601\"\r\n// }],\r\n// [{\r\n// \"label\": \"嘉义\",\r\n// \"value\": \"660701\"\r\n// }],\r\n// [{\r\n// \"label\": \"宜兰\",\r\n// \"value\": \"660801\"\r\n// }],\r\n// [{\r\n// \"label\": \"桃园\",\r\n// \"value\": \"660901\"\r\n// }],\r\n// [{\r\n// \"label\": \"苗栗\",\r\n// \"value\": \"661001\"\r\n// }],\r\n// [{\r\n// \"label\": \"彰化\",\r\n// \"value\": \"661101\"\r\n// }],\r\n// [{\r\n// \"label\": \"南投\",\r\n// \"value\": \"661201\"\r\n// }],\r\n// [{\r\n// \"label\": \"云林\",\r\n// \"value\": \"661301\"\r\n// }],\r\n// [{\r\n// \"label\": \"屏东\",\r\n// \"value\": \"661401\"\r\n// }],\r\n// [{\r\n// \"label\": \"台东\",\r\n// \"value\": \"661501\"\r\n// }],\r\n// [{\r\n// \"label\": \"花莲\",\r\n// \"value\": \"661601\"\r\n// }],\r\n// [{\r\n// \"label\": \"澎湖\",\r\n// \"value\": \"661701\"\r\n// }]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"香港岛\",\r\n// \"value\": \"670101\"\r\n// }],\r\n// [{\r\n// \"label\": \"九龙\",\r\n// \"value\": \"670201\"\r\n// }],\r\n// [{\r\n// \"label\": \"新界\",\r\n// \"value\": \"670301\"\r\n// }]\r\n// ],\r\n// [\r\n// [{\r\n// \"label\": \"澳门半岛\",\r\n// \"value\": \"680101\"\r\n// }],\r\n// [{\r\n// \"label\": \"氹仔岛\",\r\n// \"value\": \"680201\"\r\n// }],\r\n// [{\r\n// \"label\": \"路环岛\",\r\n// \"value\": \"680301\"\r\n// }],\r\n// [{\r\n// \"label\": \"路氹城\",\r\n// \"value\": \"680401\"\r\n// }]\r\n// ]\r\n ]\r\n export default areaData;\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode, /* vue-cli only */\n components, // fixed by xxxxxx auto components\n renderjs // fixed by xxxxxx renderjs\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // fixed by xxxxxx auto components\n if (components) {\n if (!options.components) {\n options.components = {}\n }\n var hasOwn = Object.prototype.hasOwnProperty\n for (var name in components) {\n if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {\n options.components[name] = components[name]\n }\n }\n }\n // fixed by xxxxxx renderjs\n if (renderjs) {\n if(typeof renderjs.beforeCreate === 'function'){\n\t\t\trenderjs.beforeCreate = [renderjs.beforeCreate]\n\t\t}\n (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {\n this[renderjs.__module] = this\n });\n (options.mixins || (options.mixins = [])).push(renderjs)\n }\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import http from './http'\r\n\r\n/**\r\n * 首页相关\r\n * */\r\n//轮播图\r\nexport const getbanner = (data) => { return http('', data, { token: false, loading: false }) }\r\n//导航列表\r\nexport const getitem = (data) => { return http('', data, { token: false, loading: false }) }\r\n//产品&业务描述\r\nexport const getcpdesc= (data) => { return http('', data, { token: false, loading: false }) }\r\n//分类\r\nexport const getcategory= (data) => { return http('', data, { token: false, loading: false }) }\r\n//产品列表\r\nexport const getgoodlist= (data) => { return http('', data, { token: false, loading: false }) }\r\n//登录接口\r\nexport const login= (data) => { return http('', data, { token: false, loading: false }) }\r\n//注册接口\r\nexport const register= (data) => { return http('', data, { token: false, loading: false }) }\r\n//修改地址接口\r\nexport const editaddress= (data) => { return http('', data, { token: false, loading: false }) }\r\n//收藏接口\r\nexport const addcollection= (data) => { return http('', data, { token: false, loading: false }) }\r\n//收藏列表\r\nexport const collectionlist= (data) => { return http('', data, { token: false, loading: false }) }\r\n//加入浏览记录\r\nexport const add_read_record= (data) => { return http('', data, { token: false, loading: false }) }\r\n//浏览历史记录列表\r\nexport const getread_recordlsit= (data) => { return http('', data, { token: false, loading: false }) }\r\n//清空浏览记录\r\nexport const cleanrecord= (data) => { return http('', data, { token: false, loading: false }) }\r\n//提交订单\r\nexport const postorder= (data) => { return http('', data, { token: false, loading: false }) }\r\n//支付\r\nexport const wxpay= (data) => { return http('', data, { token: false, loading: false }) }\r\n//订单列表\r\nexport const orderlist= (data) => { return http('', data, { token: false, loading: false }) }\r\n//订单列表2\r\nexport const orderlist2= (data) => { return http('', data, { token: false, loading: false }) }\r\n//订单详细\r\nexport const orderdetail= (data) => { return http('', data, { token: false, loading: false }) }\r\n//取消订单\r\nexport const cancelOrder= (data) => { return http('', data, { token: false, loading: false }) }\r\n//详细文章\r\nexport const detaildesc= (data) => { return http('', data, { token: false, loading: false }) }\r\n//申请退款\r\nexport const sqtuik= (data) => { return http('', data, { token: false, loading: false }) }\r\n//申请退货\r\nexport const sqtuih= (data) => { return http('', data, { token: false, loading: false }) }\r\n//小区列表\r\nexport const getarealist= (data) => { return http('', data, { token: false, loading: false }) }\r\n//申请入驻\r\nexport const sqruzhu= (data) => { return http('', data, { token: false, loading: false }) }\r\n//检查入驻状态\r\nexport const checkruzhu= (data) => { return http('', data, { token: false, loading: false }) }\r\n//产品详细\r\nexport const gooddetail= (data) => { return http('', data, { token: false, loading: false }) }\r\n//根据邀请码获取数据\r\nexport const checkyqcode= (data) => { return http('', data, { token: false, loading: false }) }\r\n//获取公告\r\nexport const notice= (data) => { return http('', data, { token: false, loading: false }) }\r\n//检查入驻按钮,审核作用\r\nexport const baseset= (data) => { return http('', data, { token: false, loading: false }) }\r\n//获取注册地址列表\r\nexport const getaddress= (data) => { return http('', data, { token: false, loading: false }) }\r\n//获取基础信息接口\r\nexport const baseinfo= (data) => { return http('', data, { token: false, loading: false }) }\r\n//获取用户信息\r\nexport const userinfo= (data) => { return http('', data, { token: false, loading: false }) }\r\n//充值支付\r\nexport const czwxpay= (data) => { return http('', data, { token: false, loading: false }) }\r\n//申请提现\r\nexport const sqtixian= (data) => { return http('', data, { token: false, loading: false }) }\r\n//提现记录\r\nexport const tixlist= (data) => { return http('', data, { token: false, loading: false }) }\r\n//发送验证码\r\nexport const sendcode= (data) => { return http('', data, { token: false, loading: false }) }\r\n//修改密码\r\nexport const updatepsw= (data) => { return http('', data, { token: false, loading: false }) }\r\n//积分管理\r\nexport const jifenlist= (data) => { return http('', data, { token: false, loading: false }) }\r\n//查看物流\r\nexport const kdiinfo= (data) => { return http('', data, { token: false, loading: false }) }\r\n//检查已加购的商品库存是否有效\r\nexport const checkkc= (data) => { return http('', data, { token: false, loading: false }) }\r\n//优惠券列表\r\nexport const couponlist= (data) => { return http('', data, { token: false, loading: false }) }\r\n//用户优惠券\r\nexport const mycouponlist= (data) => { return http('', data, { token: false, loading: false }) }\r\n//领取优惠券\r\nexport const getcoupon= (data) => { return http('', data, { token: false, loading: false }) }\r\n//自动选择优惠券\r\nexport const autochooseyhq= (data) => { return http('', data, { token: false, loading: false }) }\r\n//检查登录\r\nexport const checkrg= (data) => { return http('', data, { token: false, loading: false }) }\r\n//订单信息\r\nexport const orderinfo= (data) => { return http('', data, { token: false, loading: false }) }\r\n//提交验收数\r\nexport const postyans= (data) => { return http('', data, { token: false, loading: false }) }\r\n//获取截单时间\r\nexport const endtime= (data) => { return http('', data, { token: false, loading: false }) }\r\n//获取订单日期\r\nexport const getdhrq= (data) => { return http('', data, { token: false, loading: false }) }\r\n//提交订单页面选择日期之后检查价格\r\nexport const checkorder= (data) => { return http('', data, { token: false, loading: false }) }\r\n\r\n//导出订单excel表\r\nexport const daochu= (data) => { return http('', data, { token: false, loading: false }) }\r\n//客户加单页面提交订单\r\nexport const postorderjiad= (data) => { return http('', data, { token: false, loading: false }) }\r\n//客户加单页面提交订单\r\nexport const orderjiad= (data) => { return http('', data, { token: false, loading: false }) }\r\n/*\r\n//请求方法\r\nhttp(接口地址='', 请求参数={}, 额外配置={})\r\n//默认配置\r\n{\r\n\ttoken: true, //携带令牌\r\n\tloading: true, //显示加载\r\n\tmock: false, //模拟数据\r\n}\r\n//调用示例1\r\nasync () => {\r\n\tconst data = await this.$api.login({\r\n\t\tcode: this.code\r\n\t})\r\n\t//doSomething...\r\n}\r\n//调用示例2\r\nthis.$api.login({\r\n\tcode: this.code\r\n}).then(res => {\r\n\t//doSomething...\r\n}).catch(err => {\r\n\t//doSomething... \r\n})\r\n*/","/**\r\n * html2Json 改造来自: https://github.com/Jxck/html2json\r\n *\r\n *\r\n * author: Di (微信小程序开发工程师)\r\n * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)\r\n * 垂直微信小程序开发交流社区\r\n *\r\n * github地址: https://github.com/icindy/wxParse\r\n *\r\n * for: 微信小程序富文本解析\r\n * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184\r\n */\r\n\r\nimport wxDiscode from './wxDiscode';\r\nimport HTMLParser from './htmlparser';\r\n\r\nfunction makeMap(str) {\r\n const obj = {};\r\n const items = str.split(',');\r\n for (let i = 0; i < items.length; i += 1) obj[items[i]] = true;\r\n return obj;\r\n}\r\n\r\n// Block Elements - HTML 5\r\nconst block = makeMap('br,code,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video');\r\n\r\n// Inline Elements - HTML 5\r\nconst inline = makeMap('a,abbr,acronym,applet,b,basefont,bdo,big,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var');\r\n\r\n// Elements that you can, intentionally, leave open\r\n// (and which close themselves)\r\nconst closeSelf = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr');\r\n\r\nfunction removeDOCTYPE(html) {\r\n const isDocument = /<body.*>([^]*)<\\/body>/.test(html);\r\n return isDocument ? RegExp.$1 : html;\r\n}\r\n\r\nfunction trimHtml(html) {\r\n return html\r\n .replace(/<!--.*?-->/gi, '')\r\n .replace(/\\/\\*.*?\\*\\//gi, '')\r\n .replace(/[ ]+</gi, '<')\r\n .replace(/<script[^]*<\\/script>/gi, '')\r\n .replace(/<style[^]*<\\/style>/gi, '');\r\n}\r\n\r\nfunction getScreenInfo() {\r\n const screen = {};\r\n wx.getSystemInfo({\r\n success: (res) => {\r\n screen.width = res.windowWidth;\r\n screen.height = res.windowHeight;\r\n },\r\n });\r\n return screen;\r\n}\r\n\r\nfunction html2json(html, customHandler, imageProp, host) {\r\n // 处理字符串\r\n html = removeDOCTYPE(html);\r\n html = trimHtml(html);\r\n html = wxDiscode.strDiscode(html);\r\n // 生成node节点\r\n const bufArray = [];\r\n const results = {\r\n nodes: [],\r\n imageUrls: [],\r\n };\r\n\r\n\tconst screen = getScreenInfo();\r\n function Node(tag) {\r\n this.node = 'element';\r\n this.tag = tag;\r\n\t\t\r\n\t\tthis.$screen = screen;\r\n }\r\n\r\n HTMLParser(html, {\r\n start(tag, attrs, unary) {\r\n // node for this element\r\n const node = new Node(tag);\r\n\r\n if (bufArray.length !== 0) {\r\n const parent = bufArray[0];\r\n if (parent.nodes === undefined) {\r\n parent.nodes = [];\r\n }\r\n }\r\n\r\n if (block[tag]) {\r\n node.tagType = 'block';\r\n } else if (inline[tag]) {\r\n node.tagType = 'inline';\r\n } else if (closeSelf[tag]) {\r\n node.tagType = 'closeSelf';\r\n }\r\n\r\n node.attr = attrs.reduce((pre, attr) => {\r\n const { name } = attr;\r\n let { value } = attr;\r\n if (name === 'class') {\r\n node.classStr = value;\r\n }\r\n // has multi attibutes\r\n // make it array of attribute\r\n if (name === 'style') {\r\n node.styleStr = value;\r\n }\r\n if (value.match(/ /)) {\r\n value = value.split(' ');\r\n }\r\n\r\n // if attr already exists\r\n // merge it\r\n if (pre[name]) {\r\n if (Array.isArray(pre[name])) {\r\n // already array, push to last\r\n pre[name].push(value);\r\n } else {\r\n // single value, make it array\r\n pre[name] = [pre[name], value];\r\n }\r\n } else {\r\n // not exist, put it\r\n pre[name] = value;\r\n }\r\n\r\n return pre;\r\n }, {});\r\n\r\n // 优化样式相关属性\r\n if (node.classStr) {\r\n node.classStr += ` ${node.tag}`;\r\n } else {\r\n node.classStr = node.tag;\r\n }\r\n if (node.tagType === 'inline') {\r\n node.classStr += ' inline';\r\n }\r\n\r\n // 对img添加额外数据\r\n if (node.tag === 'img') {\r\n let imgUrl = node.attr.src;\r\n imgUrl = wxDiscode.urlToHttpUrl(imgUrl, imageProp.domain);\r\n Object.assign(node.attr, imageProp, {\r\n src: imgUrl || '',\r\n });\r\n if (imgUrl) {\r\n results.imageUrls.push(imgUrl);\r\n }\r\n }\r\n\r\n // 处理a标签属性\r\n if (node.tag === 'a') {\r\n node.attr.href = node.attr.href || '';\r\n }\r\n\r\n // 处理font标签样式属性\r\n if (node.tag === 'font') {\r\n const fontSize = [\r\n 'x-small',\r\n 'small',\r\n 'medium',\r\n 'large',\r\n 'x-large',\r\n 'xx-large',\r\n '-webkit-xxx-large',\r\n ];\r\n const styleAttrs = {\r\n color: 'color',\r\n face: 'font-family',\r\n size: 'font-size',\r\n };\r\n if (!node.styleStr) node.styleStr = '';\r\n Object.keys(styleAttrs).forEach((key) => {\r\n if (node.attr[key]) {\r\n const value = key === 'size' ? fontSize[node.attr[key] - 1] : node.attr[key];\r\n node.styleStr += `${styleAttrs[key]}: ${value};`;\r\n }\r\n });\r\n }\r\n\r\n // 临时记录source资源\r\n if (node.tag === 'source') {\r\n results.source = node.attr.src;\r\n }\r\n\r\n if (customHandler.start) {\r\n customHandler.start(node, results);\r\n }\r\n\r\n if (unary) {\r\n // if this tag doesn't have end tag\r\n // like <img src=\"hoge.png\"/>\r\n // add to parents\r\n const parent = bufArray[0] || results;\r\n if (parent.nodes === undefined) {\r\n parent.nodes = [];\r\n }\r\n parent.nodes.push(node);\r\n } else {\r\n bufArray.unshift(node);\r\n }\r\n },\r\n end(tag) {\r\n // merge into parent tag\r\n const node = bufArray.shift();\r\n if (node.tag !== tag) {\r\n console.error('invalid state: mismatch end tag');\r\n }\r\n\r\n // 当有缓存source资源时于于video补上src资源\r\n if (node.tag === 'video' && results.source) {\r\n node.attr.src = results.source;\r\n delete results.source;\r\n }\r\n\r\n if (customHandler.end) {\r\n customHandler.end(node, results);\r\n }\r\n\r\n if (bufArray.length === 0) {\r\n results.nodes.push(node);\r\n } else {\r\n const parent = bufArray[0];\r\n if (!parent.nodes) {\r\n parent.nodes = [];\r\n }\r\n parent.nodes.push(node);\r\n }\r\n },\r\n chars(text) {\r\n if (!text.trim()) return;\r\n\r\n const node = {\r\n node: 'text',\r\n text,\r\n };\r\n\r\n if (customHandler.chars) {\r\n customHandler.chars(node, results);\r\n }\r\n\r\n if (bufArray.length === 0) {\r\n results.nodes.push(node);\r\n } else {\r\n const parent = bufArray[0];\r\n if (parent.nodes === undefined) {\r\n parent.nodes = [];\r\n }\r\n parent.nodes.push(node);\r\n }\r\n },\r\n });\r\n\r\n return results;\r\n}\r\n\r\nexport default html2json;\r\n","// HTML 支持的数学符号\r\nfunction strNumDiscode(str) {\r\n str = str.replace(/&forall;/g, '∀');\r\n str = str.replace(/&part;/g, '∂');\r\n str = str.replace(/&exist;/g, '∃');\r\n str = str.replace(/&empty;/g, '∅');\r\n str = str.replace(/&nabla;/g, '∇');\r\n str = str.replace(/&isin;/g, '∈');\r\n str = str.replace(/&notin;/g, '∉');\r\n str = str.replace(/&ni;/g, '∋');\r\n str = str.replace(/&prod;/g, '∏');\r\n str = str.replace(/&sum;/g, '∑');\r\n str = str.replace(/&minus;/g, '−');\r\n str = str.replace(/&lowast;/g, '∗');\r\n str = str.replace(/&radic;/g, '√');\r\n str = str.replace(/&prop;/g, '∝');\r\n str = str.replace(/&infin;/g, '∞');\r\n str = str.replace(/&ang;/g, '∠');\r\n str = str.replace(/&and;/g, '∧');\r\n str = str.replace(/&or;/g, '∨');\r\n str = str.replace(/&cap;/g, '∩');\r\n str = str.replace(/&cup;/g, '∪');\r\n str = str.replace(/&int;/g, '∫');\r\n str = str.replace(/&there4;/g, '∴');\r\n str = str.replace(/&sim;/g, '∼');\r\n str = str.replace(/&cong;/g, '≅');\r\n str = str.replace(/&asymp;/g, '≈');\r\n str = str.replace(/&ne;/g, '≠');\r\n str = str.replace(/&le;/g, '≤');\r\n str = str.replace(/&ge;/g, '≥');\r\n str = str.replace(/&sub;/g, '⊂');\r\n str = str.replace(/&sup;/g, '⊃');\r\n str = str.replace(/&nsub;/g, '⊄');\r\n str = str.replace(/&sube;/g, '⊆');\r\n str = str.replace(/&supe;/g, '⊇');\r\n str = str.replace(/&oplus;/g, '⊕');\r\n str = str.replace(/&otimes;/g, '⊗');\r\n str = str.replace(/&perp;/g, '⊥');\r\n str = str.replace(/&sdot;/g, '⋅');\r\n return str;\r\n}\r\n\r\n// HTML 支持的希腊字母\r\nfunction strGreeceDiscode(str) {\r\n str = str.replace(/&Alpha;/g, 'Α');\r\n str = str.replace(/&Beta;/g, 'Β');\r\n str = str.replace(/&Gamma;/g, 'Γ');\r\n str = str.replace(/&Delta;/g, 'Δ');\r\n str = str.replace(/&Epsilon;/g, 'Ε');\r\n str = str.replace(/&Zeta;/g, 'Ζ');\r\n str = str.replace(/&Eta;/g, 'Η');\r\n str = str.replace(/&Theta;/g, 'Θ');\r\n str = str.replace(/&Iota;/g, 'Ι');\r\n str = str.replace(/&Kappa;/g, 'Κ');\r\n str = str.replace(/&Lambda;/g, 'Λ');\r\n str = str.replace(/&Mu;/g, 'Μ');\r\n str = str.replace(/&Nu;/g, 'Ν');\r\n str = str.replace(/&Xi;/g, 'Ν');\r\n str = str.replace(/&Omicron;/g, 'Ο');\r\n str = str.replace(/&Pi;/g, 'Π');\r\n str = str.replace(/&Rho;/g, 'Ρ');\r\n str = str.replace(/&Sigma;/g, 'Σ');\r\n str = str.replace(/&Tau;/g, 'Τ');\r\n str = str.replace(/&Upsilon;/g, 'Υ');\r\n str = str.replace(/&Phi;/g, 'Φ');\r\n str = str.replace(/&Chi;/g, 'Χ');\r\n str = str.replace(/&Psi;/g, 'Ψ');\r\n str = str.replace(/&Omega;/g, 'Ω');\r\n\r\n str = str.replace(/&alpha;/g, 'α');\r\n str = str.replace(/&beta;/g, 'β');\r\n str = str.replace(/&gamma;/g, 'γ');\r\n str = str.replace(/&delta;/g, 'δ');\r\n str = str.replace(/&epsilon;/g, 'ε');\r\n str = str.replace(/&zeta;/g, 'ζ');\r\n str = str.replace(/&eta;/g, 'η');\r\n str = str.replace(/&theta;/g, 'θ');\r\n str = str.replace(/&iota;/g, 'ι');\r\n str = str.replace(/&kappa;/g, 'κ');\r\n str = str.replace(/&lambda;/g, 'λ');\r\n str = str.replace(/&mu;/g, 'μ');\r\n str = str.replace(/&nu;/g, 'ν');\r\n str = str.replace(/&xi;/g, 'ξ');\r\n str = str.replace(/&omicron;/g, 'ο');\r\n str = str.replace(/&pi;/g, 'π');\r\n str = str.replace(/&rho;/g, 'ρ');\r\n str = str.replace(/&sigmaf;/g, 'ς');\r\n str = str.replace(/&sigma;/g, 'σ');\r\n str = str.replace(/&tau;/g, 'τ');\r\n str = str.replace(/&upsilon;/g, 'υ');\r\n str = str.replace(/&phi;/g, 'φ');\r\n str = str.replace(/&chi;/g, 'χ');\r\n str = str.replace(/&psi;/g, 'ψ');\r\n str = str.replace(/&omega;/g, 'ω');\r\n str = str.replace(/&thetasym;/g, 'ϑ');\r\n str = str.replace(/&upsih;/g, 'ϒ');\r\n str = str.replace(/&piv;/g, 'ϖ');\r\n str = str.replace(/&middot;/g, '·');\r\n return str;\r\n}\r\n\r\nfunction strcharacterDiscode(str) {\r\n // 加入常用解析\r\n str = str.replace(/&nbsp;/g, ' ');\r\n str = str.replace(/&ensp;/g, ' ');\r\n str = str.replace(/&emsp;/g, ' ');\r\n str = str.replace(/&quot;/g, \"'\");\r\n str = str.replace(/&amp;/g, '&');\r\n str = str.replace(/&lt;/g, '<');\r\n str = str.replace(/&gt;/g, '>');\r\n str = str.replace(/&#8226;/g, '•');\r\n\r\n return str;\r\n}\r\n\r\n// HTML 支持的其他实体\r\nfunction strOtherDiscode(str) {\r\n str = str.replace(/&OElig;/g, 'Œ');\r\n str = str.replace(/&oelig;/g, 'œ');\r\n str = str.replace(/&Scaron;/g, 'Š');\r\n str = str.replace(/&scaron;/g, 'š');\r\n str = str.replace(/&Yuml;/g, 'Ÿ');\r\n str = str.replace(/&fnof;/g, 'ƒ');\r\n str = str.replace(/&circ;/g, 'ˆ');\r\n str = str.replace(/&tilde;/g, '˜');\r\n str = str.replace(/&ensp;/g, '');\r\n str = str.replace(/&emsp;/g, '');\r\n str = str.replace(/&thinsp;/g, '');\r\n str = str.replace(/&zwnj;/g, '');\r\n str = str.replace(/&zwj;/g, '');\r\n str = str.replace(/&lrm;/g, '');\r\n str = str.replace(/&rlm;/g, '');\r\n str = str.replace(/&ndash;/g, '–');\r\n str = str.replace(/&mdash;/g, '—');\r\n str = str.replace(/&lsquo;/g, '‘');\r\n str = str.replace(/&rsquo;/g, '’');\r\n str = str.replace(/&sbquo;/g, '‚');\r\n str = str.replace(/&ldquo;/g, '“');\r\n str = str.replace(/&rdquo;/g, '”');\r\n str = str.replace(/&bdquo;/g, '„');\r\n str = str.replace(/&dagger;/g, '†');\r\n str = str.replace(/&Dagger;/g, '‡');\r\n str = str.replace(/&bull;/g, '•');\r\n str = str.replace(/&hellip;/g, '…');\r\n str = str.replace(/&permil;/g, '‰');\r\n str = str.replace(/&prime;/g, '′');\r\n str = str.replace(/&Prime;/g, '″');\r\n str = str.replace(/&lsaquo;/g, '‹');\r\n str = str.replace(/&rsaquo;/g, '›');\r\n str = str.replace(/&oline;/g, '‾');\r\n str = str.replace(/&euro;/g, '€');\r\n str = str.replace(/&trade;/g, '™');\r\n\r\n str = str.replace(/&larr;/g, '←');\r\n str = str.replace(/&uarr;/g, '↑');\r\n str = str.replace(/&rarr;/g, '→');\r\n str = str.replace(/&darr;/g, '↓');\r\n str = str.replace(/&harr;/g, '↔');\r\n str = str.replace(/&crarr;/g, '↵');\r\n str = str.replace(/&lceil;/g, '⌈');\r\n str = str.replace(/&rceil;/g, '⌉');\r\n\r\n str = str.replace(/&lfloor;/g, '⌊');\r\n str = str.replace(/&rfloor;/g, '⌋');\r\n str = str.replace(/&loz;/g, '◊');\r\n str = str.replace(/&spades;/g, '♠');\r\n str = str.replace(/&clubs;/g, '♣');\r\n str = str.replace(/&hearts;/g, '♥');\r\n\r\n str = str.replace(/&diams;/g, '♦');\r\n str = str.replace(/&#39;/g, \"'\");\r\n return str;\r\n}\r\n\r\nfunction strDiscode(str) {\r\n str = strNumDiscode(str);\r\n str = strGreeceDiscode(str);\r\n str = strcharacterDiscode(str);\r\n str = strOtherDiscode(str);\r\n return str;\r\n}\r\n\r\nfunction urlToHttpUrl(url, domain) {\r\n if (/^\\/\\//.test(url)) {\r\n return `https:${url}`;\r\n } else if (/^\\//.test(url)) {\r\n return `https://${domain}${url}`;\r\n }\r\n return url;\r\n}\r\n\r\nexport default {\r\n strDiscode,\r\n urlToHttpUrl,\r\n};\r\n","/**\r\n *\r\n * htmlParser改造自: https://github.com/blowsie/Pure-JavaScript-HTML5-Parser\r\n *\r\n * author: Di (微信小程序开发工程师)\r\n * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)\r\n * 垂直微信小程序开发交流社区\r\n *\r\n * github地址: https://github.com/icindy/wxParse\r\n *\r\n * for: 微信小程序富文本解析\r\n * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184\r\n */\r\n// Regular Expressions for parsing tags and attributes\r\n\r\nconst startTag = /^<([-A-Za-z0-9_]+)((?:\\s+[a-zA-Z0-9_:][-a-zA-Z0-9_:.]*(?:\\s*=\\s*(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>\\s]+))?)*)\\s*(\\/?)>/;\r\nconst endTag = /^<\\/([-A-Za-z0-9_]+)[^>]*>/;\r\nconst attr = /([a-zA-Z0-9_:][-a-zA-Z0-9_:.]*)(?:\\s*=\\s*(?:(?:\"((?:\\\\.|[^\"])*)\")|(?:'((?:\\\\.|[^'])*)')|([^>\\s]+)))?/g;\r\n\r\nfunction makeMap(str) {\r\n const obj = {};\r\n const items = str.split(',');\r\n for (let i = 0; i < items.length; i += 1) obj[items[i]] = true;\r\n return obj;\r\n}\r\n\r\n// Empty Elements - HTML 5\r\nconst empty = makeMap('area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr');\r\n\r\n// Block Elements - HTML 5\r\nconst block = makeMap('address,code,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video');\r\n\r\n// Inline Elements - HTML 5\r\nconst inline = makeMap('a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var');\r\n\r\n// Elements that you can, intentionally, leave open\r\n// (and which close themselves)\r\nconst closeSelf = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr');\r\n\r\n// Attributes that have their values filled in disabled=\"disabled\"\r\nconst fillAttrs = makeMap('checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected');\r\n\r\nfunction HTMLParser(html, handler) {\r\n let index;\r\n let chars;\r\n let match;\r\n let last = html;\r\n const stack = [];\r\n\r\n stack.last = () => stack[stack.length - 1];\r\n\r\n function parseEndTag(tag, tagName) {\r\n // If no tag name is provided, clean shop\r\n let pos;\r\n if (!tagName) {\r\n pos = 0;\r\n } else {\r\n // Find the closest opened tag of the same type\r\n tagName = tagName.toLowerCase();\r\n for (pos = stack.length - 1; pos >= 0; pos -= 1) {\r\n if (stack[pos] === tagName) break;\r\n }\r\n }\r\n if (pos >= 0) {\r\n // Close all the open elements, up the stack\r\n for (let i = stack.length - 1; i >= pos; i -= 1) {\r\n if (handler.end) handler.end(stack[i]);\r\n }\r\n\r\n // Remove the open elements from the stack\r\n stack.length = pos;\r\n }\r\n }\r\n\r\n function parseStartTag(tag, tagName, rest, unary) {\r\n tagName = tagName.toLowerCase();\r\n\r\n if (block[tagName]) {\r\n while (stack.last() && inline[stack.last()]) {\r\n parseEndTag('', stack.last());\r\n }\r\n }\r\n\r\n if (closeSelf[tagName] && stack.last() === tagName) {\r\n parseEndTag('', tagName);\r\n }\r\n\r\n unary = empty[tagName] || !!unary;\r\n\r\n if (!unary) stack.push(tagName);\r\n\r\n if (handler.start) {\r\n const attrs = [];\r\n\r\n rest.replace(attr, function genAttr(matches, name) {\r\n const value = arguments[2] || arguments[3] || arguments[4] || (fillAttrs[name] ? name : '');\r\n\r\n attrs.push({\r\n name,\r\n value,\r\n escaped: value.replace(/(^|[^\\\\])\"/g, '$1\\\\\"'), // \"\r\n });\r\n });\r\n\r\n if (handler.start) {\r\n handler.start(tagName, attrs, unary);\r\n }\r\n }\r\n }\r\n\r\n while (html) {\r\n chars = true;\r\n\r\n if (html.indexOf('</') === 0) {\r\n match = html.match(endTag);\r\n\r\n if (match) {\r\n html = html.substring(match[0].length);\r\n match[0].replace(endTag, parseEndTag);\r\n chars = false;\r\n }\r\n\r\n // start tag\r\n } else if (html.indexOf('<') === 0) {\r\n match = html.match(startTag);\r\n\r\n if (match) {\r\n html = html.substring(match[0].length);\r\n match[0].replace(startTag, parseStartTag);\r\n chars = false;\r\n }\r\n }\r\n\r\n if (chars) {\r\n index = html.indexOf('<');\r\n let text = '';\r\n while (index === 0) {\r\n text += '<';\r\n html = html.substring(1);\r\n index = html.indexOf('<');\r\n }\r\n text += index < 0 ? html : html.substring(0, index);\r\n html = index < 0 ? '' : html.substring(index);\r\n\r\n if (handler.chars) handler.chars(text);\r\n }\r\n\r\n if (html === last) throw new Error(`Parse Error: ${html}`);\r\n last = html;\r\n }\r\n\r\n // Clean up any remaining tags\r\n parseEndTag();\r\n}\r\n\r\nexport default HTMLParser;\r\n","import $config from '../config'\r\nimport $util from './util'\r\n\r\nexport default function http(url, param = {}, extraConfig) {\r\n\t//默认配置\r\n\tlet defaultConfig = {\r\n\t\ttoken: true, //携带令牌\r\n\t\tloading: true, //显示加载\r\n\t\tmock: false, //模拟数据\r\n\t}\r\n\t//请求配置\r\n\tlet httpConfig = { ...defaultConfig, ...extraConfig }\r\n\thttpConfig.mock ? httpConfig.config = $config.mock : httpConfig.config = $config[process.env.NODE_ENV]\r\n\t//携带令牌\r\n\tlet token = uni.getStorageSync('token')\r\n\tif (token) {\r\n\t\tparam.token = token\r\n\t} else if (httpConfig.token) {\r\n\t\tuni.showModal({\r\n\t\t\ttitle: '提示',\r\n\t\t\tcontent: '登录后才能操作哦~',\r\n\t\t\tshowCancel: true,\r\n\t\t\tconfirmText: '去登录',\r\n\t\t\tsuccess: (e) => {\r\n\t\t\t\tif (e.confirm) this.$util.toast('点击登录')\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn Promise.reject('未登录')\r\n\t}\r\n\t//显示加载\r\n\thttpConfig.loading && $util.loading('努力加载中')\r\n\t//进行请求\r\n\tlet baseUrl = httpConfig.config.baseUrl\r\n\tlet header = { \r\n\t\t'Content-Type': 'application/x-www-form-urlencoded',\r\n\t\t'Cookie': uni.getStorageSync('cookie') ? `foxphp_ok=${uni.getStorageSync('cookie')}` : '',\r\n\t}\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tuni.request({\r\n\t\t\turl: `${baseUrl}/${url}`,\r\n\t\t\tdata: param,\r\n\t\t\theader: header,\r\n\t\t\tmethod: 'POST',\r\n\t\t\t// method: Object.keys(param).length ? 'POST' : 'GET',\r\n\t\t\tsuccess: (res) => {\r\n\t\t\t\tuni.setStorageSync('cookie', res.data.foxphp_ok)\r\n\t\t\t\thttpConfig.loading && uni.hideLoading()\r\n\t\t\t\tswitch (res.statusCode) {\r\n\t\t\t\t\tcase 200:\r\n\t\t\t\t\t\tif (res.data.code == 1) {\r\n\t\t\t\t\t\t\t//正常请求\r\n\t\t\t\t\t\t\tresolve(res.data)\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t//其他状况\r\n\t\t\t\t\t\t\tif(!res.data.msg=='notask'){\r\n\t\t\t\t\t\t\t\tres.data.msg && $util.toast(res.data.msg)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tresolve(res.data)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\tcase 403:\r\n\t\t\t\t\t\t$util.toast('服务器拒绝')\r\n\t\t\t\t\t\treject(JSON.stringify(res))\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\tcase 404:\r\n\t\t\t\t\t\t$util.toast('资源不存在')\r\n\t\t\t\t\t\treject(JSON.stringify(res))\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\tcase 500:\r\n\t\t\t\t\t\t$util.toast('服务器异常')\r\n\t\t\t\t\t\treject(JSON.stringify(res))\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t$util.toast('未知错误码')\r\n\t\t\t\t\t\treject(JSON.stringify(res))\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tfail: (err) => {\r\n\t\t\t\thttpConfig.loading && uni.hideLoading()\r\n\t\t\t\t$util.toast('网络异常')\r\n\t\t\t\treject(JSON.stringify(err))\r\n\t\t\t}\r\n\t\t})\r\n\t})\r\n}\r\n","const CONFIG = {\r\n\t//模拟环境配置\r\n\tmock: {\r\n\t\t//baseUrl: 'http://rest.apizza.net/mock/274c6f1a7f44c571792b6e269c07541d',\r\n\t},\r\n\t//开发环境配置\r\n\tdevelopment: {\r\n\t\t// baseUrl: 'http://localhost:8888/a9zhongl0810mini/miniapi.php', \r\n\t\t//baseUrl: 'https://zysoft2.dns-dns.cn/mini/a9zhongl0810mini/miniapi2.php', \r\n\t\tbaseUrl: 'https://m.chinause.cn/mini/a9zhongl0810mini/miniapi.php', \r\n\t\t\r\n\t},\r\n\t//生产环境配置\r\n\tproduction: {\r\n\t\tbaseUrl: 'https://m.chinause.cn/mini/a9zhongl0810mini/miniapi.php', \r\n\t}\r\n}\r\n//运行编译是开发环境,发行打包是生产环境\r\nexport default CONFIG\r\n/*\r\n{\r\n\tbaseUrl: 接口地址\r\n}\r\n*/","//防抖 延迟执行\r\nexport function debounce(fn, delay = 500) {\r\n\tlet timer\r\n\treturn function() {\r\n\t\tlet args = arguments\r\n\t\tif (timer) clearTimeout(timer)\r\n\t\ttimer = setTimeout(() => {\r\n\t\t\ttimer = null\r\n\t\t\tfn.apply(this, args)\r\n\t\t}, delay)\r\n\t}\r\n}\r\n//节流 首次执行\r\nexport function throttle(fn, delay = 1000) {\r\n\tlet last = 0\r\n\treturn function() {\r\n\t\tlet now = new Date()\r\n\t\tif (now - last > delay) {\r\n\t\t\tfn.apply(this, arguments)\r\n\t\t\tlast = now\r\n\t\t}\r\n\t}\r\n}\r\n//提示\r\nconst toast = (msg, mask = true, icon = 'none', duration = 1500) => {\r\n\tuni.showToast({\r\n\t\ttitle: String(msg),\r\n\t\ticon: icon,\r\n\t\tmask: mask,\r\n\t\tduration: duration,\r\n\t})\r\n}\r\n//加载\r\nconst loading = (msg = '努力加载中', mask = true) => {\r\n\tuni.showLoading({\r\n\t\ttitle: String(msg),\r\n\t\tmask: mask,\r\n\t})\r\n}\r\n//json参数转url参数\r\nconst jsonToUrl = (path, param) => {\r\n\tlet url = path\r\n\tlet arr = []\r\n\tif (param) arr = Object.keys(param)\r\n\tif (arr.length && arr.length != 0) {\r\n\t\tlet str = arr.map(key => `${key}=${decodeURIComponent(param[key])}`).join('&')\r\n\t\turl = `${path}${path ? '?' : ''}${str}`\r\n\t}\r\n\treturn url\r\n}\r\n//url参数转json参数\r\nconst urlToJson = (url) => {\r\n\tlet path = url\r\n\tlet param = {}\r\n\tif (url.indexOf('?') != -1) {\r\n\t\tpath = url.substr(0, url.indexOf('?'))\r\n\t\tlet arr = url.split(\"?\")[1].split(\"&\") \r\n\t\tarr.forEach(i=>{\r\n\t\t\tif (i.split(\"=\")[1] && i.split(\"=\")[1] != 'undefined') param[i.split(\"=\")[0]] = i.split(\"=\")[1]\r\n\t\t})\r\n\t} \r\n\treturn { path, param }\r\n}\r\n//url获取指定参数\r\nconst getQuery = (key) => {\r\n\t let query = window.location.search.substring(1);\r\n\t let vars = query.split(\"&\");\r\n\t for (let i=0;i<vars.length;i++) {\r\n\t\tlet pair = vars[i].split(\"=\");\r\n\t\tif (pair[0] == key) {return pair[1];}\r\n\t }\r\n\t return(false)\r\n}\r\n//加法 \r\nNumber.prototype.add = function(arg) { \r\n return (Math.round(this * 100) + Math.round(arg * 100)) / 100\r\n} \r\n//减法 \r\nNumber.prototype.sub = function(arg) {\r\n\targ = -arg\r\n\treturn (Math.round(this * 100) + Math.round(arg * 100)) / 100\r\n} \r\n//乘法 \r\nNumber.prototype.mul = function(arg) { \r\n\treturn (Math.round(this * 100) * Math.round(arg * 100)) / 10000\r\n} \r\n//除法 \r\nNumber.prototype.div = function(arg) { \r\n\tlet d1, d2, n1, n2\r\n\tn1 = Number(this.toString().replace(\".\", \"\"))\r\n\tn2 = Number(arg.toString().replace(\".\", \"\"))\r\n\ttry {d1 = this.toString().split(\".\")[1].length;} catch (e) {d1 = 0;}\r\n\ttry {d2 = arg.toString().split(\".\")[1].length;} catch (e) {d2 = 0;}\r\n\treturn toFixed((n1 / n2) * Math.pow(10, d2 - d1), 2)\r\n} \r\n//四舍五入保留小数\r\nfunction toFixed(arg, n) {\r\n\tif (n == 0) {\r\n\t\treturn Math.round(arg)\r\n\t}\r\n\ttry {\r\n\t\tvar d, carryD, i, \r\n\t\tds = arg.toString().split('.'),\r\n\t\tlen = ds[1].length,\r\n\t\tb0 = '', k = 0\r\n\t\tif (len > n) {\r\n\t\t\twhile(k < n && ds[1].substring(0, ++k) == '0') {\r\n\t\t\t\tb0 += '0'\r\n\t\t\t}\r\n\t\t\td = Number(ds[1].substring(0, n))\r\n\t\t\tcarryD = Math.round(Number('0.' + ds[1].substring(n, len)))\r\n\t\t\tlen = (d + carryD).toString().length\r\n\t\t\tif (len > n) {\r\n\t\t\t\treturn Number(ds[0]) + 1\r\n\t\t\t} else if (len == n) {\r\n\t\t\t\treturn Number(ds[0] + '.' + (d + carryD))\r\n\t\t\t}\r\n\t\t\treturn Number(ds[0] + '.' + b0 + (d + carryD))\r\n\t\t}\r\n\t} catch (e) {}\r\n\treturn arg\r\n}\r\n//输出\r\nexport default {\r\n\ttoast,\r\n\tloading,\r\n\tjsonToUrl,\r\n\turlToJson,\r\n\tgetQuery,\r\n}\r\n\r\n","export default {\r\n\t\"pulldown\": \"\\ue588\",\r\n\t\"refreshempty\": \"\\ue461\",\r\n\t\"back\": \"\\ue471\",\r\n\t\"forward\": \"\\ue470\",\r\n\t\"more\": \"\\ue507\",\r\n\t\"more-filled\": \"\\ue537\",\r\n\t\"scan\": \"\\ue612\",\r\n\t\"qq\": \"\\ue264\",\r\n\t\"weibo\": \"\\ue260\",\r\n\t\"weixin\": \"\\ue261\",\r\n\t\"pengyouquan\": \"\\ue262\",\r\n\t\"loop\": \"\\ue565\",\r\n\t\"refresh\": \"\\ue407\",\r\n\t\"refresh-filled\": \"\\ue437\",\r\n\t\"arrowthindown\": \"\\ue585\",\r\n\t\"arrowthinleft\": \"\\ue586\",\r\n\t\"arrowthinright\": \"\\ue587\",\r\n\t\"arrowthinup\": \"\\ue584\",\r\n\t\"undo-filled\": \"\\ue7d6\",\r\n\t\"undo\": \"\\ue406\",\r\n\t\"redo\": \"\\ue405\",\r\n\t\"redo-filled\": \"\\ue7d9\",\r\n\t\"bars\": \"\\ue563\",\r\n\t\"chatboxes\": \"\\ue203\",\r\n\t\"camera\": \"\\ue301\",\r\n\t\"chatboxes-filled\": \"\\ue233\",\r\n\t\"camera-filled\": \"\\ue7ef\",\r\n\t\"cart-filled\": \"\\ue7f4\",\r\n\t\"cart\": \"\\ue7f5\",\r\n\t\"checkbox-filled\": \"\\ue442\",\r\n\t\"checkbox\": \"\\ue7fa\",\r\n\t\"arrowleft\": \"\\ue582\",\r\n\t\"arrowdown\": \"\\ue581\",\r\n\t\"arrowright\": \"\\ue583\",\r\n\t\"smallcircle-filled\": \"\\ue801\",\r\n\t\"arrowup\": \"\\ue580\",\r\n\t\"circle\": \"\\ue411\",\r\n\t\"eye-filled\": \"\\ue568\",\r\n\t\"eye-slash-filled\": \"\\ue822\",\r\n\t\"eye-slash\": \"\\ue823\",\r\n\t\"eye\": \"\\ue824\",\r\n\t\"flag-filled\": \"\\ue825\",\r\n\t\"flag\": \"\\ue508\",\r\n\t\"gear-filled\": \"\\ue532\",\r\n\t\"reload\": \"\\ue462\",\r\n\t\"gear\": \"\\ue502\",\r\n\t\"hand-thumbsdown-filled\": \"\\ue83b\",\r\n\t\"hand-thumbsdown\": \"\\ue83c\",\r\n\t\"hand-thumbsup-filled\": \"\\ue83d\",\r\n\t\"heart-filled\": \"\\ue83e\",\r\n\t\"hand-thumbsup\": \"\\ue83f\",\r\n\t\"heart\": \"\\ue840\",\r\n\t\"home\": \"\\ue500\",\r\n\t\"info\": \"\\ue504\",\r\n\t\"home-filled\": \"\\ue530\",\r\n\t\"info-filled\": \"\\ue534\",\r\n\t\"circle-filled\": \"\\ue441\",\r\n\t\"chat-filled\": \"\\ue847\",\r\n\t\"chat\": \"\\ue263\",\r\n\t\"mail-open-filled\": \"\\ue84d\",\r\n\t\"email-filled\": \"\\ue231\",\r\n\t\"mail-open\": \"\\ue84e\",\r\n\t\"email\": \"\\ue201\",\r\n\t\"checkmarkempty\": \"\\ue472\",\r\n\t\"list\": \"\\ue562\",\r\n\t\"locked-filled\": \"\\ue856\",\r\n\t\"locked\": \"\\ue506\",\r\n\t\"map-filled\": \"\\ue85c\",\r\n\t\"map-pin\": \"\\ue85e\",\r\n\t\"map-pin-ellipse\": \"\\ue864\",\r\n\t\"map\": \"\\ue364\",\r\n\t\"minus-filled\": \"\\ue440\",\r\n\t\"mic-filled\": \"\\ue332\",\r\n\t\"minus\": \"\\ue410\",\r\n\t\"micoff\": \"\\ue360\",\r\n\t\"mic\": \"\\ue302\",\r\n\t\"clear\": \"\\ue434\",\r\n\t\"smallcircle\": \"\\ue868\",\r\n\t\"close\": \"\\ue404\",\r\n\t\"closeempty\": \"\\ue460\",\r\n\t\"paperclip\": \"\\ue567\",\r\n\t\"paperplane\": \"\\ue503\",\r\n\t\"paperplane-filled\": \"\\ue86e\",\r\n\t\"person-filled\": \"\\ue131\",\r\n\t\"contact-filled\": \"\\ue130\",\r\n\t\"person\": \"\\ue101\",\r\n\t\"contact\": \"\\ue100\",\r\n\t\"images-filled\": \"\\ue87a\",\r\n\t\"phone\": \"\\ue200\",\r\n\t\"images\": \"\\ue87b\",\r\n\t\"image\": \"\\ue363\",\r\n\t\"image-filled\": \"\\ue877\",\r\n\t\"location-filled\": \"\\ue333\",\r\n\t\"location\": \"\\ue303\",\r\n\t\"plus-filled\": \"\\ue439\",\r\n\t\"plus\": \"\\ue409\",\r\n\t\"plusempty\": \"\\ue468\",\r\n\t\"help-filled\": \"\\ue535\",\r\n\t\"help\": \"\\ue505\",\r\n\t\"navigate-filled\": \"\\ue884\",\r\n\t\"navigate\": \"\\ue501\",\r\n\t\"mic-slash-filled\": \"\\ue892\",\r\n\t\"search\": \"\\ue466\",\r\n\t\"settings\": \"\\ue560\",\r\n\t\"sound\": \"\\ue590\",\r\n\t\"sound-filled\": \"\\ue8a1\",\r\n\t\"spinner-cycle\": \"\\ue465\",\r\n\t\"download-filled\": \"\\ue8a4\",\r\n\t\"personadd-filled\": \"\\ue132\",\r\n\t\"videocam-filled\": \"\\ue8af\",\r\n\t\"personadd\": \"\\ue102\",\r\n\t\"upload\": \"\\ue402\",\r\n\t\"upload-filled\": \"\\ue8b1\",\r\n\t\"starhalf\": \"\\ue463\",\r\n\t\"star-filled\": \"\\ue438\",\r\n\t\"star\": \"\\ue408\",\r\n\t\"trash\": \"\\ue401\",\r\n\t\"phone-filled\": \"\\ue230\",\r\n\t\"compose\": \"\\ue400\",\r\n\t\"videocam\": \"\\ue300\",\r\n\t\"trash-filled\": \"\\ue8dc\",\r\n\t\"download\": \"\\ue403\",\r\n\t\"chatbubble-filled\": \"\\ue232\",\r\n\t\"chatbubble\": \"\\ue202\",\r\n\t\"cloud-download\": \"\\ue8e4\",\r\n\t\"cloud-upload-filled\": \"\\ue8e5\",\r\n\t\"cloud-upload\": \"\\ue8e6\",\r\n\t\"cloud-download-filled\": \"\\ue8e9\",\r\n\t\"headphones\":\"\\ue8bf\",\r\n\t\"shop\":\"\\ue609\"\r\n}\r\n","/* 用户 */\r\nconst userInfo = {\r\n\tstatus: 1,\r\n\tdata: {\r\n\t\tid: 1,\r\n\t\tmobile: 18888888888,\r\n\t\tnickname: 'Leo yo',\r\n\t\tportrait: 'http://img.61ef.cn/news/201409/28/2014092805595807.jpg'\r\n\t},\r\n\tmsg: '提示'\r\n}\r\n/* 首页轮播图 */\r\nconst carouselList = [{\r\n\t\tsrc: \"/static/temp/banner3.jpg\",\r\n\t\tbackground: \"rgb(203, 87, 60)\",\r\n\t},\r\n\t{\r\n\t\tsrc: \"/static/temp/banner2.jpg\",\r\n\t\tbackground: \"rgb(205, 215, 218)\",\r\n\t},\r\n\t{\r\n\t\tsrc: \"/static/temp/banner4.jpg\",\r\n\t\tbackground: \"rgb(183, 73, 69)\",\r\n\t}\r\n]\r\n/* 商品列表 */\r\nconst goodsList = [{\r\n\t\timage: \"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553187020783&di=bac9dd78b36fd984502d404d231011c0&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201609%2F26%2F20160926173213_s5adi.jpeg\",\r\n\t\timage2: \"http://pic.rmb.bdstatic.com/819a044daa66718c2c40a48c1ba971e6.jpeg\",\r\n\t\timage3: \"http://img001.hc360.cn/y5/M00/1B/45/wKhQUVYFE0uEZ7zVAAAAAMj3H1w418.jpg\",\r\n\t\ttitle: \"2019新款韩版宽松\",\r\n\t\tprice: 179,\r\n\t\tsales: 61,\r\n\t},\r\n\t{\r\n\t\timage: \"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4031878334,2682695508&fm=11&gp=0.jpg\",\r\n\t\timage2: \"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1554013048&di=a3dc9fd1406dd7bad7fbb97b5489ec04&imgtype=jpg&er=1&src=http%3A%2F%2Fimg009.hc360.cn%2Fhb%2FnKo44ac2656F831c684507E3Da0E3a26841.jpg\",\r\n\t\timage3: \"http://img.zcool.cn/community/017a4e58b4eab6a801219c77084373.jpg\",\r\n\t\ttitle: \"潘歌针织连衣裙\",\r\n\t\tprice: 78,\r\n\t\tsales: 16,\r\n\t},\r\n\t{\r\n\t\timage: \"https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1620020012,789258862&fm=26&gp=0.jpg\",\r\n\t\timage2: \"http://m.360buyimg.com/n12/jfs/t247/42/1078640382/162559/3628a0b/53f5ad09N0dd79894.jpg%21q70.jpg\",\r\n\t\timage3: \"http://ikids.61kids.com.cn/upload/2018-12-29/1546070626796114.jpg\",\r\n\t\ttitle: \"新品新款女装\",\r\n\t\tprice: 108.8,\r\n\t\tsales: 5,\r\n\t}, {\r\n\t\timage: \"https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=756705744,3505936868&fm=11&gp=0.jpg\",\r\n\t\timage2: \"http://images.jaadee.com/images/201702/goods_img/30150_d85aed83521.jpg\",\r\n\t\timage3: \"http://img13.360buyimg.com/popWaterMark/jfs/t865/120/206320620/138889/dcc94caa/550acedcN613e2a9d.jpg\",\r\n\t\ttitle: \"私萱连衣裙\",\r\n\t\tprice: 265,\r\n\t\tsales: 88,\r\n\t}, {\r\n\t\timage: \"https://img13.360buyimg.com/n8/jfs/t1/30343/20/1029/481370/5c449438Ecb46a15b/2b2adccb6dc742fd.jpg\",\r\n\t\timage2: \"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553418265666&di=d4a7f7eb0ae3c859edeb921641ee1c3a&imgtype=0&src=http%3A%2F%2Fimg003.hc360.cn%2Fy3%2FM02%2FF8%2F9F%2FwKhQh1TuSkGELIlQAAAAAPuLl4M987.jpg\",\r\n\t\timage3: \"http://img.ef43.com.cn/product/2016/8/05100204b0c.jpg\",\r\n\t\ttitle: \"生潮韩版春夏短\",\r\n\t\tprice: 422,\r\n\t\tsales: 137,\r\n\t}, {\r\n\t\timage: \"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553187020783&di=bac9dd78b36fd984502d404d231011c0&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201609%2F26%2F20160926173213_s5adi.jpeg\",\r\n\t\timage2: \"http://image5.suning.cn/uimg/b2c/newcatentries/0070158827-000000000622091973_2_800x800.jpg\",\r\n\t\timage3: \"http://img.61ef.cn/news/201903/20/2019032009251784.jpg\",\r\n\t\ttitle: \"古黛妃2019新款韩版宽松\",\r\n\t\tprice: 179,\r\n\t\tsales: 95,\r\n\t},\r\n]\r\n\r\n/* 购物车 */\r\nconst cartList = [{\r\n\t\tid: 1,\r\n\t\timage: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553005139&di=3368549edf9eee769a9bcb3fbbed2504&imgtype=jpg&er=1&src=http%3A%2F%2Fimg002.hc360.cn%2Fy3%2FM01%2F5F%2FDB%2FwKhQh1T7iceEGRdWAAAAADQvqk8733.jpg',\r\n\t\tattr_val: '春装款 L',\r\n\t\tstock: 15,\r\n\t\ttitle: 'OVBE 长袖风衣',\r\n\t\tprice: 278.00,\r\n\t\tnumber: 1\r\n\t},\r\n\t{\r\n\t\tid: 3,\r\n\t\timage: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2319343996,1107396922&fm=26&gp=0.jpg',\r\n\t\tattr_val: '激光导航 扫拖一体',\r\n\t\tstock: 3,\r\n\t\ttitle: '科沃斯 Ecovacs 扫地机器人',\r\n\t\tprice: 1348.00,\r\n\t\tnumber: 5\r\n\t},\r\n\t{\r\n\t\tid: 4,\r\n\t\timage: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2668268226,1765897385&fm=26&gp=0.jpg',\r\n\t\tattr_val: 'XL',\r\n\t\tstock: 55,\r\n\t\ttitle: '朵绒菲小西装',\r\n\t\tprice: 175.88,\r\n\t\tnumber: 1\r\n\t},\r\n\t{\r\n\t\tid: 5,\r\n\t\timage: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1552410549432&di=06dd3758053fb6d6362516f30a42d055&imgtype=0&src=http%3A%2F%2Fimgcache.mysodao.com%2Fimg3%2FM0A%2F67%2F42%2FCgAPD1vNSsHNm-TnAAEy61txQb4543_400x400x2.JPG',\r\n\t\tattr_val: '520 #粉红色',\r\n\t\tstock: 15,\r\n\t\ttitle: '迪奥(Dior)烈艳唇膏',\r\n\t\tprice: 1089.00,\r\n\t\tnumber: 1\r\n\t},\r\n\t{\r\n\t\tid: 6,\r\n\t\timage: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1031875829,2994442603&fm=26&gp=0.jpg',\r\n\t\tattr_val: '樱花味润手霜 30ml',\r\n\t\tstock: 15,\r\n\t\ttitle: \"欧舒丹(L'OCCITANE)乳木果\",\r\n\t\tprice: 128,\r\n\t\tnumber: 1\r\n\t},\r\n\t{\r\n\t\tid: 7,\r\n\t\timage: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553007107&di=390915aa8a022cf0b03c03340881b0e7&imgtype=jpg&er=1&src=http%3A%2F%2Fimg13.360buyimg.com%2Fn0%2Fjfs%2Ft646%2F285%2F736444951%2F480473%2Faa701c97%2F548176feN10c9ed7b.jpg',\r\n\t\tattr_val: '特级 12个',\r\n\t\tstock: 7,\r\n\t\ttitle: '新疆阿克苏苹果 特级',\r\n\t\tprice: 58.8,\r\n\t\tnumber: 10\r\n\t},\r\n\t{\r\n\t\tid: 8,\r\n\t\timage: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2319343996,1107396922&fm=26&gp=0.jpg',\r\n\t\tattr_val: '激光导航 扫拖一体',\r\n\t\tstock: 15,\r\n\t\ttitle: '科沃斯 Ecovacs 扫地机器人',\r\n\t\tprice: 1348.00,\r\n\t\tnumber: 1\r\n\t},\r\n\t{\r\n\t\tid: 9,\r\n\t\timage: 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2668268226,1765897385&fm=26&gp=0.jpg',\r\n\t\tattr_val: 'XL',\r\n\t\tstock: 55,\r\n\t\ttitle: '朵绒菲小西装',\r\n\t\tprice: 175.88,\r\n\t\tnumber: 1\r\n\t},\r\n\t{\r\n\t\tid: 10,\r\n\t\timage: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1552410549432&di=06dd3758053fb6d6362516f30a42d055&imgtype=0&src=http%3A%2F%2Fimgcache.mysodao.com%2Fimg3%2FM0A%2F67%2F42%2FCgAPD1vNSsHNm-TnAAEy61txQb4543_400x400x2.JPG',\r\n\t\tattr_val: '520 #粉红色',\r\n\t\tstock: 15,\r\n\t\ttitle: '迪奥(Dior)烈艳唇膏',\r\n\t\tprice: 1089.00,\r\n\t\tnumber: 1\r\n\t},\r\n\t{\r\n\t\tid: 11,\r\n\t\timage: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1031875829,2994442603&fm=26&gp=0.jpg',\r\n\t\tattr_val: '樱花味润手霜 30ml',\r\n\t\tstock: 15,\r\n\t\ttitle: \"欧舒丹(L'OCCITANE)乳木果\",\r\n\t\tprice: 128,\r\n\t\tnumber: 1\r\n\t},\r\n\t{\r\n\t\tid: 12,\r\n\t\timage: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553007107&di=390915aa8a022cf0b03c03340881b0e7&imgtype=jpg&er=1&src=http%3A%2F%2Fimg13.360buyimg.com%2Fn0%2Fjfs%2Ft646%2F285%2F736444951%2F480473%2Faa701c97%2F548176feN10c9ed7b.jpg',\r\n\t\tattr_val: '特级 12个',\r\n\t\tstock: 7,\r\n\t\ttitle: '新疆阿克苏苹果 特级',\r\n\t\tprice: 58.8,\r\n\t\tnumber: 10\r\n\t},\r\n\t{\r\n\t\tid: 13,\r\n\t\timage: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1552405266625&di=a703f2b2cdb0fe7f3f05f62dd91307ab&imgtype=0&src=http%3A%2F%2Fwww.78.cn%2Fzixun%2Fnews%2Fupload%2F20190214%2F1550114706486250.jpg',\r\n\t\tattr_val: '春装款/m',\r\n\t\tstock: 15,\r\n\t\ttitle: '女装2019春秋新款',\r\n\t\tprice: 420.00,\r\n\t\tnumber: 1\r\n\t}\r\n];\r\n//详情展示页面\r\nconst detailData = {\r\n\ttitle: '纯种金毛幼犬活体有血统证书',\r\n\ttitle2: '拆家小能手 你值得拥有',\r\n\tfavorite: true,\r\n\timgList: [{\r\n\t\t\tsrc: 'http://img0.imgtn.bdimg.com/it/u=2396068252,4277062836&fm=26&gp=0.jpg'\r\n\t\t},\r\n\t\t{\r\n\t\t\tsrc: 'http://img.pconline.com.cn/images/upload/upc/tx/itbbs/1309/06/c4/25310541_1378426131583.jpg'\r\n\t\t},\r\n\t\t{\r\n\t\t\tsrc: 'http://img.pconline.com.cn/images/upload/upc/tx/photoblog/1610/26/c4/28926240_1477451226577_mthumb.jpg'\r\n\t\t},\r\n\t\t{\r\n\t\t\tsrc: 'http://picture.ik123.com/uploads/allimg/190219/12-1Z219105139.jpg'\r\n\t\t},\r\n\t],\r\n\tepisodeList: [\r\n\t\t1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24\r\n\t],\r\n\tguessList: [{\r\n\t\t\tsrc: 'http://img.52z.com/upload/news/image/20180530/20180530081619_31029.jpg',\r\n\t\t\ttitle: '猫眼指甲油',\r\n\t\t\ttitle2: '独树一帜的免照灯猫眼指甲'\r\n\t\t},\r\n\t\t{\r\n\t\t\tsrc: 'http://m.china-7.net/uploads/14778449362891.jpg',\r\n\t\t\ttitle: '创意屋',\r\n\t\t\ttitle2: '创意屋形上下双层高低床'\r\n\t\t},\r\n\t\t{\r\n\t\t\tsrc: 'http://www.k73.com/up/allimg/130415/22-130415093527.jpg',\r\n\t\t\ttitle: 'MissCandy 指甲油',\r\n\t\t\ttitle2: '十分适合喜欢素净的妹纸,尽显淡雅的气质'\r\n\t\t},\r\n\t\t{\r\n\t\t\tsrc: 'http://img0.imgtn.bdimg.com/it/u=2108933440,2194129200&fm=214&gp=0.jpg\t',\r\n\t\t\ttitle: 'RMK 2017星空海蓝唇釉',\r\n\t\t\ttitle2: '唇釉质地,上唇后很滋润。少女也会心动的蓝色,透明液体形状。'\r\n\t\t}\r\n\t],\r\n\tevaList: [{\r\n\t\t\tsrc: 'http://gss0.baidu.com/-fo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/77c6a7efce1b9d1663174705fbdeb48f8d546486.jpg',\r\n\t\t\tnickname: 'Ranth Allngal',\r\n\t\t\ttime: '09-20 12:54',\r\n\t\t\tzan: '54',\r\n\t\t\tcontent: '评论不要太苛刻,不管什么产品都会有瑕疵,客服也说了可以退货并且商家承担运费,我觉得至少态度就可以给五星。'\r\n\t\t},\r\n\t\t{\r\n\t\t\tsrc: 'http://img0.imgtn.bdimg.com/it/u=2396068252,4277062836&fm=26&gp=0.jpg',\r\n\t\t\tnickname: 'Ranth Allngal',\r\n\t\t\ttime: '09-20 12:54',\r\n\t\t\tzan: '54',\r\n\t\t\tcontent: '楼上说的好有道理。'\r\n\t\t}\r\n\t]\r\n}\r\nconst shareList = [{\r\n\t\ttype: 1,\r\n\t\ticon: '/static/temp/share_wechat.png',\r\n\t\ttext: '微信好友'\r\n\t},\r\n\t{\r\n\t\ttype: 2,\r\n\t\ticon: '/static/temp/share_moment.png',\r\n\t\ttext: '朋友圈'\r\n\t},\r\n\t{\r\n\t\ttype: 3,\r\n\t\ticon: '/static/temp/share_qq.png',\r\n\t\ttext: 'QQ好友'\r\n\t},\r\n\t{\r\n\t\ttype: 4,\r\n\t\ticon: '/static/temp/share_qqzone.png',\r\n\t\ttext: 'QQ空间'\r\n\t}\r\n]\r\nconst lazyLoadList = [{\r\n\t\tsrc: 'http://img0.imgtn.bdimg.com/it/u=2396068252,4277062836&fm=26&gp=0.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://img.pconline.com.cn/images/upload/upc/tx/itbbs/1309/06/c4/25310541_1378426131583.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://img.pconline.com.cn/images/upload/upc/tx/photoblog/1610/26/c4/28926240_1477451226577_mthumb.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://picture.ik123.com/uploads/allimg/190219/12-1Z219105139.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://img5.imgtn.bdimg.com/it/u=2904900134,438461613&fm=26&gp=0.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://img1.imgtn.bdimg.com/it/u=1690475408,2565370337&fm=26&gp=0.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://img.99114.com/group1/M00/7F/99/wKgGS1kVrPGAe5LmAAU2KrJmb3Q923_600_600.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://img4.imgtn.bdimg.com/it/u=261047209,372231813&fm=26&gp=0.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://i2.17173cdn.com/i7mz64/YWxqaGBf/tu17173com/20150107/eMyVMObjlbcvDEv.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://img008.hc360.cn/m4/M02/E7/87/wKhQ6FSrfU6EfUoyAAAAAITAfyc280.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://pic1.win4000.com/wallpaper/d/5991569950166.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://gss0.baidu.com/9fo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/6f061d950a7b0208f9fe945e60d9f2d3572cc85e.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://pic41.nipic.com/20140429/18169759_125841756000_2.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://www.k73.com/up/allimg/130415/22-130415093527.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://img.52z.com/upload/news/image/20180530/20180530081619_31029.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://b-ssl.duitang.com/uploads/item/201410/02/20141002111638_tXAzU.jpeg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://img2.ph.126.net/C4JW6f57QWSB21-8jh2UGQ==/1762596304262286698.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://att.bbs.duowan.com/forum/201405/17/190257nzcvkkdg6w2e8226.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://attach.bbs.miui.com/forum/201504/10/223644v3intigyvva0vgym.jpg'\r\n\t},\r\n\t{\r\n\t\tsrc: 'http://pic1.win4000.com/mobile/3/57888a298d61d.jpg'\r\n\t},\r\n]\r\n\r\nconst orderList = [{\r\n\t\ttime: '2019-04-06 11:37',\r\n\t\tstate: 1,\r\n\t\tgoodsList: [{\r\n\t\t\t\timage: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553187020783&di=bac9dd78b36fd984502d404d231011c0&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201609%2F26%2F20160926173213_s5adi.jpeg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4031878334,2682695508&fm=11&gp=0.jpg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1620020012,789258862&fm=26&gp=0.jpg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4031878334,2682695508&fm=11&gp=0.jpg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1620020012,789258862&fm=26&gp=0.jpg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4031878334,2682695508&fm=11&gp=0.jpg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1620020012,789258862&fm=26&gp=0.jpg',\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\ttime: '2019-04-06 11:37',\r\n\t\tstate: 9,\r\n\t\tgoodsList: [{\r\n\t\t\ttitle: '古黛妃 短袖t恤女 春夏装2019新款韩版宽松',\r\n\t\t\tprice: 179.5,\r\n\t\t\timage: 'https://img13.360buyimg.com/n8/jfs/t1/30343/20/1029/481370/5c449438Ecb46a15b/2b2adccb6dc742fd.jpg',\r\n\t\t\tnumber: 1,\r\n\t\t\tattr: '珊瑚粉 M'\r\n\t\t}]\r\n\t},\r\n\t{\r\n\t\ttime: '2019-04-06 11:37',\r\n\t\tstate: 1,\r\n\t\tgoodsList: [{\r\n\t\t\t\timage: 'https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i2/2120460599/O1CN01LBPS4C1GINkwsOTXS_!!2120460599.jpg_430x430q90.jpg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://img.alicdn.com/imgextra/i2/1069876356/TB2ocTQG4WYBuNjy1zkXXXGGpXa_!!1069876356.jpg_430x430q90.jpg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i4/2120460599/O1CN01YsmgwZ1GINkv38rkn_!!2120460599.jpg_430x430q90.jpg',\r\n\t\t\t},\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\ttime: '2019-04-06 11:37',\r\n\t\tstate: 1,\r\n\t\tgoodsList: [{\r\n\t\t\ttitle: '回力女鞋高帮帆布鞋女学生韩版鞋子女2019潮鞋女鞋新款春季板鞋女',\r\n\t\t\tprice: 69,\r\n\t\t\timage: 'https://img.alicdn.com/imgextra/i3/2128794607/TB2gzzoc41YBuNjy1zcXXbNcXXa_!!2128794607.jpg_430x430q90.jpg',\r\n\t\t\tnumber: 1,\r\n\t\t\tattr: '白色-高帮 39'\r\n\t\t}]\r\n\t},\r\n\t{\r\n\t\ttime: '2019-04-06 11:37',\r\n\t\tstate: 1,\r\n\t\tgoodsList: [{\r\n\t\t\t\timage: 'https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i4/3358098495/O1CN01dhYyid2Ccl5MWLDok_!!3358098495.jpg_430x430q90.jpg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://img.alicdn.com/imgextra/https://img.alicdn.com/imgextra/i3/3358098495/O1CN01AWsnFA2Ccl5OzvqsL_!!3358098495.jpg_430x430q90.jpg',\r\n\t\t\t},\r\n\t\t]\r\n\t},\r\n\t{\r\n\t\ttime: '2019-04-06 11:37',\r\n\t\tstate: 1,\r\n\t\tgoodsList: [{\r\n\t\t\t\timage: 'https://img.alicdn.com/imgextra/i4/3470687433/O1CN0124mMQOSERr18L1h_!!3470687433.jpg_430x430q90.jpg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://img.alicdn.com/imgextra/i3/2888462616/O1CN01ERra5J1VCAbZaKI5n_!!0-item_pic.jpg_430x430q90.jpg',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\timage: 'https://gd3.alicdn.com/imgextra/i3/819381730/O1CN01YV4mXj1OeNhQIhQlh_!!819381730.jpg_400x400.jpg',\r\n\t\t\t},\r\n\t\t]\r\n\t}\r\n\r\n]\r\nconst cateList = [{\r\n\t\tid: 1,\r\n\t\tname: '手机数码'\r\n\t},\r\n\t{\r\n\t\tid: 2,\r\n\t\tname: '礼品鲜花'\r\n\t},\r\n\t{\r\n\t\tid: 3,\r\n\t\tname: '男装女装'\r\n\t},\r\n\t{\r\n\t\tid: 4,\r\n\t\tname: '母婴用品'\r\n\t},\r\n\t{\r\n\t\tid: 5,\r\n\t\tpid: 1,\r\n\t\tname: '手机通讯'\r\n\t},\r\n\t{\r\n\t\tid: 6,\r\n\t\tpid: 1,\r\n\t\tname: '运营商'\r\n\t},\r\n\t{\r\n\t\tid: 8,\r\n\t\tpid: 5,\r\n\t\tname: '全面屏手机',\r\n\t\tpicture: '/static/temp/cate2.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 9,\r\n\t\tpid: 5,\r\n\t\tname: '游戏手机',\r\n\t\tpicture: '/static/temp/cate3.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 10,\r\n\t\tpid: 5,\r\n\t\tname: '老人机',\r\n\t\tpicture: '/static/temp/cate1.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 11,\r\n\t\tpid: 5,\r\n\t\tname: '拍照手机',\r\n\t\tpicture: '/static/temp/cate4.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 12,\r\n\t\tpid: 5,\r\n\t\tname: '女性手机',\r\n\t\tpicture: '/static/temp/cate5.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 14,\r\n\t\tpid: 6,\r\n\t\tname: '合约机',\r\n\t\tpicture: '/static/temp/cate1.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 15,\r\n\t\tpid: 6,\r\n\t\tname: '选好卡',\r\n\t\tpicture: '/static/temp/cate4.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 16,\r\n\t\tpid: 6,\r\n\t\tname: '办套餐',\r\n\t\tpicture: '/static/temp/cate5.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 17,\r\n\t\tpid: 2,\r\n\t\tname: '礼品',\r\n\t},\r\n\t{\r\n\t\tid: 18,\r\n\t\tpid: 2,\r\n\t\tname: '鲜花',\r\n\t},\r\n\t{\r\n\t\tid: 19,\r\n\t\tpid: 17,\r\n\t\tname: '公益摆件',\r\n\t\tpicture: '/static/temp/cate7.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 20,\r\n\t\tpid: 17,\r\n\t\tname: '创意礼品',\r\n\t\tpicture: '/static/temp/cate8.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 21,\r\n\t\tpid: 18,\r\n\t\tname: '鲜花',\r\n\t\tpicture: '/static/temp/cate9.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 22,\r\n\t\tpid: 18,\r\n\t\tname: '每周一花',\r\n\t\tpicture: '/static/temp/cate10.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 23,\r\n\t\tpid: 18,\r\n\t\tname: '卡通花束',\r\n\t\tpicture: '/static/temp/cate11.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 24,\r\n\t\tpid: 18,\r\n\t\tname: '永生花',\r\n\t\tpicture: '/static/temp/cate12.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 25,\r\n\t\tpid: 3,\r\n\t\tname: '男装'\r\n\t},\r\n\t{\r\n\t\tid: 26,\r\n\t\tpid: 3,\r\n\t\tname: '女装'\r\n\t},\r\n\t{\r\n\t\tid: 27,\r\n\t\tpid: 25,\r\n\t\tname: '男士T恤',\r\n\t\tpicture: '/static/temp/cate13.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 28,\r\n\t\tpid: 25,\r\n\t\tname: '男士外套',\r\n\t\tpicture: '/static/temp/cate14.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 29,\r\n\t\tpid: 26,\r\n\t\tname: '裙装',\r\n\t\tpicture: '/static/temp/cate15.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 30,\r\n\t\tpid: 26,\r\n\t\tname: 'T恤',\r\n\t\tpicture: '/static/temp/cate16.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 31,\r\n\t\tpid: 26,\r\n\t\tname: '上装',\r\n\t\tpicture: '/static/temp/cate15.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 32,\r\n\t\tpid: 26,\r\n\t\tname: '下装',\r\n\t\tpicture: '/static/temp/cate16.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 33,\r\n\t\tpid: 4,\r\n\t\tname: '奶粉',\r\n\t},\r\n\t{\r\n\t\tid: 34,\r\n\t\tpid: 4,\r\n\t\tname: '营养辅食',\r\n\t},\r\n\t{\r\n\t\tid: 35,\r\n\t\tpid: 4,\r\n\t\tname: '童装',\r\n\t},\r\n\t{\r\n\t\tid: 39,\r\n\t\tpid: 4,\r\n\t\tname: '喂养用品',\r\n\t},\r\n\t{\r\n\t\tid: 36,\r\n\t\tpid: 33,\r\n\t\tname: '有机奶粉',\r\n\t\tpicture: '/static/temp/cate17.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 37,\r\n\t\tpid: 34,\r\n\t\tname: '果泥/果汁',\r\n\t\tpicture: '/static/temp/cate18.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 39,\r\n\t\tpid: 34,\r\n\t\tname: '面条/粥',\r\n\t\tpicture: '/static/temp/cate20.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 42,\r\n\t\tpid: 35,\r\n\t\tname: '婴童衣橱',\r\n\t\tpicture: '/static/temp/cate19.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 43,\r\n\t\tpid: 39,\r\n\t\tname: '吸奶器',\r\n\t\tpicture: '/static/temp/cate21.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 44,\r\n\t\tpid: 39,\r\n\t\tname: '儿童餐具',\r\n\t\tpicture: '/static/temp/cate22.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 45,\r\n\t\tpid: 39,\r\n\t\tname: '牙胶安抚',\r\n\t\tpicture: '/static/temp/cate23.jpg'\r\n\t},\r\n\t{\r\n\t\tid: 46,\r\n\t\tpid: 39,\r\n\t\tname: '围兜',\r\n\t\tpicture: '/static/temp/cate24.jpg'\r\n\t},\r\n]\r\n\r\nexport default {\r\n\tcarouselList,\r\n\tcartList,\r\n\tdetailData,\r\n\tlazyLoadList,\r\n\tuserInfo,\r\n\tshareList,\r\n\tgoodsList,\r\n\torderList,\r\n\tcateList\r\n}\r\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require('@babel/runtime/helpers/regeneratorRuntime')()\nmodule.exports = runtime\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\r\n/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\r\n/* vim: set ts=2: */\r\n/*exported XLSX */\r\n/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */\r\nvar XLSX = {};\r\n var make_xlsx_lib= function (XLSX){\r\nXLSX.version = '0.17.5';\r\nvar current_codepage = 1200, current_ansi = 1252;\r\n\r\nvar VALID_ANSI = [ 874, 932, 936, 949, 950 ];\r\nfor(var i = 0; i <= 8; ++i) VALID_ANSI.push(1250 + i);\r\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\r\nvar CS2CP = ({\r\n0: 1252, /* ANSI */\r\n1: 65001, /* DEFAULT */\r\n2: 65001, /* SYMBOL */\r\n77: 10000, /* MAC */\r\n128: 932, /* SHIFTJIS */\r\n129: 949, /* HANGUL */\r\n130: 1361, /* JOHAB */\r\n134: 936, /* GB2312 */\r\n136: 950, /* CHINESEBIG5 */\r\n161: 1253, /* GREEK */\r\n162: 1254, /* TURKISH */\r\n163: 1258, /* VIETNAMESE */\r\n177: 1255, /* HEBREW */\r\n178: 1256, /* ARABIC */\r\n186: 1257, /* BALTIC */\r\n204: 1251, /* RUSSIAN */\r\n222: 874, /* THAI */\r\n238: 1250, /* EASTEUROPE */\r\n255: 1252, /* OEM */\r\n69: 6969 /* MISC */\r\n});\r\n\r\nvar set_ansi = function(cp) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\r\nfunction reset_ansi() { set_ansi(1252); }\r\n\r\nvar set_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\r\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\r\n\r\nfunction char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\r\n\r\nfunction utf16leread(data) {\r\n\tvar o = [];\r\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\r\n\treturn o.join(\"\");\r\n}\r\nfunction utf16beread(data) {\r\n\tvar o = [];\r\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\r\n\treturn o.join(\"\");\r\n}\r\n\r\nvar debom = function(data) {\r\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\r\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\r\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\r\n\tif(c1 == 0xFEFF) return data.slice(1);\r\n\treturn data;\r\n};\r\n\r\nvar _getchar = function _gc1(x) { return String.fromCharCode(x); };\r\nvar _getansi = function _ga1(x) { return String.fromCharCode(x); };\r\nvar DENSE = null;\r\nvar DIF_XL = true;\r\nvar Base64 = (function make_b64(){\r\n\tvar map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n\treturn {\r\n\t\tencode: function(input) {\r\n\t\t\tvar o = \"\";\r\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\r\n\t\t\tfor(var i = 0; i < input.length; ) {\r\n\t\t\t\tc1 = input.charCodeAt(i++);\r\n\t\t\t\te1 = (c1 >> 2);\r\n\r\n\t\t\t\tc2 = input.charCodeAt(i++);\r\n\t\t\t\te2 = ((c1 & 3) << 4) | (c2 >> 4);\r\n\r\n\t\t\t\tc3 = input.charCodeAt(i++);\r\n\t\t\t\te3 = ((c2 & 15) << 2) | (c3 >> 6);\r\n\t\t\t\te4 = (c3 & 63);\r\n\t\t\t\tif (isNaN(c2)) { e3 = e4 = 64; }\r\n\t\t\t\telse if (isNaN(c3)) { e4 = 64; }\r\n\t\t\t\to += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);\r\n\t\t\t}\r\n\t\t\treturn o;\r\n\t\t},\r\n\t\tdecode: function b64_decode(input) {\r\n\t\t\tvar o = \"\";\r\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\r\n\t\t\tinput = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\r\n\t\t\tfor(var i = 0; i < input.length;) {\r\n\t\t\t\te1 = map.indexOf(input.charAt(i++));\r\n\t\t\t\te2 = map.indexOf(input.charAt(i++));\r\n\t\t\t\tc1 = (e1 << 2) | (e2 >> 4);\r\n\t\t\t\to += String.fromCharCode(c1);\r\n\r\n\t\t\t\te3 = map.indexOf(input.charAt(i++));\r\n\t\t\t\tc2 = ((e2 & 15) << 4) | (e3 >> 2);\r\n\t\t\t\tif (e3 !== 64) { o += String.fromCharCode(c2); }\r\n\r\n\t\t\t\te4 = map.indexOf(input.charAt(i++));\r\n\t\t\t\tc3 = ((e3 & 3) << 6) | e4;\r\n\t\t\t\tif (e4 !== 64) { o += String.fromCharCode(c3); }\r\n\t\t\t}\r\n\t\t\treturn o;\r\n\t\t}\r\n\t};\r\n})();\r\nvar has_buf = (typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node);\r\n\r\nvar Buffer_from = function(){};\r\n\r\nif(typeof Buffer !== 'undefined') {\r\n\tvar nbfs = !Buffer.from;\r\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\r\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\r\n\t// $FlowIgnore\r\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\r\n\t// $FlowIgnore\r\n\tif(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\r\n}\r\n\r\nfunction new_raw_buf(len) {\r\n\t/* jshint -W056 */\r\n\treturn has_buf ? Buffer.alloc(len) : new Array(len);\r\n\t/* jshint +W056 */\r\n}\r\n\r\nfunction new_unsafe_buf(len) {\r\n\t/* jshint -W056 */\r\n\treturn has_buf ? Buffer.allocUnsafe(len) : new Array(len);\r\n\t/* jshint +W056 */\r\n}\r\n\r\nvar s2a = function s2a(s) {\r\n\tif(has_buf) return Buffer_from(s, \"binary\");\r\n\treturn s.split(\"\").map(function(x){ return x.charCodeAt(0) & 0xff; });\r\n};\r\n\r\nfunction s2ab(s) {\r\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\r\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\r\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\r\n\treturn buf;\r\n}\r\n\r\nfunction a2s(data) {\r\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\r\n\tvar o = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\r\n}\r\n\r\nfunction a2u(data) {\r\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\r\n\treturn new Uint8Array(data);\r\n}\r\n\r\nfunction ab2a(data) {\r\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\r\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\r\nvar o = new Array(data.length);\r\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\r\n\treturn o;\r\n}\r\n\r\nvar bconcat = function(bufs) { return [].concat.apply([], bufs); };\r\n\r\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\r\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\r\n/*jshint -W041 */\r\nvar SSF = ({});\r\nvar make_ssf = function make_ssf(SSF){\r\nSSF.version = '0.11.2';\r\nfunction _strrev(x) { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\r\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\r\nfunction pad0(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\r\nfunction pad_(v,d){var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\r\nfunction rpad_(v,d){var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\r\nfunction pad0r1(v,d){var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\r\nfunction pad0r2(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\r\nvar p2_32 = Math.pow(2,32);\r\nfunction pad0r(v,d){if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\r\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; }\r\nvar days = [\r\n\t['Sun', 'Sunday'],\r\n\t['Mon', 'Monday'],\r\n\t['Tue', 'Tuesday'],\r\n\t['Wed', 'Wednesday'],\r\n\t['Thu', 'Thursday'],\r\n\t['Fri', 'Friday'],\r\n\t['Sat', 'Saturday']\r\n];\r\nvar months = [\r\n\t['J', 'Jan', 'January'],\r\n\t['F', 'Feb', 'February'],\r\n\t['M', 'Mar', 'March'],\r\n\t['A', 'Apr', 'April'],\r\n\t['M', 'May', 'May'],\r\n\t['J', 'Jun', 'June'],\r\n\t['J', 'Jul', 'July'],\r\n\t['A', 'Aug', 'August'],\r\n\t['S', 'Sep', 'September'],\r\n\t['O', 'Oct', 'October'],\r\n\t['N', 'Nov', 'November'],\r\n\t['D', 'Dec', 'December']\r\n];\r\nfunction init_table(t) {\r\n\tt[0]= 'General';\r\n\tt[1]= '0';\r\n\tt[2]= '0.00';\r\n\tt[3]= '#,##0';\r\n\tt[4]= '#,##0.00';\r\n\tt[9]= '0%';\r\n\tt[10]= '0.00%';\r\n\tt[11]= '0.00E+00';\r\n\tt[12]= '# ?/?';\r\n\tt[13]= '# ??/??';\r\n\tt[14]= 'm/d/yy';\r\n\tt[15]= 'd-mmm-yy';\r\n\tt[16]= 'd-mmm';\r\n\tt[17]= 'mmm-yy';\r\n\tt[18]= 'h:mm AM/PM';\r\n\tt[19]= 'h:mm:ss AM/PM';\r\n\tt[20]= 'h:mm';\r\n\tt[21]= 'h:mm:ss';\r\n\tt[22]= 'm/d/yy h:mm';\r\n\tt[37]= '#,##0 ;(#,##0)';\r\n\tt[38]= '#,##0 ;[Red](#,##0)';\r\n\tt[39]= '#,##0.00;(#,##0.00)';\r\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\r\n\tt[45]= 'mm:ss';\r\n\tt[46]= '[h]:mm:ss';\r\n\tt[47]= 'mmss.0';\r\n\tt[48]= '##0.0E+0';\r\n\tt[49]= '@';\r\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\r\n}\r\n\r\nvar table_fmt = {};\r\ninit_table(table_fmt);\r\n/* Defaults determined by systematically testing in Excel 2019 */\r\n\r\n/* These formats appear to default to other formats in the table */\r\nvar default_map = [];\r\nvar defi = 0;\r\n\r\n// 5 -> 37 ... 8 -> 40\r\nfor(defi = 5; defi <= 8; ++defi) default_map[defi] = 32 + defi;\r\n\r\n// 23 -> 0 ... 26 -> 0\r\nfor(defi = 23; defi <= 26; ++defi) default_map[defi] = 0;\r\n\r\n// 27 -> 14 ... 31 -> 14\r\nfor(defi = 27; defi <= 31; ++defi) default_map[defi] = 14;\r\n// 50 -> 14 ... 58 -> 14\r\nfor(defi = 50; defi <= 58; ++defi) default_map[defi] = 14;\r\n\r\n// 59 -> 1 ... 62 -> 4\r\nfor(defi = 59; defi <= 62; ++defi) default_map[defi] = defi - 58;\r\n// 67 -> 9 ... 68 -> 10\r\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 58;\r\n// 72 -> 14 ... 75 -> 17\r\nfor(defi = 72; defi <= 75; ++defi) default_map[defi] = defi - 58;\r\n\r\n// 69 -> 12 ... 71 -> 14\r\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 57;\r\n\r\n// 76 -> 20 ... 78 -> 22\r\nfor(defi = 76; defi <= 78; ++defi) default_map[defi] = defi - 56;\r\n\r\n// 79 -> 45 ... 81 -> 47\r\nfor(defi = 79; defi <= 81; ++defi) default_map[defi] = defi - 34;\r\n\r\n// 82 -> 0 ... 65536 -> 0 (omitted)\r\n\r\n/* These formats technically refer to Accounting formats with no equivalent */\r\nvar default_str = [];\r\n\r\n// 5 -- Currency, 0 decimal, black negative\r\ndefault_str[5] = default_str[63] = '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)';\r\n// 6 -- Currency, 0 decimal, red negative\r\ndefault_str[6] = default_str[64] = '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)';\r\n// 7 -- Currency, 2 decimal, black negative\r\ndefault_str[7] = default_str[65] = '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)';\r\n// 8 -- Currency, 2 decimal, red negative\r\ndefault_str[8] = default_str[66] = '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)';\r\n\r\n// 41 -- Accounting, 0 decimal, No Symbol\r\ndefault_str[41] = '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)';\r\n// 42 -- Accounting, 0 decimal, $ Symbol\r\ndefault_str[42] = '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)';\r\n// 43 -- Accounting, 2 decimal, No Symbol\r\ndefault_str[43] = '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)';\r\n// 44 -- Accounting, 2 decimal, $ Symbol\r\ndefault_str[44] = '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)';\r\nfunction frac(x, D, mixed) {\r\n\tvar sgn = x < 0 ? -1 : 1;\r\n\tvar B = x * sgn;\r\n\tvar P_2 = 0, P_1 = 1, P = 0;\r\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\r\n\tvar A = Math.floor(B);\r\n\twhile(Q_1 < D) {\r\n\t\tA = Math.floor(B);\r\n\t\tP = A * P_1 + P_2;\r\n\t\tQ = A * Q_1 + Q_2;\r\n\t\tif((B - A) < 0.00000005) break;\r\n\t\tB = 1 / (B - A);\r\n\t\tP_2 = P_1; P_1 = P;\r\n\t\tQ_2 = Q_1; Q_1 = Q;\r\n\t}\r\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\r\n\tif(!mixed) return [0, sgn * P, Q];\r\n\tvar q = Math.floor(sgn * P/Q);\r\n\treturn [q, sgn*P - q*Q, Q];\r\n}\r\nfunction parse_date_code(v,opts,b2) {\r\n\tif(v > 2958465 || v < 0) return null;\r\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\r\n\tvar dout=[];\r\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};\r\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\r\n\tif(opts && opts.date1904) date += 1462;\r\n\tif(out.u > 0.9999) {\r\n\t\tout.u = 0;\r\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\r\n\t}\r\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\r\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\r\n\telse {\r\n\t\tif(date > 60) --date;\r\n\t\t/* 1 = Jan 1 1900 in Gregorian */\r\n\t\tvar d = new Date(1900, 0, 1);\r\n\t\td.setDate(d.getDate() + date - 1);\r\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\r\n\t\tdow = d.getDay();\r\n\t\tif(date < 60) dow = (dow + 6) % 7;\r\n\t\tif(b2) dow = fix_hijri(d, dout);\r\n\t}\r\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\r\n\tout.S = time % 60; time = Math.floor(time / 60);\r\n\tout.M = time % 60; time = Math.floor(time / 60);\r\n\tout.H = time;\r\n\tout.q = dow;\r\n\treturn out;\r\n}\r\nSSF.parse_date_code = parse_date_code;\r\nvar basedate = new Date(1899, 11, 31, 0, 0, 0);\r\nvar dnthresh = basedate.getTime();\r\nvar base1904 = new Date(1900, 2, 1, 0, 0, 0);\r\nfunction datenum_local(v, date1904) {\r\n\tvar epoch = v.getTime();\r\n\tif(date1904) epoch -= 1461*24*60*60*1000;\r\n\telse if(v >= base1904) epoch += 24*60*60*1000;\r\n\treturn (epoch - (dnthresh + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\r\n}\r\n/* The longest 32-bit integer text is \"-4294967296\", exactly 11 chars */\r\nfunction general_fmt_int(v) { return v.toString(10); }\r\nSSF._general_int = general_fmt_int;\r\n\r\n/* ECMA-376 18.8.30 numFmt*/\r\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\r\nvar general_fmt_num = (function make_general_fmt_num() {\r\n\tvar trailing_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)$/;\r\n\tfunction strip_decimal(o) {\r\n\t\treturn (o.indexOf(\".\") == -1) ? o : o.replace(trailing_zeroes_and_decimal, \"$1\");\r\n\t}\r\n\r\n\t/* General Exponential always shows 2 digits exp and trims the mantissa */\r\n\tvar mantissa_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/;\r\n\tvar exp_with_single_digit = /(E[+-])(\\d)$/;\r\n\tfunction normalize_exp(o) {\r\n\t\tif(o.indexOf(\"E\") == -1) return o;\r\n\t\treturn o.replace(mantissa_zeroes_and_decimal,\"$1E\").replace(exp_with_single_digit,\"$10$2\");\r\n\t}\r\n\r\n\t/* exponent >= -9 and <= 9 */\r\n\tfunction small_exp(v) {\r\n\t\tvar w = (v<0?12:11);\r\n\t\tvar o = strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\r\n\t\to = v.toPrecision(10); if(o.length <= w) return o;\r\n\t\treturn v.toExponential(5);\r\n\t}\r\n\r\n\t/* exponent >= 11 or <= -10 likely exponential */\r\n\tfunction large_exp(v) {\r\n\t\tvar o = strip_decimal(v.toFixed(11));\r\n\t\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\r\n\t}\r\n\r\n\tfunction general_fmt_num_base(v) {\r\n\t\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\r\n\r\n\t\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\r\n\t\telse if(Math.abs(V) <= 9) o = small_exp(v);\r\n\t\telse if(V === 10) o = v.toFixed(10).substr(0,12);\r\n\t\telse o = large_exp(v);\r\n\r\n\t\treturn strip_decimal(normalize_exp(o.toUpperCase()));\r\n\t}\r\n\r\n\treturn general_fmt_num_base;\r\n})();\r\nSSF._general_num = general_fmt_num;\r\n\r\n/*\r\n\t\"General\" rules:\r\n\t- text is passed through (\"@\")\r\n\t- booleans are rendered as TRUE/FALSE\r\n\t- \"up to 11 characters\" displayed for numbers\r\n\t- Default date format (code 14) used for Dates\r\n\r\n\tTODO: technically the display depends on the width of the cell\r\n*/\r\nfunction general_fmt(v, opts) {\r\n\tswitch(typeof v) {\r\n\t\tcase 'string': return v;\r\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\r\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : general_fmt_num(v);\r\n\t\tcase 'undefined': return \"\";\r\n\t\tcase 'object':\r\n\t\t\tif(v == null) return \"\";\r\n\t\t\tif(v instanceof Date) return format(14, datenum_local(v, opts && opts.date1904), opts);\r\n\t}\r\n\tthrow new Error(\"unsupported value in General format: \" + v);\r\n}\r\nSSF._general = general_fmt;\r\nfunction fix_hijri(date, o) {\r\n /* TODO: properly adjust y/m/d and */\r\n o[0] -= 581;\r\n var dow = date.getDay();\r\n if(date < 60) dow = (dow + 6) % 7;\r\n return dow;\r\n}\r\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\r\n/*jshint -W086 */\r\nfunction write_date(type, fmt, val, ss0) {\r\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\r\n\tswitch(type) {\r\n\t\tcase 98: /* 'b' buddhist year */\r\n\t\t\ty = val.y + 543;\r\n\t\t\t/* falls through */\r\n\t\tcase 121: /* 'y' year */\r\n\t\tswitch(fmt.length) {\r\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\r\n\t\t\tdefault: out = y % 10000; outl = 4; break;\r\n\t\t} break;\r\n\t\tcase 109: /* 'm' month */\r\n\t\tswitch(fmt.length) {\r\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\r\n\t\t\tcase 3: return months[val.m-1][1];\r\n\t\t\tcase 5: return months[val.m-1][0];\r\n\t\t\tdefault: return months[val.m-1][2];\r\n\t\t} break;\r\n\t\tcase 100: /* 'd' day */\r\n\t\tswitch(fmt.length) {\r\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\r\n\t\t\tcase 3: return days[val.q][0];\r\n\t\t\tdefault: return days[val.q][1];\r\n\t\t} break;\r\n\t\tcase 104: /* 'h' 12-hour */\r\n\t\tswitch(fmt.length) {\r\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\r\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\r\n\t\t} break;\r\n\t\tcase 72: /* 'H' 24-hour */\r\n\t\tswitch(fmt.length) {\r\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\r\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\r\n\t\t} break;\r\n\t\tcase 77: /* 'M' minutes */\r\n\t\tswitch(fmt.length) {\r\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\r\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\r\n\t\t} break;\r\n\t\tcase 115: /* 's' seconds */\r\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\r\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\r\nif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\r\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\r\n\t\t\tss = Math.round((tt)*(val.S + val.u));\r\n\t\t\tif(ss >= 60*tt) ss = 0;\r\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\r\n\t\t\to = pad0(ss,2 + ss0);\r\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\r\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\r\n\t\tcase 90: /* 'Z' absolute time */\r\n\t\tswitch(fmt) {\r\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\r\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\r\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\r\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\r\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\r\n\t\tcase 101: /* 'e' era */\r\n\t\t\tout = y; outl = 1; break;\r\n\t}\r\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\r\n\treturn outstr;\r\n}\r\n/*jshint +W086 */\r\nfunction commaify(s) {\r\n\tvar w = 3;\r\n\tif(s.length <= w) return s;\r\n\tvar j = (s.length % w), o = s.substr(0,j);\r\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\r\n\treturn o;\r\n}\r\nvar write_num = (function make_write_num(){\r\nvar pct1 = /%/g;\r\nfunction write_num_pct(type, fmt, val){\r\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\r\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\r\n}\r\nfunction write_num_cm(type, fmt, val){\r\n\tvar idx = fmt.length - 1;\r\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\r\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\r\n}\r\nfunction write_num_exp(fmt, val){\r\n\tvar o;\r\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\r\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\r\n\t\tif(val == 0) return \"0.0E+0\";\r\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\r\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\r\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\r\n\t\tif(ee < 0) ee += period;\r\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\r\n\t\tif(o.indexOf(\"e\") === -1) {\r\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\r\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\r\n\t\t\telse o += \"E+\" + (fakee - ee);\r\n\t\t\twhile(o.substr(0,2) === \"0.\") {\r\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\r\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\r\n\t\t\t}\r\n\t\t\to = o.replace(/\\+-/,\"-\");\r\n\t\t}\r\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\"; });\r\n\t} else o = val.toExponential(idx);\r\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\r\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\r\n\treturn o.replace(\"e\",\"E\");\r\n}\r\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\r\nfunction write_num_f1(r, aval, sign) {\r\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\r\n\tvar myn = (rr - base*den), myd = den;\r\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));\r\n}\r\nfunction write_num_f2(r, aval, sign) {\r\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\r\n}\r\nvar dec1 = /^#*0*\\.([0#]+)/;\r\nvar closeparen = /\\).*[0#]/;\r\nvar phone = /\\(###\\) ###\\\\?-####/;\r\nfunction hashq(str) {\r\n\tvar o = \"\", cc;\r\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\r\n\t\tcase 35: break;\r\n\t\tcase 63: o+= \" \"; break;\r\n\t\tcase 48: o+= \"0\"; break;\r\n\t\tdefault: o+= String.fromCharCode(cc);\r\n\t}\r\n\treturn o;\r\n}\r\nfunction rnd(val, d) { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\r\nfunction dec(val, d) {\r\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\r\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\r\n\treturn Math.round(_frac * dd);\r\n}\r\nfunction carry(val, d) {\r\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\r\n\t\treturn 1;\r\n\t}\r\n\treturn 0;\r\n}\r\nfunction flr(val) {\r\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\r\n\treturn \"\"+Math.floor(val);\r\n}\r\nfunction write_num_flt(type, fmt, val) {\r\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\r\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\r\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\r\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\r\n\t}\r\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\r\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\r\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\r\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\r\n\tvar o;\r\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\r\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\r\n\tif(fmt.match(/^[#?]+$/)) {\r\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\r\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\r\n\t}\r\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\r\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\r\n\tif((r = fmt.match(dec1))) {\r\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); });\r\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\r\n\t}\r\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\r\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\r\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\r\n\t}\r\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\r\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\r\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);\r\n\t}\r\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\r\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\r\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\r\n\t\tri = 0;\r\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\r\n\t}\r\n\tif(fmt.match(phone)) {\r\n\t\to = write_num_flt(type, \"##########\", val);\r\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\r\n\t}\r\n\tvar oa = \"\";\r\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\r\n\t\tri = Math.min(r[4].length,7);\r\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\r\n\t\to = \"\" + sign;\r\n\t\toa = write_num(\"n\", r[1], ff[1]);\r\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\r\n\t\to += oa + r[2] + \"/\" + r[3];\r\n\t\toa = rpad_(ff[2],ri);\r\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\r\n\t\to += oa;\r\n\t\treturn o;\r\n\t}\r\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\r\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\r\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\r\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\r\n\t}\r\n\tif((r = fmt.match(/^[#0?]+$/))) {\r\n\t\to = pad0r(val, 0);\r\n\t\tif(fmt.length <= o.length) return o;\r\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\r\n\t}\r\n\tif((r = fmt.match(/^([#0?]+)\\.([#0]+)$/))) {\r\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\r\n\t\tri = o.indexOf(\".\");\r\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\r\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\r\n\t}\r\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\r\n\t\tri = dec(val, r[1].length);\r\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\r\n\t}\r\n\tswitch(fmt) {\r\n\t\tcase \"###,##0.00\": return write_num_flt(type, \"#,##0.00\", val);\r\n\t\tcase \"###,###\":\r\n\t\tcase \"##,###\":\r\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\r\n\t\tcase \"###,###.00\": return write_num_flt(type, \"###,##0.00\",val).replace(/^0\\./,\".\");\r\n\t\tcase \"#,###.00\": return write_num_flt(type, \"#,##0.00\",val).replace(/^0\\./,\".\");\r\n\t\tdefault:\r\n\t}\r\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\r\n}\r\nfunction write_num_cm2(type, fmt, val){\r\n\tvar idx = fmt.length - 1;\r\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\r\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\r\n}\r\nfunction write_num_pct2(type, fmt, val){\r\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\r\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\r\n}\r\nfunction write_num_exp2(fmt, val){\r\n\tvar o;\r\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\r\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\r\n\t\tif(val == 0) return \"0.0E+0\";\r\n\t\telse if(val < 0) return \"-\" + write_num_exp2(fmt, -val);\r\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\r\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\r\n\t\tif(ee < 0) ee += period;\r\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\r\n\t\tif(!o.match(/[Ee]/)) {\r\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\r\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\r\n\t\t\telse o += \"E+\" + (fakee - ee);\r\n\t\t\to = o.replace(/\\+-/,\"-\");\r\n\t\t}\r\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\"; });\r\n\t} else o = val.toExponential(idx);\r\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\r\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\r\n\treturn o.replace(\"e\",\"E\");\r\n}\r\nfunction write_num_int(type, fmt, val) {\r\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\r\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\r\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\r\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\r\n\t}\r\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\r\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\r\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\r\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\r\n\tvar o;\r\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\r\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\r\n\tif(fmt.match(/^[#?]+$/)) {\r\n\t\to = (\"\"+val); if(val === 0) o = \"\";\r\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\r\n\t}\r\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\r\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\r\n\tif((r = fmt.match(dec1))) {\r\no = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\r\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\r\nreturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\r\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\r\n\t}\r\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\r\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\r\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\r\n\t}\r\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\r\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\r\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\r\n\t}\r\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\r\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\r\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\r\n\t\tri = 0;\r\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\r\n\t}\r\n\tif(fmt.match(phone)) {\r\n\t\to = write_num_int(type, \"##########\", val);\r\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\r\n\t}\r\n\tvar oa = \"\";\r\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\r\n\t\tri = Math.min(r[4].length,7);\r\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\r\n\t\to = \"\" + sign;\r\n\t\toa = write_num(\"n\", r[1], ff[1]);\r\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\r\n\t\to += oa + r[2] + \"/\" + r[3];\r\n\t\toa = rpad_(ff[2],ri);\r\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\r\n\t\to += oa;\r\n\t\treturn o;\r\n\t}\r\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\r\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\r\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\r\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\r\n\t}\r\n\tif((r = fmt.match(/^[#0?]+$/))) {\r\n\t\to = \"\" + val;\r\n\t\tif(fmt.length <= o.length) return o;\r\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\r\n\t}\r\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/))) {\r\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\r\n\t\tri = o.indexOf(\".\");\r\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\r\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\r\n\t}\r\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\r\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\r\n\t}\r\n\tswitch(fmt) {\r\n\t\tcase \"###,###\":\r\n\t\tcase \"##,###\":\r\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\r\n\t\tdefault:\r\n\t\t\tif(fmt.match(/\\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(\".\")), val) + hashq(fmt.slice(fmt.lastIndexOf(\".\")));\r\n\t}\r\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\r\n}\r\nreturn function write_num(type, fmt, val) {\r\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\r\n};})();\r\nfunction split_fmt(fmt) {\r\n\tvar out = [];\r\n\tvar in_str = false/*, cc*/;\r\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\r\n\t\tcase 34: /* '\"' */\r\n\t\t\tin_str = !in_str; break;\r\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\r\n\t\t\t++i; break;\r\n\t\tcase 59: /* ';' */\r\n\t\t\tout[out.length] = fmt.substr(j,i-j);\r\n\t\t\tj = i+1;\r\n\t}\r\n\tout[out.length] = fmt.substr(j);\r\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\r\n\treturn out;\r\n}\r\nSSF._split = split_fmt;\r\nvar abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\r\nfunction fmt_is_date(fmt) {\r\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\r\n\twhile(i < fmt.length) {\r\n\t\tswitch((c = fmt.charAt(i))) {\r\n\t\t\tcase 'G': if(isgeneral(fmt, i)) i+= 6; i++; break;\r\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\r\n\t\t\tcase '\\\\': i+=2; break;\r\n\t\t\tcase '_': i+=2; break;\r\n\t\t\tcase '@': ++i; break;\r\n\t\t\tcase 'B': case 'b':\r\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\r\n\t\t\tcase 'A': case 'a': case '上':\r\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\r\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\r\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\r\n\t\t\t\t++i; break;\r\n\t\t\tcase '[':\r\n\t\t\t\to = c;\r\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\r\n\t\t\t\tif(o.match(abstime)) return true;\r\n\t\t\t\tbreak;\r\n\t\t\tcase '.':\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase '0': case '#':\r\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\r\n\t\t\t\tbreak;\r\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\r\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\r\n\t\t\tcase '(': case ')': ++i; break;\r\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\r\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\r\n\t\t\tcase ' ': ++i; break;\r\n\t\t\tdefault: ++i; break;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\nSSF.is_date = fmt_is_date;\r\nfunction eval_fmt(fmt, v, opts, flen) {\r\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\r\n\tvar hr='H';\r\n\t/* Tokenize */\r\n\twhile(i < fmt.length) {\r\n\t\tswitch((c = fmt.charAt(i))) {\r\n\t\t\tcase 'G': /* General */\r\n\t\t\t\tif(!isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\r\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\r\n\t\t\tcase '\"': /* Literal text */\r\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\r\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\r\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\r\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\r\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\r\n\t\t\tcase '@': /* Text Placeholder */\r\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\r\n\t\t\tcase 'B': case 'b':\r\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\r\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\r\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\r\n\t\t\t\t}\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\r\n\t\t\t\tc = c.toLowerCase();\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\r\n\t\t\t\tif(v < 0) return \"\";\r\n\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\r\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\r\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\r\n\t\t\t\tif(c === 'h') c = hr;\r\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\r\n\t\t\tcase 'A': case 'a': case '上':\r\n\t\t\t\tvar q={t:c, v:c};\r\n\t\t\t\tif(dt==null) dt=parse_date_code(v, opts);\r\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;}\r\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'; }\r\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\r\n\t\t\t\telse { q.t = \"t\"; ++i; }\r\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\r\n\t\t\t\tout[out.length] = q; lst = c; break;\r\n\t\t\tcase '[':\r\n\t\t\t\to = c;\r\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\r\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\r\n\t\t\t\tif(o.match(abstime)) {\r\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\r\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\r\n\t\t\t\t\tlst = o.charAt(1);\r\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\r\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\r\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t/* Numbers */\r\n\t\t\tcase '.':\r\n\t\t\t\tif(dt != null) {\r\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\r\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\r\n\t\t\t\t}\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase '0': case '#':\r\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\r\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\r\n\t\t\tcase '?':\r\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\r\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\r\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\r\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\r\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\r\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\r\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\r\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\r\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\r\n\t\t\tdefault:\r\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\r\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\r\n\t\t}\r\n\t}\r\n\r\n\t/* Scan for date/time parts */\r\n\tvar bt = 0, ss0 = 0, ssm;\r\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\r\n\t\tswitch(out[i].t) {\r\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\r\n\t\t\tcase 's':\r\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\r\n\t\t\t\tif(bt < 3) bt = 3;\r\n\t\t\t/* falls through */\r\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\r\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\r\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'Z':\r\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\r\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\r\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\r\n\t\t}\r\n\t}\r\n\t/* time rounding depends on presence of minute / second / usec fields */\r\n\tswitch(bt) {\r\n\t\tcase 0: break;\r\n\t\tcase 1:\r\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\r\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\r\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\r\n\t\t\tbreak;\r\n\t\tcase 2:\r\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\r\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\t/* replace fields */\r\n\tvar nstr = \"\", jj;\r\n\tfor(i=0; i < out.length; ++i) {\r\n\t\tswitch(out[i].t) {\r\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\r\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\r\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\r\nout[i].v = write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\r\n\t\t\t\tout[i].t = 't'; break;\r\n\t\t\tcase 'n': case '?':\r\n\t\t\t\tjj = i+1;\r\n\t\t\t\twhile(out[jj] != null && (\r\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\r\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 === '/')) ||\r\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\r\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\r\n\t\t\t\t)) {\r\n\t\t\t\t\tout[i].v += out[jj].v;\r\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\r\n\t\t\t\t}\r\n\t\t\t\tnstr += out[i].v;\r\n\t\t\t\ti = jj-1; break;\r\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;\r\n\t\t}\r\n\t}\r\n\tvar vv = \"\", myv, ostr;\r\n\tif(nstr.length > 0) {\r\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\r\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\r\n\t\t\tostr = write_num('n', nstr, myv);\r\n\t\t} else {\r\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\r\n\t\t\tostr = write_num('n', nstr, myv);\r\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\r\n\t\t\t\tostr = ostr.substr(1);\r\n\t\t\t\tout[0].v = \"-\" + out[0].v;\r\n\t\t\t}\r\n\t\t}\r\n\t\tjj=ostr.length-1;\r\n\t\tvar decpt = out.length;\r\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; }\r\n\t\tvar lasti=out.length;\r\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\r\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\r\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\r\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); }\r\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\r\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\r\n\t\t\t\tout[i].t = 't';\r\n\t\t\t\tlasti = i;\r\n\t\t\t}\r\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\r\n\t\t}\r\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\r\n\t\t\tjj = ostr.indexOf(\".\")-1;\r\n\t\t\tfor(i=decpt; i>= 0; --i) {\r\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\r\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\r\n\t\t\t\tvv = out[i].v.substr(j+1);\r\n\t\t\t\tfor(; j>=0; --j) {\r\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\r\n\t\t\t\t}\r\n\t\t\t\tout[i].v = vv;\r\n\t\t\t\tout[i].t = 't';\r\n\t\t\t\tlasti = i;\r\n\t\t\t}\r\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\r\n\t\t\tjj = ostr.indexOf(\".\")+1;\r\n\t\t\tfor(i=decpt; i<out.length; ++i) {\r\n\t\t\t\tif(out[i] == null || ('n?('.indexOf(out[i].t) === -1 && i !== decpt)) continue;\r\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\r\n\t\t\t\tvv = out[i].v.substr(0,j);\r\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\r\n\t\t\t\t\tif(jj<ostr.length) vv += ostr.charAt(jj++);\r\n\t\t\t\t}\r\n\t\t\t\tout[i].v = vv;\r\n\t\t\t\tout[i].t = 't';\r\n\t\t\t\tlasti = i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n?'.indexOf(out[i].t)>-1) {\r\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\r\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\r\n\t\tout[i].t = 't';\r\n\t}\r\n\tvar retval = \"\";\r\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\r\n\treturn retval;\r\n}\r\nSSF._eval = eval_fmt;\r\nvar cfregex = /\\[[=<>]/;\r\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\r\nfunction chkcond(v, rr) {\r\n\tif(rr == null) return false;\r\n\tvar thresh = parseFloat(rr[2]);\r\n\tswitch(rr[1]) {\r\n\t\tcase \"=\": if(v == thresh) return true; break;\r\n\t\tcase \">\": if(v > thresh) return true; break;\r\n\t\tcase \"<\": if(v < thresh) return true; break;\r\n\t\tcase \"<>\": if(v != thresh) return true; break;\r\n\t\tcase \">=\": if(v >= thresh) return true; break;\r\n\t\tcase \"<=\": if(v <= thresh) return true; break;\r\n\t}\r\n\treturn false;\r\n}\r\nfunction choose_fmt(f, v) {\r\n\tvar fmt = split_fmt(f);\r\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\r\n\tif(l<4 && lat>-1) --l;\r\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\r\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\r\n\tswitch(fmt.length) {\r\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\r\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\r\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\r\n\t\tcase 4: break;\r\n\t}\r\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\r\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\r\n\tif(fmt[0].match(cfregex) != null || fmt[1].match(cfregex) != null) {\r\n\t\tvar m1 = fmt[0].match(cfregex2);\r\n\t\tvar m2 = fmt[1].match(cfregex2);\r\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\r\n\t}\r\n\treturn [l, ff];\r\n}\r\nfunction format(fmt,v,o) {\r\n\tif(o == null) o = {};\r\n\tvar sfmt = \"\";\r\n\tswitch(typeof fmt) {\r\n\t\tcase \"string\":\r\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\r\n\t\t\telse sfmt = fmt;\r\n\t\t\tbreak;\r\n\t\tcase \"number\":\r\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\r\n\t\t\telse sfmt = (o.table != null ? (o.table) : table_fmt)[fmt];\r\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[default_map[fmt]]) || table_fmt[default_map[fmt]];\r\n\t\t\tif(sfmt == null) sfmt = default_str[fmt] || \"General\";\r\n\t\t\tbreak;\r\n\t}\r\n\tif(isgeneral(sfmt,0)) return general_fmt(v, o);\r\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\r\n\tvar f = choose_fmt(sfmt, v);\r\n\tif(isgeneral(f[1])) return general_fmt(v, o);\r\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\r\n\telse if(v === \"\" || v == null) return \"\";\r\n\treturn eval_fmt(f[1], v, o, f[0]);\r\n}\r\nfunction load_entry(fmt, idx) {\r\n\tif(typeof idx != 'number') {\r\n\t\tidx = +idx || -1;\r\nfor(var i = 0; i < 0x0188; ++i) {\r\nif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\r\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\r\n\t\t}\r\nif(idx < 0) idx = 0x187;\r\n\t}\r\ntable_fmt[idx] = fmt;\r\n\treturn idx;\r\n}\r\nSSF.load = load_entry;\r\nSSF._table = table_fmt;\r\nSSF.get_table = function get_table() { return table_fmt; };\r\nSSF.load_table = function load_table(tbl) {\r\n\tfor(var i=0; i!=0x0188; ++i)\r\n\t\tif(tbl[i] !== undefined) load_entry(tbl[i], i);\r\n};\r\nSSF.init_table = init_table;\r\nSSF.format = format;\r\n};\r\nmake_ssf(SSF);\r\n/* map from xlml named formats to SSF TODO: localize */\r\nvar XLMLFormatMap/*{[string]:string}*/ = ({\r\n\t\"General Number\": \"General\",\r\n\t\"General Date\": SSF._table[22],\r\n\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\r\n\t\"Medium Date\": SSF._table[15],\r\n\t\"Short Date\": SSF._table[14],\r\n\t\"Long Time\": SSF._table[19],\r\n\t\"Medium Time\": SSF._table[18],\r\n\t\"Short Time\": SSF._table[20],\r\n\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\r\n\t\"Fixed\": SSF._table[2],\r\n\t\"Standard\": SSF._table[4],\r\n\t\"Percent\": SSF._table[10],\r\n\t\"Scientific\": SSF._table[11],\r\n\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\r\n\t\"True/False\": '\"True\";\"True\";\"False\";@',\r\n\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\r\n});\r\n\r\nvar SSFImplicit/*{[number]:string}*/ = ({\r\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\r\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\r\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\r\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\r\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\r\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\r\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\r\n\t\"36\": 'm/d/yy',\r\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\r\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\r\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\r\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\r\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\r\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\r\n\t\"59\": '0',\r\n\t\"60\": '0.00',\r\n\t\"61\": '#,##0',\r\n\t\"62\": '#,##0.00',\r\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\r\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\r\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\r\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\r\n\t\"67\": '0%',\r\n\t\"68\": '0.00%',\r\n\t\"69\": '# ?/?',\r\n\t\"70\": '# ??/??',\r\n\t\"71\": 'm/d/yy',\r\n\t\"72\": 'm/d/yy',\r\n\t\"73\": 'd-mmm-yy',\r\n\t\"74\": 'd-mmm',\r\n\t\"75\": 'mmm-yy',\r\n\t\"76\": 'h:mm',\r\n\t\"77\": 'h:mm:ss',\r\n\t\"78\": 'm/d/yy h:mm',\r\n\t\"79\": 'mm:ss',\r\n\t\"80\": '[h]:mm:ss',\r\n\t\"81\": 'mmss.0'\r\n});\r\n\r\n/* dateNF parse TODO: move to SSF */\r\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\r\nfunction dateNF_regex(dateNF) {\r\n\tvar fmt = typeof dateNF == \"number\" ? SSF._table[dateNF] : dateNF;\r\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\r\n\treturn new RegExp(\"^\" + fmt + \"$\");\r\n}\r\nfunction dateNF_fix(str, dateNF, match) {\r\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\r\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\r\n\t\tvar v = parseInt(match[i+1], 10);\r\n\t\tswitch(n.toLowerCase().charAt(0)) {\r\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\r\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\r\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\r\n\t\t}\r\n\t});\r\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\r\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));\r\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\r\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\r\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\r\n\tif(H == -1 && M == -1 && S == -1) return datestr;\r\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\r\n\treturn datestr + \"T\" + timestr;\r\n}\r\n\r\nvar DO_NOT_EXPORT_CFB = true;\r\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\r\n/* vim: set ts=2: */\r\n/*jshint eqnull:true */\r\n/*exported CFB */\r\n/*global Uint8Array:false, Uint16Array:false */\r\n\r\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\r\n/* vim: set ts=2: */\r\n/*exported CRC32 */\r\nvar CRC32;\r\n(function (factory) {\r\n\t/*jshint ignore:start */\r\n\t/*eslint-disable */\r\n\tfactory(CRC32 = {});\r\n\t/*eslint-enable */\r\n\t/*jshint ignore:end */\r\n}(function(CRC32) {\r\nCRC32.version = '1.2.0';\r\n/* see perf/crc32table.js */\r\n/*global Int32Array */\r\nfunction signed_crc_table() {\r\n\tvar c = 0, table = new Array(256);\r\n\r\n\tfor(var n =0; n != 256; ++n){\r\n\t\tc = n;\r\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\r\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\r\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\r\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\r\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\r\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\r\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\r\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\r\n\t\ttable[n] = c;\r\n\t}\r\n\r\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\r\n}\r\n\r\nvar T = signed_crc_table();\r\nfunction crc32_bstr(bstr, seed) {\r\n\tvar C = seed ^ -1, L = bstr.length - 1;\r\n\tfor(var i = 0; i < L;) {\r\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\r\n\t}\r\n\tif(i === L) C = (C>>>8) ^ T[(C ^ bstr.charCodeAt(i))&0xFF];\r\n\treturn C ^ -1;\r\n}\r\n\r\nfunction crc32_buf(buf, seed) {\r\n\tif(buf.length > 10000) return crc32_buf_8(buf, seed);\r\n\tvar C = seed ^ -1, L = buf.length - 3;\r\n\tfor(var i = 0; i < L;) {\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t}\r\n\twhile(i < L+3) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\treturn C ^ -1;\r\n}\r\n\r\nfunction crc32_buf_8(buf, seed) {\r\n\tvar C = seed ^ -1, L = buf.length - 7;\r\n\tfor(var i = 0; i < L;) {\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\t}\r\n\twhile(i < L+7) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\r\n\treturn C ^ -1;\r\n}\r\n\r\nfunction crc32_str(str, seed) {\r\n\tvar C = seed ^ -1;\r\n\tfor(var i = 0, L=str.length, c, d; i < L;) {\r\n\t\tc = str.charCodeAt(i++);\r\n\t\tif(c < 0x80) {\r\n\t\t\tC = (C>>>8) ^ T[(C ^ c)&0xFF];\r\n\t\t} else if(c < 0x800) {\r\n\t\t\tC = (C>>>8) ^ T[(C ^ (192|((c>>6)&31)))&0xFF];\r\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\r\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\r\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\r\n\t\t\tC = (C>>>8) ^ T[(C ^ (240|((c>>8)&7)))&0xFF];\r\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>2)&63)))&0xFF];\r\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\r\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(d&63)))&0xFF];\r\n\t\t} else {\r\n\t\t\tC = (C>>>8) ^ T[(C ^ (224|((c>>12)&15)))&0xFF];\r\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>6)&63)))&0xFF];\r\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\r\n\t\t}\r\n\t}\r\n\treturn C ^ -1;\r\n}\r\nCRC32.table = T;\r\nCRC32.bstr = crc32_bstr;\r\nCRC32.buf = crc32_buf;\r\nCRC32.str = crc32_str;\r\n}));\r\n/* [MS-CFB] v20171201 */\r\nvar CFB = (function _CFB(){\r\nvar exports = {};\r\nexports.version = '1.1.4';\r\n/* [MS-CFB] 2.6.4 */\r\nfunction namecmp(l, r) {\r\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\r\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\r\n\t\tif((c = L[i].length - R[i].length)) return c;\r\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\r\n\t}\r\n\treturn L.length - R.length;\r\n}\r\nfunction dirname(p) {\r\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\r\n\tvar c = p.lastIndexOf(\"/\");\r\n\treturn (c === -1) ? p : p.slice(0, c+1);\r\n}\r\n\r\nfunction filename(p) {\r\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\r\n\tvar c = p.lastIndexOf(\"/\");\r\n\treturn (c === -1) ? p : p.slice(c+1);\r\n}\r\n/* -------------------------------------------------------------------------- */\r\n/* DOS Date format:\r\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\r\n add 1980 to stored year\r\n stored second should be doubled\r\n*/\r\n\r\n/* write JS date to buf as a DOS date */\r\nfunction write_dos_date(buf, date) {\r\n\tif(typeof date === \"string\") date = new Date(date);\r\n\tvar hms = date.getHours();\r\n\thms = hms << 6 | date.getMinutes();\r\n\thms = hms << 5 | (date.getSeconds()>>>1);\r\n\tbuf.write_shift(2, hms);\r\n\tvar ymd = (date.getFullYear() - 1980);\r\n\tymd = ymd << 4 | (date.getMonth()+1);\r\n\tymd = ymd << 5 | date.getDate();\r\n\tbuf.write_shift(2, ymd);\r\n}\r\n\r\n/* read four bytes from buf and interpret as a DOS date */\r\nfunction parse_dos_date(buf) {\r\n\tvar hms = buf.read_shift(2) & 0xFFFF;\r\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\r\n\tvar val = new Date();\r\n\tvar d = ymd & 0x1F; ymd >>>= 5;\r\n\tvar m = ymd & 0x0F; ymd >>>= 4;\r\n\tval.setMilliseconds(0);\r\n\tval.setFullYear(ymd + 1980);\r\n\tval.setMonth(m-1);\r\n\tval.setDate(d);\r\n\tvar S = hms & 0x1F; hms >>>= 5;\r\n\tvar M = hms & 0x3F; hms >>>= 6;\r\n\tval.setHours(hms);\r\n\tval.setMinutes(M);\r\n\tval.setSeconds(S<<1);\r\n\treturn val;\r\n}\r\nfunction parse_extra_field(blob) {\r\n\tprep_blob(blob, 0);\r\n\tvar o = {};\r\n\tvar flags = 0;\r\n\twhile(blob.l <= blob.length - 4) {\r\n\t\tvar type = blob.read_shift(2);\r\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\r\n\t\tvar p = {};\r\n\t\tswitch(type) {\r\n\t\t\t/* UNIX-style Timestamps */\r\n\t\t\tcase 0x5455: {\r\n\t\t\t\tflags = blob.read_shift(1);\r\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\r\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\r\n\t\t\t\tif(sz > 5) {\r\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\r\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\r\n\t\t\t\t}\r\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tblob.l = tgt;\r\n\t\to[type] = p;\r\n\t}\r\n\treturn o;\r\n}\r\nvar fs;\r\nfunction get_fs() { return fs || (fs = require('fs')); }\r\nfunction parse(file, options) {\r\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\r\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\r\nvar mver = 3;\r\nvar ssz = 512;\r\nvar nmfs = 0; // number of mini FAT sectors\r\nvar difat_sec_cnt = 0;\r\nvar dir_start = 0;\r\nvar minifat_start = 0;\r\nvar difat_start = 0;\r\n\r\nvar fat_addrs = []; // locations of FAT sectors\r\n\r\n/* [MS-CFB] 2.2 Compound File Header */\r\nvar blob = file.slice(0,512);\r\nprep_blob(blob, 0);\r\n\r\n/* major version */\r\nvar mv = check_get_mver(blob);\r\nmver = mv[0];\r\nswitch(mver) {\r\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\r\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\r\n\t/* falls through */\r\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\r\n}\r\n\r\n/* reprocess header */\r\nif(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); }\r\n/* Save header for final object */\r\nvar header = file.slice(0,ssz);\r\n\r\ncheck_shifts(blob, mver);\r\n\r\n// Number of Directory Sectors\r\nvar dir_cnt = blob.read_shift(4, 'i');\r\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\r\n\r\n// Number of FAT Sectors\r\nblob.l += 4;\r\n\r\n// First Directory Sector Location\r\ndir_start = blob.read_shift(4, 'i');\r\n\r\n// Transaction Signature\r\nblob.l += 4;\r\n\r\n// Mini Stream Cutoff Size\r\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\r\n\r\n// First Mini FAT Sector Location\r\nminifat_start = blob.read_shift(4, 'i');\r\n\r\n// Number of Mini FAT Sectors\r\nnmfs = blob.read_shift(4, 'i');\r\n\r\n// First DIFAT sector location\r\ndifat_start = blob.read_shift(4, 'i');\r\n\r\n// Number of DIFAT Sectors\r\ndifat_sec_cnt = blob.read_shift(4, 'i');\r\n\r\n// Grab FAT Sector Locations\r\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\r\n\tq = blob.read_shift(4, 'i');\r\n\tif(q<0) break;\r\n\tfat_addrs[j] = q;\r\n}\r\n\r\n/** Break the file up into sectors */\r\nvar sectors = sectorify(file, ssz);\r\n\r\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\r\n\r\n/** Chains */\r\nvar sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);\r\n\r\nsector_list[dir_start].name = \"!Directory\";\r\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\r\nsector_list[fat_addrs[0]].name = \"!FAT\";\r\nsector_list.fat_addrs = fat_addrs;\r\nsector_list.ssz = ssz;\r\n\r\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\r\nvar files = {}, Paths = [], FileIndex = [], FullPaths = [];\r\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\r\n\r\nbuild_full_paths(FileIndex, FullPaths, Paths);\r\nPaths.shift();\r\n\r\nvar o = {\r\n\tFileIndex: FileIndex,\r\n\tFullPaths: FullPaths\r\n};\r\n\r\n// $FlowIgnore\r\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\r\nreturn o;\r\n} // parse\r\n\r\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\r\nfunction check_get_mver(blob) {\r\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\r\n\t// header signature 8\r\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\r\n\r\n\t// clsid 16\r\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\r\n\tblob.l += 16;\r\n\r\n\t// minor version 2\r\n\tvar mver = blob.read_shift(2, 'u');\r\n\r\n\treturn [blob.read_shift(2,'u'), mver];\r\n}\r\nfunction check_shifts(blob, mver) {\r\n\tvar shift = 0x09;\r\n\r\n\t// Byte Order\r\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\r\n\tblob.l += 2;\r\n\r\n\t// Sector Shift\r\n\tswitch((shift = blob.read_shift(2))) {\r\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\r\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\r\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\r\n\t}\r\n\r\n\t// Mini Sector Shift\r\n\tblob.chk('0600', 'Mini Sector Shift: ');\r\n\r\n\t// Reserved\r\n\tblob.chk('000000000000', 'Reserved: ');\r\n}\r\n\r\n/** Break the file up into sectors */\r\nfunction sectorify(file, ssz) {\r\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\r\n\tvar sectors = [];\r\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\r\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\r\n\treturn sectors;\r\n}\r\n\r\n/* [MS-CFB] 2.6.4 Red-Black Tree */\r\nfunction build_full_paths(FI, FP, Paths) {\r\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\r\n\tvar dad = [], q = [];\r\n\r\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\r\n\r\n\tfor(; j < q.length; ++j) {\r\n\t\ti = q[j];\r\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\r\n\t\tif(dad[i] === i) {\r\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\r\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\r\n\t\t}\r\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\r\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\r\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\r\n\t}\r\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\r\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\r\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\r\n\t}\r\n\r\n\tfor(i=1; i < pl; ++i) {\r\n\t\tif(FI[i].type === 0 /* unknown */) continue;\r\n\t\tj = i;\r\n\t\tif(j != dad[j]) do {\r\n\t\t\tj = dad[j];\r\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\r\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\r\n\t\tdad[i] = -1;\r\n\t}\r\n\r\n\tFP[0] += \"/\";\r\n\tfor(i=1; i < pl; ++i) {\r\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\r\n\t}\r\n}\r\n\r\nfunction get_mfat_entry(entry, payload, mini) {\r\n\tvar start = entry.start, size = entry.size;\r\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size));\r\n\tvar o = [];\r\n\tvar idx = start;\r\n\twhile(mini && size > 0 && idx >= 0) {\r\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\r\n\t\tsize -= MSSZ;\r\n\t\tidx = __readInt32LE(mini, idx * 4);\r\n\t}\r\n\tif(o.length === 0) return (new_buf(0));\r\n\treturn (bconcat(o).slice(0, entry.size));\r\n}\r\n\r\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\r\n DIFAT chains by storing the next sector number as the last 32 bits */\r\nfunction sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {\r\n\tvar q = ENDOFCHAIN;\r\n\tif(idx === ENDOFCHAIN) {\r\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\r\n\t} else if(idx !== -1 /*FREESECT*/) {\r\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\r\n\t\tif(!sector) return;\r\n\t\tfor(var i = 0; i < m; ++i) {\r\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\r\n\t\t\tfat_addrs.push(q);\r\n\t\t}\r\n\t\tif(cnt >= 1) sleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\r\n\t}\r\n}\r\n\r\n/** Follow the linked list of sectors for a given starting point */\r\nfunction get_sector_list(sectors, start, fat_addrs, ssz, chkd) {\r\n\tvar buf = [], buf_chain = [];\r\n\tif(!chkd) chkd = [];\r\n\tvar modulus = ssz - 1, j = 0, jj = 0;\r\n\tfor(j=start; j>=0;) {\r\n\t\tchkd[j] = true;\r\n\t\tbuf[buf.length] = j;\r\n\t\tbuf_chain.push(sectors[j]);\r\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\r\n\t\tjj = ((j*4) & modulus);\r\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\r\n\t\tif(!sectors[addr]) break;\r\n\t\tj = __readInt32LE(sectors[addr], jj);\r\n\t}\r\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\r\n}\r\n\r\n/** Chase down the sector linked lists */\r\nfunction make_sector_list(sectors, dir_start, fat_addrs, ssz) {\r\n\tvar sl = sectors.length, sector_list = ([]);\r\n\tvar chkd = [], buf = [], buf_chain = [];\r\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\r\n\tfor(i=0; i < sl; ++i) {\r\n\t\tbuf = ([]);\r\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\r\n\t\tif(chkd[k]) continue;\r\n\t\tbuf_chain = [];\r\n\t\tvar seen = [];\r\n\t\tfor(j=k; j>=0;) {\r\n\t\t\tseen[j] = true;\r\n\t\t\tchkd[j] = true;\r\n\t\t\tbuf[buf.length] = j;\r\n\t\t\tbuf_chain.push(sectors[j]);\r\n\t\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\r\n\t\t\tjj = ((j*4) & modulus);\r\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\r\n\t\t\tif(!sectors[addr]) break;\r\n\t\t\tj = __readInt32LE(sectors[addr], jj);\r\n\t\t\tif(seen[j]) break;\r\n\t\t}\r\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])});\r\n\t}\r\n\treturn sector_list;\r\n}\r\n\r\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\r\nfunction read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, mini) {\r\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\r\n\tvar sector = sector_list[dir_start].data;\r\n\tvar i = 0, namelen = 0, name;\r\n\tfor(; i < sector.length; i+= 128) {\r\n\t\tvar blob = sector.slice(i, i+128);\r\n\t\tprep_blob(blob, 64);\r\n\t\tnamelen = blob.read_shift(2);\r\n\t\tname = __utf16le(blob,0,namelen-pl);\r\n\t\tPaths.push(name);\r\n\t\tvar o = ({\r\n\t\t\tname: name,\r\n\t\t\ttype: blob.read_shift(1),\r\n\t\t\tcolor: blob.read_shift(1),\r\n\t\t\tL: blob.read_shift(4, 'i'),\r\n\t\t\tR: blob.read_shift(4, 'i'),\r\n\t\t\tC: blob.read_shift(4, 'i'),\r\n\t\t\tclsid: blob.read_shift(16),\r\n\t\t\tstate: blob.read_shift(4, 'i'),\r\n\t\t\tstart: 0,\r\n\t\t\tsize: 0\r\n\t\t});\r\n\t\tvar ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\r\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\r\n\t\tvar mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\r\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\r\n\t\to.start = blob.read_shift(4, 'i');\r\n\t\to.size = blob.read_shift(4, 'i');\r\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\r\n\t\tif(o.type === 5) { /* root */\r\n\t\t\tminifat_store = o.start;\r\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\r\n\t\t\t/*minifat_size = o.size;*/\r\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\r\n\t\t\to.storage = 'fat';\r\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);\r\n\t\t\tsector_list[o.start].name = o.name;\r\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size));\r\n\t\t} else {\r\n\t\t\to.storage = 'minifat';\r\n\t\t\tif(o.size < 0) o.size = 0;\r\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\r\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(o.content) prep_blob(o.content, 0);\r\n\t\tfiles[name] = o;\r\n\t\tFileIndex.push(o);\r\n\t}\r\n}\r\n\r\nfunction read_date(blob, offset) {\r\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\r\n}\r\n\r\nfunction read_file(filename, options) {\r\n\tget_fs();\r\n\treturn parse(fs.readFileSync(filename), options);\r\n}\r\n\r\nfunction read(blob, options) {\r\n\tswitch(options && options.type || \"base64\") {\r\n\t\tcase \"file\": return read_file(blob, options);\r\n\t\tcase \"base64\": return parse(s2a(Base64.decode(blob)), options);\r\n\t\tcase \"binary\": return parse(s2a(blob), options);\r\n\t}\r\n\treturn parse(blob, options);\r\n}\r\n\r\nfunction init_cfb(cfb, opts) {\r\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\r\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\r\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\r\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\r\n\tif(cfb.FullPaths.length === 0) {\r\n\t\tcfb.FullPaths[0] = root + \"/\";\r\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 });\r\n\t}\r\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\r\n\tseed_cfb(cfb);\r\n}\r\nfunction seed_cfb(cfb) {\r\n\tvar nm = \"\\u0001Sh33tJ5\";\r\n\tif(CFB.find(cfb, \"/\" + nm)) return;\r\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\r\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }));\r\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\r\n\trebuild_cfb(cfb);\r\n}\r\nfunction rebuild_cfb(cfb, f) {\r\n\tinit_cfb(cfb);\r\n\tvar gc = false, s = false;\r\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\r\n\t\tvar _file = cfb.FileIndex[i];\r\n\t\tswitch(_file.type) {\r\n\t\t\tcase 0:\r\n\t\t\t\tif(s) gc = true;\r\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\r\n\t\t\t\tbreak;\r\n\t\t\tcase 1: case 2: case 5:\r\n\t\t\t\ts = true;\r\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\r\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault: gc = true; break;\r\n\t\t}\r\n\t}\r\n\tif(!gc && !f) return;\r\n\r\n\tvar now = new Date(1987, 1, 19), j = 0;\r\n\tvar data = [];\r\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\r\n\t\tif(cfb.FileIndex[i].type === 0) continue;\r\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\r\n\t}\r\n\tfor(i = 0; i < data.length; ++i) {\r\n\t\tvar dad = dirname(data[i][0]);\r\n\t\ts = false;\r\n\t\tfor(j = 0; j < data.length; ++j) if(data[j][0] === dad) s = true;\r\n\t\tif(!s) data.push([dad, ({\r\n\t\t\tname: filename(dad).replace(\"/\",\"\"),\r\n\t\t\ttype: 1,\r\n\t\t\tclsid: HEADER_CLSID,\r\n\t\t\tct: now, mt: now,\r\n\t\t\tcontent: null\r\n\t\t})]);\r\n\t}\r\n\r\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\r\n\tcfb.FullPaths = []; cfb.FileIndex = [];\r\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\r\n\tfor(i = 0; i < data.length; ++i) {\r\n\t\tvar elt = cfb.FileIndex[i];\r\n\t\tvar nm = cfb.FullPaths[i];\r\n\r\n\t\telt.name = filename(nm).replace(\"/\",\"\");\r\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\r\n\t\telt.size = elt.content ? elt.content.length : 0;\r\n\t\telt.start = 0;\r\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\r\n\t\tif(i === 0) {\r\n\t\t\telt.C = data.length > 1 ? 1 : -1;\r\n\t\t\telt.size = 0;\r\n\t\t\telt.type = 5;\r\n\t\t} else if(nm.slice(-1) == \"/\") {\r\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\r\n\t\t\telt.C = j >= data.length ? -1 : j;\r\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\r\n\t\t\telt.R = j >= data.length ? -1 : j;\r\n\t\t\telt.type = 1;\r\n\t\t} else {\r\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\r\n\t\t\telt.type = 2;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\nfunction _write(cfb, options) {\r\n\tvar _opts = options || {};\r\n\trebuild_cfb(cfb);\r\n\tif(_opts.fileType == 'zip') return write_zip(cfb, _opts);\r\n\tvar L = (function(cfb){\r\n\t\tvar mini_size = 0, fat_size = 0;\r\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\r\n\t\t\tvar file = cfb.FileIndex[i];\r\n\t\t\tif(!file.content) continue;\r\nvar flen = file.content.length;\r\n\t\t\tif(flen > 0){\r\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\r\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\r\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\r\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\r\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\r\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\r\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\r\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);\r\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\r\n\t\tcfb.FileIndex[0].size = mini_size << 6;\r\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\r\n\t\treturn L;\r\n\t})(cfb);\r\n\tvar o = new_buf(L[7] << 9);\r\n\tvar i = 0, T = 0;\r\n\t{\r\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\r\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\r\n\t\to.write_shift(2, 0x003E);\r\n\t\to.write_shift(2, 0x0003);\r\n\t\to.write_shift(2, 0xFFFE);\r\n\t\to.write_shift(2, 0x0009);\r\n\t\to.write_shift(2, 0x0006);\r\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\r\n\t\to.write_shift(4, 0);\r\n\t\to.write_shift(4, L[2]);\r\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\r\n\t\to.write_shift(4, 0);\r\n\t\to.write_shift(4, 1<<12);\r\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\r\n\t\to.write_shift(4, L[3]);\r\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\r\n\t\to.write_shift(4, L[1]);\r\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\r\n\t}\r\n\tif(L[1]) {\r\n\t\tfor(T = 0; T < L[1]; ++T) {\r\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\r\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\r\n\t\t}\r\n\t}\r\n\tvar chainit = function(w) {\r\n\t\tfor(T += w; i<T-1; ++i) o.write_shift(-4, i+1);\r\n\t\tif(w) { ++i; o.write_shift(-4, ENDOFCHAIN); }\r\n\t};\r\n\tT = i = 0;\r\n\tfor(T+=L[1]; i<T; ++i) o.write_shift(-4, consts.DIFSECT);\r\n\tfor(T+=L[2]; i<T; ++i) o.write_shift(-4, consts.FATSECT);\r\n\tchainit(L[3]);\r\n\tchainit(L[4]);\r\n\tvar j = 0, flen = 0;\r\n\tvar file = cfb.FileIndex[0];\r\n\tfor(; j < cfb.FileIndex.length; ++j) {\r\n\t\tfile = cfb.FileIndex[j];\r\n\t\tif(!file.content) continue;\r\nflen = file.content.length;\r\n\t\tif(flen < 0x1000) continue;\r\n\t\tfile.start = T;\r\n\t\tchainit((flen + 0x01FF) >> 9);\r\n\t}\r\n\tchainit((L[6] + 7) >> 3);\r\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\r\n\tT = i = 0;\r\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\r\n\t\tfile = cfb.FileIndex[j];\r\n\t\tif(!file.content) continue;\r\nflen = file.content.length;\r\n\t\tif(!flen || flen >= 0x1000) continue;\r\n\t\tfile.start = T;\r\n\t\tchainit((flen + 0x3F) >> 6);\r\n\t}\r\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\r\n\tfor(i = 0; i < L[4]<<2; ++i) {\r\n\t\tvar nm = cfb.FullPaths[i];\r\n\t\tif(!nm || nm.length === 0) {\r\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\r\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\r\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\tfile = cfb.FileIndex[i];\r\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\r\n\t\tvar _nm = (i === 0 && _opts.root) || file.name;\r\n\t\tflen = 2*(_nm.length+1);\r\n\t\to.write_shift(64, _nm, \"utf16le\");\r\n\t\to.write_shift(2, flen);\r\n\t\to.write_shift(1, file.type);\r\n\t\to.write_shift(1, file.color);\r\n\t\to.write_shift(-4, file.L);\r\n\t\to.write_shift(-4, file.R);\r\n\t\to.write_shift(-4, file.C);\r\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\r\n\t\telse o.write_shift(16, file.clsid, \"hex\");\r\n\t\to.write_shift(4, file.state || 0);\r\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\r\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\r\n\t\to.write_shift(4, file.start);\r\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\r\n\t}\r\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\r\n\t\tfile = cfb.FileIndex[i];\r\nif(file.size >= 0x1000) {\r\n\t\t\to.l = (file.start+1) << 9;\r\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\r\n\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\r\n\t\t}\r\n\t}\r\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\r\n\t\tfile = cfb.FileIndex[i];\r\nif(file.size > 0 && file.size < 0x1000) {\r\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\r\n\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\r\n\t\t}\r\n\t}\r\n\twhile(o.l < o.length) o.write_shift(1, 0);\r\n\treturn o;\r\n}\r\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\r\nfunction find(cfb, path) {\r\n\tvar UCFullPaths = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\r\n\tvar UCPaths = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\r\n\tvar k = false;\r\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\r\n\telse k = path.indexOf(\"/\") !== -1;\r\n\tvar UCPath = path.toUpperCase();\r\n\tvar w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\r\n\tif(w !== -1) return cfb.FileIndex[w];\r\n\r\n\tvar m = !UCPath.match(chr1);\r\n\tUCPath = UCPath.replace(chr0,'');\r\n\tif(m) UCPath = UCPath.replace(chr1,'!');\r\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\r\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\r\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\r\n\t}\r\n\treturn null;\r\n}\r\n/** CFB Constants */\r\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\r\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\r\n/* 2.1 Compound File Sector Numbers and Types */\r\nvar ENDOFCHAIN = -2;\r\n/* 2.2 Compound File Header */\r\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\r\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\r\nvar HEADER_CLSID = '00000000000000000000000000000000';\r\nvar consts = {\r\n\t/* 2.1 Compund File Sector Numbers and Types */\r\n\tMAXREGSECT: -6,\r\n\tDIFSECT: -4,\r\n\tFATSECT: -3,\r\n\tENDOFCHAIN: ENDOFCHAIN,\r\n\tFREESECT: -1,\r\n\t/* 2.2 Compound File Header */\r\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\r\n\tHEADER_MINOR_VERSION: '3e00',\r\n\tMAXREGSID: -6,\r\n\tNOSTREAM: -1,\r\n\tHEADER_CLSID: HEADER_CLSID,\r\n\t/* 2.6.1 Compound File Directory Entry */\r\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\r\n};\r\n\r\nfunction write_file(cfb, filename, options) {\r\n\tget_fs();\r\n\tvar o = _write(cfb, options);\r\nfs.writeFileSync(filename, o);\r\n}\r\n\r\nfunction a2s(o) {\r\n\tvar out = new Array(o.length);\r\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\r\n\treturn out.join(\"\");\r\n}\r\n\r\nfunction write(cfb, options) {\r\n\tvar o = _write(cfb, options);\r\n\tswitch(options && options.type) {\r\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o)); return o;\r\n\t\tcase \"binary\": return a2s(o);\r\n\t\tcase \"base64\": return Base64.encode(a2s(o));\r\n\t}\r\n\treturn o;\r\n}\r\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\r\nvar _zlib;\r\nfunction use_zlib(zlib) { try {\r\n\tvar InflateRaw = zlib.InflateRaw;\r\n\tvar InflRaw = new InflateRaw();\r\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\r\n\tif(InflRaw.bytesRead) _zlib = zlib;\r\n\telse throw new Error(\"zlib does not expose bytesRead\");\r\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\r\n\r\nfunction _inflateRawSync(payload, usz) {\r\n\tif(!_zlib) return _inflate(payload, usz);\r\n\tvar InflateRaw = _zlib.InflateRaw;\r\n\tvar InflRaw = new InflateRaw();\r\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\r\n\tpayload.l += InflRaw.bytesRead;\r\n\treturn out;\r\n}\r\n\r\nfunction _deflateRawSync(payload) {\r\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\r\n}\r\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\r\n\r\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\r\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\r\n\r\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\r\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\r\n\r\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\r\n\r\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\r\n\r\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\r\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\r\n\r\nfunction bit_swap_n(n, b) {\r\n\tvar rev = bitswap8[n & 0xFF];\r\n\tif(b <= 8) return rev >>> (8-b);\r\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\r\n\tif(b <= 16) return rev >>> (16-b);\r\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\r\n\treturn rev >>> (24-b);\r\n}\r\n\r\n/* helpers for unaligned bit reads */\r\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\r\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\r\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\r\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\r\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\r\n\r\n/* works up to n = 3 * 8 + 1 = 25 */\r\nfunction read_bits_n(buf, bl, n) {\r\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<<n)-1);\r\n\tvar v = buf[h] >>> w;\r\n\tif(n < 8 - w) return v & f;\r\n\tv |= buf[h+1]<<(8-w);\r\n\tif(n < 16 - w) return v & f;\r\n\tv |= buf[h+2]<<(16-w);\r\n\tif(n < 24 - w) return v & f;\r\n\tv |= buf[h+3]<<(24-w);\r\n\treturn v & f;\r\n}\r\n\r\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\r\nfunction realloc(b, sz) {\r\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\r\n\tif(L >= sz) return b;\r\n\tif(has_buf) {\r\n\t\tvar o = new_unsafe_buf(M);\r\n\t\t// $FlowIgnore\r\n\t\tif(b.copy) b.copy(o);\r\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\r\n\t\treturn o;\r\n\t} else if(use_typed_arrays) {\r\n\t\tvar a = new Uint8Array(M);\r\n\t\tif(a.set) a.set(b);\r\n\t\telse for(; i < b.length; ++i) a[i] = b[i];\r\n\t\treturn a;\r\n\t}\r\n\tb.length = M;\r\n\treturn b;\r\n}\r\n\r\n/* zero-filled arrays for older browsers */\r\nfunction zero_fill_array(n) {\r\n\tvar o = new Array(n);\r\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\r\n\treturn o;\r\n}var _deflate = (function() {\r\nvar _deflateRaw = (function() {\r\n\treturn function deflateRaw(data, out) {\r\n\t\tvar boff = 0;\r\n\t\twhile(boff < data.length) {\r\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\r\n\t\t\tvar h = boff + L == data.length;\r\n\t\t\t/* TODO: this is only type 0 stored */\r\n\t\t\tout.write_shift(1, +h);\r\n\t\t\tout.write_shift(2, L);\r\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\r\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\r\n\t\t}\r\n\t\treturn out.l;\r\n\t};\r\n})();\r\n\r\nreturn function(data) {\r\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\r\n\tvar off = _deflateRaw(data, buf);\r\n\treturn buf.slice(0, off);\r\n};\r\n})();\r\n/* modified inflate function also moves original read head */\r\n\r\n/* build tree (used for literals and lengths) */\r\nfunction build_tree(clens, cmap, MAX) {\r\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\r\n\r\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\r\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\r\n\r\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\r\n\tL = clens.length;\r\n\r\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\r\n\r\n\t/* build code tree */\r\n\tfor(i = 0; i < L; ++i) {\r\n\t\tbl_count[(w = clens[i])]++;\r\n\t\tif(maxlen < w) maxlen = w;\r\n\t\tctree[i] = 0;\r\n\t}\r\n\tbl_count[0] = 0;\r\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\r\n\tfor(i = 0; i < L; ++i) {\r\n\t\tccode = clens[i];\r\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\r\n\t}\r\n\r\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\r\n\tvar cleni = 0;\r\n\tfor(i = 0; i < L; ++i) {\r\n\t\tcleni = clens[i];\r\n\t\tif(cleni != 0) {\r\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\r\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\r\n\t\t\t\tcmap[ccode|(j<<cleni)] = (cleni&15) | (i<<4);\r\n\t\t}\r\n\t}\r\n\treturn maxlen;\r\n}\r\n\r\nvar fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);\r\nvar fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\r\nif(!use_typed_arrays) {\r\n\tfor(var i = 0; i < 512; ++i) fix_lmap[i] = 0;\r\n\tfor(i = 0; i < 32; ++i) fix_dmap[i] = 0;\r\n}\r\n(function() {\r\n\tvar dlens = [];\r\n\tvar i = 0;\r\n\tfor(;i<32; i++) dlens.push(5);\r\n\tbuild_tree(dlens, fix_dmap, 32);\r\n\r\n\tvar clens = [];\r\n\ti = 0;\r\n\tfor(; i<=143; i++) clens.push(8);\r\n\tfor(; i<=255; i++) clens.push(9);\r\n\tfor(; i<=279; i++) clens.push(7);\r\n\tfor(; i<=287; i++) clens.push(8);\r\n\tbuild_tree(clens, fix_lmap, 288);\r\n})();\r\n\r\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\r\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\r\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\r\nvar dyn_len_1 = 1, dyn_len_2 = 1;\r\n\r\n/* 5.5.3 Expanding Huffman Codes */\r\nfunction dyn(data, boff) {\r\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\r\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\r\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\r\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\r\n\tvar w = 0;\r\n\r\n\t/* grab and store code lengths */\r\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\r\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\r\n\tvar maxlen = 1;\r\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\r\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\r\n\tvar L = clens.length; /* 19 */\r\n\tfor(var i = 0; i < _HCLEN; ++i) {\r\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\r\n\t\tif(maxlen < w) maxlen = w;\r\n\t\tbl_count[w]++;\r\n\t\tboff += 3;\r\n\t}\r\n\r\n\t/* build code tree */\r\n\tvar ccode = 0;\r\n\tbl_count[0] = 0;\r\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\r\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\r\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\r\n\tvar cleni = 0;\r\n\tfor(i = 0; i < L; ++i) {\r\n\t\tcleni = clens[i];\r\n\t\tif(cleni != 0) {\r\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\r\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<<cleni)] = (cleni&7) | (i<<3);\r\n\t\t}\r\n\t}\r\n\r\n\t/* read literal and dist codes at once */\r\n\tvar hcodes = [];\r\n\tmaxlen = 1;\r\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\r\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\r\n\t\tboff += ccode & 7;\r\n\t\tswitch((ccode >>>= 3)) {\r\n\t\t\tcase 16:\r\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\r\n\t\t\t\tccode = hcodes[hcodes.length - 1];\r\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 17:\r\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\r\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 18:\r\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\r\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\thcodes.push(ccode);\r\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t/* build literal / length trees */\r\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\r\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\r\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\r\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\r\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\r\n\treturn boff;\r\n}\r\n\r\n/* return [ data, bytesRead ] */\r\nfunction inflate(data, usz) {\r\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\r\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\r\n\r\n\t/* bit offset */\r\n\tvar boff = 0;\r\n\r\n\t/* header includes final bit and type bits */\r\n\tvar header = 0;\r\n\r\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\r\n\tvar woff = 0;\r\n\tvar OL = outbuf.length>>>0;\r\n\tvar max_len_1 = 0, max_len_2 = 0;\r\n\r\n\twhile((header&1) == 0) {\r\n\t\theader = read_bits_3(data, boff); boff += 3;\r\n\t\tif((header >>> 1) == 0) {\r\n\t\t\t/* Stored block */\r\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\r\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\r\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\r\n\t\t\tboff += 32;\r\n\t\t\t/* push sz bytes */\r\n\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\r\n\t\t\tif(typeof data.copy === 'function') {\r\n\t\t\t\t// $FlowIgnore\r\n\t\t\t\tdata.copy(outbuf, woff, boff>>>3, (boff>>>3)+sz);\r\n\t\t\t\twoff += sz; boff += 8*sz;\r\n\t\t\t} else while(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\r\n\t\t\tcontinue;\r\n\t\t} else if((header >>> 1) == 1) {\r\n\t\t\t/* Fixed Huffman */\r\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\r\n\t\t} else {\r\n\t\t\t/* Dynamic Huffman */\r\n\t\t\tboff = dyn(data, boff);\r\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\r\n\t\t}\r\n\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\r\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\r\n\t\t\t/* ingest code and move read head */\r\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\r\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\r\n\t\t\tboff += code & 15; code >>>= 4;\r\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\r\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\r\n\t\t\telse if(code == 256) break;\r\n\t\t\telse {\r\n\t\t\t\tcode -= 257;\r\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\r\n\t\t\t\tvar tgt = woff + LEN_LN[code];\r\n\t\t\t\t/* length extra bits */\r\n\t\t\t\tif(len_eb > 0) {\r\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\r\n\t\t\t\t\tboff += len_eb;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* dist code */\r\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\r\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\r\n\t\t\t\tboff += code & 15; code >>>= 4;\r\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\r\n\t\t\t\tvar dst = DST_LN[code];\r\n\t\t\t\t/* dist extra bits */\r\n\t\t\t\tif(dst_eb > 0) {\r\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\r\n\t\t\t\t\tboff += dst_eb;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\r\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt); OL = outbuf.length; }\r\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn [usz ? outbuf : outbuf.slice(0, woff), (boff+7)>>>3];\r\n}\r\n\r\nfunction _inflate(payload, usz) {\r\n\tvar data = payload.slice(payload.l||0);\r\n\tvar out = inflate(data, usz);\r\n\tpayload.l += out[1];\r\n\treturn out[0];\r\n}\r\n\r\nfunction warn_or_throw(wrn, msg) {\r\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\r\n\telse throw new Error(msg);\r\n}\r\n\r\nfunction parse_zip(file, options) {\r\n\tvar blob = file;\r\n\tprep_blob(blob, 0);\r\n\r\n\tvar FileIndex = [], FullPaths = [];\r\n\tvar o = {\r\n\t\tFileIndex: FileIndex,\r\n\t\tFullPaths: FullPaths\r\n\t};\r\n\tinit_cfb(o, { root: options.root });\r\n\r\n\t/* find end of central directory, start just after signature */\r\n\tvar i = blob.length - 4;\r\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\r\n\tblob.l = i + 4;\r\n\r\n\t/* parse end of central directory */\r\n\tblob.l += 4;\r\n\tvar fcnt = blob.read_shift(2);\r\n\tblob.l += 6;\r\n\tvar start_cd = blob.read_shift(4);\r\n\r\n\t/* parse central directory */\r\n\tblob.l = start_cd;\r\n\r\n\tfor(i = 0; i < fcnt; ++i) {\r\n\t\t/* trust local file header instead of CD entry */\r\n\t\tblob.l += 20;\r\n\t\tvar csz = blob.read_shift(4);\r\n\t\tvar usz = blob.read_shift(4);\r\n\t\tvar namelen = blob.read_shift(2);\r\n\t\tvar efsz = blob.read_shift(2);\r\n\t\tvar fcsz = blob.read_shift(2);\r\n\t\tblob.l += 8;\r\n\t\tvar offset = blob.read_shift(4);\r\n\t\tvar EF = parse_extra_field(blob.slice(blob.l+namelen, blob.l+namelen+efsz));\r\n\t\tblob.l += namelen + efsz + fcsz;\r\n\r\n\t\tvar L = blob.l;\r\n\t\tblob.l = offset + 4;\r\n\t\tparse_local_file(blob, csz, usz, o, EF);\r\n\t\tblob.l = L;\r\n\t}\r\n\r\n\treturn o;\r\n}\r\n\r\n\r\n/* head starts just after local file header signature */\r\nfunction parse_local_file(blob, csz, usz, o, EF) {\r\n\t/* [local file header] */\r\n\tblob.l += 2;\r\n\tvar flags = blob.read_shift(2);\r\n\tvar meth = blob.read_shift(2);\r\n\tvar date = parse_dos_date(blob);\r\n\r\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\r\n\tvar crc32 = blob.read_shift(4);\r\n\tvar _csz = blob.read_shift(4);\r\n\tvar _usz = blob.read_shift(4);\r\n\r\n\tvar namelen = blob.read_shift(2);\r\n\tvar efsz = blob.read_shift(2);\r\n\r\n\t// TODO: flags & (1<<11) // UTF8\r\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\r\n\tif(efsz) {\r\n\t\tvar ef = parse_extra_field(blob.slice(blob.l, blob.l + efsz));\r\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\r\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\r\n\t}\r\n\tblob.l += efsz;\r\n\r\n\t/* [encryption header] */\r\n\r\n\t/* [file data] */\r\n\tvar data = blob.slice(blob.l, blob.l + _csz);\r\n\tswitch(meth) {\r\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\r\n\t\tcase 0: break;\r\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\r\n\t}\r\n\r\n\t/* [data descriptor] */\r\n\tvar wrn = false;\r\n\tif(flags & 8) {\r\n\t\tcrc32 = blob.read_shift(4);\r\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\r\n\t\t_csz = blob.read_shift(4);\r\n\t\t_usz = blob.read_shift(4);\r\n\t}\r\n\r\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\r\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\r\n\tvar _crc32 = CRC32.buf(data, 0);\r\n\tif((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\r\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\r\n}\r\nfunction write_zip(cfb, options) {\r\n\tvar _opts = options || {};\r\n\tvar out = [], cdirs = [];\r\n\tvar o = new_buf(1);\r\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\r\n\tvar desc = false;\r\n\tif(desc) flags |= 8;\r\n\tvar i = 0, j = 0;\r\n\r\n\tvar start_cd = 0, fcnt = 0;\r\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\r\n\tvar crcs = [];\r\n\tvar sz_cd = 0;\r\n\r\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\r\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\r\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\r\n\t\tvar start = start_cd;\r\n\r\n\t\t/* TODO: CP437 filename */\r\n\t\tvar namebuf = new_buf(fp.length);\r\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\r\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\r\n\t\tcrcs[fcnt] = CRC32.buf(fi.content, 0);\r\n\r\n\t\tvar outbuf = fi.content;\r\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\r\n\r\n\t\t/* local file header */\r\n\t\to = new_buf(30);\r\n\t\to.write_shift(4, 0x04034b50);\r\n\t\to.write_shift(2, 20);\r\n\t\to.write_shift(2, flags);\r\n\t\to.write_shift(2, method);\r\n\t\t/* TODO: last mod file time/date */\r\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\r\n\t\telse o.write_shift(4, 0);\r\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\r\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\r\n\t\to.write_shift(4, (flags & 8) ? 0 : fi.content.length);\r\n\t\to.write_shift(2, namebuf.length);\r\n\t\to.write_shift(2, 0);\r\n\r\n\t\tstart_cd += o.length;\r\n\t\tout.push(o);\r\n\t\tstart_cd += namebuf.length;\r\n\t\tout.push(namebuf);\r\n\r\n\t\t/* TODO: encryption header ? */\r\n\t\tstart_cd += outbuf.length;\r\n\t\tout.push(outbuf);\r\n\r\n\t\t/* data descriptor */\r\n\t\tif(flags & 8) {\r\n\t\t\to = new_buf(12);\r\n\t\t\to.write_shift(-4, crcs[fcnt]);\r\n\t\t\to.write_shift(4, outbuf.length);\r\n\t\t\to.write_shift(4, fi.content.length);\r\n\t\t\tstart_cd += o.l;\r\n\t\t\tout.push(o);\r\n\t\t}\r\n\r\n\t\t/* central directory */\r\n\t\to = new_buf(46);\r\n\t\to.write_shift(4, 0x02014b50);\r\n\t\to.write_shift(2, 0);\r\n\t\to.write_shift(2, 20);\r\n\t\to.write_shift(2, flags);\r\n\t\to.write_shift(2, method);\r\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\r\n\t\to.write_shift(-4, crcs[fcnt]);\r\n\r\n\t\to.write_shift(4, outbuf.length);\r\n\t\to.write_shift(4, fi.content.length);\r\n\t\to.write_shift(2, namebuf.length);\r\n\t\to.write_shift(2, 0);\r\n\t\to.write_shift(2, 0);\r\n\t\to.write_shift(2, 0);\r\n\t\to.write_shift(2, 0);\r\n\t\to.write_shift(4, 0);\r\n\t\to.write_shift(4, start);\r\n\r\n\t\tsz_cd += o.l;\r\n\t\tcdirs.push(o);\r\n\t\tsz_cd += namebuf.length;\r\n\t\tcdirs.push(namebuf);\r\n\t\t++fcnt;\r\n\t}\r\n\r\n\t/* end of central directory */\r\n\to = new_buf(22);\r\n\to.write_shift(4, 0x06054b50);\r\n\to.write_shift(2, 0);\r\n\to.write_shift(2, 0);\r\n\to.write_shift(2, fcnt);\r\n\to.write_shift(2, fcnt);\r\n\to.write_shift(4, sz_cd);\r\n\to.write_shift(4, start_cd);\r\n\to.write_shift(2, 0);\r\n\r\n\treturn bconcat(([bconcat((out)), bconcat(cdirs), o]));\r\n}\r\nfunction cfb_new(opts) {\r\n\tvar o = ({});\r\n\tinit_cfb(o, opts);\r\n\treturn o;\r\n}\r\n\r\nfunction cfb_add(cfb, name, content, opts) {\r\n\tvar unsafe = opts && opts.unsafe;\r\n\tif(!unsafe) init_cfb(cfb);\r\n\tvar file = !unsafe && CFB.find(cfb, name);\r\n\tif(!file) {\r\n\t\tvar fpath = cfb.FullPaths[0];\r\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\r\n\t\telse {\r\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\r\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\r\n\t\t}\r\n\t\tfile = ({name: filename(name), type: 2});\r\n\t\tcfb.FileIndex.push(file);\r\n\t\tcfb.FullPaths.push(fpath);\r\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\r\n\t}\r\nfile.content = (content);\r\n\tfile.size = content ? content.length : 0;\r\n\tif(opts) {\r\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\r\n\t\tif(opts.mt) file.mt = opts.mt;\r\n\t\tif(opts.ct) file.ct = opts.ct;\r\n\t}\r\n\treturn file;\r\n}\r\n\r\nfunction cfb_del(cfb, name) {\r\n\tinit_cfb(cfb);\r\n\tvar file = CFB.find(cfb, name);\r\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\r\n\t\tcfb.FileIndex.splice(j, 1);\r\n\t\tcfb.FullPaths.splice(j, 1);\r\n\t\treturn true;\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nfunction cfb_mov(cfb, old_name, new_name) {\r\n\tinit_cfb(cfb);\r\n\tvar file = CFB.find(cfb, old_name);\r\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\r\n\t\tcfb.FileIndex[j].name = filename(new_name);\r\n\t\tcfb.FullPaths[j] = new_name;\r\n\t\treturn true;\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nfunction cfb_gc(cfb) { rebuild_cfb(cfb, true); }\r\n\r\nexports.find = find;\r\nexports.read = read;\r\nexports.parse = parse;\r\nexports.write = write;\r\nexports.writeFile = write_file;\r\nexports.utils = {\r\n\tcfb_new: cfb_new,\r\n\tcfb_add: cfb_add,\r\n\tcfb_del: cfb_del,\r\n\tcfb_mov: cfb_mov,\r\n\tcfb_gc: cfb_gc,\r\n\tReadShift: ReadShift,\r\n\tCheckField: CheckField,\r\n\tprep_blob: prep_blob,\r\n\tbconcat: bconcat,\r\n\tuse_zlib: use_zlib,\r\n\t_deflateRaw: _deflate,\r\n\t_inflateRaw: _inflate,\r\n\tconsts: consts\r\n};\r\n\r\nreturn exports;\r\n})();\r\n\r\nif(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }\r\nvar _fs;\r\nif(typeof require !== 'undefined') try { _fs = require('fs'); } catch(e) {}\r\n\r\n/* normalize data for blob ctor */\r\nfunction blobify(data) {\r\n\tif(typeof data === \"string\") return s2ab(data);\r\n\tif(Array.isArray(data)) return a2u(data);\r\n\treturn data;\r\n}\r\n/* write or download file */\r\nfunction write_dl(fname, payload, enc) {\r\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\r\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\r\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\r\nif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\r\n\tif(typeof Blob !== 'undefined') {\r\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\r\nif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\r\nif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\r\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\r\n\t\t\tvar url = URL.createObjectURL(blob);\r\nif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\r\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\r\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\r\n\t\t\t}\r\n\t\t\tvar a = document.createElement(\"a\");\r\n\t\t\tif(a.download != null) {\r\na.download = fname; a.href = url; document.body.appendChild(a); a.click();\r\ndocument.body.removeChild(a);\r\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\r\n\t\t\t\treturn url;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t// $FlowIgnore\r\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\r\n\t\t// $FlowIgnore\r\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\r\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\r\n\t\tout.write(payload); out.close(); return payload;\r\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\r\n\tthrow new Error(\"cannot save file \" + fname);\r\n}\r\n\r\n/* read binary data from file */\r\nfunction read_binary(path) {\r\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\r\n\t// $FlowIgnore\r\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\r\n\t\t// $FlowIgnore\r\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\r\n\t\tvar data = infile.read(); infile.close();\r\n\t\treturn data;\r\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\r\n\tthrow new Error(\"Cannot access file \" + path);\r\n}\r\nfunction keys(o) {\r\n\tvar ks = Object.keys(o), o2 = [];\r\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\r\n\treturn o2;\r\n}\r\n\r\nfunction evert_key(obj, key) {\r\n\tvar o = ([]), K = keys(obj);\r\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\r\n\treturn o;\r\n}\r\n\r\nfunction evert(obj) {\r\n\tvar o = ([]), K = keys(obj);\r\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\r\n\treturn o;\r\n}\r\n\r\nfunction evert_num(obj) {\r\n\tvar o = ([]), K = keys(obj);\r\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\r\n\treturn o;\r\n}\r\n\r\nfunction evert_arr(obj) {\r\n\tvar o = ([]), K = keys(obj);\r\n\tfor(var i = 0; i !== K.length; ++i) {\r\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\r\n\t\to[obj[K[i]]].push(K[i]);\r\n\t}\r\n\treturn o;\r\n}\r\n\r\nvar basedate = new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\r\nfunction datenum(v, date1904) {\r\n\tvar epoch = v.getTime();\r\n\tif(date1904) epoch -= 1462*24*60*60*1000;\r\n\tvar dnthresh = basedate.getTime() + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\r\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\r\n}\r\nvar refdate = new Date();\r\nvar dnthresh = basedate.getTime() + (refdate.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\r\nvar refoffset = refdate.getTimezoneOffset();\r\nfunction numdate(v) {\r\n\tvar out = new Date();\r\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\r\n\tif (out.getTimezoneOffset() !== refoffset) {\r\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\r\n\t}\r\n\treturn out;\r\n}\r\n\r\n/* ISO 8601 Duration */\r\nfunction parse_isodur(s) {\r\n\tvar sec = 0, mt = 0, time = false;\r\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)?/);\r\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\r\n\tfor(var i = 1; i != m.length; ++i) {\r\n\t\tif(!m[i]) continue;\r\n\t\tmt = 1;\r\n\t\tif(i > 3) time = true;\r\n\t\tswitch(m[i].slice(m[i].length-1)) {\r\n\t\t\tcase 'Y':\r\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\r\n\t\t\tcase 'D': mt *= 24;\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase 'H': mt *= 60;\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase 'M':\r\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\r\n\t\t\t\telse mt *= 60;\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase 'S': break;\r\n\t\t}\r\n\t\tsec += mt * parseInt(m[i], 10);\r\n\t}\r\n\treturn sec;\r\n}\r\n\r\nvar good_pd_date = new Date('2017-02-19T19:06:09.000Z');\r\nif(isNaN(good_pd_date.getFullYear())) good_pd_date = new Date('2/19/17');\r\nvar good_pd = good_pd_date.getFullYear() == 2017;\r\n/* parses a date as a local date */\r\nfunction parseDate(str, fixdate) {\r\n\tvar d = new Date(str);\r\n\tif(good_pd) {\r\nif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\r\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\r\n\t\treturn d;\r\n\t}\r\n\tif(str instanceof Date) return str;\r\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\r\n\t\tvar s = d.getFullYear();\r\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\r\n\t\td.setFullYear(d.getFullYear() + 100); return d;\r\n\t}\r\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\r\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\r\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\r\n\treturn out;\r\n}\r\n\r\nfunction cc2str(arr) {\r\n\tvar o = \"\";\r\n\tfor(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);\r\n\treturn o;\r\n}\r\n\r\nfunction dup(o) {\r\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\r\n\tif(typeof o != 'object' || o == null) return o;\r\n\tif(o instanceof Date) return new Date(o.getTime());\r\n\tvar out = {};\r\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\r\n\treturn out;\r\n}\r\n\r\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\r\n\r\n/* TODO: stress test */\r\nfunction fuzzynum(s) {\r\n\tvar v = Number(s);\r\n\tif(isFinite(v)) return v;\r\n\tif(!isNaN(v)) return NaN;\r\n\tif(!/\\d/.test(s)) return v;\r\n\tvar wt = 1;\r\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\r\n\tif(!isNaN(v = Number(ss))) return v / wt;\r\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\r\n\tif(!isNaN(v = Number(ss))) return v / wt;\r\n\treturn v;\r\n}\r\nfunction fuzzydate(s) {\r\n\tvar o = new Date(s), n = new Date(NaN);\r\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\r\n\tif(isNaN(d)) return n;\r\n\tif(y < 0 || y > 8099) return n;\r\n\tif((m > 0 || d > 1) && y != 101) return o;\r\n\tif(s.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) return o;\r\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\r\n\treturn o;\r\n}\r\n\r\nvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\r\nfunction split_regex(str, re, def) {\r\n\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\r\n\tvar p = str.split(re), o = [p[0]];\r\n\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\r\n\treturn o;\r\n}\r\nfunction getdatastr(data) {\r\n\tif(!data) return null;\r\n\tif(data.data) return debom(data.data);\r\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\r\n\tif(data.asBinary) return debom(data.asBinary());\r\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\r\n\tif(data.content && data.type) return debom(cc2str(data.content));\r\n\treturn null;\r\n}\r\n\r\nfunction getdatabin(data) {\r\n\tif(!data) return null;\r\n\tif(data.data) return char_codes(data.data);\r\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\r\n\tif(data._data && data._data.getContent) {\r\n\t\tvar o = data._data.getContent();\r\n\t\tif(typeof o == \"string\") return char_codes(o);\r\n\t\treturn Array.prototype.slice.call(o);\r\n\t}\r\n\tif(data.content && data.type) return data.content;\r\n\treturn null;\r\n}\r\n\r\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\r\n\r\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\r\n/* OASIS does not comment on filename case sensitivity */\r\nfunction safegetzipfile(zip, file) {\r\n\tvar k = zip.FullPaths || keys(zip.files);\r\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\r\n\tfor(var i=0; i<k.length; ++i) {\r\n\t\tvar n = k[i].replace(/^Root Entry[\\/]/,\"\").toLowerCase();\r\n\t\tif(f == n || g == n) return zip.files ? zip.files[k[i]] : zip.FileIndex[i];\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nfunction getzipfile(zip, file) {\r\n\tvar o = safegetzipfile(zip, file);\r\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\r\n\treturn o;\r\n}\r\n\r\nfunction getzipdata(zip, file, safe) {\r\n\tif(!safe) return getdata(getzipfile(zip, file));\r\n\tif(!file) return null;\r\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\r\n}\r\n\r\nfunction getzipstr(zip, file, safe) {\r\n\tif(!safe) return getdatastr(getzipfile(zip, file));\r\n\tif(!file) return null;\r\n\ttry { return getzipstr(zip, file); } catch(e) { return null; }\r\n}\r\n\r\nfunction zipentries(zip) {\r\n\tvar k = zip.FullPaths || keys(zip.files), o = [];\r\n\tfor(var i = 0; i < k.length; ++i) if(k[i].slice(-1) != '/') o.push(k[i].replace(/^Root Entry[\\/]/, \"\"));\r\n\treturn o.sort();\r\n}\r\n\r\nfunction zip_add_file(zip, path, content) {\r\n\tif(zip.FullPaths) CFB.utils.cfb_add(zip, path, typeof content == \"string\" ? (has_buf ? Buffer_from(content) : s2a(utf8write(content))) : content);\r\n\telse zip.file(path, content);\r\n}\r\n\r\nvar jszip;\r\n\r\nfunction zip_new() {\r\n\treturn CFB.utils.cfb_new();\r\n}\r\n\r\nfunction zip_read(d, o) {\r\n\tvar zip;\r\n\tswitch(o.type) {\r\n\t\tcase \"base64\": zip = CFB.read(d, { type: \"base64\" }); break;\r\n\t\tcase \"binary\": zip = CFB.read(d, { type: \"binary\" }); break;\r\n\t\tcase \"buffer\": case \"array\": zip = CFB.read(d, { type: \"buffer\" }); break;\r\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\r\n\t}\r\n\treturn zip;\r\n}\r\n\r\nfunction resolve_path(path, base) {\r\n\tif(path.charAt(0) == \"/\") return path.slice(1);\r\n\tvar result = base.split('/');\r\n\tif(base.slice(-1) != \"/\") result.pop(); // folder path\r\n\tvar target = path.split('/');\r\n\twhile (target.length !== 0) {\r\n\t\tvar step = target.shift();\r\n\t\tif (step === '..') result.pop();\r\n\t\telse if (step !== '.') result.push(step);\r\n\t}\r\n\treturn result.join('/');\r\n}\r\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\r\nvar attregexg=/([^\"\\s?>\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\r\nvar tagregex=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg;\r\n\r\nif(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;\r\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\r\nfunction parsexmltag(tag, skip_root, skip_LC) {\r\n\tvar z = ({});\r\n\tvar eq = 0, c = 0;\r\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\r\n\tif(!skip_root) z[0] = tag.slice(0, eq);\r\n\tif(eq === tag.length) return z;\r\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\r\n\tif(m) for(i = 0; i != m.length; ++i) {\r\n\t\tcc = m[i];\r\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\r\n\t\tq = cc.slice(0,c).trim();\r\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\r\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\r\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\r\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\r\n\t\tif(j===q.length) {\r\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\r\n\t\t\tz[q] = v;\r\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\r\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\r\n\t\t\tz[k] = v;\r\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\r\n\t\t}\r\n\t}\r\n\treturn z;\r\n}\r\nfunction strip_ns(x) { return x.replace(nsregex2, \"<$1\"); }\r\n\r\nvar encodings = {\r\n\t'&quot;': '\"',\r\n\t'&apos;': \"'\",\r\n\t'&gt;': '>',\r\n\t'&lt;': '<',\r\n\t'&amp;': '&'\r\n};\r\nvar rencoding = evert(encodings);\r\n//var rencstr = \"&<>'\\\"\".split(\"\");\r\n\r\n// TODO: CP remap (need to read file version to determine OS)\r\nvar unescapexml = (function() {\r\n\t/* 22.4.2.4 bstr (Basic String) */\r\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\r\n\treturn function unescapexml(text) {\r\n\t\tvar s = text + '', i = s.indexOf(\"<![CDATA[\");\r\n\t\tif(i == -1) return s.replace(encregex, function($$, $1) { return encodings[$$]||String.fromCharCode(parseInt($1,$$.indexOf(\"x\")>-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\r\n\t\tvar j = s.indexOf(\"]]>\");\r\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\r\n\t};\r\n})();\r\n\r\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\r\nfunction escapexml(text){\r\n\tvar s = text + '';\r\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\r\n}\r\nfunction escapexmltag(text){ return escapexml(text).replace(/ /g,\"_x0020_\"); }\r\n\r\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\r\nfunction escapehtml(text){\r\n\tvar s = text + '';\r\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"<br/>\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\r\n}\r\n\r\nfunction escapexlml(text){\r\n\tvar s = text + '';\r\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\r\n}\r\n\r\n/* TODO: handle codepages */\r\nvar xlml_fixstr = (function() {\r\n\tvar entregex = /&#(\\d+);/g;\r\n\tfunction entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); }\r\n\treturn function xlml_fixstr(str) { return str.replace(entregex,entrepl); };\r\n})();\r\nvar xlml_unfixstr = (function() {\r\n\treturn function xlml_unfixstr(str) { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\&#10;\"); };\r\n})();\r\n\r\nfunction parsexmlbool(value) {\r\n\tswitch(value) {\r\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\r\n\t\t/* case '0': case 'false': case 'FALSE':*/\r\n\t\tdefault: return false;\r\n\t}\r\n}\r\n\r\nvar utf8read = function utf8reada(orig) {\r\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\r\n\twhile (i < orig.length) {\r\n\t\tc = orig.charCodeAt(i++);\r\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\r\n\t\td = orig.charCodeAt(i++);\r\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\r\n\t\te = orig.charCodeAt(i++);\r\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\r\n\t\tf = orig.charCodeAt(i++);\r\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\r\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\r\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\r\n\t}\r\n\treturn out;\r\n};\r\n\r\nvar utf8write = function(orig) {\r\n\tvar out = [], i = 0, c = 0, d = 0;\r\n\twhile(i < orig.length) {\r\n\t\tc = orig.charCodeAt(i++);\r\n\t\tswitch(true) {\r\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\r\n\t\t\tcase c < 2048:\r\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\r\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\r\n\t\t\t\tbreak;\r\n\t\t\tcase c >= 55296 && c < 57344:\r\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\r\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\r\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\r\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\r\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\r\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\r\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\r\n\t\t}\r\n\t}\r\n\treturn out.join(\"\");\r\n};\r\n\r\nif(has_buf) {\r\n\tvar utf8readb = function utf8readb(data) {\r\n\t\tvar out = Buffer.alloc(2*data.length), w, i, j = 1, k = 0, ww=0, c;\r\n\t\tfor(i = 0; i < data.length; i+=j) {\r\n\t\t\tj = 1;\r\n\t\t\tif((c=data.charCodeAt(i)) < 128) w = c;\r\n\t\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\r\n\t\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\r\n\t\t\telse { j = 4;\r\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);\r\n\t\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\r\n\t\t\t}\r\n\t\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\r\n\t\t\tout[k++] = w%256; out[k++] = w>>>8;\r\n\t\t}\r\n\t\treturn out.slice(0,k).toString('ucs2');\r\n\t};\r\n\tvar corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\r\n\tif(utf8read(corpus) == utf8readb(corpus)) utf8read = utf8readb;\r\n\tvar utf8readc = function utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); };\r\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\r\n\r\n\tutf8write = function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); };\r\n}\r\n\r\n// matches <foo>...</foo> extracts content\r\nvar matchtag = (function() {\r\n\tvar mtcache = ({});\r\n\treturn function matchtag(f,g) {\r\n\t\tvar t = f+\"|\"+(g||\"\");\r\n\t\tif(mtcache[t]) return mtcache[t];\r\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)</(?:\\\\w+:)?'+f+'>',((g||\"\"))));\r\n\t};\r\n})();\r\n\r\nvar htmldecode = (function() {\r\n\tvar entities = [\r\n\t\t['nbsp', ' '], ['middot', '·'],\r\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\r\n\t].map(function(x) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\r\n\treturn function htmldecode(str) {\r\n\t\tvar o = str\r\n\t\t\t\t// Remove new lines and spaces from start of content\r\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\r\n\t\t\t\t// Remove new lines and spaces from end of content\r\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\r\n\t\t\t\t// Added line which removes any white space characters after and before html tags\r\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\")\r\n\t\t\t\t// Replace remaining new lines and spaces with space\r\n\t\t\t\t.replace(/[\\t\\n\\r ]+/g, \" \")\r\n\t\t\t\t// Replace <br> tags with new lines\r\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\r\n\t\t\t\t// Strip HTML elements\r\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\r\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\r\n\t\treturn o;\r\n\t};\r\n})();\r\n\r\nvar vtregex = (function(){ var vt_cache = {};\r\n\treturn function vt_regex(bt) {\r\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\r\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)</(?:vt:)?\" + bt + \">\", 'g') );\r\n};})();\r\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)</;\r\nfunction parseVector(data, opts) {\r\n\tvar h = parsexmltag(data);\r\n\r\n\tvar matches = data.match(vtregex(h.baseType))||[];\r\n\tvar res = [];\r\n\tif(matches.length != h.size) {\r\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\r\n\t\treturn res;\r\n\t}\r\n\tmatches.forEach(function(x) {\r\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\r\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\r\n\t});\r\n\treturn res;\r\n}\r\n\r\nvar wtregex = /(^\\s|\\s$|\\n)/;\r\nfunction writetag(f,g) { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>'; }\r\n\r\nfunction wxt_helper(h) { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\r\nfunction writextag(f,g,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\r\n\r\nfunction write_w3cdtf(d, t) { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\r\n\r\nfunction write_vt(s, xlsx) {\r\n\tswitch(typeof s) {\r\n\t\tcase 'string':\r\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\r\n\t\t\tif(xlsx) o = o.replace(/&quot;/g, \"_x0022_\");\r\n\t\t\treturn o;\r\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\r\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\r\n\t}\r\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\r\n\tthrow new Error(\"Unable to serialize \" + s);\r\n}\r\n\r\nvar XMLNS = ({\r\n\t'dc': 'http://purl.org/dc/elements/1.1/',\r\n\t'dcterms': 'http://purl.org/dc/terms/',\r\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\r\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\r\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\r\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\r\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\r\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\r\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\r\n});\r\n\r\nXMLNS.main = [\r\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\r\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\r\n\t'http://schemas.microsoft.com/office/excel/2006/main',\r\n\t'http://schemas.microsoft.com/office/excel/2006/2'\r\n];\r\n\r\nvar XLMLNS = ({\r\n\t'o': 'urn:schemas-microsoft-com:office:office',\r\n\t'x': 'urn:schemas-microsoft-com:office:excel',\r\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\r\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\r\n\t'mv': 'http://macVmlSchemaUri',\r\n\t'v': 'urn:schemas-microsoft-com:vml',\r\n\t'html': 'http://www.w3.org/TR/REC-html40'\r\n});\r\nfunction read_double_le(b, idx) {\r\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\r\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\r\n\tvar m = (b[idx+6]&0x0f);\r\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\r\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\r\n\tif(e == 0) e = -1022;\r\n\telse { e -= 1023; m += Math.pow(2,52); }\r\n\treturn s * Math.pow(2, e - 52) * m;\r\n}\r\n\r\nfunction write_double_le(b, v, idx) {\r\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\r\n\tvar av = bs ? (-v) : v;\r\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\r\n\telse if(av == 0) e = m = 0;\r\n\telse {\r\n\t\te = Math.floor(Math.log(av) / Math.LN2);\r\n\t\tm = av * Math.pow(2, 52 - e);\r\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\r\n\t\telse { m -= Math.pow(2,52); e+=1023; }\r\n\t}\r\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\r\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\r\n\tb[idx + 7] = (e >> 4) | bs;\r\n}\r\n\r\nvar __toBuffer = function(bufs) { var x=[],w=10240; for(var i=0;i<bufs[0].length;++i) if(bufs[0][i]) for(var j=0,L=bufs[0][i].length;j<L;j+=w) x.push.apply(x, bufs[0][i].slice(j,j+w)); return x; };\r\nvar ___toBuffer = __toBuffer;\r\nvar __utf16le = function(b,s,e) { var ss=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\").replace(chr0,''); };\r\nvar ___utf16le = __utf16le;\r\nvar __hexlify = function(b,s,l) { var ss=[]; for(var i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\r\nvar ___hexlify = __hexlify;\r\nvar __utf8 = function(b,s,e) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\r\nvar ___utf8 = __utf8;\r\nvar __lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\r\nvar ___lpstr = __lpstr;\r\nvar __cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\r\nvar ___cpstr = __cpstr;\r\nvar __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\r\nvar ___lpwstr = __lpwstr;\r\nvar __lpp4, ___lpp4;\r\n__lpp4 = ___lpp4 = function lpp4_(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\r\nvar __8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\r\nvar ___8lpp4 = __8lpp4;\r\nvar __double, ___double;\r\n__double = ___double = function(b, idx) { return read_double_le(b, idx);};\r\nvar is_buf = function is_buf_a(a) { return Array.isArray(a); };\r\n\r\nif(has_buf) {\r\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,'!')*/; };\r\n\t__hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); };\r\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) : \"\";};\r\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) : \"\";};\r\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);};\r\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);};\r\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);};\r\n\t__utf8 = function utf8_b(b, s, e) { return (Buffer.isBuffer(b)) ? b.toString('utf8',s,e) : ___utf8(b,s,e); };\r\n\t__toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);};\r\n\tbconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); };\r\n\t__double = function double_(b, i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); };\r\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); };\r\n}\r\n\r\n/* from js-xls */\r\nif(typeof cptable !== 'undefined') {\r\n\t__utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\r\n\t__utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); };\r\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)) : \"\";};\r\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)) : \"\";};\r\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)) : \"\";};\r\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)) : \"\";};\r\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)) : \"\";};\r\n}\r\n\r\nvar __readUInt8 = function(b, idx) { return b[idx]; };\r\nvar __readUInt16LE = function(b, idx) { return (b[idx+1]*(1<<8))+b[idx]; };\r\nvar __readInt16LE = function(b, idx) { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\r\nvar __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\r\nvar __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\r\nvar __readInt32BE = function(b, idx) { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\r\n\r\nfunction ReadShift(size, t) {\r\n\tvar o=\"\", oI, oR, oo=[], w, vv, i, loc;\r\n\tswitch(t) {\r\n\t\tcase 'dbcs':\r\n\t\t\tloc = this.l;\r\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\r\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\r\n\t\t\tsize *= 2;\r\n\t\t\tbreak;\r\n\r\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\r\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\r\n\r\n\t\tcase 'wstr':\r\n\t\t\tif(typeof cptable !== 'undefined') o = cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\r\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\r\n\t\t\tsize = 2 * size; break;\r\n\r\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\r\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\r\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\r\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\r\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\r\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\r\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\r\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\r\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\r\n\r\n\t\tcase 'cstr': size = 0; o = \"\";\r\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\r\n\t\t\to = oo.join(\"\"); break;\r\n\t\tcase '_wstr': size = 0; o = \"\";\r\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\r\n\t\t\tsize+=2; o = oo.join(\"\"); break;\r\n\r\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\r\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\r\n\t\t\tfor(i = 0; i < size; ++i) {\r\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\r\n\t\t\t\t\tw = __readUInt8(this, loc);\r\n\t\t\t\t\tthis.l = loc + 1;\r\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\r\n\t\t\t\t\treturn oo.join(\"\") + vv;\r\n\t\t\t\t}\r\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\r\n\t\t\t\tloc+=2;\r\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\r\n\r\n\t\tcase 'cpstr':\r\n\t\t\tif(typeof cptable !== 'undefined') {\r\n\t\t\t\to = cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t/* falls through */\r\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\r\n\t\t\tfor(i = 0; i != size; ++i) {\r\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\r\n\t\t\t\t\tw = __readUInt8(this, loc);\r\n\t\t\t\t\tthis.l = loc + 1;\r\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\r\n\t\t\t\t\treturn oo.join(\"\") + vv;\r\n\t\t\t\t}\r\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\r\n\t\t\t\tloc+=1;\r\n\t\t\t} o = oo.join(\"\"); break;\r\n\r\n\t\tdefault:\r\n\tswitch(size) {\r\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\r\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\r\n\t\tcase 4: case -4:\r\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; }\r\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\r\n\t\tcase 8: case -8:\r\n\t\t\tif(t === 'f') {\r\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\r\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);\r\n\t\t\t\tthis.l += 8; return oR;\r\n\t\t\t} else size = 8;\r\n\t\t/* falls through */\r\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\r\n\t}}\r\n\tthis.l+=size; return o;\r\n}\r\n\r\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); };\r\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); };\r\nvar __writeUInt16LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\r\n\r\nfunction WriteShift(t, val, f) {\r\n\tvar size = 0, i = 0;\r\n\tif(f === 'dbcs') {\r\nfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\r\n\t\tsize = 2 * val.length;\r\n\t} else if(f === 'sbcs') {\r\n\t\tif(typeof cptable !== 'undefined' && current_ansi == 874) {\r\n\t\t\t/* TODO: use tables directly, don't encode */\r\nfor(i = 0; i != val.length; ++i) {\r\n\t\t\t\tvar cppayload = cptable.utils.encode(current_ansi, val.charAt(i));\r\n\t\t\t\tthis[this.l + i] = cppayload[0];\r\n\t\t\t}\r\n\t\t} else {\r\nval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\r\nfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\r\n\t\t}\r\n\t\tsize = val.length;\r\n\t} else if(f === 'hex') {\r\n\t\tfor(; i < t; ++i) {\r\nthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\r\n\t\t} return this;\r\n\t} else if(f === 'utf16le') {\r\nvar end = Math.min(this.l + t, this.length);\r\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\r\n\t\t\t\tvar cc = val.charCodeAt(i);\r\n\t\t\t\tthis[this.l++] = (cc & 0xff);\r\n\t\t\t\tthis[this.l++] = (cc >> 8);\r\n\t\t\t}\r\n\t\t\twhile(this.l < end) this[this.l++] = 0;\r\n\t\t\treturn this;\r\n\t} else switch(t) {\r\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\r\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\r\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;\r\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\r\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\r\n\t\t/* falls through */\r\n\t\tcase 16: break;\r\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\r\n\t}\r\n\tthis.l += size; return this;\r\n}\r\n\r\nfunction CheckField(hexstr, fld) {\r\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\r\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\r\n\tthis.l += hexstr.length>>1;\r\n}\r\n\r\nfunction prep_blob(blob, pos) {\r\n\tblob.l = pos;\r\n\tblob.read_shift = ReadShift;\r\n\tblob.chk = CheckField;\r\n\tblob.write_shift = WriteShift;\r\n}\r\n\r\nfunction parsenoop(blob, length) { blob.l += length; }\r\n\r\nfunction new_buf(sz) {\r\n\tvar o = new_raw_buf(sz);\r\n\tprep_blob(o, 0);\r\n\treturn o;\r\n}\r\n\r\n/* [MS-XLSB] 2.1.4 Record */\r\nfunction recordhopper(data, cb, opts) {\r\n\tif(!data) return;\r\n\tvar tmpbyte, cntbyte, length;\r\n\tprep_blob(data, data.l || 0);\r\n\tvar L = data.length, RT = 0, tgt = 0;\r\n\twhile(data.l < L) {\r\n\t\tRT = data.read_shift(1);\r\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\r\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\r\n\t\ttmpbyte = data.read_shift(1);\r\n\t\tlength = tmpbyte & 0x7F;\r\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\r\n\t\ttgt = data.l + length;\r\n\t\tvar d = R.f && R.f(data, length, opts);\r\n\t\tdata.l = tgt;\r\n\t\tif(cb(d, R.n, RT)) return;\r\n\t}\r\n}\r\n\r\n/* control buffer usage for fixed-length buffers */\r\nfunction buf_array() {\r\n\tvar bufs = [], blksz = has_buf ? 256 : 2048;\r\n\tvar newblk = function ba_newblk(sz) {\r\n\t\tvar o = (new_buf(sz));\r\n\t\tprep_blob(o, 0);\r\n\t\treturn o;\r\n\t};\r\n\r\n\tvar curbuf = newblk(blksz);\r\n\r\n\tvar endbuf = function ba_endbuf() {\r\n\t\tif(!curbuf) return;\r\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\r\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\r\n\t\tcurbuf = null;\r\n\t};\r\n\r\n\tvar next = function ba_next(sz) {\r\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\r\n\t\tendbuf();\r\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\r\n\t};\r\n\r\n\tvar end = function ba_end() {\r\n\t\tendbuf();\r\n\t\treturn __toBuffer([bufs]);\r\n\t};\r\n\r\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\r\n\r\n\treturn ({ next:next, push:push, end:end, _bufs:bufs });\r\n}\r\n\r\nfunction write_record(ba, type, payload, length) {\r\n\tvar t = +XLSBRE[type], l;\r\n\tif(isNaN(t)) return; // TODO: throw something here?\r\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\r\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\r\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\r\n\tvar o = ba.next(l);\r\n\tif(t <= 0x7F) o.write_shift(1, t);\r\n\telse {\r\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\r\n\t\to.write_shift(1, (t >> 7));\r\n\t}\r\n\tfor(var i = 0; i != 4; ++i) {\r\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\r\n\t\telse { o.write_shift(1, length); break; }\r\n\t}\r\n\tif(length > 0 && is_buf(payload)) ba.push(payload);\r\n}\r\n/* XLS ranges enforced */\r\nfunction shift_cell_xls(cell, tgt, opts) {\r\n\tvar out = dup(cell);\r\n\tif(tgt.s) {\r\n\t\tif(out.cRel) out.c += tgt.s.c;\r\n\t\tif(out.rRel) out.r += tgt.s.r;\r\n\t} else {\r\n\t\tif(out.cRel) out.c += tgt.c;\r\n\t\tif(out.rRel) out.r += tgt.r;\r\n\t}\r\n\tif(!opts || opts.biff < 12) {\r\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\r\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\r\n\t}\r\n\treturn out;\r\n}\r\n\r\nfunction shift_range_xls(cell, range, opts) {\r\n\tvar out = dup(cell);\r\n\tout.s = shift_cell_xls(out.s, range.s, opts);\r\n\tout.e = shift_cell_xls(out.e, range.s, opts);\r\n\treturn out;\r\n}\r\n\r\nfunction encode_cell_xls(c, biff) {\r\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\r\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\r\n\tvar s = encode_cell(c);\r\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\r\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\r\n\treturn s;\r\n}\r\n\r\nfunction encode_range_xls(r, opts) {\r\n\tif(r.s.r == 0 && !r.s.rRel) {\r\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\r\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\r\n\t\t}\r\n\t}\r\n\tif(r.s.c == 0 && !r.s.cRel) {\r\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\r\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\r\n\t\t}\r\n\t}\r\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\r\n}\r\nfunction decode_row(rowstr) { return parseInt(unfix_row(rowstr),10) - 1; }\r\nfunction encode_row(row) { return \"\" + (row + 1); }\r\nfunction fix_row(cstr) { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\r\nfunction unfix_row(cstr) { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\r\n\r\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; }\r\nfunction encode_col(col) { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\r\nfunction fix_col(cstr) { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\r\nfunction unfix_col(cstr) { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\r\n\r\nfunction split_cell(cstr) { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\r\n//function decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\r\nfunction decode_cell(cstr) {\r\n\tvar R = 0, C = 0;\r\n\tfor(var i = 0; i < cstr.length; ++i) {\r\n\t\tvar cc = cstr.charCodeAt(i);\r\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\r\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\r\n\t}\r\n\treturn { c: C - 1, r:R - 1 };\r\n}\r\n//function encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\r\nfunction encode_cell(cell) {\r\n\tvar col = cell.c + 1;\r\n\tvar s=\"\";\r\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\r\n\treturn s + (cell.r + 1);\r\n}\r\nfunction decode_range(range) {\r\n\tvar idx = range.indexOf(\":\");\r\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\r\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\r\n}\r\nfunction encode_range(cs,ce) {\r\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\r\nreturn encode_range(cs.s, cs.e);\r\n\t}\r\nif(typeof cs !== 'string') cs = encode_cell((cs));\r\n\tif(typeof ce !== 'string') ce = encode_cell((ce));\r\nreturn cs == ce ? cs : cs + \":\" + ce;\r\n}\r\n\r\nfunction safe_decode_range(range) {\r\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\r\n\tvar idx = 0, i = 0, cc = 0;\r\n\tvar len = range.length;\r\n\tfor(idx = 0; i < len; ++i) {\r\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\r\n\t\tidx = 26*idx + cc;\r\n\t}\r\n\to.s.c = --idx;\r\n\r\n\tfor(idx = 0; i < len; ++i) {\r\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\r\n\t\tidx = 10*idx + cc;\r\n\t}\r\n\to.s.r = --idx;\r\n\r\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\r\n\t++i;\r\n\r\n\tfor(idx = 0; i != len; ++i) {\r\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\r\n\t\tidx = 26*idx + cc;\r\n\t}\r\n\to.e.c = --idx;\r\n\r\n\tfor(idx = 0; i != len; ++i) {\r\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\r\n\t\tidx = 10*idx + cc;\r\n\t}\r\n\to.e.r = --idx;\r\n\treturn o;\r\n}\r\n\r\nfunction safe_format_cell(cell, v) {\r\n\tvar q = (cell.t == 'd' && v instanceof Date);\r\n\tif(cell.z != null) try { return (cell.w = SSF.format(cell.z, q ? datenum(v) : v)); } catch(e) { }\r\n\ttry { return (cell.w = SSF.format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\r\n}\r\n\r\nfunction format_cell(cell, v, o) {\r\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\r\n\tif(cell.w !== undefined) return cell.w;\r\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\r\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\r\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\r\n\treturn safe_format_cell(cell, v);\r\n}\r\n\r\nfunction sheet_to_workbook(sheet, opts) {\r\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\r\n\tvar sheets = {}; sheets[n] = sheet;\r\n\treturn { SheetNames: [n], Sheets: sheets };\r\n}\r\n\r\nfunction sheet_add_aoa(_ws, data, opts) {\r\n\tvar o = opts || {};\r\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\r\n\tif(DENSE != null && dense == null) dense = DENSE;\r\n\tvar ws = _ws || (dense ? ([]) : ({}));\r\n\tvar _R = 0, _C = 0;\r\n\tif(ws && o.origin != null) {\r\n\t\tif(typeof o.origin == 'number') _R = o.origin;\r\n\t\telse {\r\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\r\n\t\t\t_R = _origin.r; _C = _origin.c;\r\n\t\t}\r\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\r\n\t}\r\n\tvar range = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}});\r\n\tif(ws['!ref']) {\r\n\t\tvar _range = safe_decode_range(ws['!ref']);\r\n\t\trange.s.c = _range.s.c;\r\n\t\trange.s.r = _range.s.r;\r\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\r\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\r\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\r\n\t}\r\n\tfor(var R = 0; R != data.length; ++R) {\r\n\t\tif(!data[R]) continue;\r\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\r\n\t\tfor(var C = 0; C != data[R].length; ++C) {\r\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\r\n\t\t\tvar cell = ({v: data[R][C] });\r\n\t\t\tvar __R = _R + R, __C = _C + C;\r\n\t\t\tif(range.s.r > __R) range.s.r = __R;\r\n\t\t\tif(range.s.c > __C) range.s.c = __C;\r\n\t\t\tif(range.e.r < __R) range.e.r = __R;\r\n\t\t\tif(range.e.c < __C) range.e.c = __C;\r\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\r\n\t\t\telse {\r\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\r\n\t\t\t\tif(cell.v === null) {\r\n\t\t\t\t\tif(cell.f) cell.t = 'n';\r\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\r\n\t\t\t\t\telse if(!o.sheetStubs) continue;\r\n\t\t\t\t\telse cell.t = 'z';\r\n\t\t\t\t}\r\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\r\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\r\n\t\t\t\telse if(cell.v instanceof Date) {\r\n\t\t\t\t\tcell.z = o.dateNF || SSF._table[14];\r\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF.format(cell.z, datenum(cell.v)); }\r\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF.format(cell.z, cell.v); }\r\n\t\t\t\t}\r\n\t\t\t\telse cell.t = 's';\r\n\t\t\t}\r\n\t\t\tif(dense) {\r\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\r\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\r\n\t\t\t\tws[__R][__C] = cell;\r\n\t\t\t} else {\r\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}));\r\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\r\n\t\t\t\tws[cell_ref] = cell;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\r\n\treturn ws;\r\n}\r\nfunction aoa_to_sheet(data, opts) { return sheet_add_aoa(null, data, opts); }\r\n\r\n/* [MS-OLEPS] 2.2 PropertyType */\r\n//var VT_EMPTY = 0x0000;\r\n//var VT_NULL = 0x0001;\r\nvar VT_I2 = 0x0002;\r\nvar VT_I4 = 0x0003;\r\n//var VT_R4 = 0x0004;\r\n//var VT_R8 = 0x0005;\r\n//var VT_CY = 0x0006;\r\n//var VT_DATE = 0x0007;\r\n//var VT_BSTR = 0x0008;\r\n//var VT_ERROR = 0x000A;\r\nvar VT_BOOL = 0x000B;\r\nvar VT_VARIANT = 0x000C;\r\n//var VT_DECIMAL = 0x000E;\r\n//var VT_I1 = 0x0010;\r\n//var VT_UI1 = 0x0011;\r\n//var VT_UI2 = 0x0012;\r\nvar VT_UI4 = 0x0013;\r\n//var VT_I8 = 0x0014;\r\n//var VT_UI8 = 0x0015;\r\n//var VT_INT = 0x0016;\r\n//var VT_UINT = 0x0017;\r\nvar VT_LPSTR = 0x001E;\r\n//var VT_LPWSTR = 0x001F;\r\nvar VT_FILETIME = 0x0040;\r\nvar VT_BLOB = 0x0041;\r\n//var VT_STREAM = 0x0042;\r\n//var VT_STORAGE = 0x0043;\r\n//var VT_STREAMED_Object = 0x0044;\r\n//var VT_STORED_Object = 0x0045;\r\n//var VT_BLOB_Object = 0x0046;\r\nvar VT_CF = 0x0047;\r\n//var VT_CLSID = 0x0048;\r\n//var VT_VERSIONED_STREAM = 0x0049;\r\nvar VT_VECTOR = 0x1000;\r\n//var VT_ARRAY = 0x2000;\r\n\r\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\r\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\r\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\r\n\r\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\r\nvar DocSummaryPIDDSI = {\r\n0x01: { n: 'CodePage', t: VT_I2 },\r\n0x02: { n: 'Category', t: VT_STRING },\r\n0x03: { n: 'PresentationFormat', t: VT_STRING },\r\n0x04: { n: 'ByteCount', t: VT_I4 },\r\n0x05: { n: 'LineCount', t: VT_I4 },\r\n0x06: { n: 'ParagraphCount', t: VT_I4 },\r\n0x07: { n: 'SlideCount', t: VT_I4 },\r\n0x08: { n: 'NoteCount', t: VT_I4 },\r\n0x09: { n: 'HiddenCount', t: VT_I4 },\r\n0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\r\n0x0b: { n: 'ScaleCrop', t: VT_BOOL },\r\n0x0c: { n: 'HeadingPairs', t: VT_VECTOR | VT_VARIANT },\r\n0x0d: { n: 'TitlesOfParts', t: VT_VECTOR | VT_LPSTR },\r\n0x0e: { n: 'Manager', t: VT_STRING },\r\n0x0f: { n: 'Company', t: VT_STRING },\r\n0x10: { n: 'LinksUpToDate', t: VT_BOOL },\r\n0x11: { n: 'CharacterCount', t: VT_I4 },\r\n0x13: { n: 'SharedDoc', t: VT_BOOL },\r\n0x16: { n: 'HyperlinksChanged', t: VT_BOOL },\r\n0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\r\n0x18: { n: 'DigSig', t: VT_BLOB },\r\n0x1A: { n: 'ContentType', t: VT_STRING },\r\n0x1B: { n: 'ContentStatus', t: VT_STRING },\r\n0x1C: { n: 'Language', t: VT_STRING },\r\n0x1D: { n: 'Version', t: VT_STRING },\r\n0xFF: {},\r\n\t/* [MS-OLEPS] 2.18 */\r\n0x80000000: { n: 'Locale', t: VT_UI4 },\r\n0x80000003: { n: 'Behavior', t: VT_UI4 },\r\n0x72627262: {}\r\n};\r\n\r\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\r\nvar SummaryPIDSI = {\r\n0x01: { n: 'CodePage', t: VT_I2 },\r\n0x02: { n: 'Title', t: VT_STRING },\r\n0x03: { n: 'Subject', t: VT_STRING },\r\n0x04: { n: 'Author', t: VT_STRING },\r\n0x05: { n: 'Keywords', t: VT_STRING },\r\n0x06: { n: 'Comments', t: VT_STRING },\r\n0x07: { n: 'Template', t: VT_STRING },\r\n0x08: { n: 'LastAuthor', t: VT_STRING },\r\n0x09: { n: 'RevNumber', t: VT_STRING },\r\n0x0A: { n: 'EditTime', t: VT_FILETIME },\r\n0x0B: { n: 'LastPrinted', t: VT_FILETIME },\r\n0x0C: { n: 'CreatedDate', t: VT_FILETIME },\r\n0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\r\n0x0E: { n: 'PageCount', t: VT_I4 },\r\n0x0F: { n: 'WordCount', t: VT_I4 },\r\n0x10: { n: 'CharCount', t: VT_I4 },\r\n0x11: { n: 'Thumbnail', t: VT_CF },\r\n0x12: { n: 'Application', t: VT_STRING },\r\n0x13: { n: 'DocSecurity', t: VT_I4 },\r\n0xFF: {},\r\n\t/* [MS-OLEPS] 2.18 */\r\n0x80000000: { n: 'Locale', t: VT_UI4 },\r\n0x80000003: { n: 'Behavior', t: VT_UI4 },\r\n0x72627262: {}\r\n};\r\n\r\nvar DocSummaryRE = evert_key(DocSummaryPIDDSI, \"n\");\r\nvar SummaryRE = evert_key(SummaryPIDSI, \"n\");\r\n\r\n/* [MS-XLS] 2.4.63 Country/Region codes */\r\nvar CountryEnum = {\r\n0x0001: \"US\", // United States\r\n0x0002: \"CA\", // Canada\r\n0x0003: \"\", // Latin America (except Brazil)\r\n0x0007: \"RU\", // Russia\r\n0x0014: \"EG\", // Egypt\r\n0x001E: \"GR\", // Greece\r\n0x001F: \"NL\", // Netherlands\r\n0x0020: \"BE\", // Belgium\r\n0x0021: \"FR\", // France\r\n0x0022: \"ES\", // Spain\r\n0x0024: \"HU\", // Hungary\r\n0x0027: \"IT\", // Italy\r\n0x0029: \"CH\", // Switzerland\r\n0x002B: \"AT\", // Austria\r\n0x002C: \"GB\", // United Kingdom\r\n0x002D: \"DK\", // Denmark\r\n0x002E: \"SE\", // Sweden\r\n0x002F: \"NO\", // Norway\r\n0x0030: \"PL\", // Poland\r\n0x0031: \"DE\", // Germany\r\n0x0034: \"MX\", // Mexico\r\n0x0037: \"BR\", // Brazil\r\n0x003d: \"AU\", // Australia\r\n0x0040: \"NZ\", // New Zealand\r\n0x0042: \"TH\", // Thailand\r\n0x0051: \"JP\", // Japan\r\n0x0052: \"KR\", // Korea\r\n0x0054: \"VN\", // Viet Nam\r\n0x0056: \"CN\", // China\r\n0x005A: \"TR\", // Turkey\r\n0x0069: \"JS\", // Ramastan\r\n0x00D5: \"DZ\", // Algeria\r\n0x00D8: \"MA\", // Morocco\r\n0x00DA: \"LY\", // Libya\r\n0x015F: \"PT\", // Portugal\r\n0x0162: \"IS\", // Iceland\r\n0x0166: \"FI\", // Finland\r\n0x01A4: \"CZ\", // Czech Republic\r\n0x0376: \"TW\", // Taiwan\r\n0x03C1: \"LB\", // Lebanon\r\n0x03C2: \"JO\", // Jordan\r\n0x03C3: \"SY\", // Syria\r\n0x03C4: \"IQ\", // Iraq\r\n0x03C5: \"KW\", // Kuwait\r\n0x03C6: \"SA\", // Saudi Arabia\r\n0x03CB: \"AE\", // United Arab Emirates\r\n0x03CC: \"IL\", // Israel\r\n0x03CE: \"QA\", // Qatar\r\n0x03D5: \"IR\", // Iran\r\n0xFFFF: \"US\" // United States\r\n};\r\n\r\n/* [MS-XLS] 2.5.127 */\r\nvar XLSFillPattern = [\r\n\tnull,\r\n\t'solid',\r\n\t'mediumGray',\r\n\t'darkGray',\r\n\t'lightGray',\r\n\t'darkHorizontal',\r\n\t'darkVertical',\r\n\t'darkDown',\r\n\t'darkUp',\r\n\t'darkGrid',\r\n\t'darkTrellis',\r\n\t'lightHorizontal',\r\n\t'lightVertical',\r\n\t'lightDown',\r\n\t'lightUp',\r\n\t'lightGrid',\r\n\t'lightTrellis',\r\n\t'gray125',\r\n\t'gray0625'\r\n];\r\n\r\nfunction rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\r\n\r\n/* [MS-XLS] 2.5.161 */\r\n/* [MS-XLSB] 2.5.75 Icv */\r\nvar _XLSIcv = rgbify([\r\n\t/* Color Constants */\r\n\t0x000000,\r\n\t0xFFFFFF,\r\n\t0xFF0000,\r\n\t0x00FF00,\r\n\t0x0000FF,\r\n\t0xFFFF00,\r\n\t0xFF00FF,\r\n\t0x00FFFF,\r\n\r\n\t/* Overridable Defaults */\r\n\t0x000000,\r\n\t0xFFFFFF,\r\n\t0xFF0000,\r\n\t0x00FF00,\r\n\t0x0000FF,\r\n\t0xFFFF00,\r\n\t0xFF00FF,\r\n\t0x00FFFF,\r\n\r\n\t0x800000,\r\n\t0x008000,\r\n\t0x000080,\r\n\t0x808000,\r\n\t0x800080,\r\n\t0x008080,\r\n\t0xC0C0C0,\r\n\t0x808080,\r\n\t0x9999FF,\r\n\t0x993366,\r\n\t0xFFFFCC,\r\n\t0xCCFFFF,\r\n\t0x660066,\r\n\t0xFF8080,\r\n\t0x0066CC,\r\n\t0xCCCCFF,\r\n\r\n\t0x000080,\r\n\t0xFF00FF,\r\n\t0xFFFF00,\r\n\t0x00FFFF,\r\n\t0x800080,\r\n\t0x800000,\r\n\t0x008080,\r\n\t0x0000FF,\r\n\t0x00CCFF,\r\n\t0xCCFFFF,\r\n\t0xCCFFCC,\r\n\t0xFFFF99,\r\n\t0x99CCFF,\r\n\t0xFF99CC,\r\n\t0xCC99FF,\r\n\t0xFFCC99,\r\n\r\n\t0x3366FF,\r\n\t0x33CCCC,\r\n\t0x99CC00,\r\n\t0xFFCC00,\r\n\t0xFF9900,\r\n\t0xFF6600,\r\n\t0x666699,\r\n\t0x969696,\r\n\t0x003366,\r\n\t0x339966,\r\n\t0x003300,\r\n\t0x333300,\r\n\t0x993300,\r\n\t0x993366,\r\n\t0x333399,\r\n\t0x333333,\r\n\r\n\t/* Other entries to appease BIFF8/12 */\r\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\r\n\t0x000000, /* 0x41 icvBackground ?? */\r\n\t0x000000, /* 0x42 icvFrame ?? */\r\n\t0x000000, /* 0x43 icv3D ?? */\r\n\t0x000000, /* 0x44 icv3DText ?? */\r\n\t0x000000, /* 0x45 icv3DHilite ?? */\r\n\t0x000000, /* 0x46 icv3DShadow ?? */\r\n\t0x000000, /* 0x47 icvHilite ?? */\r\n\t0x000000, /* 0x48 icvCtlText ?? */\r\n\t0x000000, /* 0x49 icvCtlScrl ?? */\r\n\t0x000000, /* 0x4A icvCtlInv ?? */\r\n\t0x000000, /* 0x4B icvCtlBody ?? */\r\n\t0x000000, /* 0x4C icvCtlFrame ?? */\r\n\t0x000000, /* 0x4D icvCtlFore ?? */\r\n\t0x000000, /* 0x4E icvCtlBack ?? */\r\n\t0x000000, /* 0x4F icvCtlNeutral */\r\n\t0x000000, /* 0x50 icvInfoBk ?? */\r\n\t0x000000 /* 0x51 icvInfoText ?? */\r\n]);\r\nvar XLSIcv = dup(_XLSIcv);\r\n\r\n/* [MS-XLSB] 2.5.97.2 */\r\nvar BErr = {\r\n0x00: \"#NULL!\",\r\n0x07: \"#DIV/0!\",\r\n0x0F: \"#VALUE!\",\r\n0x17: \"#REF!\",\r\n0x1D: \"#NAME?\",\r\n0x24: \"#NUM!\",\r\n0x2A: \"#N/A\",\r\n0x2B: \"#GETTING_DATA\",\r\n0xFF: \"#WTF?\"\r\n};\r\nvar RBErr = evert_num(BErr);\r\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\r\n/* 12.3 Part Summary <SpreadsheetML> */\r\n/* 14.2 Part Summary <DrawingML> */\r\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\r\nvar ct2type/*{[string]:string}*/ = ({\r\n\t/* Workbook */\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\r\n\r\n\t/* Worksheet */\r\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\r\n\r\n\t/* Macrosheet */\r\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\r\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\r\n\r\n\t/* File Properties */\r\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\r\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\r\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\r\n\r\n\t/* Custom Data Properties */\r\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\r\n\r\n\t/* PivotTable */\r\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\r\n\r\n\t/* Chart Objects */\r\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\r\n\r\n\t/* Chart Colors */\r\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\r\n\r\n\t/* Chart Style */\r\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\r\n\r\n\t/* Chart Advanced */\r\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\r\n\r\n\t/* Calculation Chain */\r\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\r\n\r\n\t/* Printer Settings */\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\r\n\r\n\t/* ActiveX */\r\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\r\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\r\n\r\n\t/* Custom Toolbars */\r\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\r\n\r\n\t/* External Data Connections */\r\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\r\n\r\n\t/* External Links */\r\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\r\n\r\n\t/* Metadata */\r\n\t\"application/vnd.ms-excel.sheetMetadata\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"TODO\",\r\n\r\n\t/* PivotCache */\r\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\r\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\r\n\r\n\t/* Query Table */\r\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\r\n\r\n\t/* Shared Workbook */\r\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\r\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\r\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\r\n\r\n\t/* Single Cell Table */\r\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\r\n\r\n\t/* Slicer */\r\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\r\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\r\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\r\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\r\n\r\n\t/* Sort Map */\r\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\r\n\r\n\t/* Table */\r\n\t\"application/vnd.ms-excel.table\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\r\n\r\n\t/* Themes */\r\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\r\n\r\n\t/* Theme Override */\r\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\r\n\r\n\t/* Timeline */\r\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\r\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\r\n\r\n\t/* VBA */\r\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\r\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"vba\",\r\n\r\n\t/* Volatile Dependencies */\r\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\r\n\r\n\t/* Control Properties */\r\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\r\n\r\n\t/* Data Model */\r\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\r\n\r\n\t/* Survey */\r\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\r\n\r\n\t/* Drawing */\r\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\r\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\r\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\r\n\r\n\t/* VML */\r\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\r\n\r\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\r\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\r\n\r\n\t/* Image */\r\n\t\"image/png\": \"TODO\",\r\n\r\n\t\"sheet\": \"js\"\r\n});\r\n\r\nvar CT_LIST = (function(){\r\n\tvar o = {\r\n\t\tworkbooks: {\r\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\r\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\r\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\r\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\r\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\r\n\t\t},\r\n\t\tstrs: { /* Shared Strings */\r\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\r\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\r\n\t\t},\r\n\t\tcomments: { /* Comments */\r\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\r\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\r\n\t\t},\r\n\t\tsheets: { /* Worksheet */\r\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\r\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\r\n\t\t},\r\n\t\tcharts: { /* Chartsheet */\r\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\r\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\r\n\t\t},\r\n\t\tdialogs: { /* Dialogsheet */\r\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\r\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\r\n\t\t},\r\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\r\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\r\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\r\n\t\t},\r\n\t\tstyles: { /* Styles */\r\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\r\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\r\n\t\t}\r\n\t};\r\n\tkeys(o).forEach(function(k) { [\"xlsm\", \"xlam\"].forEach(function(v) { if(!o[k][v]) o[k][v] = o[k].xlsx; }); });\r\n\tkeys(o).forEach(function(k){ keys(o[k]).forEach(function(v) { ct2type[o[k][v]] = k; }); });\r\n\treturn o;\r\n})();\r\n\r\nvar type2ct/*{[string]:Array<string>}*/ = evert_arr(ct2type);\r\n\r\nXMLNS.CT = 'http://schemas.openxmlformats.org/package/2006/content-types';\r\n\r\nfunction new_ct() {\r\n\treturn ({\r\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\r\n\t\trels:[], strs:[], comments:[], links:[],\r\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\r\n\t\tcalcchains:[], vba: [], drawings: [],\r\n\t\tTODO:[], xmlns: \"\" });\r\n}\r\n\r\nfunction parse_ct(data) {\r\n\tvar ct = new_ct();\r\n\tif(!data || !data.match) return ct;\r\n\tvar ctext = {};\r\n\t(data.match(tagregex)||[]).forEach(function(x) {\r\n\t\tvar y = parsexmltag(x);\r\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\r\n\t\t\tcase '<?xml': break;\r\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\r\n\t\t\tcase '<Default': ctext[y.Extension] = y.ContentType; break;\r\n\t\t\tcase '<Override':\r\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\r\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\r\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\r\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\r\n\tct.defaults = ctext;\r\n\tdelete ct.calcchains;\r\n\treturn ct;\r\n}\r\n\r\nvar CTYPE_XML_ROOT = writextag('Types', null, {\r\n\t'xmlns': XMLNS.CT,\r\n\t'xmlns:xsd': XMLNS.xsd,\r\n\t'xmlns:xsi': XMLNS.xsi\r\n});\r\n\r\nvar CTYPE_DEFAULTS = [\r\n\t['xml', 'application/xml'],\r\n\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\r\n\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\r\n\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\r\n\t/* from test files */\r\n\t['bmp', 'image/bmp'],\r\n\t['png', 'image/png'],\r\n\t['gif', 'image/gif'],\r\n\t['emf', 'image/x-emf'],\r\n\t['wmf', 'image/x-wmf'],\r\n\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\r\n\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\r\n\t['pdf', 'application/pdf'],\r\n\t['rels', type2ct.rels[0]]\r\n].map(function(x) {\r\n\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\r\n});\r\n\r\nfunction write_ct(ct, opts) {\r\n\tvar o = [], v;\r\n\to[o.length] = (XML_HEADER);\r\n\to[o.length] = (CTYPE_XML_ROOT);\r\n\to = o.concat(CTYPE_DEFAULTS);\r\n\r\n\t/* only write first instance */\r\n\tvar f1 = function(w) {\r\n\t\tif(ct[w] && ct[w].length > 0) {\r\n\t\t\tv = ct[w][0];\r\n\t\t\to[o.length] = (writextag('Override', null, {\r\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\r\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\r\n\t\t\t}));\r\n\t\t}\r\n\t};\r\n\r\n\t/* book type-specific */\r\n\tvar f2 = function(w) {\r\n\t\t(ct[w]||[]).forEach(function(v) {\r\n\t\t\to[o.length] = (writextag('Override', null, {\r\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\r\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\r\n\t\t\t}));\r\n\t\t});\r\n\t};\r\n\r\n\t/* standard type */\r\n\tvar f3 = function(t) {\r\n\t\t(ct[t]||[]).forEach(function(v) {\r\n\t\t\to[o.length] = (writextag('Override', null, {\r\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\r\n\t\t\t\t'ContentType': type2ct[t][0]\r\n\t\t\t}));\r\n\t\t});\r\n\t};\r\n\r\n\tf1('workbooks');\r\n\tf2('sheets');\r\n\tf2('charts');\r\n\tf3('themes');\r\n\t['strs', 'styles'].forEach(f1);\r\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\r\n\tf3('vba');\r\n\tf3('comments');\r\n\tf3('drawings');\r\n\tif(o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\n/* 9.3 Relationships */\r\nvar RELS = ({\r\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\r\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\r\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\r\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\r\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\r\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\r\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\r\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\r\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\r\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\r\n});\r\n\r\n/* 9.3.3 Representing Relationships */\r\nfunction get_rels_path(file) {\r\n\tvar n = file.lastIndexOf(\"/\");\r\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\r\n}\r\n\r\nfunction parse_rels(data, currentFilePath) {\r\n\tvar rels = {\"!id\":{}};\r\n\tif (!data) return rels;\r\n\tif (currentFilePath.charAt(0) !== '/') {\r\n\t\tcurrentFilePath = '/'+currentFilePath;\r\n\t}\r\n\tvar hash = {};\r\n\r\n\t(data.match(tagregex)||[]).forEach(function(x) {\r\n\t\tvar y = parsexmltag(x);\r\n\t\t/* 9.3.2.2 OPC_Relationships */\r\n\t\tif (y[0] === '<Relationship') {\r\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = y.Target; rel.Id = y.Id; if(y.TargetMode) rel.TargetMode = y.TargetMode;\r\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolve_path(y.Target, currentFilePath);\r\n\t\t\trels[canonictarget] = rel;\r\n\t\t\thash[y.Id] = rel;\r\n\t\t}\r\n\t});\r\n\trels[\"!id\"] = hash;\r\n\treturn rels;\r\n}\r\n\r\nXMLNS.RELS = 'http://schemas.openxmlformats.org/package/2006/relationships';\r\n\r\nvar RELS_ROOT = writextag('Relationships', null, {\r\n\t//'xmlns:ns0': XMLNS.RELS,\r\n\t'xmlns': XMLNS.RELS\r\n});\r\n\r\n/* TODO */\r\nfunction write_rels(rels) {\r\n\tvar o = [XML_HEADER, RELS_ROOT];\r\n\tkeys(rels['!id']).forEach(function(rid) {\r\n\t\to[o.length] = (writextag('Relationship', null, rels['!id'][rid]));\r\n\t});\r\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\n\r\nvar RELS_EXTERN = [RELS.HLINK, RELS.XPATH, RELS.XMISS];\r\nfunction add_rels(rels, rId, f, type, relobj, targetmode) {\r\n\tif(!relobj) relobj = {};\r\n\tif(!rels['!id']) rels['!id'] = {};\r\n\tif(rId < 0) for(rId = 1; rels['!id']['rId' + rId]; ++rId){/* empty */}\r\n\trelobj.Id = 'rId' + rId;\r\n\trelobj.Type = type;\r\n\trelobj.Target = f;\r\n\tif(targetmode) relobj.TargetMode = targetmode;\r\n\telse if(RELS_EXTERN.indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\r\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\r\n\trels['!id'][relobj.Id] = relobj;\r\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\r\n\treturn rId;\r\n}\r\n/* ECMA-376 Part II 11.1 Core Properties Part */\r\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\r\nvar CORE_PROPS = [\r\n\t[\"cp:category\", \"Category\"],\r\n\t[\"cp:contentStatus\", \"ContentStatus\"],\r\n\t[\"cp:keywords\", \"Keywords\"],\r\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\r\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\r\n\t[\"cp:revision\", \"RevNumber\"],\r\n\t[\"cp:version\", \"Version\"],\r\n\t[\"dc:creator\", \"Author\"],\r\n\t[\"dc:description\", \"Comments\"],\r\n\t[\"dc:identifier\", \"Identifier\"],\r\n\t[\"dc:language\", \"Language\"],\r\n\t[\"dc:subject\", \"Subject\"],\r\n\t[\"dc:title\", \"Title\"],\r\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\r\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\r\n];\r\n\r\nXMLNS.CORE_PROPS = \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";\r\nRELS.CORE_PROPS = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties';\r\n\r\nvar CORE_PROPS_REGEX = (function() {\r\n\tvar r = new Array(CORE_PROPS.length);\r\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\r\n\t\tvar f = CORE_PROPS[i];\r\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\r\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\r\n\t}\r\n\treturn r;\r\n})();\r\n\r\nfunction parse_core_props(data) {\r\n\tvar p = {};\r\n\tdata = utf8read(data);\r\n\r\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\r\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\r\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\r\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\r\n\t}\r\n\r\n\treturn p;\r\n}\r\n\r\nvar CORE_PROPS_XML_ROOT = writextag('cp:coreProperties', null, {\r\n\t//'xmlns': XMLNS.CORE_PROPS,\r\n\t'xmlns:cp': XMLNS.CORE_PROPS,\r\n\t'xmlns:dc': XMLNS.dc,\r\n\t'xmlns:dcterms': XMLNS.dcterms,\r\n\t'xmlns:dcmitype': XMLNS.dcmitype,\r\n\t'xmlns:xsi': XMLNS.xsi\r\n});\r\n\r\nfunction cp_doit(f, g, h, o, p) {\r\n\tif(p[f] != null || g == null || g === \"\") return;\r\n\tp[f] = g;\r\n\tg = escapexml(g);\r\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\r\n}\r\n\r\nfunction write_core_props(cp, _opts) {\r\n\tvar opts = _opts || {};\r\n\tvar o = [XML_HEADER, CORE_PROPS_XML_ROOT], p = {};\r\n\tif(!cp && !opts.Props) return o.join(\"\");\r\n\r\n\tif(cp) {\r\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);\r\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);\r\n\t}\r\n\r\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\r\n\t\tvar f = CORE_PROPS[i];\r\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\r\n\t\tif(v === true) v = \"1\";\r\n\t\telse if(v === false) v = \"0\";\r\n\t\telse if(typeof v == \"number\") v = String(v);\r\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\r\n\t}\r\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\n/* 15.2.12.3 Extended File Properties Part */\r\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\r\nvar EXT_PROPS = [\r\n\t[\"Application\", \"Application\", \"string\"],\r\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\r\n\t[\"Company\", \"Company\", \"string\"],\r\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\r\n\t[\"Manager\", \"Manager\", \"string\"],\r\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\r\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\r\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\r\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\r\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\r\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\r\n];\r\n\r\nXMLNS.EXT_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";\r\nRELS.EXT_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties';\r\n\r\nvar PseudoPropsPairs = [\r\n\t\"Worksheets\", \"SheetNames\",\r\n\t\"NamedRanges\", \"DefinedNames\",\r\n\t\"Chartsheets\", \"ChartNames\"\r\n];\r\nfunction load_props_pairs(HP, TOP, props, opts) {\r\n\tvar v = [];\r\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\r\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\r\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\r\n\tvar idx = 0, len = 0;\r\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\r\n\t\tlen = +(v[i+1].v);\r\n\t\tswitch(v[i].v) {\r\n\t\t\tcase \"Worksheets\":\r\n\t\t\tcase \"工作表\":\r\n\t\t\tcase \"Листы\":\r\n\t\t\tcase \"أوراق العمل\":\r\n\t\t\tcase \"ワークシート\":\r\n\t\t\tcase \"גליונות עבודה\":\r\n\t\t\tcase \"Arbeitsblätter\":\r\n\t\t\tcase \"Çalışma Sayfaları\":\r\n\t\t\tcase \"Feuilles de calcul\":\r\n\t\t\tcase \"Fogli di lavoro\":\r\n\t\t\tcase \"Folhas de cálculo\":\r\n\t\t\tcase \"Planilhas\":\r\n\t\t\tcase \"Regneark\":\r\n\t\t\tcase \"Hojas de cálculo\":\r\n\t\t\tcase \"Werkbladen\":\r\n\t\t\t\tprops.Worksheets = len;\r\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"Named Ranges\":\r\n\t\t\tcase \"Rangos con nombre\":\r\n\t\t\tcase \"名前付き一覧\":\r\n\t\t\tcase \"Benannte Bereiche\":\r\n\t\t\tcase \"Navngivne områder\":\r\n\t\t\t\tprops.NamedRanges = len;\r\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase \"Charts\":\r\n\t\t\tcase \"Diagramme\":\r\n\t\t\t\tprops.Chartsheets = len;\r\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tidx += len;\r\n\t}\r\n}\r\n\r\nfunction parse_ext_props(data, p, opts) {\r\n\tvar q = {}; if(!p) p = {};\r\n\tdata = utf8read(data);\r\n\r\n\tEXT_PROPS.forEach(function(f) {\r\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\r\n\t\tswitch(f[2]) {\r\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\r\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\r\n\t\t\tcase \"raw\":\r\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\r\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t});\r\n\r\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\r\n\r\n\treturn p;\r\n}\r\n\r\nvar EXT_PROPS_XML_ROOT = writextag('Properties', null, {\r\n\t'xmlns': XMLNS.EXT_PROPS,\r\n\t'xmlns:vt': XMLNS.vt\r\n});\r\n\r\nfunction write_ext_props(cp) {\r\n\tvar o = [], W = writextag;\r\n\tif(!cp) cp = {};\r\n\tcp.Application = \"SheetJS\";\r\n\to[o.length] = (XML_HEADER);\r\n\to[o.length] = (EXT_PROPS_XML_ROOT);\r\n\r\n\tEXT_PROPS.forEach(function(f) {\r\n\t\tif(cp[f[1]] === undefined) return;\r\n\t\tvar v;\r\n\t\tswitch(f[2]) {\r\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\r\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\r\n\t\t}\r\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\r\n\t});\r\n\r\n\t/* TODO: HeadingPairs, TitlesOfParts */\r\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\r\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + escapexml(s) + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\r\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\n/* 15.2.12.2 Custom File Properties Part */\r\nXMLNS.CUST_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";\r\nRELS.CUST_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties';\r\n\r\nvar custregex = /<[^>]+>[^<]*/g;\r\nfunction parse_cust_props(data, opts) {\r\n\tvar p = {}, name = \"\";\r\n\tvar m = data.match(custregex);\r\n\tif(m) for(var i = 0; i != m.length; ++i) {\r\n\t\tvar x = m[i], y = parsexmltag(x);\r\n\t\tswitch(y[0]) {\r\n\t\t\tcase '<?xml': break;\r\n\t\t\tcase '<Properties': break;\r\n\t\t\tcase '<property': name = unescapexml(y.name); break;\r\n\t\t\tcase '</property>': name = null; break;\r\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\r\n\t\t\t\tvar toks = x.split('>');\r\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\r\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\r\n\t\t\t\tswitch(type) {\r\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\r\n\t\t\t\t\t\tp[name] = unescapexml(text);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'bool':\r\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\r\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\r\n\t\t\t\t\t\tp[name] = parseFloat(text);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'filetime': case 'date':\r\n\t\t\t\t\t\tp[name] = parseDate(text);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'cy': case 'error':\r\n\t\t\t\t\t\tp[name] = unescapexml(text);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\r\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\r\n\t\t\t\t}\r\n\t\t\t} else if(x.slice(0,2) === \"</\") {/* empty */\r\n\t\t\t} else if(opts.WTF) throw new Error(x);\r\n\t\t}\r\n\t}\r\n\treturn p;\r\n}\r\n\r\nvar CUST_PROPS_XML_ROOT = writextag('Properties', null, {\r\n\t'xmlns': XMLNS.CUST_PROPS,\r\n\t'xmlns:vt': XMLNS.vt\r\n});\r\n\r\nfunction write_cust_props(cp) {\r\n\tvar o = [XML_HEADER, CUST_PROPS_XML_ROOT];\r\n\tif(!cp) return o.join(\"\");\r\n\tvar pid = 1;\r\n\tkeys(cp).forEach(function custprop(k) { ++pid;\r\n\t\to[o.length] = (writextag('property', write_vt(cp[k], true), {\r\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\r\n\t\t\t'pid': pid,\r\n\t\t\t'name': escapexml(k)\r\n\t\t}));\r\n\t});\r\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\n/* from js-harb (C) 2014-present SheetJS */\r\nvar DBF = (function() {\r\nvar dbf_codepage_map = {\r\n\t/* Code Pages Supported by Visual FoxPro */\r\n0x01: 437, 0x02: 850,\r\n0x03: 1252, 0x04: 10000,\r\n0x64: 852, 0x65: 866,\r\n0x66: 865, 0x67: 861,\r\n0x68: 895, 0x69: 620,\r\n0x6A: 737, 0x6B: 857,\r\n0x78: 950, 0x79: 949,\r\n0x7A: 936, 0x7B: 932,\r\n0x7C: 874, 0x7D: 1255,\r\n0x7E: 1256, 0x96: 10007,\r\n0x97: 10029, 0x98: 10006,\r\n0xC8: 1250, 0xC9: 1251,\r\n0xCA: 1254, 0xCB: 1253,\r\n\r\n\t/* shapefile DBF extension */\r\n0x00: 20127, 0x08: 865,\r\n0x09: 437, 0x0A: 850,\r\n0x0B: 437, 0x0D: 437,\r\n0x0E: 850, 0x0F: 437,\r\n0x10: 850, 0x11: 437,\r\n0x12: 850, 0x13: 932,\r\n0x14: 850, 0x15: 437,\r\n0x16: 850, 0x17: 865,\r\n0x18: 437, 0x19: 437,\r\n0x1A: 850, 0x1B: 437,\r\n0x1C: 863, 0x1D: 850,\r\n0x1F: 852, 0x22: 852,\r\n0x23: 852, 0x24: 860,\r\n0x25: 850, 0x26: 866,\r\n0x37: 850, 0x40: 852,\r\n0x4D: 936, 0x4E: 949,\r\n0x4F: 950, 0x50: 874,\r\n0x57: 1252, 0x58: 1252,\r\n0x59: 1252, 0x6C: 863,\r\n0x86: 737, 0x87: 852,\r\n0x88: 857, 0xCC: 1257,\r\n\r\n0xFF: 16969\r\n};\r\nvar dbf_reverse_map = evert({\r\n0x01: 437, 0x02: 850,\r\n0x03: 1252, 0x04: 10000,\r\n0x64: 852, 0x65: 866,\r\n0x66: 865, 0x67: 861,\r\n0x68: 895, 0x69: 620,\r\n0x6A: 737, 0x6B: 857,\r\n0x78: 950, 0x79: 949,\r\n0x7A: 936, 0x7B: 932,\r\n0x7C: 874, 0x7D: 1255,\r\n0x7E: 1256, 0x96: 10007,\r\n0x97: 10029, 0x98: 10006,\r\n0xC8: 1250, 0xC9: 1251,\r\n0xCA: 1254, 0xCB: 1253,\r\n0x00: 20127\r\n});\r\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\r\n/* TODO: find an actual specification */\r\nfunction dbf_to_aoa(buf, opts) {\r\n\tvar out = [];\r\n\tvar d = (new_raw_buf(1));\r\n\tswitch(opts.type) {\r\n\t\tcase 'base64': d = s2a(Base64.decode(buf)); break;\r\n\t\tcase 'binary': d = s2a(buf); break;\r\n\t\tcase 'buffer':\r\n\t\tcase 'array': d = buf; break;\r\n\t}\r\n\tprep_blob(d, 0);\r\n\r\n\t/* header */\r\n\tvar ft = d.read_shift(1);\r\n\tvar memo = !!(ft & 0x88);\r\n\tvar vfp = false, l7 = false;\r\n\tswitch(ft) {\r\n\t\tcase 0x02: break; // dBASE II\r\n\t\tcase 0x03: break; // dBASE III\r\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\r\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\r\n\t\t// 0x43 dBASE IV SQL table files\r\n\t\t// 0x63 dBASE IV SQL system files\r\n\t\tcase 0x83: break; // dBASE III with memo\r\n\t\tcase 0x8B: break; // dBASE IV with memo\r\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\r\n\t\t// case 0xCB dBASE IV SQL table files with memo\r\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\r\n\t\t// case 0xFB FoxBASE\r\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\r\n\t}\r\n\r\n\tvar nrow = 0, fpos = 0x0209;\r\n\tif(ft == 0x02) nrow = d.read_shift(2);\r\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\r\n\tif(ft != 0x02) nrow = d.read_shift(4);\r\n\tif(nrow > 1048576) nrow = 1e6;\r\n\r\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\r\n\tvar rlen = d.read_shift(2); // record length\r\n\r\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\r\n\tif(ft != 0x02) { // 20 reserved bytes\r\n\t\td.l+=16;\r\n\t\t/*flags = */d.read_shift(1);\r\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\r\n\r\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\r\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\r\n\t\td.l+=1;\r\n\r\n\t\td.l+=2;\r\n\t}\r\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\r\n\r\nvar fields = [], field = ({});\r\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\r\n\tvar ww = l7 ? 32 : 11;\r\n\twhile(d.l < hend && d[d.l] != 0x0d) {\r\n\t\tfield = ({});\r\n\t\tfield.name = cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\r\n\t\td.l += ww;\r\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\r\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\r\n\t\tfield.len = d.read_shift(1);\r\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\r\n\t\tfield.dec = d.read_shift(1);\r\n\t\tif(field.name.length) fields.push(field);\r\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\r\n\t\tswitch(field.type) {\r\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\r\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\r\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\r\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\r\n\t\t\tcase '0': // _NullFlags (VFP only)\r\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\r\n\t\t\tcase 'C': // Character (dBASE II)\r\n\t\t\tcase 'D': // Date (dBASE III)\r\n\t\t\tcase 'F': // Float (dBASE IV)\r\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\r\n\t\t\tcase 'L': // Logical (dBASE II)\r\n\t\t\tcase 'M': // Memo (dBASE III)\r\n\t\t\tcase 'N': // Number (dBASE II)\r\n\t\t\tcase 'O': // Double (dBASE L7 only)\r\n\t\t\tcase 'T': // Datetime (VFP only)\r\n\t\t\tcase 'Y': // Currency (VFP only)\r\n\t\t\t\tbreak;\r\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\r\n\t\t}\r\n\t}\r\n\r\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\r\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\r\n\td.l = fpos;\r\n\r\n\t/* data */\r\n\tvar R = 0, C = 0;\r\n\tout[0] = [];\r\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\r\n\twhile(nrow-- > 0) {\r\n\t\tif(d[d.l] === 0x2A) {\r\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\r\n\t\t\td.l+=rlen;\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\t++d.l;\r\n\t\tout[++R] = []; C = 0;\r\n\t\tfor(C = 0; C != fields.length; ++C) {\r\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\r\n\t\t\tprep_blob(dd, 0);\r\n\t\t\tvar s = cptable.utils.decode(current_cp, dd);\r\n\t\t\tswitch(fields[C].type) {\r\n\t\t\t\tcase 'C':\r\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\r\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'D':\r\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));\r\n\t\t\t\t\telse out[R][C] = s;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\r\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\r\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\r\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\r\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\r\n\t\t\t\t\tcase '': case '?': break;\r\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\r\n\t\t\t\t\t} break;\r\n\t\t\t\tcase 'M': /* TODO: handle memo files */\r\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\r\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'N':\r\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\r\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\r\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\r\n\t\t\t\tcase '@':\r\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\r\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\r\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4; break;\r\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\r\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\r\n\t\t\t\t\t/* falls through */\r\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\r\n\t\t\t\tcase '0':\r\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\r\n\t\t\t\t\t/* falls through */\r\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\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));\r\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\r\n\treturn out;\r\n}\r\n\r\nfunction dbf_to_sheet(buf, opts) {\r\n\tvar o = opts || {};\r\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\r\n\treturn aoa_to_sheet(dbf_to_aoa(buf, o), o);\r\n}\r\n\r\nfunction dbf_to_workbook(buf, opts) {\r\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\r\n\tcatch(e) { if(opts && opts.WTF) throw e; }\r\n\treturn ({SheetNames:[],Sheets:{}});\r\n}\r\n\r\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\r\nfunction sheet_to_dbf(ws, opts) {\r\n\tvar o = opts || {};\r\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\r\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\r\n\tvar ba = buf_array();\r\n\tvar aoa = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\r\n\tvar headers = aoa[0], data = aoa.slice(1);\r\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\r\n\tfor(i = 0; i < headers.length; ++i) {\r\n\t\tif(i == null) continue;\r\n\t\t++hcnt;\r\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\r\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\r\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\r\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\r\n\t}\r\n\tvar range = safe_decode_range(ws['!ref']);\r\n\tvar coltypes = [];\r\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\r\n\t\tvar col = [];\r\n\t\tfor(j=0; j < data.length; ++j) {\r\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\r\n\t\t}\r\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\r\n\t\tvar guess = '', _guess = '';\r\n\t\tfor(j = 0; j < col.length; ++j) {\r\n\t\t\tswitch(typeof col[j]) {\r\n\t\t\t\t/* TODO: check if L2 compat is desired */\r\n\t\t\t\tcase 'number': _guess = 'B'; break;\r\n\t\t\t\tcase 'string': _guess = 'C'; break;\r\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\r\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\r\n\t\t\t\tdefault: _guess = 'C';\r\n\t\t\t}\r\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\r\n\t\t\tif(guess == 'C') break;\r\n\t\t}\r\n\t\trlen += _RLEN[guess] || 0;\r\n\t\tcoltypes[i] = guess;\r\n\t}\r\n\r\n\tvar h = ba.next(32);\r\n\th.write_shift(4, 0x13021130);\r\n\th.write_shift(4, data.length);\r\n\th.write_shift(2, 296 + 32 * hcnt);\r\n\th.write_shift(2, rlen);\r\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\r\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[current_ansi] || 0x03)<<8));\r\n\r\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\r\n\t\tif(headers[i] == null) continue;\r\n\t\tvar hf = ba.next(32);\r\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\r\n\t\thf.write_shift(1, _f, \"sbcs\");\r\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\r\n\t\thf.write_shift(4, j);\r\n\t\thf.write_shift(1, _RLEN[coltypes[i]] || 0);\r\n\t\thf.write_shift(1, 0);\r\n\t\thf.write_shift(1, 0x02);\r\n\t\thf.write_shift(4, 0);\r\n\t\thf.write_shift(1, 0);\r\n\t\thf.write_shift(4, 0);\r\n\t\thf.write_shift(4, 0);\r\n\t\tj += _RLEN[coltypes[i]] || 0;\r\n\t}\r\n\r\n\tvar hb = ba.next(264);\r\n\thb.write_shift(4, 0x0000000D);\r\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\r\n\tfor(i=0; i < data.length; ++i) {\r\n\t\tvar rout = ba.next(rlen);\r\n\t\trout.write_shift(1, 0);\r\n\t\tfor(j=0; j<headers.length; ++j) {\r\n\t\t\tif(headers[j] == null) continue;\r\n\t\t\tswitch(coltypes[j]) {\r\n\t\t\t\tcase 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break;\r\n\t\t\t\tcase 'B': rout.write_shift(8, data[i][j]||0, 'f'); break;\r\n\t\t\t\tcase 'D':\r\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\r\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\r\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\r\n\t\t\t\t\t} break;\r\n\t\t\t\tcase 'C':\r\n\t\t\t\t\tvar _s = String(data[i][j]||\"\");\r\n\t\t\t\t\trout.write_shift(1, _s, \"sbcs\");\r\n\t\t\t\t\tfor(hcnt=0; hcnt < 250-_s.length; ++hcnt) rout.write_shift(1, 0x20); break;\r\n\t\t\t}\r\n\t\t}\r\n\t\t// data\r\n\t}\r\n\tba.next(1).write_shift(1, 0x1A);\r\n\treturn ba.end();\r\n}\r\n\treturn {\r\n\t\tversions: DBF_SUPPORTED_VERSIONS,\r\n\t\tto_workbook: dbf_to_workbook,\r\n\t\tto_sheet: dbf_to_sheet,\r\n\t\tfrom_sheet: sheet_to_dbf\r\n\t};\r\n})();\r\n\r\nvar SYLK = (function() {\r\n\t/* TODO: stress test sequences */\r\n\tvar sylk_escapes = ({\r\n\t\tAA:'À', BA:'Á', CA:'Â', DA:195, HA:'Ä', JA:197,\r\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\r\n\t\tAI:'Ì', BI:'Í', CI:'Î', HI:'Ï',\r\n\t\tAO:'Ò', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\r\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ü',\r\n\t\tAa:'à', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\r\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\r\n\t\tAi:'ì', Bi:'í', Ci:'î', Hi:'ï',\r\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\r\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\r\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'œ', a:'Æ', j:'Œ',\r\n\t\tDN:209, Dn:241, Hy:255,\r\n\t\tS:169, c:170, R:174, \"B \":180,\r\n0:176, 1:177, 2:178,\r\n3:179, 5:181, 6:182,\r\n7:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\r\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\r\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\r\n\t});\r\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\r\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\r\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\r\n\tsylk_escapes[\"|\"] = 254;\r\n\t/* TODO: find an actual specification */\r\n\tfunction sylk_to_aoa(d, opts) {\r\n\t\tswitch(opts.type) {\r\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64.decode(d), opts);\r\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\r\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\r\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\r\n\t\t}\r\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\r\n\t}\r\n\tfunction sylk_to_aoa_str(str, opts) {\r\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr = [];\r\n\t\tvar formats = [];\r\n\t\tvar next_cell_format = null;\r\n\t\tvar sht = {}, rowinfo = [], colinfo = [], cw = [];\r\n\t\tvar Mval = 0, j;\r\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\r\n\t\tfor (; ri !== records.length; ++ri) {\r\n\t\t\tMval = 0;\r\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\r\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\r\n\t\t\tvar RT=record[0], val;\r\n\t\t\tif(rstr.length > 0) switch(RT) {\r\n\t\t\tcase 'ID': break; /* header */\r\n\t\t\tcase 'E': break; /* EOF */\r\n\t\t\tcase 'B': break; /* dimensions */\r\n\t\t\tcase 'O': break; /* options? */\r\n\t\t\tcase 'W': break; /* window? */\r\n\t\t\tcase 'P':\r\n\t\t\t\tif(record[1].charAt(0) == 'P')\r\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'C':\r\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\r\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\r\n\t\t\t\tcase 'A': break; // TODO: comment\r\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; C_seen_X = true; break;\r\n\t\t\t\tcase 'Y':\r\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; if(!C_seen_X) C = 0;\r\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'K':\r\n\t\t\t\t\tval = record[rj].slice(1);\r\n\t\t\t\t\tif(val.charAt(0) === '\"') val = val.slice(1,val.length - 1);\r\n\t\t\t\t\telse if(val === 'TRUE') val = true;\r\n\t\t\t\t\telse if(val === 'FALSE') val = false;\r\n\t\t\t\t\telse if(!isNaN(fuzzynum(val))) {\r\n\t\t\t\t\t\tval = fuzzynum(val);\r\n\t\t\t\t\t\tif(next_cell_format !== null && SSF.is_date(next_cell_format)) val = numdate(val);\r\n\t\t\t\t\t} else if(!isNaN(fuzzydate(val).getDate())) {\r\n\t\t\t\t\t\tval = parseDate(val);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof cptable !== 'undefined' && typeof val == \"string\" && ((opts||{}).type != \"string\") && (opts||{}).codepage) val = cptable.utils.decode(opts.codepage, val);\r\n\t\t\t\t\tC_seen_K = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'E':\r\n\t\t\t\t\tC_seen_E = true;\r\n\t\t\t\t\tvar formula = rc_to_a1(record[rj].slice(1), {r:R,c:C});\r\n\t\t\t\t\tarr[R][C] = [arr[R][C], formula];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'S':\r\n\t\t\t\t\tC_seen_S = true;\r\n\t\t\t\t\tarr[R][C] = [arr[R][C], \"S5S\"];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'G': break; // unknown\r\n\t\t\t\tcase 'R': _R = parseInt(record[rj].slice(1))-1; break;\r\n\t\t\t\tcase 'C': _C = parseInt(record[rj].slice(1))-1; break;\r\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\r\n\t\t\t}\r\n\t\t\tif(C_seen_K) {\r\n\t\t\t\tif(arr[R][C] && arr[R][C].length == 2) arr[R][C][0] = val;\r\n\t\t\t\telse arr[R][C] = val;\r\n\t\t\t\tnext_cell_format = null;\r\n\t\t\t}\r\n\t\t\tif(C_seen_S) {\r\n\t\t\t\tif(C_seen_E) throw new Error(\"SYLK shared formula cannot have own formula\");\r\n\t\t\t\tvar shrbase = _R > -1 && arr[_R][_C];\r\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\r\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\tcase 'F':\r\n\t\t\tvar F_seen = 0;\r\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\r\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; ++F_seen; break;\r\n\t\t\t\tcase 'Y':\r\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; /*C = 0;*/\r\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'M': Mval = parseInt(record[rj].slice(1)) / 20; break;\r\n\t\t\t\tcase 'F': break; /* ??? */\r\n\t\t\t\tcase 'G': break; /* hide grid */\r\n\t\t\t\tcase 'P':\r\n\t\t\t\t\tnext_cell_format = formats[parseInt(record[rj].slice(1))];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'S': break; /* cell style */\r\n\t\t\t\tcase 'D': break; /* column */\r\n\t\t\t\tcase 'N': break; /* font */\r\n\t\t\t\tcase 'W':\r\n\t\t\t\t\tcw = record[rj].slice(1).split(\" \");\r\n\t\t\t\t\tfor(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) {\r\n\t\t\t\t\t\tMval = parseInt(cw[2], 10);\r\n\t\t\t\t\t\tcolinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval}; process_col(colinfo[j-1]);\r\n\t\t\t\t\t} break;\r\n\t\t\t\tcase 'C': /* default column format */\r\n\t\t\t\t\tC = parseInt(record[rj].slice(1))-1;\r\n\t\t\t\t\tif(!colinfo[C]) colinfo[C] = {};\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'R': /* row properties */\r\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1;\r\n\t\t\t\t\tif(!rowinfo[R]) rowinfo[R] = {};\r\n\t\t\t\t\tif(Mval > 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\r\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\r\n\t\t\t}\r\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\r\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\r\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\r\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\r\n\t\treturn [arr, sht];\r\n\t}\r\n\r\n\tfunction sylk_to_sheet(d, opts) {\r\n\t\tvar aoasht = sylk_to_aoa(d, opts);\r\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\r\n\t\tvar o = aoa_to_sheet(aoa, opts);\r\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\r\n\t\treturn o;\r\n\t}\r\n\r\n\tfunction sylk_to_workbook(d, opts) { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\r\n\r\n\tfunction write_ws_cell_sylk(cell, ws, R, C) {\r\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\r\n\t\tswitch(cell.t) {\r\n\t\t\tcase 'n':\r\n\t\t\t\to += (cell.v||0);\r\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\r\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\r\n\t\t\tcase 'e': o += cell.w || cell.v; break;\r\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\r\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\") + '\"'; break;\r\n\t\t}\r\n\t\treturn o;\r\n\t}\r\n\r\n\tfunction write_ws_cols_sylk(out, cols) {\r\n\t\tcols.forEach(function(col, i) {\r\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\r\n\t\t\tif(col.hidden) rec += \"0\";\r\n\t\t\telse {\r\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\r\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\r\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\r\n\t\t\t}\r\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\r\n\t\t});\r\n\t}\r\n\r\n\tfunction write_ws_rows_sylk(out, rows) {\r\n\t\trows.forEach(function(row, i) {\r\n\t\t\tvar rec = \"F;\";\r\n\t\t\tif(row.hidden) rec += \"M0;\";\r\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\r\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\r\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\r\n\t\t});\r\n\t}\r\n\r\n\tfunction sheet_to_sylk(ws, opts) {\r\n\t\tvar preamble = [\"ID;PWXL;N;E\"], o = [];\r\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\r\n\t\tvar dense = Array.isArray(ws);\r\n\t\tvar RS = \"\\r\\n\";\r\n\r\n\t\tpreamble.push(\"P;PGeneral\");\r\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\r\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\r\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\r\n\r\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(\" \"));\r\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\r\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\r\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\r\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\r\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\r\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\r\n\t}\r\n\r\n\treturn {\r\n\t\tto_workbook: sylk_to_workbook,\r\n\t\tto_sheet: sylk_to_sheet,\r\n\t\tfrom_sheet: sheet_to_sylk\r\n\t};\r\n})();\r\n\r\nvar DIF = (function() {\r\n\tfunction dif_to_aoa(d, opts) {\r\n\t\tswitch(opts.type) {\r\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64.decode(d), opts);\r\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\r\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\r\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\r\n\t\t}\r\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\r\n\t}\r\n\tfunction dif_to_aoa_str(str, opts) {\r\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\r\n\t\tfor (; ri !== records.length; ++ri) {\r\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\r\n\t\t\tif (R < 0) continue;\r\n\t\t\tvar metadata = records[ri].trim().split(\",\");\r\n\t\t\tvar type = metadata[0], value = metadata[1];\r\n\t\t\t++ri;\r\n\t\t\tvar data = records[ri] || \"\";\r\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\r\n\t\t\tdata = data.trim();\r\n\t\t\tswitch (+type) {\r\n\t\t\t\tcase -1:\r\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\r\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 0:\r\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\r\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\r\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\r\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\r\n\t\t\t\t\telse arr[R][C] = value;\r\n\t\t\t\t\t++C; break;\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\tdata = data.slice(1,data.length-1);\r\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\r\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\r\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif (data === 'EOD') break;\r\n\t\t}\r\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\r\n\t\treturn arr;\r\n\t}\r\n\r\n\tfunction dif_to_sheet(str, opts) { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\r\n\tfunction dif_to_workbook(str, opts) { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\r\n\r\n\tvar sheet_to_dif = (function() {\r\n\t\tvar push_field = function pf(o, topic, v, n, s) {\r\n\t\t\to.push(topic);\r\n\t\t\to.push(v + \",\" + n);\r\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\r\n\t\t};\r\n\t\tvar push_value = function po(o, type, v, s) {\r\n\t\t\to.push(type + \",\" + v);\r\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\r\n\t\t};\r\n\t\treturn function sheet_to_dif(ws) {\r\n\t\t\tvar o = [];\r\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell;\r\n\t\t\tvar dense = Array.isArray(ws);\r\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\r\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\r\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\r\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\r\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\r\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\r\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\r\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\r\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\r\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\r\n\t\t\t\t\tswitch(cell.t) {\r\n\t\t\t\t\t\tcase 'n':\r\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\r\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\r\n\t\t\t\t\t\t\tif(val == null) {\r\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\r\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'b':\r\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 's':\r\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'd':\r\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF.format(cell.z || SSF._table[14], datenum(parseDate(cell.v)));\r\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\r\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tpush_value(o, -1, 0, \"EOD\");\r\n\t\t\tvar RS = \"\\r\\n\";\r\n\t\t\tvar oo = o.join(RS);\r\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\r\n\t\t\treturn oo;\r\n\t\t};\r\n\t})();\r\n\treturn {\r\n\t\tto_workbook: dif_to_workbook,\r\n\t\tto_sheet: dif_to_sheet,\r\n\t\tfrom_sheet: sheet_to_dif\r\n\t};\r\n})();\r\n\r\nvar ETH = (function() {\r\n\tfunction decode(s) { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\r\n\tfunction encode(s) { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\r\n\r\n\tfunction eth_to_aoa(str, opts) {\r\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\r\n\t\tfor (; ri !== records.length; ++ri) {\r\n\t\t\tvar record = records[ri].trim().split(\":\");\r\n\t\t\tif(record[0] !== 'cell') continue;\r\n\t\t\tvar addr = decode_cell(record[1]);\r\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\r\n\t\t\tR = addr.r; C = addr.c;\r\n\t\t\tswitch(record[2]) {\r\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\r\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\r\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\r\n\t\t\t\t\t/* falls through */\r\n\t\t\t\tcase 'vtc':\r\n\t\t\t\t\tswitch(record[3]) {\r\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\r\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\r\n\t\treturn arr;\r\n\t}\r\n\r\n\tfunction eth_to_sheet(d, opts) { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\r\n\tfunction eth_to_workbook(d, opts) { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\r\n\r\n\tvar header = [\r\n\t\t\"socialcalc:version:1.5\",\r\n\t\t\"MIME-Version: 1.0\",\r\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\r\n\t].join(\"\\n\");\r\n\r\n\tvar sep = [\r\n\t\t\"--SocialCalcSpreadsheetControlSave\",\r\n\t\t\"Content-type: text/plain; charset=UTF-8\"\r\n\t].join(\"\\n\") + \"\\n\";\r\n\r\n\t/* TODO: the other parts */\r\n\tvar meta = [\r\n\t\t\"# SocialCalc Spreadsheet Control Save\",\r\n\t\t\"part:sheet\"\r\n\t].join(\"\\n\");\r\n\r\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\r\n\r\n\tfunction sheet_to_eth_data(ws) {\r\n\t\tif(!ws || !ws['!ref']) return \"\";\r\n\t\tvar o = [], oo = [], cell, coord = \"\";\r\n\t\tvar r = decode_range(ws['!ref']);\r\n\t\tvar dense = Array.isArray(ws);\r\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\r\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\r\n\t\t\t\tcoord = encode_cell({r:R,c:C});\r\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\r\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\r\n\t\t\t\too = [\"cell\", coord, 't'];\r\n\t\t\t\tswitch(cell.t) {\r\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\r\n\t\t\t\t\tcase 'n':\r\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\r\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'b':\r\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\r\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'd':\r\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\r\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\r\n\t\t\t\t\t\too[5] = cell.w || SSF.format(cell.z || SSF._table[14], t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'e': continue;\r\n\t\t\t\t}\r\n\t\t\t\to.push(oo.join(\":\"));\r\n\t\t\t}\r\n\t\t}\r\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\r\n\t\to.push(\"valueformat:1:text-wiki\");\r\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\r\n\t\treturn o.join(\"\\n\");\r\n\t}\r\n\r\n\tfunction sheet_to_eth(ws) {\r\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\r\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\r\n\t}\r\n\r\n\treturn {\r\n\t\tto_workbook: eth_to_workbook,\r\n\t\tto_sheet: eth_to_sheet,\r\n\t\tfrom_sheet: sheet_to_eth\r\n\t};\r\n})();\r\n\r\nvar PRN = (function() {\r\n\tfunction set_text_arr(data, arr, R, C, o) {\r\n\t\tif(o.raw) arr[R][C] = data;\r\n\t\telse if(data === \"\"){/* empty */}\r\n\t\telse if(data === 'TRUE') arr[R][C] = true;\r\n\t\telse if(data === 'FALSE') arr[R][C] = false;\r\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\r\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\r\n\t\telse arr[R][C] = data;\r\n\t}\r\n\r\n\tfunction prn_to_aoa_str(f, opts) {\r\n\t\tvar o = opts || {};\r\n\t\tvar arr = ([]);\r\n\t\tif(!f || f.length === 0) return arr;\r\n\t\tvar lines = f.split(/[\\r\\n]/);\r\n\t\tvar L = lines.length - 1;\r\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\r\n\t\tvar start = 10, idx = 0;\r\n\t\tvar R = 0;\r\n\t\tfor(; R <= L; ++R) {\r\n\t\t\tidx = lines[R].indexOf(\" \");\r\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\r\n\t\t\tstart = Math.max(start, idx);\r\n\t\t}\r\n\t\tfor(R = 0; R <= L; ++R) {\r\n\t\t\tarr[R] = [];\r\n\t\t\t/* TODO: confirm that widths are always 10 */\r\n\t\t\tvar C = 0;\r\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\r\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\r\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\r\n\t\t}\r\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\r\n\t\treturn arr;\r\n\t}\r\n\r\n\t// List of accepted CSV separators\r\n\tvar guess_seps = {\r\n0x2C: ',',\r\n0x09: \"\\t\",\r\n0x3B: ';',\r\n0x7C: '|'\r\n\t};\r\n\r\n\t// CSV separator weights to be used in case of equal numbers\r\n\tvar guess_sep_weights = {\r\n0x2C: 3,\r\n0x09: 2,\r\n0x3B: 1,\r\n0x7C: 0\r\n\t};\r\n\r\n\tfunction guess_sep(str) {\r\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\r\n\t\tfor(;end < str.length;++end) {\r\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\r\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\r\n\t\t}\r\n\r\n\t\tcc = [];\r\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\r\n\t\t\tcc.push([ cnt[end], end ]);\r\n\t\t}\r\n\r\n\t\tif ( !cc.length ) {\r\n\t\t\tcnt = guess_sep_weights;\r\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\r\n\t\t\t\tcc.push([ cnt[end], end ]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\r\n\r\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\r\n\t}\r\n\r\n\tfunction dsv_to_sheet_str(str, opts) {\r\n\t\tvar o = opts || {};\r\n\t\tvar sep = \"\";\r\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\r\n\t\tvar ws = o.dense ? ([]) : ({});\r\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\r\n\r\n\t\tif(str.slice(0,4) == \"sep=\") {\r\n\t\t\t// If the line ends in \\r\\n\r\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\r\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\r\n\t\t\t}\r\n\t\t\t// If line ends in \\r OR \\n\r\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\r\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\r\n\t\t\t}\r\n\t\t\telse sep = guess_sep(str.slice(0,1024));\r\n\t\t}\r\n\t\telse if(o && o.FS) sep = o.FS;\r\n\t\telse sep = guess_sep(str.slice(0,1024));\r\n\t\tvar R = 0, C = 0, v = 0;\r\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\r\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\r\n\t\tvar _re = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\r\n\t\tfunction finish_cell() {\r\n\t\t\tvar s = str.slice(start, end);\r\n\t\t\tvar cell = ({});\r\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\r\n\t\t\tif(s.length === 0) cell.t = 'z';\r\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\r\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\r\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\r\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,'\"'); }\r\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\r\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\r\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\r\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\r\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\r\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\r\n\t\t\t\tcell.z = o.dateNF || SSF._table[14];\r\n\t\t\t\tvar k = 0;\r\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\r\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\r\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\r\n\t\t\t\tif(o.cellText !== false) cell.w = SSF.format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\r\n\t\t\t\tif(!o.cellNF) delete cell.z;\r\n\t\t\t} else {\r\n\t\t\t\tcell.t = 's';\r\n\t\t\t\tcell.v = s;\r\n\t\t\t}\r\n\t\t\tif(cell.t == 'z'){}\r\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\r\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\r\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\r\n\t\t\tif(range.e.c < C) range.e.c = C;\r\n\t\t\tif(range.e.r < R) range.e.r = R;\r\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\r\n\t\t}\r\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\r\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\r\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\r\n\t\t\tdefault: break;\r\n\t\t}\r\n\t\tif(end - start > 0) finish_cell();\r\n\r\n\t\tws['!ref'] = encode_range(range);\r\n\t\treturn ws;\r\n\t}\r\n\r\n\tfunction prn_to_sheet_str(str, opts) {\r\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\r\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\r\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\r\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\r\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\r\n\t}\r\n\r\n\tfunction prn_to_sheet(d, opts) {\r\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\r\n\t\tswitch(opts.type) {\r\n\t\t\tcase 'base64': str = Base64.decode(d); break;\r\n\t\t\tcase 'binary': str = d; break;\r\n\t\t\tcase 'buffer':\r\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\r\n\t\t\t\telse if(opts.codepage && typeof cptable !== 'undefined') str = cptable.utils.decode(opts.codepage, d);\r\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'array': str = cc2str(d); break;\r\n\t\t\tcase 'string': str = d; break;\r\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\r\n\t\t}\r\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\r\n\t\telse if(opts.type != 'string' && opts.codepage == 65001) str = utf8read(str);\r\n\t\telse if((opts.type == 'binary') && typeof cptable !== 'undefined' && opts.codepage) str = cptable.utils.decode(opts.codepage, cptable.utils.encode(28591,str));\r\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\r\n\t\treturn prn_to_sheet_str(str, opts);\r\n\t}\r\n\r\n\tfunction prn_to_workbook(d, opts) { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\r\n\r\n\tfunction sheet_to_prn(ws) {\r\n\t\tvar o = [];\r\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\r\n\t\tvar dense = Array.isArray(ws);\r\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\r\n\t\t\tvar oo = [];\r\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\r\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\r\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\r\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\r\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\r\n\t\t\t\twhile(w.length < 10) w += \" \";\r\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\r\n\t\t\t}\r\n\t\t\to.push(oo.join(\"\"));\r\n\t\t}\r\n\t\treturn o.join(\"\\n\");\r\n\t}\r\n\r\n\treturn {\r\n\t\tto_workbook: prn_to_workbook,\r\n\t\tto_sheet: prn_to_sheet,\r\n\t\tfrom_sheet: sheet_to_prn\r\n\t};\r\n})();\r\n\r\n/* Excel defaults to SYLK but warns if data is not valid */\r\nfunction read_wb_ID(d, opts) {\r\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\r\n\ttry {\r\n\t\tvar out = SYLK.to_workbook(d, o);\r\n\t\to.WTF = OLD_WTF;\r\n\t\treturn out;\r\n\t} catch(e) {\r\n\t\to.WTF = OLD_WTF;\r\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\r\n\t\treturn PRN.to_workbook(d, opts);\r\n\t}\r\n}\r\n\r\n/* 18.4.7 rPr CT_RPrElt */\r\nfunction parse_rpr(rpr) {\r\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\r\n\tvar pass = false;\r\n\tif(m) for(;i!=m.length; ++i) {\r\n\t\tvar y = parsexmltag(m[i]);\r\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\r\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\r\n\t\t\t/* ** not required . */\r\n\t\t\tcase '<condense': break;\r\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\r\n\t\t\t/* ** not required . */\r\n\t\t\tcase '<extend': break;\r\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\r\n\t\t\t/* ** not required . */\r\n\t\t\tcase '<shadow':\r\n\t\t\t\tif(!y.val) break;\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase '<shadow>':\r\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\r\n\t\t\tcase '</shadow>': break;\r\n\r\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\r\n\t\t\tcase '<charset':\r\n\t\t\t\tif(y.val == '1') break;\r\n\t\t\t\tfont.cp = CS2CP[parseInt(y.val, 10)];\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\r\n\t\t\tcase '<outline':\r\n\t\t\t\tif(!y.val) break;\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase '<outline>':\r\n\t\t\tcase '<outline/>': font.outline = 1; break;\r\n\t\t\tcase '</outline>': break;\r\n\r\n\t\t\t/* 18.4.5 rFont CT_FontName */\r\n\t\t\tcase '<rFont': font.name = y.val; break;\r\n\r\n\t\t\t/* 18.4.11 sz CT_FontSize */\r\n\t\t\tcase '<sz': font.sz = y.val; break;\r\n\r\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\r\n\t\t\tcase '<strike':\r\n\t\t\t\tif(!y.val) break;\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase '<strike>':\r\n\t\t\tcase '<strike/>': font.strike = 1; break;\r\n\t\t\tcase '</strike>': break;\r\n\r\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\r\n\t\t\tcase '<u':\r\n\t\t\t\tif(!y.val) break;\r\n\t\t\t\tswitch(y.val) {\r\n\t\t\t\t\tcase 'double': font.uval = \"double\"; break;\r\n\t\t\t\t\tcase 'singleAccounting': font.uval = \"single-accounting\"; break;\r\n\t\t\t\t\tcase 'doubleAccounting': font.uval = \"double-accounting\"; break;\r\n\t\t\t\t}\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase '<u>':\r\n\t\t\tcase '<u/>': font.u = 1; break;\r\n\t\t\tcase '</u>': break;\r\n\r\n\t\t\t/* 18.8.2 b */\r\n\t\t\tcase '<b':\r\n\t\t\t\tif(y.val == '0') break;\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase '<b>':\r\n\t\t\tcase '<b/>': font.b = 1; break;\r\n\t\t\tcase '</b>': break;\r\n\r\n\t\t\t/* 18.8.26 i */\r\n\t\t\tcase '<i':\r\n\t\t\t\tif(y.val == '0') break;\r\n\t\t\t\t/* falls through */\r\n\t\t\tcase '<i>':\r\n\t\t\tcase '<i/>': font.i = 1; break;\r\n\t\t\tcase '</i>': break;\r\n\r\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\r\n\t\t\tcase '<color':\r\n\t\t\t\tif(y.rgb) font.color = y.rgb.slice(2,8);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t/* 18.8.18 family ST_FontFamily */\r\n\t\t\tcase '<family': font.family = y.val; break;\r\n\r\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\r\n\t\t\tcase '<vertAlign': font.valign = y.val; break;\r\n\r\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\r\n\t\t\tcase '<scheme': break;\r\n\r\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\r\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\r\n\t\t\tcase '<ext': pass = true; break;\r\n\t\t\tcase '</ext>': pass = false; break;\r\n\t\t\tdefault:\r\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\r\n\t\t}\r\n\t}\r\n\treturn font;\r\n}\r\n\r\nvar parse_rs = (function() {\r\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\r\n\t/* 18.4.4 r CT_RElt */\r\n\tfunction parse_r(r) {\r\n\t\t/* 18.4.12 t ST_Xstring */\r\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\r\n\t\tif(!t) return {t:\"s\", v:\"\"};\r\n\r\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\r\n\t\tvar rpr = r.match(rpregex);\r\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\r\n\t\treturn o;\r\n\t}\r\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\r\n\treturn function parse_rs(rs) {\r\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\r\n\t};\r\n})();\r\n\r\n\r\n/* Parse a list of <r> tags */\r\nvar rs_to_html = (function parse_rs_factory() {\r\n\tvar nlregex = /(\\r\\n|\\n)/g;\r\n\tfunction parse_rpr2(font, intro, outro) {\r\n\t\tvar style = [];\r\n\r\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\r\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\r\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\r\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\r\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\r\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\r\n\r\n\t\tif(font.b) { intro.push(\"<b>\"); outro.push(\"</b>\"); }\r\n\t\tif(font.i) { intro.push(\"<i>\"); outro.push(\"</i>\"); }\r\n\t\tif(font.strike) { intro.push(\"<s>\"); outro.push(\"</s>\"); }\r\n\r\n\t\tvar align = font.valign || \"\";\r\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\r\n\t\telse if(align == \"subscript\") align = \"sub\";\r\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"</\" + align + \">\"); }\r\n\r\n\t\toutro.push(\"</span>\");\r\n\t\treturn font;\r\n\t}\r\n\r\n\t/* 18.4.4 r CT_RElt */\r\n\tfunction r_to_html(r) {\r\n\t\tvar terms = [[],r.v,[]];\r\n\t\tif(!r.v) return \"\";\r\n\r\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\r\n\r\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\r\n\t}\r\n\r\n\treturn function parse_rs(rs) {\r\n\t\treturn rs.map(r_to_html).join(\"\");\r\n\t};\r\n})();\r\n\r\n/* 18.4.8 si CT_Rst */\r\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\r\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\r\nfunction parse_si(x, opts) {\r\n\tvar html = opts ? opts.cellHTML : true;\r\n\tvar z = {};\r\n\tif(!x) return { t: \"\" };\r\n\t//var y;\r\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\r\n\t// TODO: is whitespace actually valid here?\r\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\r\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\r\n\t\tz.r = utf8read(x);\r\n\t\tif(html) z.h = escapehtml(z.t);\r\n\t}\r\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\r\n\telse if((/*y = */x.match(sirregex))) {\r\n\t\tz.r = utf8read(x);\r\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\r\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\r\n\t}\r\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\r\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\r\n\treturn z;\r\n}\r\n\r\n/* 18.4 Shared String Table */\r\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\r\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\r\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\r\nfunction parse_sst_xml(data, opts) {\r\n\tvar s = ([]), ss = \"\";\r\n\tif(!data) return s;\r\n\t/* 18.4.9 sst CT_Sst */\r\n\tvar sst = data.match(sstr0);\r\n\tif(sst) {\r\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\r\n\t\tfor(var i = 0; i != ss.length; ++i) {\r\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\r\n\t\t\tif(o != null) s[s.length] = o;\r\n\t\t}\r\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\r\n\t}\r\n\treturn s;\r\n}\r\n\r\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\r\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\r\nfunction write_sst_xml(sst, opts) {\r\n\tif(!opts.bookSST) return \"\";\r\n\tvar o = [XML_HEADER];\r\n\to[o.length] = (writextag('sst', null, {\r\n\t\txmlns: XMLNS.main[0],\r\n\t\tcount: sst.Count,\r\n\t\tuniqueCount: sst.Unique\r\n\t}));\r\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\r\n\t\tvar s = sst[i];\r\n\t\tvar sitag = \"<si>\";\r\n\t\tif(s.r) sitag += s.r;\r\n\t\telse {\r\n\t\t\tsitag += \"<t\";\r\n\t\t\tif(!s.t) s.t = \"\";\r\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\r\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\r\n\t\t}\r\n\t\tsitag += \"</si>\";\r\n\t\to[o.length] = (sitag);\r\n\t}\r\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\nfunction hex2RGB(h) {\r\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\r\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\r\n}\r\nfunction rgb2Hex(rgb) {\r\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\r\n\treturn o.toString(16).toUpperCase().slice(1);\r\n}\r\n\r\nfunction rgb2HSL(rgb) {\r\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\r\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\r\n\tif(C === 0) return [0, 0, R];\r\n\r\n\tvar H6 = 0, S = 0, L2 = (M + m);\r\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\r\n\tswitch(M){\r\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\r\n\t\tcase G: H6 = ((B - R) / C + 2); break;\r\n\t\tcase B: H6 = ((R - G) / C + 4); break;\r\n\t}\r\n\treturn [H6 / 6, S, L2 / 2];\r\n}\r\n\r\nfunction hsl2RGB(hsl){\r\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\r\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\r\n\tvar rgb = [m,m,m], h6 = 6*H;\r\n\r\n\tvar X;\r\n\tif(S !== 0) switch(h6|0) {\r\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\r\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\r\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\r\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\r\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\r\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\r\n\t}\r\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\r\n\treturn rgb;\r\n}\r\n\r\n/* 18.8.3 bgColor tint algorithm */\r\nfunction rgb_tint(hex, tint) {\r\n\tif(tint === 0) return hex;\r\n\tvar hsl = rgb2HSL(hex2RGB(hex));\r\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\r\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\r\n\treturn rgb2Hex(hsl2RGB(hsl));\r\n}\r\n\r\n/* 18.3.1.13 width calculations */\r\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\r\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\r\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\r\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\r\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\r\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\r\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\r\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\r\n/* XLSX/XLSB/XLS specify width in units of MDW */\r\nfunction find_mdw_colw(collw) {\r\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\r\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) if(Math.abs(collw - cycle_width(collw)) <= delta) { delta = Math.abs(collw - cycle_width(collw)); _MDW = MDW; }\r\n\tMDW = _MDW;\r\n}\r\n/* XLML specifies width in terms of pixels */\r\n/*function find_mdw_wpx(wpx) {\r\n\tvar delta = Infinity, guess = 0, _MDW = MIN_MDW;\r\n\tfor(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) {\r\n\t\tguess = char2width_(px2char_(wpx))*256;\r\n\t\tguess = (guess) % 1;\r\n\t\tif(guess > 0.5) guess--;\r\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\r\n\t}\r\n\tMDW = _MDW;\r\n}*/\r\n\r\nfunction process_col(coll) {\r\n\tif(coll.width) {\r\n\t\tcoll.wpx = width2px(coll.width);\r\n\t\tcoll.wch = px2char(coll.wpx);\r\n\t\tcoll.MDW = MDW;\r\n\t} else if(coll.wpx) {\r\n\t\tcoll.wch = px2char(coll.wpx);\r\n\t\tcoll.width = char2width(coll.wch);\r\n\t\tcoll.MDW = MDW;\r\n\t} else if(typeof coll.wch == 'number') {\r\n\t\tcoll.width = char2width(coll.wch);\r\n\t\tcoll.wpx = width2px(coll.width);\r\n\t\tcoll.MDW = MDW;\r\n\t}\r\n\tif(coll.customWidth) delete coll.customWidth;\r\n}\r\n\r\nvar DEF_PPI = 96, PPI = DEF_PPI;\r\nfunction px2pt(px) { return px * 96 / PPI; }\r\nfunction pt2px(pt) { return pt * PPI / 96; }\r\n\r\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\r\nvar XLMLPatternTypeMap = {\r\n\t\"None\": \"none\",\r\n\t\"Solid\": \"solid\",\r\n\t\"Gray50\": \"mediumGray\",\r\n\t\"Gray75\": \"darkGray\",\r\n\t\"Gray25\": \"lightGray\",\r\n\t\"HorzStripe\": \"darkHorizontal\",\r\n\t\"VertStripe\": \"darkVertical\",\r\n\t\"ReverseDiagStripe\": \"darkDown\",\r\n\t\"DiagStripe\": \"darkUp\",\r\n\t\"DiagCross\": \"darkGrid\",\r\n\t\"ThickDiagCross\": \"darkTrellis\",\r\n\t\"ThinHorzStripe\": \"lightHorizontal\",\r\n\t\"ThinVertStripe\": \"lightVertical\",\r\n\t\"ThinReverseDiagStripe\": \"lightDown\",\r\n\t\"ThinHorzCross\": \"lightGrid\"\r\n};\r\n\r\n/* 18.8.5 borders CT_Borders */\r\nfunction parse_borders(t, styles, themes, opts) {\r\n\tstyles.Borders = [];\r\n\tvar border = {};\r\n\tvar pass = false;\r\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\r\n\t\tvar y = parsexmltag(x);\r\n\t\tswitch(strip_ns(y[0])) {\r\n\t\t\tcase '<borders': case '<borders>': case '</borders>': break;\r\n\r\n\t\t\t/* 18.8.4 border CT_Border */\r\n\t\t\tcase '<border': case '<border>': case '<border/>':\r\n\t\t\t\tborder = {};\r\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\r\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\r\n\t\t\t\tstyles.Borders.push(border);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '</border>': break;\r\n\r\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\r\n\t\t\tcase '<left/>': break;\r\n\t\t\tcase '<left': case '<left>': break;\r\n\t\t\tcase '</left>': break;\r\n\r\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\r\n\t\t\tcase '<right/>': break;\r\n\t\t\tcase '<right': case '<right>': break;\r\n\t\t\tcase '</right>': break;\r\n\r\n\t\t\t/* 18.8.43 top CT_BorderPr */\r\n\t\t\tcase '<top/>': break;\r\n\t\t\tcase '<top': case '<top>': break;\r\n\t\t\tcase '</top>': break;\r\n\r\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\r\n\t\t\tcase '<bottom/>': break;\r\n\t\t\tcase '<bottom': case '<bottom>': break;\r\n\t\t\tcase '</bottom>': break;\r\n\r\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\r\n\t\t\tcase '<diagonal': case '<diagonal>': case '<diagonal/>': break;\r\n\t\t\tcase '</diagonal>': break;\r\n\r\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\r\n\t\t\tcase '<horizontal': case '<horizontal>': case '<horizontal/>': break;\r\n\t\t\tcase '</horizontal>': break;\r\n\r\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\r\n\t\t\tcase '<vertical': case '<vertical>': case '<vertical/>': break;\r\n\t\t\tcase '</vertical>': break;\r\n\r\n\t\t\t/* 18.8.37 start CT_BorderPr */\r\n\t\t\tcase '<start': case '<start>': case '<start/>': break;\r\n\t\t\tcase '</start>': break;\r\n\r\n\t\t\t/* 18.8.16 end CT_BorderPr */\r\n\t\t\tcase '<end': case '<end>': case '<end/>': break;\r\n\t\t\tcase '</end>': break;\r\n\r\n\t\t\t/* 18.8.? color CT_Color */\r\n\t\t\tcase '<color': case '<color>':\r\n\t\t\t\tbreak;\r\n\t\t\tcase '<color/>': case '</color>': break;\r\n\r\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\r\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\r\n\t\t\tcase '<ext': pass = true; break;\r\n\t\t\tcase '</ext>': pass = false; break;\r\n\t\t\tdefault: if(opts && opts.WTF) {\r\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/* 18.8.21 fills CT_Fills */\r\nfunction parse_fills(t, styles, themes, opts) {\r\n\tstyles.Fills = [];\r\n\tvar fill = {};\r\n\tvar pass = false;\r\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\r\n\t\tvar y = parsexmltag(x);\r\n\t\tswitch(strip_ns(y[0])) {\r\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\r\n\r\n\t\t\t/* 18.8.20 fill CT_Fill */\r\n\t\t\tcase '<fill>': case '<fill': case '<fill/>':\r\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\r\n\t\t\tcase '</fill>': break;\r\n\r\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\r\n\t\t\tcase '<gradientFill>': break;\r\n\t\t\tcase '<gradientFill':\r\n\t\t\tcase '</gradientFill>': styles.Fills.push(fill); fill = {}; break;\r\n\r\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\r\n\t\t\tcase '<patternFill': case '<patternFill>':\r\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\r\n\t\t\t\tbreak;\r\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\r\n\r\n\t\t\t/* 18.8.3 bgColor CT_Color */\r\n\t\t\tcase '<bgColor':\r\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\r\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\r\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\r\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\r\n\t\t\t\t/* Excel uses ARGB strings */\r\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.slice(-6);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\r\n\r\n\t\t\t/* 18.8.19 fgColor CT_Color */\r\n\t\t\tcase '<fgColor':\r\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\r\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\r\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\r\n\t\t\t\t/* Excel uses ARGB strings */\r\n\t\t\t\tif(y.rgb != null) fill.fgColor.rgb = y.rgb.slice(-6);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\r\n\r\n\t\t\t/* 18.8.38 stop CT_GradientStop */\r\n\t\t\tcase '<stop': case '<stop/>': break;\r\n\t\t\tcase '</stop>': break;\r\n\r\n\t\t\t/* 18.8.? color CT_Color */\r\n\t\t\tcase '<color': case '<color/>': break;\r\n\t\t\tcase '</color>': break;\r\n\r\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\r\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\r\n\t\t\tcase '<ext': pass = true; break;\r\n\t\t\tcase '</ext>': pass = false; break;\r\n\t\t\tdefault: if(opts && opts.WTF) {\r\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/* 18.8.23 fonts CT_Fonts */\r\nfunction parse_fonts(t, styles, themes, opts) {\r\n\tstyles.Fonts = [];\r\n\tvar font = {};\r\n\tvar pass = false;\r\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\r\n\t\tvar y = parsexmltag(x);\r\n\t\tswitch(strip_ns(y[0])) {\r\n\t\t\tcase '<fonts': case '<fonts>': case '</fonts>': break;\r\n\r\n\t\t\t/* 18.8.22 font CT_Font */\r\n\t\t\tcase '<font': case '<font>': break;\r\n\t\t\tcase '</font>': case '<font/>':\r\n\t\t\t\tstyles.Fonts.push(font);\r\n\t\t\t\tfont = {};\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t/* 18.8.29 name CT_FontName */\r\n\t\t\tcase '<name': if(y.val) font.name = utf8read(y.val); break;\r\n\t\t\tcase '<name/>': case '</name>': break;\r\n\r\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\r\n\t\t\tcase '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;\r\n\t\t\tcase '<b/>': font.bold = 1; break;\r\n\r\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\r\n\t\t\tcase '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;\r\n\t\t\tcase '<i/>': font.italic = 1; break;\r\n\r\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\r\n\t\t\tcase '<u':\r\n\t\t\t\tswitch(y.val) {\r\n\t\t\t\t\tcase \"none\": font.underline = 0x00; break;\r\n\t\t\t\t\tcase \"single\": font.underline = 0x01; break;\r\n\t\t\t\t\tcase \"double\": font.underline = 0x02; break;\r\n\t\t\t\t\tcase \"singleAccounting\": font.underline = 0x21; break;\r\n\t\t\t\t\tcase \"doubleAccounting\": font.underline = 0x22; break;\r\n\t\t\t\t} break;\r\n\t\t\tcase '<u/>': font.underline = 1; break;\r\n\r\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\r\n\t\t\tcase '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;\r\n\t\t\tcase '<strike/>': font.strike = 1; break;\r\n\r\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\r\n\t\t\tcase '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;\r\n\t\t\tcase '<outline/>': font.outline = 1; break;\r\n\r\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\r\n\t\t\tcase '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;\r\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\r\n\r\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\r\n\t\t\tcase '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;\r\n\t\t\tcase '<condense/>': font.condense = 1; break;\r\n\r\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\r\n\t\t\tcase '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;\r\n\t\t\tcase '<extend/>': font.extend = 1; break;\r\n\r\n\t\t\t/* 18.4.11 sz CT_FontSize */\r\n\t\t\tcase '<sz': if(y.val) font.sz = +y.val; break;\r\n\t\t\tcase '<sz/>': case '</sz>': break;\r\n\r\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\r\n\t\t\tcase '<vertAlign': if(y.val) font.vertAlign = y.val; break;\r\n\t\t\tcase '<vertAlign/>': case '</vertAlign>': break;\r\n\r\n\t\t\t/* 18.8.18 family CT_FontFamily */\r\n\t\t\tcase '<family': if(y.val) font.family = parseInt(y.val,10); break;\r\n\t\t\tcase '<family/>': case '</family>': break;\r\n\r\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\r\n\t\t\tcase '<scheme': if(y.val) font.scheme = y.val; break;\r\n\t\t\tcase '<scheme/>': case '</scheme>': break;\r\n\r\n\t\t\t/* 18.4.1 charset CT_IntProperty */\r\n\t\t\tcase '<charset':\r\n\t\t\t\tif(y.val == '1') break;\r\n\t\t\t\ty.codepage = CS2CP[parseInt(y.val, 10)];\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t/* 18.?.? color CT_Color */\r\n\t\t\tcase '<color':\r\n\t\t\t\tif(!font.color) font.color = {};\r\n\t\t\t\tif(y.auto) font.color.auto = parsexmlbool(y.auto);\r\n\r\n\t\t\t\tif(y.rgb) font.color.rgb = y.rgb.slice(-6);\r\n\t\t\t\telse if(y.indexed) {\r\n\t\t\t\t\tfont.color.index = parseInt(y.indexed, 10);\r\n\t\t\t\t\tvar icv = XLSIcv[font.color.index];\r\n\t\t\t\t\tif(font.color.index == 81) icv = XLSIcv[1];\r\n\t\t\t\t\tif(!icv) icv = XLSIcv[1]; //throw new Error(x); // note: 206 is valid\r\n\t\t\t\t\tfont.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);\r\n\t\t\t\t} else if(y.theme) {\r\n\t\t\t\t\tfont.color.theme = parseInt(y.theme, 10);\r\n\t\t\t\t\tif(y.tint) font.color.tint = parseFloat(y.tint);\r\n\t\t\t\t\tif(y.theme && themes.themeElements && themes.themeElements.clrScheme) {\r\n\t\t\t\t\t\tfont.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase '<color/>': case '</color>': break;\r\n\r\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\r\n\t\t\tcase '<AlternateContent': pass = true; break;\r\n\t\t\tcase '</AlternateContent>': pass = false; break;\r\n\r\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\r\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\r\n\t\t\tcase '<ext': pass = true; break;\r\n\t\t\tcase '</ext>': pass = false; break;\r\n\t\t\tdefault: if(opts && opts.WTF) {\r\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/* 18.8.31 numFmts CT_NumFmts */\r\nfunction parse_numFmts(t, styles, opts) {\r\n\tstyles.NumberFmt = [];\r\n\tvar k/*Array<number>*/ = (keys(SSF._table));\r\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\r\n\tvar m = t[0].match(tagregex);\r\n\tif(!m) return;\r\n\tfor(i=0; i < m.length; ++i) {\r\n\t\tvar y = parsexmltag(m[i]);\r\n\t\tswitch(strip_ns(y[0])) {\r\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\r\n\t\t\tcase '<numFmt': {\r\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\r\n\t\t\t\tstyles.NumberFmt[j] = f;\r\n\t\t\t\tif(j>0) {\r\n\t\t\t\t\tif(j > 0x188) {\r\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\r\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tSSF.load(f,j);\r\n\t\t\t\t}\r\n\t\t\t} break;\r\n\t\t\tcase '</numFmt>': break;\r\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction write_numFmts(NF) {\r\n\tvar o = [\"<numFmts>\"];\r\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\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])}));\r\n\t});\r\n\tif(o.length === 1) return \"\";\r\n\to[o.length] = (\"</numFmts>\");\r\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\r\n\treturn o.join(\"\");\r\n}\r\n\r\n/* 18.8.10 cellXfs CT_CellXfs */\r\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\r\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\r\nfunction parse_cellXfs(t, styles, opts) {\r\n\tstyles.CellXf = [];\r\n\tvar xf;\r\n\tvar pass = false;\r\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\r\n\t\tvar y = parsexmltag(x), i = 0;\r\n\t\tswitch(strip_ns(y[0])) {\r\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\r\n\r\n\t\t\t/* 18.8.45 xf CT_Xf */\r\n\t\t\tcase '<xf': case '<xf/>':\r\n\t\t\t\txf = y;\r\n\t\t\t\tdelete xf[0];\r\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\r\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\r\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\r\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\r\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\r\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\r\n\t\t\t\t}\r\n\t\t\t\tstyles.CellXf.push(xf); break;\r\n\t\t\tcase '</xf>': break;\r\n\r\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\r\n\t\t\tcase '<alignment': case '<alignment/>':\r\n\t\t\t\tvar alignment = {};\r\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\r\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\r\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\r\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\r\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\r\n\t\t\t\txf.alignment = alignment;\r\n\t\t\t\tbreak;\r\n\t\t\tcase '</alignment>': break;\r\n\r\n\t\t\t/* 18.8.33 protection CT_CellProtection */\r\n\t\t\tcase '<protection':\r\n\t\t\t\tbreak;\r\n\t\t\tcase '</protection>': case '<protection/>': break;\r\n\r\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\r\n\t\t\tcase '<AlternateContent': pass = true; break;\r\n\t\t\tcase '</AlternateContent>': pass = false; break;\r\n\r\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\r\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\r\n\t\t\tcase '<ext': pass = true; break;\r\n\t\t\tcase '</ext>': pass = false; break;\r\n\t\t\tdefault: if(opts && opts.WTF) {\r\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction write_cellXfs(cellXfs) {\r\n\tvar o = [];\r\n\to[o.length] = (writextag('cellXfs',null));\r\n\tcellXfs.forEach(function(c) {\r\n\t\to[o.length] = (writextag('xf', null, c));\r\n\t});\r\n\to[o.length] = (\"</cellXfs>\");\r\n\tif(o.length === 2) return \"\";\r\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\r\n\treturn o.join(\"\");\r\n}\r\n\r\n/* 18.8 Styles CT_Stylesheet*/\r\nvar parse_sty_xml= (function make_pstyx() {\r\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\r\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\r\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\r\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\r\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\r\n\r\nreturn function parse_sty_xml(data, themes, opts) {\r\n\tvar styles = {};\r\n\tif(!data) return styles;\r\n\tdata = data.replace(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\r\n\t/* 18.8.39 styleSheet CT_Stylesheet */\r\n\tvar t;\r\n\r\n\t/* 18.8.31 numFmts CT_NumFmts ? */\r\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\r\n\r\n\t/* 18.8.23 fonts CT_Fonts ? */\r\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\r\n\r\n\t/* 18.8.21 fills CT_Fills ? */\r\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\r\n\r\n\t/* 18.8.5 borders CT_Borders ? */\r\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\r\n\r\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\r\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\r\n\r\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\r\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\r\n\r\n\t/* 18.8.15 dxfs CT_Dxfs ? */\r\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\r\n\t/* 18.8.11 colors CT_Colors ? */\r\n\t/* 18.2.10 extLst CT_ExtensionList ? */\r\n\r\n\treturn styles;\r\n};\r\n})();\r\n\r\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\r\n\t'xmlns': XMLNS.main[0],\r\n\t'xmlns:vt': XMLNS.vt\r\n});\r\n\r\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\r\n\r\nfunction write_sty_xml(wb, opts) {\r\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\r\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\r\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\r\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\r\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\r\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\r\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\r\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\r\n\to[o.length] = ('<dxfs count=\"0\"/>');\r\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\r\n\r\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\r\n\r\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\r\nvar XLSXThemeClrScheme = [\r\n\t'</a:lt1>', '</a:dk1>', '</a:lt2>', '</a:dk2>',\r\n\t'</a:accent1>', '</a:accent2>', '</a:accent3>',\r\n\t'</a:accent4>', '</a:accent5>', '</a:accent6>',\r\n\t'</a:hlink>', '</a:folHlink>'\r\n];\r\n/* 20.1.6.2 clrScheme CT_ColorScheme */\r\nfunction parse_clrScheme(t, themes, opts) {\r\n\tthemes.themeElements.clrScheme = [];\r\n\tvar color = {};\r\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\r\n\t\tvar y = parsexmltag(x);\r\n\t\tswitch(y[0]) {\r\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\r\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\r\n\r\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\r\n\t\t\tcase '<a:srgbClr':\r\n\t\t\t\tcolor.rgb = y.val; break;\r\n\r\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\r\n\t\t\tcase '<a:sysClr':\r\n\t\t\t\tcolor.rgb = y.lastClr; break;\r\n\r\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\r\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\r\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\r\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\r\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\r\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\r\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\r\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\r\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\r\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\r\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\r\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\r\n\t\t\tcase '<a:dk1>': case '</a:dk1>':\r\n\t\t\tcase '<a:lt1>': case '</a:lt1>':\r\n\t\t\tcase '<a:dk2>': case '</a:dk2>':\r\n\t\t\tcase '<a:lt2>': case '</a:lt2>':\r\n\t\t\tcase '<a:accent1>': case '</a:accent1>':\r\n\t\t\tcase '<a:accent2>': case '</a:accent2>':\r\n\t\t\tcase '<a:accent3>': case '</a:accent3>':\r\n\t\t\tcase '<a:accent4>': case '</a:accent4>':\r\n\t\t\tcase '<a:accent5>': case '</a:accent5>':\r\n\t\t\tcase '<a:accent6>': case '</a:accent6>':\r\n\t\t\tcase '<a:hlink>': case '</a:hlink>':\r\n\t\t\tcase '<a:folHlink>': case '</a:folHlink>':\r\n\t\t\t\tif (y[0].charAt(1) === '/') {\r\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\r\n\t\t\t\t\tcolor = {};\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\r\nfunction parse_fontScheme() { }\r\n\r\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\r\nfunction parse_fmtScheme() { }\r\n\r\nvar clrsregex = /<a:clrScheme([^>]*)>[\\s\\S]*<\\/a:clrScheme>/;\r\nvar fntsregex = /<a:fontScheme([^>]*)>[\\s\\S]*<\\/a:fontScheme>/;\r\nvar fmtsregex = /<a:fmtScheme([^>]*)>[\\s\\S]*<\\/a:fmtScheme>/;\r\n\r\n/* 20.1.6.10 themeElements CT_BaseStyles */\r\nfunction parse_themeElements(data, themes, opts) {\r\n\tthemes.themeElements = {};\r\n\r\n\tvar t;\r\n\r\n\t[\r\n\t\t/* clrScheme CT_ColorScheme */\r\n\t\t['clrScheme', clrsregex, parse_clrScheme],\r\n\t\t/* fontScheme CT_FontScheme */\r\n\t\t['fontScheme', fntsregex, parse_fontScheme],\r\n\t\t/* fmtScheme CT_StyleMatrix */\r\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\r\n\t].forEach(function(m) {\r\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\r\n\t\tm[2](t, themes, opts);\r\n\t});\r\n}\r\n\r\nvar themeltregex = /<a:themeElements([^>]*)>[\\s\\S]*<\\/a:themeElements>/;\r\n\r\n/* 14.2.7 Theme Part */\r\nfunction parse_theme_xml(data, opts) {\r\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\r\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\r\n\r\n\tvar t;\r\n\tvar themes = {};\r\n\r\n\t/* themeElements CT_BaseStyles */\r\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\r\n\tparse_themeElements(t[0], themes, opts);\r\n\tthemes.raw = data;\r\n\treturn themes;\r\n}\r\n\r\nfunction write_theme(Themes, opts) {\r\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\r\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\r\n\tvar o = [XML_HEADER];\r\n\to[o.length] = '<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">';\r\n\to[o.length] = '<a:themeElements>';\r\n\r\n\to[o.length] = '<a:clrScheme name=\"Office\">';\r\n\to[o.length] = '<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>';\r\n\to[o.length] = '<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>';\r\n\to[o.length] = '<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>';\r\n\to[o.length] = '<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>';\r\n\to[o.length] = '<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>';\r\n\to[o.length] = '<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>';\r\n\to[o.length] = '<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>';\r\n\to[o.length] = '<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>';\r\n\to[o.length] = '<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>';\r\n\to[o.length] = '<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>';\r\n\to[o.length] = '<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>';\r\n\to[o.length] = '<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>';\r\n\to[o.length] = '</a:clrScheme>';\r\n\r\n\to[o.length] = '<a:fontScheme name=\"Office\">';\r\n\to[o.length] = '<a:majorFont>';\r\n\to[o.length] = '<a:latin typeface=\"Cambria\"/>';\r\n\to[o.length] = '<a:ea typeface=\"\"/>';\r\n\to[o.length] = '<a:cs typeface=\"\"/>';\r\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\r\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\r\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\r\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\r\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Times New Roman\"/>';\r\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>';\r\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\r\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\r\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\r\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\r\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>';\r\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\r\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\r\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\r\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\r\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\r\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\r\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\r\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\r\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\r\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\r\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\r\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\r\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\r\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\r\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\r\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\r\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Times New Roman\"/>';\r\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\r\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\r\n\to[o.length] = '</a:majorFont>';\r\n\to[o.length] = '<a:minorFont>';\r\n\to[o.length] = '<a:latin typeface=\"Calibri\"/>';\r\n\to[o.length] = '<a:ea typeface=\"\"/>';\r\n\to[o.length] = '<a:cs typeface=\"\"/>';\r\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\r\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\r\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\r\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\r\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Arial\"/>';\r\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Arial\"/>';\r\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\r\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\r\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\r\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\r\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>';\r\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\r\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\r\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\r\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\r\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\r\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\r\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\r\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\r\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\r\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\r\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\r\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\r\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\r\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\r\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\r\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\r\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Arial\"/>';\r\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\r\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\r\n\to[o.length] = '</a:minorFont>';\r\n\to[o.length] = '</a:fontScheme>';\r\n\r\n\to[o.length] = '<a:fmtScheme name=\"Office\">';\r\n\to[o.length] = '<a:fillStyleLst>';\r\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\r\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\r\n\to[o.length] = '<a:gsLst>';\r\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\r\n\to[o.length] = '<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\r\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\r\n\to[o.length] = '</a:gsLst>';\r\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"1\"/>';\r\n\to[o.length] = '</a:gradFill>';\r\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\r\n\to[o.length] = '<a:gsLst>';\r\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>';\r\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\r\n\to[o.length] = '</a:gsLst>';\r\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"0\"/>';\r\n\to[o.length] = '</a:gradFill>';\r\n\to[o.length] = '</a:fillStyleLst>';\r\n\to[o.length] = '<a:lnStyleLst>';\r\n\to[o.length] = '<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\r\n\to[o.length] = '<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\r\n\to[o.length] = '<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\r\n\to[o.length] = '</a:lnStyleLst>';\r\n\to[o.length] = '<a:effectStyleLst>';\r\n\to[o.length] = '<a:effectStyle>';\r\n\to[o.length] = '<a:effectLst>';\r\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>';\r\n\to[o.length] = '</a:effectLst>';\r\n\to[o.length] = '</a:effectStyle>';\r\n\to[o.length] = '<a:effectStyle>';\r\n\to[o.length] = '<a:effectLst>';\r\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\r\n\to[o.length] = '</a:effectLst>';\r\n\to[o.length] = '</a:effectStyle>';\r\n\to[o.length] = '<a:effectStyle>';\r\n\to[o.length] = '<a:effectLst>';\r\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\r\n\to[o.length] = '</a:effectLst>';\r\n\to[o.length] = '<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>';\r\n\to[o.length] = '<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>';\r\n\to[o.length] = '</a:effectStyle>';\r\n\to[o.length] = '</a:effectStyleLst>';\r\n\to[o.length] = '<a:bgFillStyleLst>';\r\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\r\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\r\n\to[o.length] = '<a:gsLst>';\r\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\r\n\to[o.length] = '<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\r\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>';\r\n\to[o.length] = '</a:gsLst>';\r\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>';\r\n\to[o.length] = '</a:gradFill>';\r\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\r\n\to[o.length] = '<a:gsLst>';\r\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\r\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>';\r\n\to[o.length] = '</a:gsLst>';\r\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>';\r\n\to[o.length] = '</a:gradFill>';\r\n\to[o.length] = '</a:bgFillStyleLst>';\r\n\to[o.length] = '</a:fmtScheme>';\r\n\to[o.length] = '</a:themeElements>';\r\n\r\n\to[o.length] = '<a:objectDefaults>';\r\n\to[o.length] = '<a:spDef>';\r\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>';\r\n\to[o.length] = '</a:spDef>';\r\n\to[o.length] = '<a:lnDef>';\r\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>';\r\n\to[o.length] = '</a:lnDef>';\r\n\to[o.length] = '</a:objectDefaults>';\r\n\to[o.length] = '<a:extraClrSchemeLst/>';\r\n\to[o.length] = '</a:theme>';\r\n\treturn o.join(\"\");\r\n}\r\n/* 18.14 Supplementary Workbook Data */\r\nfunction parse_xlink_xml() {\r\n\t//var opts = _opts || {};\r\n\t//if(opts.WTF) throw \"XLSX External Link\";\r\n}\r\n\r\n/* [MS-XLSB] 2.1.7.25 External Link */\r\nfunction parse_xlink_bin(data, rel, name, _opts) {\r\n\tif(!data) return data;\r\n\tvar opts = _opts || {};\r\n\r\n\tvar pass = false, end = false;\r\n\r\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\r\n\t\tif(end) return;\r\n\t\tswitch(RT) {\r\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\r\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\r\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\r\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\r\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\r\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\r\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\r\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\r\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\r\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\r\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\r\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\r\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\r\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\r\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\r\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\r\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\r\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\r\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\r\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\r\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\r\n\t\t\t\tpass = true; break;\r\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\r\n\t\t\t\tpass = false; break;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\r\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\r\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\r\n\t\t}\r\n\t}, opts);\r\n}\r\n/* 20.5 DrawingML - SpreadsheetML Drawing */\r\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\r\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\r\n\r\n/* 20.5.2.35 wsDr CT_Drawing */\r\nfunction parse_drawing(data, rels) {\r\n\tif(!data) return \"??\";\r\n\t/*\r\n\t Chartsheet Drawing:\r\n\t - 20.5.2.35 wsDr CT_Drawing\r\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\r\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\r\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\r\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\r\n - chart reference\r\n\t the actual type is based on the URI of the graphicData\r\n\t\tTODO: handle embedded charts and other types of graphics\r\n\t*/\r\n\tvar id = (data.match(/<c:chart [^>]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\r\n\r\n\treturn rels['!id'][id].Target;\r\n}\r\n\r\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\r\nvar _shapeid = 1024;\r\nfunction write_comments_vml(rId, comments) {\r\n\tvar csize = [21600, 21600];\r\n\t/* L.5.2.1.2 Path Attribute */\r\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\r\n\tvar o = [\r\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\r\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\r\n\t\twritextag(\"v:shapetype\", [\r\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\r\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\r\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\r\n\t];\r\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\r\n\r\n\tcomments.forEach(function(x) {\r\n\tvar c = decode_cell(x[0]);\r\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\r\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\r\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\r\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\r\n\r\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\r\n\t++_shapeid;\r\n\r\n\to = o.concat([\r\n\t'<v:shape' + wxt_helper({\r\n\t\tid:'_x0000_s' + _shapeid,\r\n\t\ttype:\"#_x0000_t202\",\r\n\t\tstyle:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\" + (x[1].hidden ? \";visibility:hidden\" : \"\") ,\r\n\t\tfillcolor:\"#ECFAD4\",\r\n\t\tstrokecolor:\"#edeaa1\"\r\n\t}) + '>',\r\n\t\tfillxml,\r\n\t\twritextag(\"v:shadow\", null, shadata),\r\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\r\n\t\t'<v:textbox><div style=\"text-align:left\"></div></v:textbox>',\r\n\t\t'<x:ClientData ObjectType=\"Note\">',\r\n\t\t\t'<x:MoveWithCells/>',\r\n\t\t\t'<x:SizeWithCells/>',\r\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\r\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\r\n\t\t\twritetag('x:AutoFill', \"False\"),\r\n\t\t\twritetag('x:Row', String(c.r)),\r\n\t\t\twritetag('x:Column', String(c.c)),\r\n\t\t\tx[1].hidden ? '' : '<x:Visible/>',\r\n\t\t'</x:ClientData>',\r\n\t'</v:shape>'\r\n\t]); });\r\n\to.push('</xml>');\r\n\treturn o.join(\"\");\r\n}\r\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\r\n\r\nfunction sheet_insert_comments(sheet, comments) {\r\n\tvar dense = Array.isArray(sheet);\r\n\tvar cell;\r\n\tcomments.forEach(function(comment) {\r\n\t\tvar r = decode_cell(comment.ref);\r\n\t\tif(dense) {\r\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\r\n\t\t\tcell = sheet[r.r][r.c];\r\n\t\t} else cell = sheet[comment.ref];\r\n\t\tif (!cell) {\r\n\t\t\tcell = ({t:\"z\"});\r\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\r\n\t\t\telse sheet[comment.ref] = cell;\r\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\r\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\r\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\r\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\r\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\r\n\t\t\tvar encoded = encode_range(range);\r\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\r\n\t\t}\r\n\r\n\t\tif (!cell.c) cell.c = [];\r\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\r\n\t\tif(comment.h) o.h = comment.h;\r\n\t\tcell.c.push(o);\r\n\t});\r\n}\r\n\r\n/* 18.7 Comments */\r\nfunction parse_comments_xml(data, opts) {\r\n\t/* 18.7.6 CT_Comments */\r\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\r\n\tvar authors = [];\r\n\tvar commentList = [];\r\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\r\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\r\n\t\tif(x === \"\" || x.trim() === \"\") return;\r\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\r\n\t\tif(a) authors.push(a[1]);\r\n\t});\r\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\r\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\r\n\t\tif(x === \"\" || x.trim() === \"\") return;\r\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\r\n\t\tif(!cm) return;\r\n\t\tvar y = parsexmltag(cm[0]);\r\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\r\n\t\tvar cell = decode_cell(y.ref);\r\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\r\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\r\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\r\n\t\tcomment.r = rt.r;\r\n\t\tif(rt.r == \"<t></t>\") rt.t = rt.h = \"\";\r\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\r\n\t\tif(opts.cellHTML) comment.h = rt.h;\r\n\t\tcommentList.push(comment);\r\n\t});\r\n\treturn commentList;\r\n}\r\n\r\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\r\nfunction write_comments_xml(data) {\r\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\r\n\r\n\tvar iauthor = [];\r\n\to.push(\"<authors>\");\r\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\r\n\t\tif(iauthor.indexOf(a) > -1) return;\r\n\t\tiauthor.push(a);\r\n\t\to.push(\"<author>\" + a + \"</author>\");\r\n\t}); });\r\n\to.push(\"</authors>\");\r\n\to.push(\"<commentList>\");\r\n\tdata.forEach(function(d) {\r\n\t\td[1].forEach(function(c) {\r\n\t\t\t/* 18.7.3 CT_Comment */\r\n\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + iauthor.indexOf(escapexml(c.a)) + '\"><text>');\r\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\r\n\t\t\to.push('</text></comment>');\r\n\t\t});\r\n\t});\r\n\to.push(\"</commentList>\");\r\n\tif(o.length>2) { o[o.length] = ('</comments>'); o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\r\nfunction make_vba_xls(cfb) {\r\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\r\n\tcfb.FullPaths.forEach(function(p, i) {\r\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\r\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\r\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\r\n\t});\r\n\treturn CFB.write(newcfb);\r\n}\r\n\r\nfunction fill_vba_xls(cfb, vba) {\r\n\tvba.FullPaths.forEach(function(p, i) {\r\n\t\tif(i == 0) return;\r\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\r\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\r\n\t});\r\n}\r\n\r\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\r\n\r\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\r\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\r\n\r\n/* macro and dialog sheet stubs */\r\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\r\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\r\nfunction parse_ms_bin() { return {'!type':'macro'}; }\r\nfunction parse_ms_xml() { return {'!type':'macro'}; }\r\n/* TODO: it will be useful to parse the function str */\r\nvar rc_to_a1 = (function(){\r\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\r\n\tvar rcbase = ({r:0,c:0});\r\n\tfunction rcfunc($$,$1,$2,$3) {\r\n\t\tvar cRel = false, rRel = false;\r\n\r\n\t\tif($2.length == 0) rRel = true;\r\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\r\n\r\n\t\tif($3.length == 0) cRel = true;\r\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\r\n\r\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\r\n\r\n\t\tif(cRel) C += rcbase.c; else --C;\r\n\t\tif(rRel) R += rcbase.r; else --R;\r\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\r\n\t}\r\n\treturn function rc_to_a1(fstr, base) {\r\n\t\trcbase = base;\r\n\t\treturn fstr.replace(rcregex, rcfunc);\r\n\t};\r\n})();\r\n\r\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\r\nvar a1_to_rc =(function(){\r\n\treturn function a1_to_rc(fstr, base) {\r\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\r\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\r\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\r\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\r\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\r\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\r\n\t\t});\r\n\t};\r\n})();\r\n\r\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\r\nfunction shift_formula_str(f, delta) {\r\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\r\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\r\n\t});\r\n}\r\n\r\nfunction shift_formula_xlsx(f, range, cell) {\r\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\r\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\r\n\treturn shift_formula_str(f, delta);\r\n}\r\n\r\n/* TODO: parse formula */\r\nfunction fuzzyfmla(f) {\r\n\tif(f.length == 1) return false;\r\n\treturn true;\r\n}\r\n\r\nfunction _xlfn(f) {\r\n\treturn f.replace(/_xlfn\\./g,\"\");\r\n}\r\nvar strs = {}; // shared strings\r\nvar _ssfopts = {}; // spreadsheet formatting options\r\n\r\nRELS.WS = [\r\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\r\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\r\n];\r\n\r\n/*global Map */\r\nvar browser_has_Map = typeof Map !== 'undefined';\r\n\r\nfunction get_sst_id(sst, str, rev) {\r\n\tvar i = 0, len = sst.length;\r\n\tif(rev) {\r\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\r\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\r\n\t\t\tfor(; i < revarr.length; ++i) {\r\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\r\n\t\t\t}\r\n\t\t}\r\n\t} else for(; i < len; ++i) {\r\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\r\n\t}\r\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\r\n\tif(rev) {\r\n\t\tif(browser_has_Map) {\r\n\t\t\tif(!rev.has(str)) rev.set(str, []);\r\n\t\t\trev.get(str).push(len);\r\n\t\t} else {\r\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\r\n\t\t\trev[str].push(len);\r\n\t\t}\r\n\t}\r\n\treturn len;\r\n}\r\n\r\nfunction col_obj_w(C, col) {\r\n\tvar p = ({min:C+1,max:C+1});\r\n\t/* wch (chars), wpx (pixels) */\r\n\tvar wch = -1;\r\n\tif(col.MDW) MDW = col.MDW;\r\n\tif(col.width != null) p.customWidth = 1;\r\n\telse if(col.wpx != null) wch = px2char(col.wpx);\r\n\telse if(col.wch != null) wch = col.wch;\r\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\r\n\telse if(col.width != null) p.width = col.width;\r\n\tif(col.hidden) p.hidden = true;\r\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\r\n\treturn p;\r\n}\r\n\r\nfunction default_margins(margins, mode) {\r\n\tif(!margins) return;\r\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\r\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\r\n\tif(margins.left == null) margins.left = defs[0];\r\n\tif(margins.right == null) margins.right = defs[1];\r\n\tif(margins.top == null) margins.top = defs[2];\r\n\tif(margins.bottom == null) margins.bottom = defs[3];\r\n\tif(margins.header == null) margins.header = defs[4];\r\n\tif(margins.footer == null) margins.footer = defs[5];\r\n}\r\n\r\nfunction get_cell_style(styles, cell, opts) {\r\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\r\n\tvar i = 0x3c, len = styles.length;\r\n\tif(z == null && opts.ssf) {\r\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\r\n\t\t\tSSF.load(cell.z, i);\r\n\t\t\t// $FlowIgnore\r\n\t\t\topts.ssf[i] = cell.z;\r\n\t\t\topts.revssf[cell.z] = z = i;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\r\n\tstyles[len] = {\r\n\t\tnumFmtId:z,\r\n\t\tfontId:0,\r\n\t\tfillId:0,\r\n\t\tborderId:0,\r\n\t\txfId:0,\r\n\t\tapplyNumberFormat:1\r\n\t};\r\n\treturn len;\r\n}\r\n\r\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\r\n\ttry {\r\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\r\n\t} catch(e) { if(opts.WTF) throw e; }\r\n\tif(p.t === 'z' && !opts.cellStyles) return;\r\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\r\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\r\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\r\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\r\n\t\telse if(fmtid === 0) {\r\n\t\t\tif(p.t === 'n') {\r\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\r\n\t\t\t\telse p.w = SSF._general_num(p.v);\r\n\t\t\t}\r\n\t\t\telse if(p.t === 'd') {\r\n\t\t\t\tvar dd = datenum(p.v);\r\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\r\n\t\t\t\telse p.w = SSF._general_num(dd);\r\n\t\t\t}\r\n\t\t\telse if(p.v === undefined) return \"\";\r\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\r\n\t\t}\r\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\r\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\r\n\t} catch(e) { if(opts.WTF) throw e; }\r\n\tif(!opts.cellStyles) return;\r\n\tif(fillid != null) try {\r\n\t\tp.s = styles.Fills[fillid];\r\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\r\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\r\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\r\n\t\t}\r\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\r\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\r\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\r\n\t\t}\r\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\r\n}\r\n\r\nfunction check_ws(ws, sname, i) {\r\n\tif(ws && ws['!ref']) {\r\n\t\tvar range = safe_decode_range(ws['!ref']);\r\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\r\n\t}\r\n}\r\nfunction parse_ws_xml_dim(ws, s) {\r\n\tvar d = safe_decode_range(s);\r\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);\r\n}\r\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\r\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\r\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\r\nvar dimregex = /\"(\\w*:\\w*)\"/;\r\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\r\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\r\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\r\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\r\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\r\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\r\n\r\n/* 18.3 Worksheets */\r\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\r\n\tif(!data) return data;\r\n\tif(!rels) rels = {'!id':{}};\r\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\r\n\r\n\t/* 18.3.1.99 worksheet CT_Worksheet */\r\n\tvar s = opts.dense ? ([]) : ({});\r\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\r\n\r\n\tvar data1 = \"\", data2 = \"\";\r\n\tvar mtch = data.match(sheetdataregex);\r\n\tif(mtch) {\r\n\t\tdata1 = data.slice(0, mtch.index);\r\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\r\n\t} else data1 = data2 = data;\r\n\r\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\r\n\tvar sheetPr = data1.match(sheetprregex);\r\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\r\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\r\n\r\n\t/* 18.3.1.35 dimension CT_SheetDimension */\r\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\r\n\tif(ridx > 0) {\r\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\r\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\r\n\t}\r\n\r\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\r\n\tvar svs = data1.match(svsregex);\r\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\r\n\r\n\t/* 18.3.1.17 cols CT_Cols */\r\n\tvar columns = [];\r\n\tif(opts.cellStyles) {\r\n\t\t/* 18.3.1.13 col CT_Col */\r\n\t\tvar cols = data1.match(colregex);\r\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\r\n\t}\r\n\r\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\r\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\r\n\r\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\r\n\tvar afilter = data2.match(afregex);\r\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\r\n\r\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\r\n\tvar merges = [];\r\n\tvar _merge = data2.match(mergecregex);\r\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\r\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\r\n\r\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\r\n\tvar hlink = data2.match(hlinkregex);\r\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\r\n\r\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\r\n\tvar margins = data2.match(marginregex);\r\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\r\n\r\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\r\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\r\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\r\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\r\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\r\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\r\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\r\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\r\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\r\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\r\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\r\n\t\t}\r\n\t}\r\n\tif(columns.length > 0) s[\"!cols\"] = columns;\r\n\tif(merges.length > 0) s[\"!merges\"] = merges;\r\n\treturn s;\r\n}\r\n\r\nfunction write_ws_xml_merges(merges) {\r\n\tif(merges.length === 0) return \"\";\r\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\r\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\r\n\treturn o + '</mergeCells>';\r\n}\r\n\r\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\r\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\r\n\tvar data = parsexmltag(sheetPr);\r\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\r\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\r\n}\r\nfunction parse_ws_xml_sheetpr2(sheetPr, body, s, wb, idx, styles, themes) {\r\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\r\n}\r\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\r\n\tvar needed = false;\r\n\tvar props = {}, payload = null;\r\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\r\n\t\tvar cname = wb.SheetNames[idx];\r\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\r\n\t\tneeded = true;\r\n\t\tprops.codeName = utf8write(escapexml(cname));\r\n\t}\r\n\r\n\tif(ws && ws[\"!outline\"]) {\r\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\r\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\r\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\r\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\r\n\t}\r\n\r\n\tif(!needed && !payload) return;\r\n\to[o.length] = (writextag('sheetPr', payload, props));\r\n}\r\n\r\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\r\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\r\nvar sheetprot_deftrue = [\r\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\r\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\r\n\t\"deleteColumns\", \"deleteRows\",\r\n\t\"sort\", \"autoFilter\", \"pivotTables\"\r\n];\r\nfunction write_ws_xml_protection(sp) {\r\n\t// algorithmName, hashValue, saltValue, spinCount\r\n\tvar o = ({sheet:1});\r\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\r\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\r\n\t/* TODO: algorithm */\r\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\r\n\treturn writextag('sheetProtection', null, o);\r\n}\r\n\r\nfunction parse_ws_xml_hlinks(s, data, rels) {\r\n\tvar dense = Array.isArray(s);\r\n\tfor(var i = 0; i != data.length; ++i) {\r\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\r\n\t\tif(!val.ref) return;\r\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\r\n\t\tif(rel) {\r\n\t\t\tval.Target = rel.Target;\r\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\r\n\t\t} else {\r\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\r\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\r\n\t\t}\r\n\t\tval.Rel = rel;\r\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\r\n\t\tvar rng = safe_decode_range(val.ref);\r\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\r\n\t\t\tvar addr = encode_cell({c:C,r:R});\r\n\t\t\tif(dense) {\r\n\t\t\t\tif(!s[R]) s[R] = [];\r\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\r\n\t\t\t\ts[R][C].l = val;\r\n\t\t\t} else {\r\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\r\n\t\t\t\ts[addr].l = val;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction parse_ws_xml_margins(margin) {\r\n\tvar o = {};\r\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\r\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\r\n\t});\r\n\treturn o;\r\n}\r\nfunction write_ws_xml_margins(margin) {\r\n\tdefault_margins(margin);\r\n\treturn writextag('pageMargins', null, margin);\r\n}\r\n\r\nfunction parse_ws_xml_cols(columns, cols) {\r\n\tvar seencol = false;\r\n\tfor(var coli = 0; coli != cols.length; ++coli) {\r\n\t\tvar coll = parsexmltag(cols[coli], true);\r\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\r\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\r\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\r\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\r\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\r\n\t\tprocess_col(coll);\r\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\r\n\t}\r\n}\r\nfunction write_ws_xml_cols(ws, cols) {\r\n\tvar o = [\"<cols>\"], col;\r\n\tfor(var i = 0; i != cols.length; ++i) {\r\n\t\tif(!(col = cols[i])) continue;\r\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\r\n\t}\r\n\to[o.length] = \"</cols>\";\r\n\treturn o.join(\"\");\r\n}\r\n\r\nfunction parse_ws_xml_autofilter(data) {\r\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\r\n\treturn o;\r\n}\r\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\r\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\r\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\r\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\r\n\tvar names = wb.Workbook.Names;\r\n\tvar range = decode_range(ref);\r\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\r\n\tfor(var i = 0; i < names.length; ++i) {\r\n\t\tvar name = names[i];\r\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\r\n\t\tif(name.Sheet != idx) continue;\r\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\r\n\t}\r\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\r\n\treturn writextag(\"autoFilter\", null, {ref:ref});\r\n}\r\n\r\n/* 18.3.1.88 sheetViews CT_SheetViews */\r\n/* 18.3.1.87 sheetView CT_SheetView */\r\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\r\nfunction parse_ws_xml_sheetviews(data, wb) {\r\n\tif(!wb.Views) wb.Views = [{}];\r\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\r\n\t\tvar tag = parsexmltag(r);\r\n\t\t// $FlowIgnore\r\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\r\n\t\t// $FlowIgnore\r\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\r\n\t\t// $FlowIgnore\r\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\r\n\t});\r\n}\r\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\r\n\tvar sview = ({workbookViewId:\"0\"});\r\n\t// $FlowIgnore\r\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\r\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\r\n}\r\n\r\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\r\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z') return \"\";\r\n\tvar vv = \"\";\r\n\tvar oldt = cell.t, oldv = cell.v;\r\n\tif(cell.t !== \"z\") switch(cell.t) {\r\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\r\n\t\tcase 'n': vv = ''+cell.v; break;\r\n\t\tcase 'e': vv = BErr[cell.v]; break;\r\n\t\tcase 'd':\r\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\r\n\t\t\telse {\r\n\t\t\t\tcell = dup(cell);\r\n\t\t\t\tcell.t = 'n';\r\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\r\n\t\t\t}\r\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\r\n\t\t\tbreak;\r\n\t\tdefault: vv = cell.v; break;\r\n\t}\r\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\r\n\t/* TODO: cell style */\r\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\r\n\tif(os !== 0) o.s = os;\r\n\tswitch(cell.t) {\r\n\t\tcase 'n': break;\r\n\t\tcase 'd': o.t = \"d\"; break;\r\n\t\tcase 'b': o.t = \"b\"; break;\r\n\t\tcase 'e': o.t = \"e\"; break;\r\n\t\tcase 'z': break;\r\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\r\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\r\n\t\t\tif(opts && opts.bookSST) {\r\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\r\n\t\t\t\to.t = \"s\"; break;\r\n\t\t\t}\r\n\t\t\to.t = \"str\"; break;\r\n\t}\r\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\r\n\tif(typeof cell.f == \"string\" && cell.f) {\r\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\r\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\r\n\t}\r\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\r\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\r\n\treturn writextag('c', v, o);\r\n}\r\n\r\nvar parse_ws_xml_data = (function() {\r\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\r\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\r\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\r\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\r\n\r\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\r\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\r\n\tvar tag, tagr = 0, tagc = 0;\r\n\tvar sstr, ftag;\r\n\tvar fmtid = 0, fillid = 0;\r\n\tvar do_format = Array.isArray(styles.CellXf), cf;\r\n\tvar arrayf = [];\r\n\tvar sharedf = [];\r\n\tvar dense = Array.isArray(s);\r\n\tvar rows = [], rowobj = {}, rowrite = false;\r\n\tvar sheetStubs = !!opts.sheetStubs;\r\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\r\n\t\tx = marr[mt].trim();\r\n\t\tvar xlen = x.length;\r\n\t\tif(xlen === 0) continue;\r\n\r\n\t\t/* 18.3.1.73 row CT_Row */\r\n\t\tvar rstarti = 0;\r\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\r\n\t\t\tcase \">\" /*62*/:\r\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\r\n\t\t\t\tif(opts && opts.cellStyles) {\r\n\t\t\t\t\t// TODO: avoid duplication\r\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\r\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\r\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\r\n\t\t\t\t\trowobj = {}; rowrite = false;\r\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\r\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\r\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\r\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\r\n\t\t}\r\n\t\tif(rstarti >= ri) break;\r\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\r\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\r\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\r\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\r\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\r\n\r\n\t\tif(opts && opts.cellStyles) {\r\n\t\t\trowobj = {}; rowrite = false;\r\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\r\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\r\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\r\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\r\n\t\t}\r\n\r\n\t\t/* 18.3.1.4 c CT_Cell */\r\n\t\tcells = x.slice(ri).split(cellregex);\r\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\r\n\t\tcells = cells.slice(rslice);\r\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\r\n\t\t\tx = cells[ri].trim();\r\n\t\t\tif(x.length === 0) continue;\r\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\r\n\t\t\tx = \"<c \" + (x.slice(0,1)==\"<\"?\">\":\"\") + x;\r\n\t\t\tif(cref != null && cref.length === 2) {\r\n\t\t\t\tidx = 0; d=cref[1];\r\n\t\t\t\tfor(i=0; i != d.length; ++i) {\r\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\r\n\t\t\t\t\tidx = 26*idx + cc;\r\n\t\t\t\t}\r\n\t\t\t\t--idx;\r\n\t\t\t\ttagc = idx;\r\n\t\t\t} else ++tagc;\r\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\r\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\r\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\r\n\t\t\td = x.slice(i);\r\n\t\t\tp = ({t:\"\"});\r\n\r\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\r\n\t\t\tif(opts.cellFormula) {\r\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\r\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\r\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\r\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\r\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\r\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\r\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\r\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\r\n\t\t\t\t\t\t// TODO: parse formula\r\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\r\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\r\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\r\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if((cref=d.match(/<f[^>]*\\/>/))) {\r\n\t\t\t\t\tftag = parsexmltag(cref[0]);\r\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\r\n\t\t\t\t}\r\n\t\t\t\t/* TODO: factor out contains logic */\r\n\t\t\t\tvar _tag = decode_cell(tag.r);\r\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\r\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\r\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\r\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\r\n\t\t\t}\r\n\r\n\t\t\tif(tag.t == null && p.v === undefined) {\r\n\t\t\t\tif(p.f || p.F) {\r\n\t\t\t\t\tp.v = 0; p.t = \"n\";\r\n\t\t\t\t} else if(!sheetStubs) continue;\r\n\t\t\t\telse p.t = \"z\";\r\n\t\t\t}\r\n\t\t\telse p.t = tag.t || \"n\";\r\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\r\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\r\n\t\t\t/* 18.18.11 t ST_CellType */\r\n\t\t\tswitch(p.t) {\r\n\t\t\t\tcase 'n':\r\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\r\n\t\t\t\t\t\tif(!sheetStubs) continue;\r\n\t\t\t\t\t\tp.t = 'z';\r\n\t\t\t\t\t} else p.v = parseFloat(p.v);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 's':\r\n\t\t\t\t\tif(typeof p.v == 'undefined') {\r\n\t\t\t\t\t\tif(!sheetStubs) continue;\r\n\t\t\t\t\t\tp.t = 'z';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\r\n\t\t\t\t\t\tp.v = sstr.t;\r\n\t\t\t\t\t\tp.r = sstr.r;\r\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'str':\r\n\t\t\t\t\tp.t = \"s\";\r\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\r\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'inlineStr':\r\n\t\t\t\t\tcref = d.match(isregex);\r\n\t\t\t\t\tp.t = 's';\r\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\r\n\t\t\t\t\t\tp.v = sstr.t;\r\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\r\n\t\t\t\t\t} else p.v = \"\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\r\n\t\t\t\tcase 'd':\r\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\r\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t/* error string in .w, number in .v */\r\n\t\t\t\tcase 'e':\r\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\r\n\t\t\t\t\tp.v = RBErr[p.v]; break;\r\n\t\t\t}\r\n\t\t\t/* formatting */\r\n\t\t\tfmtid = fillid = 0;\r\n\t\t\tcf = null;\r\n\t\t\tif(do_format && tag.s !== undefined) {\r\n\t\t\t\tcf = styles.CellXf[tag.s];\r\n\t\t\t\tif(cf != null) {\r\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\r\n\t\t\t\t\tif(opts.cellStyles) {\r\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\r\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); }\r\n\t\t\tif(dense) {\r\n\t\t\t\tvar _r = decode_cell(tag.r);\r\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\r\n\t\t\t\ts[_r.r][_r.c] = p;\r\n\t\t\t} else s[tag.r] = p;\r\n\t\t}\r\n\t}\r\n\tif(rows.length > 0) s['!rows'] = rows;\r\n}; })();\r\n\r\nfunction write_ws_xml_data(ws, opts, idx, wb) {\r\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\r\n\tvar dense = Array.isArray(ws);\r\n\tvar params = ({r:rr}), row, height = -1;\r\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\r\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\r\n\t\tr = [];\r\n\t\trr = encode_row(R);\r\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\r\n\t\t\tref = cols[C] + rr;\r\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\r\n\t\t\tif(_cell === undefined) continue;\r\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\r\n\t\t}\r\n\t\tif(r.length > 0 || (rows && rows[R])) {\r\n\t\t\tparams = ({r:rr});\r\n\t\t\tif(rows && rows[R]) {\r\n\t\t\t\trow = rows[R];\r\n\t\t\t\tif(row.hidden) params.hidden = 1;\r\n\t\t\t\theight = -1;\r\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\r\n\t\t\t\telse if(row.hpt) height = row.hpt;\r\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\r\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\r\n\t\t\t}\r\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\r\n\t\t}\r\n\t}\r\n\tif(rows) for(; R < rows.length; ++R) {\r\n\t\tif(rows && rows[R]) {\r\n\t\t\tparams = ({r:R+1});\r\n\t\t\trow = rows[R];\r\n\t\t\tif(row.hidden) params.hidden = 1;\r\n\t\t\theight = -1;\r\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\r\n\t\t\telse if (row.hpt) height = row.hpt;\r\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\r\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\r\n\t\t\to[o.length] = (writextag('row', \"\", params));\r\n\t\t}\r\n\t}\r\n\treturn o.join(\"\");\r\n}\r\n\r\nvar WS_XML_ROOT = writextag('worksheet', null, {\r\n\t'xmlns': XMLNS.main[0],\r\n\t'xmlns:r': XMLNS.r\r\n});\r\n\r\nfunction write_ws_xml(idx, opts, wb, rels) {\r\n\tvar o = [XML_HEADER, WS_XML_ROOT];\r\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\r\n\tvar ws = wb.Sheets[s];\r\n\tif(ws == null) ws = {};\r\n\tvar ref = ws['!ref'] || 'A1';\r\n\tvar range = safe_decode_range(ref);\r\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\r\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\r\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\r\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\r\n\t\tref = encode_range(range);\r\n\t}\r\n\tif(!rels) rels = {};\r\n\tws['!comments'] = [];\r\n\tvar _drawing = [];\r\n\r\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\r\n\r\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\r\n\r\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\r\n\r\n\t/* TODO: store in WB, process styles */\r\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\r\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\r\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\r\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\r\n\t}));\r\n\r\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\r\n\r\n\to[sidx = o.length] = '<sheetData/>';\r\n\tws['!links'] = [];\r\n\tif(ws['!ref'] != null) {\r\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\r\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\r\n\t}\r\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\r\n\r\n\t/* sheetCalcPr */\r\n\r\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\r\n\r\n\t/* protectedRanges */\r\n\t/* scenarios */\r\n\r\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\r\n\r\n\t/* sortState */\r\n\t/* dataConsolidate */\r\n\t/* customSheetViews */\r\n\r\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\r\n\r\n\t/* phoneticPr */\r\n\t/* conditionalFormatting */\r\n\t/* dataValidations */\r\n\r\n\tvar relc = -1, rel, rId = -1;\r\n\tif(ws['!links'].length > 0) {\r\n\t\to[o.length] = \"<hyperlinks>\";\r\nws['!links'].forEach(function(l) {\r\n\t\t\tif(!l[1].Target) return;\r\n\t\t\trel = ({\"ref\":l[0]});\r\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\r\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\r\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\r\n\t\t\t}\r\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\r\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\r\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\r\n\t\t});\r\n\t\to[o.length] = \"</hyperlinks>\";\r\n\t}\r\n\tdelete ws['!links'];\r\n\r\n\t/* printOptions */\r\n\r\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\r\n\r\n\t/* pageSetup */\r\n\t/* headerFooter */\r\n\t/* rowBreaks */\r\n\t/* colBreaks */\r\n\t/* customProperties */\r\n\t/* cellWatches */\r\n\r\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\r\n\r\n\t/* smartTags */\r\n\r\n\tif(_drawing.length > 0) {\r\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\r\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\r\n\t\tws['!drawing'] = _drawing;\r\n\t}\r\n\r\n\tif(ws['!comments'].length > 0) {\r\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\r\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\r\n\t\tws['!legacy'] = rId;\r\n\t}\r\n\r\n\t/* legacyDrawingHF */\r\n\t/* picture */\r\n\t/* oleObjects */\r\n\t/* controls */\r\n\t/* webPublishItems */\r\n\t/* tableParts */\r\n\t/* extLst */\r\n\r\n\tif(o.length>1) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\r\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\r\n\r\nfunction parse_Cache(data) {\r\n\tvar col = [];\r\n\tvar num = data.match(/^<c:numCache>/);\r\n\tvar f;\r\n\r\n\t/* 21.2.2.150 pt CT_NumVal */\r\n\t(data.match(/<c:pt idx=\"(\\d*)\">(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\r\n\t\tvar q = pt.match(/<c:pt idx=\"(\\d*?)\"><c:v>(.*)<\\/c:v><\\/c:pt>/);\r\n\t\tif(!q) return;\r\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\r\n\t});\r\n\r\n\t/* 21.2.2.71 formatCode CT_Xstring */\r\n\tvar nf = unescapexml((data.match(/<c:formatCode>([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\r\n\r\n\t(data.match(/<c:f>(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\r\n\r\n\treturn [col, nf, f];\r\n}\r\n\r\n/* 21.2 DrawingML - Charts */\r\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\r\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\r\n\tif(!data) return csheet;\r\n\t/* 21.2.2.27 chart CT_Chart */\r\n\r\n\tvar C = 0, R = 0, col = \"A\";\r\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\r\n\r\n\t/* 21.2.2.120 numCache CT_NumData */\r\n\t(data.match(/<c:numCache>[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\r\n\t\tvar cache = parse_Cache(nc);\r\n\t\trefguess.s.r = refguess.s.c = 0;\r\n\t\trefguess.e.c = C;\r\n\t\tcol = encode_col(C);\r\n\t\tcache[0].forEach(function(n,i) {\r\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\r\n\t\t\tR = i;\r\n\t\t});\r\n\t\tif(refguess.e.r < R) refguess.e.r = R;\r\n\t\t++C;\r\n\t});\r\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\r\n\treturn cs;\r\n}\r\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\r\n\r\nvar CS_XML_ROOT = writextag('chartsheet', null, {\r\n\t'xmlns': XMLNS.main[0],\r\n\t'xmlns:r': XMLNS.r\r\n});\r\n\r\n/* 18.3 Worksheets also covers Chartsheets */\r\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\r\n\tif(!data) return data;\r\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\r\n\tif(!rels) rels = {'!id':{}};\r\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\r\n\tvar m;\r\n\r\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\r\n\tvar sheetPr = data.match(sheetprregex);\r\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\r\n\r\n\t/* 18.3.1.36 drawing CT_Drawing */\r\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\r\n\r\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\r\n\treturn s;\r\n}\r\nfunction write_cs_xml(idx, opts, wb, rels) {\r\n\tvar o = [XML_HEADER, CS_XML_ROOT];\r\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\r\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\r\n\tif(o.length>2) { o[o.length] = ('</chartsheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\n\r\n/* [MS-XLSB] 2.4.331 BrtCsProp */\r\nfunction parse_BrtCsProp(data, length) {\r\n\tdata.l += 10;\r\n\tvar name = parse_XLWideString(data, length - 10);\r\n\treturn { name: name };\r\n}\r\n\r\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\r\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\r\n\tif(!data) return data;\r\n\tif(!rels) rels = {'!id':{}};\r\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\r\n\tvar state = [];\r\n\tvar pass = false;\r\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\r\n\t\tswitch(RT) {\r\n\r\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\r\n\t\t\t\ts['!rel'] = val; break;\r\n\r\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\r\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\r\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\r\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\r\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\r\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\r\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\r\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\r\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\r\n\t\t\tcase 0x0C00: /* 'BrtUid' */\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\r\n\t\t\t\tpass = true; break;\r\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\r\n\t\t\t\tpass = false; break;\r\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\r\n\t\t\t\tstate.push(R_n); break;\r\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\r\n\t\t\t\tstate.pop(); break;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\r\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\r\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\r\n\t\t}\r\n\t}, opts);\r\n\r\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\r\n\treturn s;\r\n}\r\nfunction write_cs_bin() {\r\n\tvar ba = buf_array();\r\n\twrite_record(ba, \"BrtBeginSheet\");\r\n\t/* [BrtCsProp] */\r\n\t/* CSVIEWS */\r\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\r\n\t/* [USERCSVIEWS] */\r\n\t/* [BrtMargins] */\r\n\t/* [BrtCsPageSetup] */\r\n\t/* [HEADERFOOTER] */\r\n\t/* BrtDrawing */\r\n\t/* [BrtLegacyDrawing] */\r\n\t/* [BrtLegacyDrawingHF] */\r\n\t/* [BrtBkHim] */\r\n\t/* [WEBPUBITEMS] */\r\n\t/* FRTCHARTSHEET */\r\n\twrite_record(ba, \"BrtEndSheet\");\r\n\treturn ba.end();\r\n}\r\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\r\nvar WBPropsDef = [\r\n\t['allowRefreshQuery', false, \"bool\"],\r\n\t['autoCompressPictures', true, \"bool\"],\r\n\t['backupFile', false, \"bool\"],\r\n\t['checkCompatibility', false, \"bool\"],\r\n\t['CodeName', ''],\r\n\t['date1904', false, \"bool\"],\r\n\t['defaultThemeVersion', 0, \"int\"],\r\n\t['filterPrivacy', false, \"bool\"],\r\n\t['hidePivotFieldList', false, \"bool\"],\r\n\t['promptedSolutions', false, \"bool\"],\r\n\t['publishItems', false, \"bool\"],\r\n\t['refreshAllConnections', false, \"bool\"],\r\n\t['saveExternalLinkValues', true, \"bool\"],\r\n\t['showBorderUnselectedTables', true, \"bool\"],\r\n\t['showInkAnnotation', true, \"bool\"],\r\n\t['showObjects', 'all'],\r\n\t['showPivotChartFilter', false, \"bool\"],\r\n\t['updateLinks', 'userSet']\r\n];\r\n\r\n/* 18.2.30 (CT_BookView) Defaults */\r\nvar WBViewDef = [\r\n\t['activeTab', 0, \"int\"],\r\n\t['autoFilterDateGrouping', true, \"bool\"],\r\n\t['firstSheet', 0, \"int\"],\r\n\t['minimized', false, \"bool\"],\r\n\t['showHorizontalScroll', true, \"bool\"],\r\n\t['showSheetTabs', true, \"bool\"],\r\n\t['showVerticalScroll', true, \"bool\"],\r\n\t['tabRatio', 600, \"int\"],\r\n\t['visibility', 'visible']\r\n\t//window{Height,Width}, {x,y}Window\r\n];\r\n\r\n/* 18.2.19 (CT_Sheet) Defaults */\r\nvar SheetDef = [\r\n\t//['state', 'visible']\r\n];\r\n\r\n/* 18.2.2 (CT_CalcPr) Defaults */\r\nvar CalcPrDef = [\r\n\t['calcCompleted', 'true'],\r\n\t['calcMode', 'auto'],\r\n\t['calcOnSave', 'true'],\r\n\t['concurrentCalc', 'true'],\r\n\t['fullCalcOnLoad', 'false'],\r\n\t['fullPrecision', 'true'],\r\n\t['iterate', 'false'],\r\n\t['iterateCount', '100'],\r\n\t['iterateDelta', '0.001'],\r\n\t['refMode', 'A1']\r\n];\r\n\r\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\r\n/*var CustomWBViewDef = [\r\n\t['autoUpdate', 'false'],\r\n\t['changesSavedWin', 'false'],\r\n\t['includeHiddenRowCol', 'true'],\r\n\t['includePrintSettings', 'true'],\r\n\t['maximized', 'false'],\r\n\t['minimized', 'false'],\r\n\t['onlySync', 'false'],\r\n\t['personalView', 'false'],\r\n\t['showComments', 'commIndicator'],\r\n\t['showFormulaBar', 'true'],\r\n\t['showHorizontalScroll', 'true'],\r\n\t['showObjects', 'all'],\r\n\t['showSheetTabs', 'true'],\r\n\t['showStatusbar', 'true'],\r\n\t['showVerticalScroll', 'true'],\r\n\t['tabRatio', '600'],\r\n\t['xWindow', '0'],\r\n\t['yWindow', '0']\r\n];*/\r\n\r\nfunction push_defaults_array(target, defaults) {\r\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\r\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\r\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\r\n\t\t\telse switch(z[2]) {\r\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\r\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\nfunction push_defaults(target, defaults) {\r\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\r\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\r\n\t\telse switch(z[2]) {\r\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\r\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction parse_wb_defaults(wb) {\r\n\tpush_defaults(wb.WBProps, WBPropsDef);\r\n\tpush_defaults(wb.CalcPr, CalcPrDef);\r\n\r\n\tpush_defaults_array(wb.WBView, WBViewDef);\r\n\tpush_defaults_array(wb.Sheets, SheetDef);\r\n\r\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\r\n}\r\n\r\nfunction safe1904(wb) {\r\n\t/* TODO: store date1904 somewhere else */\r\n\tif(!wb.Workbook) return \"false\";\r\n\tif(!wb.Workbook.WBProps) return \"false\";\r\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\r\n}\r\n\r\nvar badchars = \"][*?\\/\\\\\".split(\"\");\r\nfunction check_ws_name(n, safe) {\r\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\r\n\tvar _good = true;\r\n\tbadchars.forEach(function(c) {\r\n\t\tif(n.indexOf(c) == -1) return;\r\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\r\n\t\t_good = false;\r\n\t});\r\n\treturn _good;\r\n}\r\nfunction check_wb_names(N, S, codes) {\r\n\tN.forEach(function(n,i) {\r\n\t\tcheck_ws_name(n);\r\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\r\n\t\tif(codes) {\r\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\r\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\r\n\t\t}\r\n\t});\r\n}\r\nfunction check_wb(wb) {\r\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\r\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\r\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\r\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\r\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\r\n\t/* TODO: validate workbook */\r\n}\r\n/* 18.2 Workbook */\r\nvar wbnsregex = /<\\w+:workbook/;\r\nfunction parse_wb_xml(data, opts) {\r\n\tif(!data) throw new Error(\"Could not find file\");\r\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\r\n\tvar pass = false, xmlns = \"xmlns\";\r\n\tvar dname = {}, dnstart = 0;\r\n\tdata.replace(tagregex, function xml_wb(x, idx) {\r\n\t\tvar y = parsexmltag(x);\r\n\t\tswitch(strip_ns(y[0])) {\r\n\t\t\tcase '<?xml': break;\r\n\r\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\r\n\t\t\tcase '<workbook':\r\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\r\n\t\t\t\twb.xmlns = y[xmlns];\r\n\t\t\t\tbreak;\r\n\t\t\tcase '</workbook>': break;\r\n\r\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\r\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\r\n\t\t\tcase '<fileVersion/>': case '</fileVersion>': break;\r\n\r\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\r\n\t\t\tcase '<fileSharing':\r\n\t\t\t\tbreak;\r\n\t\t\tcase '<fileSharing/>': break;\r\n\r\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\r\n\t\t\tcase '<workbookPr':\r\n\t\t\tcase '<workbookPr/>':\r\n\t\t\t\tWBPropsDef.forEach(function(w) {\r\n\t\t\t\t\tif(y[w[0]] == null) return;\r\n\t\t\t\t\tswitch(w[2]) {\r\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\r\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\r\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '</workbookPr>': break;\r\n\r\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\r\n\t\t\tcase '<workbookProtection':\r\n\t\t\t\tbreak;\r\n\t\t\tcase '<workbookProtection/>': break;\r\n\r\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\r\n\t\t\tcase '<bookViews': case '<bookViews>': case '</bookViews>': break;\r\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\r\n\t\t\tcase '<workbookView': case '<workbookView/>': delete y[0]; wb.WBView.push(y); break;\r\n\t\t\tcase '</workbookView>': break;\r\n\r\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\r\n\t\t\tcase '<sheets': case '<sheets>': case '</sheets>': break; // aggregate sheet\r\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\r\n\t\t\tcase '<sheet':\r\n\t\t\t\tswitch(y.state) {\r\n\t\t\t\t\tcase \"hidden\": y.Hidden = 1; break;\r\n\t\t\t\t\tcase \"veryHidden\": y.Hidden = 2; break;\r\n\t\t\t\t\tdefault: y.Hidden = 0;\r\n\t\t\t\t}\r\n\t\t\t\tdelete y.state;\r\n\t\t\t\ty.name = unescapexml(utf8read(y.name));\r\n\t\t\t\tdelete y[0]; wb.Sheets.push(y); break;\r\n\t\t\tcase '</sheet>': break;\r\n\r\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\r\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\r\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\r\n\t\t\tcase '<functionGroup': break;\r\n\r\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\r\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\r\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\r\n\t\t\tcase '<externalReference': break;\r\n\r\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\r\n\t\t\tcase '<definedNames/>': break;\r\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\r\n\t\t\tcase '</definedNames>': pass=false; break;\r\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\r\n\t\t\tcase '<definedName': {\r\n\t\t\t\tdname = {};\r\n\t\t\t\tdname.Name = utf8read(y.name);\r\n\t\t\t\tif(y.comment) dname.Comment = y.comment;\r\n\t\t\t\tif(y.localSheetId) dname.Sheet = +y.localSheetId;\r\n\t\t\t\tif(parsexmlbool(y.hidden||\"0\")) dname.Hidden = true;\r\n\t\t\t\tdnstart = idx + x.length;\r\n\t\t\t}\tbreak;\r\n\t\t\tcase '</definedName>': {\r\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\r\n\t\t\t\twb.Names.push(dname);\r\n\t\t\t} break;\r\n\t\t\tcase '<definedName/>': break;\r\n\r\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\r\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\r\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\r\n\t\t\tcase '</calcPr>': break;\r\n\r\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\r\n\t\t\tcase '<oleSize': break;\r\n\r\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\r\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\r\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\r\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\r\n\r\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\r\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\r\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\r\n\t\t\tcase '<pivotCache': break;\r\n\r\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\r\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\r\n\r\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\r\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\r\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\r\n\t\t\tcase '<smartTagType': break;\r\n\r\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\r\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\r\n\r\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\r\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\r\n\r\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\r\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\r\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\r\n\t\t\tcase '<webPublishObject': break;\r\n\r\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\r\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\r\n\t\t\t/* 18.2.7 ext CT_Extension + */\r\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\r\n\t\t\tcase '</ext>': pass=false; break;\r\n\r\n\t\t\t/* Others */\r\n\t\t\tcase '<ArchID': break;\r\n\t\t\tcase '<AlternateContent':\r\n\t\t\tcase '<AlternateContent>': pass=true; break;\r\n\t\t\tcase '</AlternateContent>': pass=false; break;\r\n\r\n\t\t\t/* TODO */\r\n\t\t\tcase '<revisionPtr': break;\r\n\r\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in workbook');\r\n\t\t}\r\n\t\treturn x;\r\n\t});\r\n\tif(XMLNS.main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\r\n\r\n\tparse_wb_defaults(wb);\r\n\r\n\treturn wb;\r\n}\r\n\r\nvar WB_XML_ROOT = writextag('workbook', null, {\r\n\t'xmlns': XMLNS.main[0],\r\n\t//'xmlns:mx': XMLNS.mx,\r\n\t//'xmlns:s': XMLNS.main[0],\r\n\t'xmlns:r': XMLNS.r\r\n});\r\n\r\nfunction write_wb_xml(wb) {\r\n\tvar o = [XML_HEADER];\r\n\to[o.length] = WB_XML_ROOT;\r\n\r\n\tvar write_names = (wb.Workbook && (wb.Workbook.Names||[]).length > 0);\r\n\r\n\t/* fileVersion */\r\n\t/* fileSharing */\r\n\r\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\r\n\tif(wb.Workbook && wb.Workbook.WBProps) {\r\n\t\tWBPropsDef.forEach(function(x) {\r\nif((wb.Workbook.WBProps[x[0]]) == null) return;\r\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\r\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\r\n\t\t});\r\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\r\n\t}\r\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\r\n\r\n\t/* workbookProtection */\r\n\r\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\r\n\tvar i = 0;\r\n\r\n\t/* bookViews only written if first worksheet is hidden */\r\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\r\n\t\to[o.length] = \"<bookViews>\";\r\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\r\n\t\t\tif(!sheets[i]) break;\r\n\t\t\tif(!sheets[i].Hidden) break;\r\n\t\t}\r\n\t\tif(i == wb.SheetNames.length) i = 0;\r\n\t\to[o.length] = '<workbookView firstSheet=\"' + i + '\" activeTab=\"' + i + '\"/>';\r\n\t\to[o.length] = \"</bookViews>\";\r\n\t}\r\n\r\n\to[o.length] = \"<sheets>\";\r\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\r\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\r\n\t\tsht.sheetId = \"\"+(i+1);\r\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\r\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\r\n\t\t\tcase 1: sht.state = \"hidden\"; break;\r\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\r\n\t\t}\r\n\t\to[o.length] = (writextag('sheet',null,sht));\r\n\t}\r\n\to[o.length] = \"</sheets>\";\r\n\r\n\t/* functionGroups */\r\n\t/* externalReferences */\r\n\r\n\tif(write_names) {\r\n\t\to[o.length] = \"<definedNames>\";\r\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\r\n\t\t\tvar d = {name:n.Name};\r\n\t\t\tif(n.Comment) d.comment = n.Comment;\r\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\r\n\t\t\tif(n.Hidden) d.hidden = \"1\";\r\n\t\t\tif(!n.Ref) return;\r\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\r\n\t\t});\r\n\t\to[o.length] = \"</definedNames>\";\r\n\t}\r\n\r\n\t/* calcPr */\r\n\t/* oleSize */\r\n\t/* customWorkbookViews */\r\n\t/* pivotCaches */\r\n\t/* smartTagPr */\r\n\t/* smartTagTypes */\r\n\t/* webPublishing */\r\n\t/* fileRecoveryPr */\r\n\t/* webPublishObjects */\r\n\t/* extLst */\r\n\r\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\r\n\treturn o.join(\"\");\r\n}\r\nfunction parse_wb(data, name, opts) {\r\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\r\n\treturn parse_wb_xml((data), opts);\r\n}\r\n\r\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\r\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\r\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\r\n}\r\n\r\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\r\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\r\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\r\n}\r\n\r\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\r\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\r\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\r\n}\r\n\r\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\r\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\r\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\r\n}\r\n\r\nfunction parse_sty(data, name, themes, opts) {\r\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\r\n\treturn parse_sty_xml((data), themes, opts);\r\n}\r\n\r\nfunction parse_theme(data, name, opts) {\r\n\treturn parse_theme_xml(data, opts);\r\n}\r\n\r\nfunction parse_sst(data, name, opts) {\r\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\r\n\treturn parse_sst_xml((data), opts);\r\n}\r\n\r\nfunction parse_cmnt(data, name, opts) {\r\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\r\n\treturn parse_comments_xml((data), opts);\r\n}\r\n\r\nfunction parse_cc(data, name, opts) {\r\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\r\n\treturn parse_cc_xml((data), name, opts);\r\n}\r\n\r\nfunction parse_xlink(data, rel, name, opts) {\r\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\r\n\treturn parse_xlink_xml((data), rel, name, opts);\r\n}\r\n\r\nfunction write_wb(wb, name, opts) {\r\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\r\n}\r\n\r\nfunction write_ws(data, name, opts, wb, rels) {\r\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\r\n}\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nfunction write_cs(data, name, opts, wb, rels) {\r\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\r\n}\r\n\r\nfunction write_sty(data, name, opts) {\r\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\r\n}\r\n\r\nfunction write_sst(data, name, opts) {\r\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\r\n}\r\n\r\nfunction write_cmnt(data, name, opts) {\r\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\r\n}\r\n/*\r\nfunction write_cc(data, name:string, opts) {\r\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\r\n}\r\n*/\r\n/* note: browser DOM element cannot see mso- style attrs, must parse */\r\nvar HTML_ = (function() {\r\n\tfunction html_to_sheet(str, _opts) {\r\n\t\tvar opts = _opts || {};\r\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\r\n\t\tvar ws = opts.dense ? ([]) : ({});\r\n\t\tstr = str.replace(/<!--.*?-->/g, \"\");\r\n\t\tvar mtch = str.match(/<table/i);\r\n\t\tif(!mtch) throw new Error(\"Invalid HTML: could not find <table>\");\r\n\t\tvar mtch2 = str.match(/<\\/table/i);\r\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\r\n\t\tvar rows = split_regex(str.slice(i, j), /(:?<tr[^>]*>)/i, \"<tr>\");\r\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\r\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\r\n\t\tvar merges = [];\r\n\t\tfor(i = 0; i < rows.length; ++i) {\r\n\t\t\tvar row = rows[i].trim();\r\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\r\n\t\t\tif(hd == \"<tr\") { ++R; if(opts.sheetRows && opts.sheetRows <= R) { --R; break; } C = 0; continue; }\r\n\t\t\tif(hd != \"<td\" && hd != \"<th\") continue;\r\n\t\t\tvar cells = row.split(/<\\/t[dh]>/i);\r\n\t\t\tfor(j = 0; j < cells.length; ++j) {\r\n\t\t\t\tvar cell = cells[j].trim();\r\n\t\t\t\tif(!cell.match(/<t[dh]/i)) continue;\r\n\t\t\t\tvar m = cell, cc = 0;\r\n\t\t\t\t/* TODO: parse styles etc */\r\n\t\t\t\twhile(m.charAt(0) == \"<\" && (cc = m.indexOf(\">\")) > -1) m = m.slice(cc+1);\r\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\r\n\t\t\t\t\tvar _merge = merges[midx];\r\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\r\n\t\t\t\t}\r\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\r\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\r\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\r\n\t\t\t\tvar _t = tag.t || tag[\"data-t\"] || \"\";\r\n\t\t\t\t/* TODO: generate stub cells */\r\n\t\t\t\tif(!m.length) { C += CS; continue; }\r\n\t\t\t\tm = htmldecode(m);\r\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\r\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\r\n\t\t\t\tif(!m.length) continue;\r\n\t\t\t\tvar o = {t:'s', v:m};\r\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\r\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\r\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\r\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\r\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\r\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\r\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\r\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\r\n\t\t\t\t}\r\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\r\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\r\n\t\t\t\tC += CS;\r\n\t\t\t}\r\n\t\t}\r\n\t\tws['!ref'] = encode_range(range);\r\n\t\tif(merges.length) ws[\"!merges\"] = merges;\r\n\t\treturn ws;\r\n\t}\r\n\tfunction html_to_book(str, opts) {\r\n\t\tvar mtch = str.match(/<table.*?>[\\s\\S]*?<\\/table>/gi);\r\n\t\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find <table>\");\r\n\t\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\r\n\t\tvar wb = utils.book_new();\r\n\t\tmtch.forEach(function(s, idx) { utils.book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\r\n\t\treturn wb;\r\n\t}\r\n\tfunction make_html_row(ws, r, R, o) {\r\n\t\tvar M = (ws['!merges'] ||[]);\r\n\t\tvar oo = [];\r\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\r\n\t\t\tvar RS = 0, CS = 0;\r\n\t\t\tfor(var j = 0; j < M.length; ++j) {\r\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\r\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\r\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\r\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;\r\n\t\t\t}\r\n\t\t\tif(RS < 0) continue;\r\n\t\t\tvar coord = encode_cell({r:R,c:C});\r\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\r\n\t\t\t/* TODO: html entities */\r\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\r\n\t\t\tvar sp = ({});\r\n\t\t\tif(RS > 1) sp.rowspan = RS;\r\n\t\t\tif(CS > 1) sp.colspan = CS;\r\n\t\t\tif(o.editable) w = '<span contenteditable=\"true\">' + w + '</span>';\r\n\t\t\telse if(cell) {\r\n\t\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\r\n\t\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\r\n\t\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\r\n\t\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '<a href=\"' + cell.l.Target +'\">' + w + '</a>';\r\n\t\t\t}\r\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\r\n\t\t\too.push(writextag('td', w, sp));\r\n\t\t}\r\n\t\tvar preamble = \"<tr>\";\r\n\t\treturn preamble + oo.join(\"\") + \"</tr>\";\r\n\t}\r\n\tfunction make_html_preamble(ws, R, o) {\r\n\t\tvar out = [];\r\n\t\treturn out.join(\"\") + '<table' + (o && o.id ? ' id=\"' + o.id + '\"' : \"\") + '>';\r\n\t}\r\n\tvar _BEGIN = '<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export</title></head><body>';\r\n\tvar _END = '</body></html>';\r\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\r\n\t\tvar o = opts || {};\r\n\t\tvar header = o.header != null ? o.header : _BEGIN;\r\n\t\tvar footer = o.footer != null ? o.footer : _END;\r\n\t\tvar out = [header];\r\n\t\tvar r = decode_range(ws['!ref']);\r\n\t\to.dense = Array.isArray(ws);\r\n\t\tout.push(make_html_preamble(ws, r, o));\r\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\r\n\t\tout.push(\"</table>\" + footer);\r\n\t\treturn out.join(\"\");\r\n\r\n\t}\r\n\treturn {\r\n\t\tto_workbook: html_to_book,\r\n\t\tto_sheet: html_to_sheet,\r\n\t\t_row: make_html_row,\r\n\t\tBEGIN: _BEGIN,\r\n\t\tEND: _END,\r\n\t\t_preamble: make_html_preamble,\r\n\t\tfrom_sheet: sheet_to_html\r\n\t};\r\n})();\r\n\r\nfunction sheet_add_dom(ws, table, _opts) {\r\n\tvar opts = _opts || {};\r\n\tif(DENSE != null) opts.dense = DENSE;\r\n\tvar or_R = 0, or_C = 0;\r\n\tif(opts.origin != null) {\r\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\r\n\t\telse {\r\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\r\n\t\t\tor_R = _origin.r; or_C = _origin.c;\r\n\t\t}\r\n\t}\r\n\tvar rows = table.getElementsByTagName('tr');\r\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\r\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\r\n\tif(ws[\"!ref\"]) {\r\n\t\tvar _range = decode_range(ws[\"!ref\"]);\r\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\r\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\r\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\r\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\r\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\r\n\t}\r\n\tvar merges = [], midx = 0;\r\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\r\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\r\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\r\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\r\n\t\tvar row = rows[_R];\r\n\t\tif (is_dom_element_hidden(row)) {\r\n\t\t\tif (opts.display) continue;\r\n\t\t\trowinfo[R] = {hidden: true};\r\n\t\t}\r\n\t\tvar elts = (row.children);\r\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\r\n\t\t\tvar elt = elts[_C];\r\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\r\n\t\t\tvar v = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\r\n\t\t\tvar z = elt.getAttribute('data-z') || elt.getAttribute('z');\r\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\r\n\t\t\t\tvar m = merges[midx];\r\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\r\n\t\t\t}\r\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\r\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\r\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\r\n\t\t\tvar o = {t:'s', v:v};\r\n\t\t\tvar _t = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\r\n\t\t\tif(v != null) {\r\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\r\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\r\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\r\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\r\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\r\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\r\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\r\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\r\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(o.z === undefined && z != null) o.z = z;\r\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\r\n\t\t\t * TODO: The right way to process relative links is to make a new <a> */\r\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\r\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\r\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\r\n\t\t\t}\r\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\r\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\r\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\r\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\r\n\t\t\tC += CS;\r\n\t\t}\r\n\t\t++R;\r\n\t}\r\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\r\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\r\n\tws['!ref'] = encode_range(range);\r\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\r\n\treturn ws;\r\n}\r\n\r\nfunction parse_dom_table(table, _opts) {\r\n\tvar opts = _opts || {};\r\n\tvar ws = opts.dense ? ([]) : ({});\r\n\treturn sheet_add_dom(ws, table, _opts);\r\n}\r\n\r\nfunction table_to_book(table, opts) {\r\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\r\n}\r\n\r\nfunction is_dom_element_hidden(element) {\r\n\tvar display = '';\r\n\tvar get_computed_style = get_get_computed_style_function(element);\r\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\r\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\r\n\treturn display === 'none';\r\n}\r\n\r\n/* global getComputedStyle */\r\nfunction get_get_computed_style_function(element) {\r\n\t// The proper getComputedStyle implementation is the one defined in the element window\r\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\r\n\t// If it is not available, try to get one from the global namespace\r\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\r\n\treturn null;\r\n}\r\n/* OpenDocument */\r\nvar parse_content_xml = (function() {\r\n\r\n\tvar parse_text_p = function(text) {\r\n\t\t/* 6.1.2 White Space Characters */\r\n\t\tvar fixed = text\r\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\r\n\t\t\t.replace(/<text:s\\/>/g,\" \")\r\n\t\t\t.replace(/<text:s text:c=\"(\\d+)\"\\/>/g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\r\n\t\t\t.replace(/<text:tab[^>]*\\/>/g,\"\\t\")\r\n\t\t\t.replace(/<text:line-break\\/>/g,\"\\n\");\r\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\r\n\r\n\t\treturn [v];\r\n\t};\r\n\r\n\tvar number_formats = {\r\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\r\n\t\tday: [\"d\", \"dd\"],\r\n\t\tmonth: [\"m\", \"mm\"],\r\n\t\tyear: [\"y\", \"yy\"],\r\n\t\thours: [\"h\", \"hh\"],\r\n\t\tminutes: [\"m\", \"mm\"],\r\n\t\tseconds: [\"s\", \"ss\"],\r\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\r\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\r\n\t\tera: [\"e\", \"ee\"],\r\n\t\t/* there is no native representation of LO \"Q\" format */\r\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\r\n\t};\r\n\r\n\treturn function pcx(d, _opts) {\r\n\t\tvar opts = _opts || {};\r\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\r\n\t\tvar str = xlml_normalize(d);\r\n\t\tvar state = [], tmp;\r\n\t\tvar tag;\r\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\r\n\t\tvar sheetag;\r\n\t\tvar rowtag;\r\n\t\tvar Sheets = {}, SheetNames = [];\r\n\t\tvar ws = opts.dense ? ([]) : ({});\r\n\t\tvar Rn, q;\r\n\t\tvar ctag = ({value:\"\"});\r\n\t\tvar textp = \"\", textpidx = 0, textptag;\r\n\t\tvar textR = [];\r\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\r\n\t\tvar row_ol = 0;\r\n\t\tvar number_format_map = {};\r\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\r\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\r\n\t\tvar arrayf = [];\r\n\t\tvar WB = {Names:[]};\r\n\t\tvar atag = ({});\r\n\t\tvar _Ref = [\"\", \"\"];\r\n\t\tvar comments = [], comment = ({});\r\n\t\tvar creator = \"\", creatoridx = 0;\r\n\t\tvar isstub = false, intable = false;\r\n\t\tvar i = 0;\r\n\t\txlmlregex.lastIndex = 0;\r\n\t\tstr = str.replace(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\r\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\r\n\r\n\t\t\tcase 'table': case '工作表': // 9.1.2 <table:table>\r\n\t\t\t\tif(Rn[1]==='/') {\r\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\r\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\r\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\r\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\r\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\r\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\r\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\r\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\r\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\r\n\t\t\t\t\tSheetNames.push(sheetag.name);\r\n\t\t\t\t\tSheets[sheetag.name] = ws;\r\n\t\t\t\t\tintable = false;\r\n\t\t\t\t}\r\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\r\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\r\n\t\t\t\t\tR = C = -1;\r\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\r\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\r\n\t\t\t\t\trowinfo = [];\r\n\t\t\t\t\tintable = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'table-row-group': // 9.1.9 <table:table-row-group>\r\n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'table-row': case '行': // 9.1.3 <table:table-row>\r\n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\r\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\r\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\r\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\r\n\t\t\t\t/* TODO: remove magic */\r\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\r\n\t\t\t\tC = -1; break;\r\n\t\t\tcase 'covered-table-cell': // 9.1.5 <table:covered-table-cell>\r\n\t\t\t\tif(Rn[1] !== '/') ++C;\r\n\t\t\t\tif(opts.sheetStubs) {\r\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\r\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\r\n\t\t\t\t}\r\n\t\t\t\ttextp = \"\"; textR = [];\r\n\t\t\t\tbreak; /* stub */\r\n\t\t\tcase 'table-cell': case '数据':\r\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\r\n\t\t\t\t\t++C;\r\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\r\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\r\n\t\t\t\t\tq = ({t:'z', v:null});\r\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\r\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\r\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\r\n\t\t\t\t\t\tif(opts.dense) {\r\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\r\n\t\t\t\t\t\t\tws[R][C] = q;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tC+= colpeat-1;\r\n\t\t\t\t} else if(Rn[1]!=='/') {\r\n\t\t\t\t\t++C;\r\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\r\n\t\t\t\t\tcolpeat = 1;\r\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\r\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\r\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\r\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\r\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\r\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\r\n\t\t\t\t\tcomments = []; comment = ({});\r\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\r\n\t\t\t\t\tif(opts.cellFormula) {\r\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\r\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\r\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\r\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\r\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\r\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\r\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\r\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\r\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\r\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\r\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\r\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\r\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\r\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\r\n\t\t\t\t\t\tmerges.push(mrange);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\r\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\r\n\r\n\t\t\t\t\t/* 19.385 office:value-type */\r\n\t\t\t\t\tswitch(q.t) {\r\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\r\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\r\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\r\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\r\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\r\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\r\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\r\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\r\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\r\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\r\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\r\n\t\t\t\t\t\t\t\tq.t = 's';\r\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\r\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tisstub = false;\r\n\t\t\t\t\tif(q.t === 's') {\r\n\t\t\t\t\t\tq.v = textp || '';\r\n\t\t\t\t\t\tif(textR.length) q.R = textR;\r\n\t\t\t\t\t\tisstub = textpidx == 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(atag.Target) q.l = atag;\r\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\r\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\r\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\r\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\r\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\r\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\r\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\r\n\t\t\t\t\t\t\t\tif(opts.dense) {\r\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\r\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\r\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\r\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\r\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\r\n\t\t\t\t\tq = {};\r\n\t\t\t\t\ttextp = \"\"; textR = [];\r\n\t\t\t\t}\r\n\t\t\t\tatag = ({});\r\n\t\t\t\tbreak; // 9.1.4 <table:table-cell>\r\n\r\n\t\t\t/* pure state */\r\n\t\t\tcase 'document': // TODO: <office:document> is the root for FODS\r\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 <office:document-content>\r\n\t\t\tcase 'spreadsheet': case '主体': // 3.7 <office:spreadsheet>\r\n\t\t\tcase 'scripts': // 3.12 <office:scripts>\r\n\t\t\tcase 'styles': // TODO <office:styles>\r\n\t\t\tcase 'font-face-decls': // 3.14 <office:font-face-decls>\r\n\t\t\tcase 'master-styles': // 3.15.4 <office:master-styles> -- relevant for FODS\r\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\r\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'annotation': // 14.1 <office:annotation>\r\n\t\t\t\tif(Rn[1]==='/'){\r\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\r\n\t\t\t\t\tcomment.t = textp;\r\n\t\t\t\t\tif(textR.length) comment.R = textR;\r\n\t\t\t\t\tcomment.a = creator;\r\n\t\t\t\t\tcomments.push(comment);\r\n\t\t\t\t}\r\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\r\n\t\t\t\tcreator = \"\"; creatoridx = 0;\r\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'creator': // 4.3.2.7 <dc:creator>\r\n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\r\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t/* ignore state */\r\n\t\t\tcase 'meta': case '元数据': // TODO: <office:meta> <uof:元数据> FODS/UOF\r\n\t\t\tcase 'settings': // TODO: <office:settings>\r\n\t\t\tcase 'config-item-set': // TODO: <office:config-item-set>\r\n\t\t\tcase 'config-item-map-indexed': // TODO: <office:config-item-map-indexed>\r\n\t\t\tcase 'config-item-map-entry': // TODO: <office:config-item-map-entry>\r\n\t\t\tcase 'config-item-map-named': // TODO: <office:config-item-map-entry>\r\n\t\t\tcase 'shapes': // 9.2.8 <table:shapes>\r\n\t\t\tcase 'frame': // 10.4.2 <draw:frame>\r\n\t\t\tcase 'text-box': // 10.4.3 <draw:text-box>\r\n\t\t\tcase 'image': // 10.4.4 <draw:image>\r\n\t\t\tcase 'data-pilot-tables': // 9.6.2 <table:data-pilot-tables>\r\n\t\t\tcase 'list-style': // 16.30 <text:list-style>\r\n\t\t\tcase 'form': // 13.13 <form:form>\r\n\t\t\tcase 'dde-links': // 9.8 <table:dde-links>\r\n\t\t\tcase 'event-listeners': // TODO\r\n\t\t\tcase 'chart': // TODO\r\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\r\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\r\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'scientific-number': // TODO: <number:scientific-number>\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'currency-symbol': // TODO: <number:currency-symbol>\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'currency-style': // TODO: <number:currency-style>\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'number-style': // 16.27.2 <number:number-style>\r\n\t\t\tcase 'percentage-style': // 16.27.9 <number:percentage-style>\r\n\t\t\tcase 'date-style': // 16.27.10 <number:date-style>\r\n\t\t\tcase 'time-style': // 16.27.18 <number:time-style>\r\n\t\t\t\tif(Rn[1]==='/'){\r\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\r\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\r\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\r\n\t\t\t\t\tNF = \"\";\r\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\r\n\t\t\t\t\tstate.push([Rn[3], true]);\r\n\t\t\t\t} break;\r\n\r\n\t\t\tcase 'script': break; // 3.13 <office:script>\r\n\t\t\tcase 'libraries': break; // TODO: <ooo:libraries>\r\n\t\t\tcase 'automatic-styles': break; // 3.15.3 <office:automatic-styles>\r\n\r\n\t\t\tcase 'default-style': // TODO: <style:default-style>\r\n\t\t\tcase 'page-layout': break; // TODO: <style:page-layout>\r\n\t\t\tcase 'style': // 16.2 <style:style>\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'map': break; // 16.3 <style:map>\r\n\t\t\tcase 'font-face': break; // 16.21 <style:font-face>\r\n\r\n\t\t\tcase 'paragraph-properties': break; // 17.6 <style:paragraph-properties>\r\n\t\t\tcase 'table-properties': break; // 17.15 <style:table-properties>\r\n\t\t\tcase 'table-column-properties': break; // 17.16 <style:table-column-properties>\r\n\t\t\tcase 'table-row-properties': break; // 17.17 <style:table-row-properties>\r\n\t\t\tcase 'table-cell-properties': break; // 17.18 <style:table-cell-properties>\r\n\r\n\t\t\tcase 'number': // 16.27.3 <number:number>\r\n\t\t\t\tswitch(state[state.length-1][0]) {\r\n\t\t\t\t\tcase 'time-style':\r\n\t\t\t\t\tcase 'date-style':\r\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\r\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\r\n\t\t\t\t} break;\r\n\r\n\t\t\tcase 'fraction': break; // TODO 16.27.6 <number:fraction>\r\n\r\n\t\t\tcase 'day': // 16.27.11 <number:day>\r\n\t\t\tcase 'month': // 16.27.12 <number:month>\r\n\t\t\tcase 'year': // 16.27.13 <number:year>\r\n\t\t\tcase 'era': // 16.27.14 <number:era>\r\n\t\t\tcase 'day-of-week': // 16.27.15 <number:day-of-week>\r\n\t\t\tcase 'week-of-year': // 16.27.16 <number:week-of-year>\r\n\t\t\tcase 'quarter': // 16.27.17 <number:quarter>\r\n\t\t\tcase 'hours': // 16.27.19 <number:hours>\r\n\t\t\tcase 'minutes': // 16.27.20 <number:minutes>\r\n\t\t\tcase 'seconds': // 16.27.21 <number:seconds>\r\n\t\t\tcase 'am-pm': // 16.27.22 <number:am-pm>\r\n\t\t\t\tswitch(state[state.length-1][0]) {\r\n\t\t\t\t\tcase 'time-style':\r\n\t\t\t\t\tcase 'date-style':\r\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\r\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\r\n\t\t\t\t} break;\r\n\r\n\t\t\tcase 'boolean-style': break; // 16.27.23 <number:boolean-style>\r\n\t\t\tcase 'boolean': break; // 16.27.24 <number:boolean>\r\n\t\t\tcase 'text-style': break; // 16.27.25 <number:text-style>\r\n\t\t\tcase 'text': // 16.27.26 <number:text>\r\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\r\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\r\n\t\t\t\t\tcase 'number-style':\r\n\t\t\t\t\tcase 'date-style':\r\n\t\t\t\t\tcase 'time-style':\r\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'named-range': // 9.4.12 <table:named-range>\r\n\t\t\t\ttag = parsexmltag(Rn[0], false);\r\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\r\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\r\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\r\n\t\t\t\tWB.Names.push(nrange);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'text-content': break; // 16.27.27 <number:text-content>\r\n\t\t\tcase 'text-properties': break; // 16.27.27 <style:text-properties>\r\n\t\t\tcase 'embedded-text': break; // 16.27.4 <number:embedded-text>\r\n\r\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\r\n\r\n\t\t\tcase 'forms': break; // 12.25.2 13.2\r\n\t\t\tcase 'table-column': break; // 9.1.6 <table:table-column>\r\n\t\t\tcase 'table-header-rows': break; // 9.1.7 <table:table-header-rows>\r\n\t\t\tcase 'table-rows': break; // 9.1.12 <table:table-rows>\r\n\t\t\t/* TODO: outline levels */\r\n\t\t\tcase 'table-column-group': break; // 9.1.10 <table:table-column-group>\r\n\t\t\tcase 'table-header-columns': break; // 9.1.11 <table:table-header-columns>\r\n\t\t\tcase 'table-columns': break; // 9.1.12 <table:table-columns>\r\n\r\n\t\t\tcase 'null-date': break; // 9.4.2 <table:null-date> TODO: date1904\r\n\r\n\t\t\tcase 'graphic-properties': break; // 17.21 <style:graphic-properties>\r\n\t\t\tcase 'calculation-settings': break; // 9.4.1 <table:calculation-settings>\r\n\t\t\tcase 'named-expressions': break; // 9.4.11 <table:named-expressions>\r\n\t\t\tcase 'label-range': break; // 9.4.9 <table:label-range>\r\n\t\t\tcase 'label-ranges': break; // 9.4.10 <table:label-ranges>\r\n\t\t\tcase 'named-expression': break; // 9.4.13 <table:named-expression>\r\n\t\t\tcase 'sort': break; // 9.4.19 <table:sort>\r\n\t\t\tcase 'sort-by': break; // 9.4.20 <table:sort-by>\r\n\t\t\tcase 'sort-groups': break; // 9.4.22 <table:sort-groups>\r\n\r\n\t\t\tcase 'tab': break; // 6.1.4 <text:tab>\r\n\t\t\tcase 'line-break': break; // 6.1.5 <text:line-break>\r\n\t\t\tcase 'span': break; // 6.1.7 <text:span>\r\n\t\t\tcase 'p': case '文本串': // 5.1.3 <text:p>\r\n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\r\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\r\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\r\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\r\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\r\n\t\t\t\tbreak; // <text:p>\r\n\t\t\tcase 's': break; // <text:s>\r\n\r\n\t\t\tcase 'database-range': // 9.4.15 <table:database-range>\r\n\t\t\t\tif(Rn[1]==='/') break;\r\n\t\t\t\ttry {\r\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\r\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\r\n\t\t\t\t} catch(e) {/* empty */}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'date': break; // <*:date>\r\n\r\n\t\t\tcase 'object': break; // 10.4.6.2 <draw:object>\r\n\t\t\tcase 'title': case '标题': break; // <*:title> OR <uof:标题>\r\n\t\t\tcase 'desc': break; // <*:desc>\r\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\r\n\r\n\t\t\t/* 9.2 Advanced Tables */\r\n\t\t\tcase 'table-source': break; // 9.2.6\r\n\t\t\tcase 'scenario': break; // 9.2.6\r\n\r\n\t\t\tcase 'iteration': break; // 9.4.3 <table:iteration>\r\n\t\t\tcase 'content-validations': break; // 9.4.4 <table:\r\n\t\t\tcase 'content-validation': break; // 9.4.5 <table:\r\n\t\t\tcase 'help-message': break; // 9.4.6 <table:\r\n\t\t\tcase 'error-message': break; // 9.4.7 <table:\r\n\t\t\tcase 'database-ranges': break; // 9.4.14 <table:database-ranges>\r\n\t\t\tcase 'filter': break; // 9.5.2 <table:filter>\r\n\t\t\tcase 'filter-and': break; // 9.5.3 <table:filter-and>\r\n\t\t\tcase 'filter-or': break; // 9.5.4 <table:filter-or>\r\n\t\t\tcase 'filter-condition': break; // 9.5.5 <table:filter-condition>\r\n\r\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 <text:\r\n\t\t\tcase 'list-level-style-number': break; // 16.32 <text:\r\n\t\t\tcase 'list-level-properties': break; // 17.19 <style:\r\n\r\n\t\t\t/* 7.3 Document Fields */\r\n\t\t\tcase 'sender-firstname': // 7.3.6.2\r\n\t\t\tcase 'sender-lastname': // 7.3.6.3\r\n\t\t\tcase 'sender-initials': // 7.3.6.4\r\n\t\t\tcase 'sender-title': // 7.3.6.5\r\n\t\t\tcase 'sender-position': // 7.3.6.6\r\n\t\t\tcase 'sender-email': // 7.3.6.7\r\n\t\t\tcase 'sender-phone-private': // 7.3.6.8\r\n\t\t\tcase 'sender-fax': // 7.3.6.9\r\n\t\t\tcase 'sender-company': // 7.3.6.10\r\n\t\t\tcase 'sender-phone-work': // 7.3.6.11\r\n\t\t\tcase 'sender-street': // 7.3.6.12\r\n\t\t\tcase 'sender-city': // 7.3.6.13\r\n\t\t\tcase 'sender-postal-code': // 7.3.6.14\r\n\t\t\tcase 'sender-country': // 7.3.6.15\r\n\t\t\tcase 'sender-state-or-province': // 7.3.6.16\r\n\t\t\tcase 'author-name': // 7.3.7.1\r\n\t\t\tcase 'author-initials': // 7.3.7.2\r\n\t\t\tcase 'chapter': // 7.3.8\r\n\t\t\tcase 'file-name': // 7.3.9\r\n\t\t\tcase 'template-name': // 7.3.9\r\n\t\t\tcase 'sheet-name': // 7.3.9\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'event-listener':\r\n\t\t\t\tbreak;\r\n\t\t\t/* TODO: FODS Properties */\r\n\t\t\tcase 'initial-creator':\r\n\t\t\tcase 'creation-date':\r\n\t\t\tcase 'print-date':\r\n\t\t\tcase 'generator':\r\n\t\t\tcase 'document-statistic':\r\n\t\t\tcase 'user-defined':\r\n\t\t\tcase 'editing-duration':\r\n\t\t\tcase 'editing-cycles':\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t/* TODO: FODS Config */\r\n\t\t\tcase 'config-item':\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t/* TODO: style tokens */\r\n\t\t\tcase 'page-number': break; // TODO <text:page-number>\r\n\t\t\tcase 'page-count': break; // TODO <text:page-count>\r\n\t\t\tcase 'time': break; // TODO <text:time>\r\n\r\n\t\t\t/* 9.3 Advanced Table Cells */\r\n\t\t\tcase 'cell-range-source': break; // 9.3.1 <table:\r\n\t\t\tcase 'detective': break; // 9.3.2 <table:\r\n\t\t\tcase 'operation': break; // 9.3.3 <table:\r\n\t\t\tcase 'highlighted-range': break; // 9.3.4 <table:\r\n\r\n\t\t\t/* 9.6 Data Pilot Tables <table: */\r\n\t\t\tcase 'data-pilot-table': // 9.6.3\r\n\t\t\tcase 'source-cell-range': // 9.6.5\r\n\t\t\tcase 'source-service': // 9.6.6\r\n\t\t\tcase 'data-pilot-field': // 9.6.7\r\n\t\t\tcase 'data-pilot-level': // 9.6.8\r\n\t\t\tcase 'data-pilot-subtotals': // 9.6.9\r\n\t\t\tcase 'data-pilot-subtotal': // 9.6.10\r\n\t\t\tcase 'data-pilot-members': // 9.6.11\r\n\t\t\tcase 'data-pilot-member': // 9.6.12\r\n\t\t\tcase 'data-pilot-display-info': // 9.6.13\r\n\t\t\tcase 'data-pilot-sort-info': // 9.6.14\r\n\t\t\tcase 'data-pilot-layout-info': // 9.6.15\r\n\t\t\tcase 'data-pilot-field-reference': // 9.6.16\r\n\t\t\tcase 'data-pilot-groups': // 9.6.17\r\n\t\t\tcase 'data-pilot-group': // 9.6.18\r\n\t\t\tcase 'data-pilot-group-member': // 9.6.19\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t/* 10.3 Drawing Shapes */\r\n\t\t\tcase 'rect': // 10.3.2\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t/* 14.6 DDE Connections */\r\n\t\t\tcase 'dde-connection-decls': // 14.6.2 <text:\r\n\t\t\tcase 'dde-connection-decl': // 14.6.3 <text:\r\n\t\t\tcase 'dde-link': // 14.6.4 <table:\r\n\t\t\tcase 'dde-source': // 14.6.5 <office:\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'properties': break; // 13.7 <form:properties>\r\n\t\t\tcase 'property': break; // 13.8 <form:property>\r\n\r\n\t\t\tcase 'a': // 6.1.8 hyperlink\r\n\t\t\t\tif(Rn[1]!== '/') {\r\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\r\n\t\t\t\t\tif(!atag.href) break;\r\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\r\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\r\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\r\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\r\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t/* non-standard */\r\n\t\t\tcase 'table-protection': break;\r\n\t\t\tcase 'data-pilot-grand-total': break; // <table:\r\n\t\t\tcase 'office-document-common-attrs': break; // bare\r\n\t\t\tdefault: switch(Rn[2]) {\r\n\t\t\t\tcase 'dc:': // TODO: properties\r\n\t\t\t\tcase 'calcext:': // ignore undocumented extensions\r\n\t\t\t\tcase 'loext:': // ignore undocumented extensions\r\n\t\t\t\tcase 'ooo:': // ignore undocumented extensions\r\n\t\t\t\tcase 'chartooo:': // ignore undocumented extensions\r\n\t\t\t\tcase 'draw:': // TODO: drawing\r\n\t\t\t\tcase 'style:': // TODO: styles\r\n\t\t\t\tcase 'chart:': // TODO: charts\r\n\t\t\t\tcase 'form:': // TODO: forms\r\n\t\t\t\tcase 'uof:': // TODO: uof\r\n\t\t\t\tcase '表:': // TODO: uof\r\n\t\t\t\tcase '字:': // TODO: uof\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault: if(opts.WTF) throw new Error(Rn);\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar out = ({\r\n\t\t\tSheets: Sheets,\r\n\t\t\tSheetNames: SheetNames,\r\n\t\t\tWorkbook: WB\r\n\t\t});\r\n\t\tif(opts.bookSheets) delete out.Sheets;\r\n\t\treturn out;\r\n\t};\r\n})();\r\n\r\nfunction parse_ods(zip, opts) {\r\n\topts = opts || ({});\r\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) parse_manifest(getzipdata(zip, 'META-INF/manifest.xml'), opts);\r\n\tvar content = getzipstr(zip, 'content.xml');\r\n\tif(!content) throw new Error(\"Missing content.xml in ODS / UOF file\");\r\n\tvar wb = parse_content_xml(utf8read(content), opts);\r\n\tif(safegetzipfile(zip, 'meta.xml')) wb.Props = parse_core_props(getzipdata(zip, 'meta.xml'));\r\n\treturn wb;\r\n}\r\nfunction parse_fods(data, opts) {\r\n\treturn parse_content_xml(data, opts);\r\n}\r\n\r\n/* OpenDocument */\r\nvar write_styles_ods = (function() {\r\n\tvar master_styles = [\r\n\t\t'<office:master-styles>',\r\n\t\t\t'<style:master-page style:name=\"mp1\" style:page-layout-name=\"mp1\">',\r\n\t\t\t\t'<style:header/>',\r\n\t\t\t\t'<style:header-left style:display=\"false\"/>',\r\n\t\t\t\t'<style:footer/>',\r\n\t\t\t\t'<style:footer-left style:display=\"false\"/>',\r\n\t\t\t'</style:master-page>',\r\n\t\t'</office:master-styles>'\r\n\t].join(\"\");\r\n\r\n\tvar payload = '<office:document-styles ' + wxt_helper({\r\n\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\r\n\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\r\n\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\r\n\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\r\n\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\r\n\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\r\n\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\r\n\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\r\n\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\r\n\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\r\n\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\r\n\t\t'office:version': \"1.2\"\r\n\t}) + '>' + master_styles + '</office:document-styles>';\r\n\r\n\treturn function wso() {\r\n\t\treturn XML_HEADER + payload;\r\n\t};\r\n})();\r\nvar write_content_ods = (function() {\r\n\t/* 6.1.2 White Space Characters */\r\n\tvar write_text_p = function(text) {\r\n\t\treturn escapexml(text)\r\n\t\t\t.replace(/ +/g, function($$){return '<text:s text:c=\"'+$$.length+'\"/>';})\r\n\t\t\t.replace(/\\t/g, \"<text:tab/>\")\r\n\t\t\t.replace(/\\n/g, \"</text:p><text:p>\")\r\n\t\t\t.replace(/^ /, \"<text:s/>\").replace(/ $/, \"<text:s/>\");\r\n\t};\r\n\r\n\tvar null_cell_xml = ' <table:table-cell />\\n';\r\n\tvar covered_cell_xml = ' <table:covered-table-cell/>\\n';\r\n\tvar write_ws = function(ws, wb, i) {\r\n\t\t/* Section 9 Tables */\r\n\t\tvar o = [];\r\n\t\to.push(' <table:table table:name=\"' + escapexml(wb.SheetNames[i]) + '\" table:style-name=\"ta1\">\\n');\r\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\r\n\t\tvar marr = ws['!merges'] || [], mi = 0;\r\n\t\tvar dense = Array.isArray(ws);\r\n\t\tif(ws[\"!cols\"]) {\r\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' <table:table-column' + (ws[\"!cols\"][C] ? ' table:style-name=\"co' + ws[\"!cols\"][C].ods + '\"' : '') + '></table:table-column>\\n');\r\n\t\t}\r\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\r\n\t\tfor(R = 0; R < range.s.r; ++R) {\r\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\r\n\t\t\to.push(' <table:table-row' + H + '></table:table-row>\\n');\r\n\t\t}\r\n\t\tfor(; R <= range.e.r; ++R) {\r\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\r\n\t\t\to.push(' <table:table-row' + H + '>\\n');\r\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\r\n\t\t\tfor(; C <= range.e.c; ++C) {\r\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\r\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\r\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\r\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\r\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\r\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\r\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\r\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\r\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\r\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\r\n\t\t\t\tif(cell && cell.f) {\r\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\r\n\t\t\t\t\tif(cell.F) {\r\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\r\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\r\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\r\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\r\n\t\t\t\tswitch(cell.t) {\r\n\t\t\t\t\tcase 'b':\r\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\r\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\r\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'n':\r\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\r\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\r\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 's': case 'str':\r\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\r\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'd':\r\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\r\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\r\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\r\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t//case 'e':\r\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\r\n\t\t\t\t}\r\n\t\t\t\tvar text_p = write_text_p(textp);\r\n\t\t\t\tif(cell.l && cell.l.Target) {\r\n\t\t\t\t\tvar _tgt = cell.l.Target;\r\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\r\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\r\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\r\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&amp;\")});\r\n\t\t\t\t}\r\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\r\n\t\t\t}\r\n\t\t\to.push(' </table:table-row>\\n');\r\n\t\t}\r\n\t\to.push(' </table:table>\\n');\r\n\t\treturn o.join(\"\");\r\n\t};\r\n\r\n\tvar write_automatic_styles_ods = function(o, wb) {\r\n\t\to.push(' <office:automatic-styles>\\n');\r\n\r\n\t\to.push(' <number:date-style style:name=\"N37\" number:automatic-order=\"true\">\\n');\r\n\t\to.push(' <number:month number:style=\"long\"/>\\n');\r\n\t\to.push(' <number:text>/</number:text>\\n');\r\n\t\to.push(' <number:day number:style=\"long\"/>\\n');\r\n\t\to.push(' <number:text>/</number:text>\\n');\r\n\t\to.push(' <number:year/>\\n');\r\n\t\to.push(' </number:date-style>\\n');\r\n\r\n\t\t/* column styles */\r\n\t\tvar cidx = 0;\r\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\r\n\t\t\tif(!ws) return;\r\n\t\t\tif(ws[\"!cols\"]) {\r\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\r\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\r\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\r\n\t\t\t\t\tprocess_col(colobj);\r\n\t\t\t\t\tcolobj.ods = cidx;\r\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\r\n\t\t\t\t\to.push(' <style:style style:name=\"co' + cidx + '\" style:family=\"table-column\">\\n');\r\n\t\t\t\t\to.push(' <style:table-column-properties fo:break-before=\"auto\" style:column-width=\"' + w + '\"/>\\n');\r\n\t\t\t\t\to.push(' </style:style>\\n');\r\n\t\t\t\t\t++cidx;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* row styles */\r\n\t\tvar ridx = 0;\r\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\r\n\t\t\tif(!ws) return;\r\n\t\t\tif(ws[\"!rows\"]) {\r\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\r\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\r\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\r\n\t\t\t\t\to.push(' <style:style style:name=\"ro' + ridx + '\" style:family=\"table-row\">\\n');\r\n\t\t\t\t\to.push(' <style:table-row-properties fo:break-before=\"auto\" style:row-height=\"' + h + '\"/>\\n');\r\n\t\t\t\t\to.push(' </style:style>\\n');\r\n\t\t\t\t\t++ridx;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* table */\r\n\t\to.push(' <style:style style:name=\"ta1\" style:family=\"table\" style:master-page-name=\"mp1\">\\n');\r\n\t\to.push(' <style:table-properties table:display=\"true\" style:writing-mode=\"lr-tb\"/>\\n');\r\n\t\to.push(' </style:style>\\n');\r\n\r\n\t\t/* table cells, text */\r\n\t\to.push(' <style:style style:name=\"ce1\" style:family=\"table-cell\" style:parent-style-name=\"Default\" style:data-style-name=\"N37\"/>\\n');\r\n\r\n\t\t/* page-layout */\r\n\r\n\t\to.push(' </office:automatic-styles>\\n');\r\n\t};\r\n\r\n\treturn function wcx(wb, opts) {\r\n\t\tvar o = [XML_HEADER];\r\n\t\t/* 3.1.3.2 */\r\n\t\tvar attr = wxt_helper({\r\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\r\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\r\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\r\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\r\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\r\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\r\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\r\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\r\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\r\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\r\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\r\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\r\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\r\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\r\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\r\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\r\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\r\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\r\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\r\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\r\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\r\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\r\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\r\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\r\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\r\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\r\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\r\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\r\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\r\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\r\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\r\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\r\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\r\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\r\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\r\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\r\n\t\t\t'office:version': \"1.2\"\r\n\t\t});\r\n\r\n\t\tvar fods = wxt_helper({\r\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\r\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\r\n\t\t});\r\n\r\n\t\tif(opts.bookType == \"fods\") {\r\n\t\t\to.push('<office:document' + attr + fods + '>\\n');\r\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\r\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\r\n\t\t} else o.push('<office:document-content' + attr + '>\\n');\r\n\t\t// o.push(' <office:scripts/>\\n');\r\n\t\twrite_automatic_styles_ods(o, wb);\r\n\t\to.push(' <office:body>\\n');\r\n\t\to.push(' <office:spreadsheet>\\n');\r\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\r\n\t\to.push(' </office:spreadsheet>\\n');\r\n\t\to.push(' </office:body>\\n');\r\n\t\tif(opts.bookType == \"fods\") o.push('</office:document>');\r\n\t\telse o.push('</office:document-content>');\r\n\t\treturn o.join(\"\");\r\n\t};\r\n})();\r\n\r\nfunction write_ods(wb, opts) {\r\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\r\n\r\n\tvar zip = zip_new();\r\n\tvar f = \"\";\r\n\r\n\tvar manifest = [];\r\n\tvar rdf = [];\r\n\r\n\t/* Part 3 Section 3.3 MIME Media Type */\r\n\tf = \"mimetype\";\r\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\r\n\r\n\t/* Part 1 Section 2.2 Documents */\r\n\tf = \"content.xml\";\r\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\r\n\tmanifest.push([f, \"text/xml\"]);\r\n\trdf.push([f, \"ContentFile\"]);\r\n\r\n\t/* TODO: these are hard-coded styles to satiate excel */\r\n\tf = \"styles.xml\";\r\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\r\n\tmanifest.push([f, \"text/xml\"]);\r\n\trdf.push([f, \"StylesFile\"]);\r\n\r\n\t/* TODO: this is hard-coded to satiate excel */\r\n\tf = \"meta.xml\";\r\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods());\r\n\tmanifest.push([f, \"text/xml\"]);\r\n\trdf.push([f, \"MetadataFile\"]);\r\n\r\n\t/* Part 3 Section 6 Metadata Manifest File */\r\n\tf = \"manifest.rdf\";\r\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\r\n\tmanifest.push([f, \"application/rdf+xml\"]);\r\n\r\n\t/* Part 3 Section 4 Manifest File */\r\n\tf = \"META-INF/manifest.xml\";\r\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\r\n\r\n\treturn zip;\r\n}\r\n\r\nfunction write_sheet_index(wb, sheet) {\r\n\tif(!sheet) return 0;\r\n\tvar idx = wb.SheetNames.indexOf(sheet);\r\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\r\n\treturn idx;\r\n}\r\n\r\nfunction write_obj_str(factory) {\r\n\treturn function write_str(wb, o) {\r\n\t\tvar idx = write_sheet_index(wb, o.sheet);\r\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\r\n\t};\r\n}\r\n\r\nvar write_htm_str = write_obj_str(HTML_);\r\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\r\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\r\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\r\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\r\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\r\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\r\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\r\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\r\nvar write_wk1_buf = write_obj_str(typeof WK_ !== \"undefined\" ? {from_sheet:WK_.sheet_to_wk1} : {});\r\n\r\nfunction fix_opts_func(defaults) {\r\n\treturn function fix_opts(opts) {\r\n\t\tfor(var i = 0; i != defaults.length; ++i) {\r\n\t\t\tvar d = defaults[i];\r\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\r\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\r\n\t\t}\r\n\t};\r\n}\r\n\r\nvar fix_read_opts = function(opts) {\r\nfix_opts_func([\r\n\t['cellNF', false], /* emit cell number format string as .z */\r\n\t['cellHTML', true], /* emit html string as .h */\r\n\t['cellFormula', true], /* emit formulae as .f */\r\n\t['cellStyles', false], /* emits style/theme as .s */\r\n\t['cellText', true], /* emit formatted text as .w */\r\n\t['cellDates', false], /* emit date cells with type `d` */\r\n\r\n\t['sheetStubs', false], /* emit empty cells */\r\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\r\n\r\n\t['bookDeps', false], /* parse calculation chains */\r\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\r\n\t['bookProps', false], /* only try to get properties (no Sheets) */\r\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\r\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\r\n\r\n\t['password',''], /* password */\r\n\t['WTF', false] /* WTF mode (throws errors) */\r\n])(opts);\r\n};\r\n\r\nvar fix_write_opts = fix_opts_func([\r\n\t['cellDates', false], /* write date cells with type `d` */\r\n\r\n\t['bookSST', false], /* Generate Shared String Table */\r\n\r\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\r\n\r\n\t['compression', false], /* Use file compression */\r\n\r\n\t['WTF', false] /* WTF mode (throws errors) */\r\n]);\r\nfunction get_sheet_type(n) {\r\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\r\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\r\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\r\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\r\n\treturn (n && n.length) ? n : \"sheet\";\r\n}\r\nfunction safe_parse_wbrels(wbrels, sheets) {\r\n\tif(!wbrels) return 0;\r\n\ttry {\r\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)]; });\r\n\t} catch(e) { return null; }\r\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\r\n}\r\n\r\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\r\n\ttry {\r\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\r\n\t\tvar data = getzipdata(zip, path);\r\n\t\tvar _ws;\r\n\t\tswitch(stype) {\r\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\r\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\r\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\r\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\r\n\t\t\t\tvar drelsp = get_rels_path(dfile);\r\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\r\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\r\n\t\t\t\tvar crelsp = get_rels_path(chartp);\r\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\r\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\r\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\r\n\t\t}\r\n\t\tsheets[sheet] = _ws;\r\n\r\n\t\t/* scan rels for comments */\r\n\t\tvar comments = [];\r\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\r\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\r\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\r\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\r\n\t\t\t\tif(!comments || !comments.length) return;\r\n\t\t\t\tsheet_insert_comments(_ws, comments);\r\n\t\t\t}\r\n\t\t});\r\n\t} catch(e) { if(opts.WTF) throw e; }\r\n}\r\n\r\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\r\n\r\nfunction parse_zip(zip, opts) {\r\n\tmake_ssf(SSF);\r\n\topts = opts || {};\r\n\tfix_read_opts(opts);\r\n\r\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\r\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\r\n\t/* UOC */\r\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\r\n\t/* Numbers */\r\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\r\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\r\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\r\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\r\n\t\tthrow new Error('Unsupported ZIP file');\r\n\t}\r\n\r\n\tvar entries = zipentries(zip);\r\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\r\n\tvar xlsb = false;\r\n\tvar sheets, binname;\r\n\tif(dir.workbooks.length === 0) {\r\n\t\tbinname = \"xl/workbook.xml\";\r\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\r\n\t}\r\n\tif(dir.workbooks.length === 0) {\r\n\t\tbinname = \"xl/workbook.bin\";\r\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\r\n\t\tdir.workbooks.push(binname);\r\n\t\txlsb = true;\r\n\t}\r\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\r\n\r\n\tvar themes = ({});\r\n\tvar styles = ({});\r\n\tif(!opts.bookSheets && !opts.bookProps) {\r\n\t\tstrs = [];\r\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; }\r\n\r\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\r\n\r\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\r\n\t}\r\n\r\n\t/*var externbooks = */dir.links.map(function(link) {\r\n\t\ttry {\r\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\r\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\r\n\t\t} catch(e) {}\r\n\t});\r\n\r\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\r\n\r\n\tvar props = {}, propdata = \"\";\r\n\r\n\tif(dir.coreprops.length) {\r\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\r\n\t\tif(propdata) props = parse_core_props(propdata);\r\n\t\tif(dir.extprops.length !== 0) {\r\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\r\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\r\n\t\t}\r\n\t}\r\n\r\n\tvar custprops = {};\r\n\tif(!opts.bookSheets || opts.bookProps) {\r\n\t\tif (dir.custprops.length !== 0) {\r\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\r\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\r\n\t\t}\r\n\t}\r\n\r\n\tvar out = ({});\r\n\tif(opts.bookSheets || opts.bookProps) {\r\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\r\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\r\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\r\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\r\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\r\n\t}\r\n\tsheets = {};\r\n\r\n\tvar deps = {};\r\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\r\n\r\n\tvar i=0;\r\n\tvar sheetRels = ({});\r\n\tvar path, relsPath;\r\n\r\n\t{\r\n\t\tvar wbsheets = wb.Sheets;\r\n\t\tprops.Worksheets = wbsheets.length;\r\n\t\tprops.SheetNames = [];\r\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\r\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\r\n\t\t}\r\n\t}\r\n\r\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\r\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\r\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\r\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\r\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\r\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\r\n\r\n\t/* Numbers iOS hack */\r\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\r\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\r\n\t\tvar stype = \"sheet\";\r\n\t\tif(wbrels && wbrels[i]) {\r\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\r\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\r\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\r\n\t\t\tstype = wbrels[i][2];\r\n\t\t} else {\r\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\r\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\r\n\t\t}\r\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\r\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\r\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\r\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\r\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\r\n\t\t\t\tvar snjseen = false;\r\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\r\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\r\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\r\n\t\t\t\t}\r\n\t\t\t\tif(!snjseen) continue wsloop;\r\n\t\t\t}\r\n\t\t}\r\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\r\n\t}\r\n\r\n\tout = ({\r\n\t\tDirectory: dir,\r\n\t\tWorkbook: wb,\r\n\t\tProps: props,\r\n\t\tCustprops: custprops,\r\n\t\tDeps: deps,\r\n\t\tSheets: sheets,\r\n\t\tSheetNames: props.SheetNames,\r\n\t\tStrings: strs,\r\n\t\tStyles: styles,\r\n\t\tThemes: themes,\r\n\t\tSSF: SSF.get_table()\r\n\t});\r\n\tif(opts && opts.bookFiles) {\r\n\t\tif(zip.files) {\r\n\t\t\tout.keys = entries;\r\n\t\t\tout.files = zip.files;\r\n\t\t} else {\r\n\t\t\tout.keys = [];\r\n\t\t\tout.files = {};\r\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\r\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\r\n\t\t\t\tout.keys.push(p);\r\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\tif(opts && opts.bookVBA) {\r\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\r\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\r\n\t}\r\n\treturn out;\r\n}\r\n\r\n/* [MS-OFFCRYPTO] 2.1.1 */\r\nfunction parse_xlsxcfb(cfb, _opts) {\r\n\tvar opts = _opts || {};\r\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\r\n\ttry {\r\n\tf = '/!DataSpaces/Version';\r\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\r\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\r\n\r\n\t/* 2.3.4.1 */\r\n\tf = '/!DataSpaces/DataSpaceMap';\r\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\r\n\tvar dsm = parse_DataSpaceMap(data.content);\r\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\")\r\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\r\n\r\n\t/* 2.3.4.2 */\r\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\r\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\r\n\tvar seds = parse_DataSpaceDefinition(data.content);\r\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\r\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\r\n\r\n\t/* 2.3.4.3 */\r\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\r\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\r\n\t/*var hdr = */parse_Primary(data.content);\r\n\t} catch(e) {}\r\n\r\n\tf = '/EncryptionInfo';\r\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\r\n\tvar einfo = parse_EncryptionInfo(data.content);\r\n\r\n\t/* 2.3.4.4 */\r\n\tf = '/EncryptedPackage';\r\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\r\n\r\n/*global decrypt_agile */\r\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\r\n/*global decrypt_std76 */\r\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\r\n\tthrow new Error(\"File is password-protected\");\r\n}\r\n\r\nfunction write_zip(wb, opts) {\r\n\t_shapeid = 1024;\r\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\r\n\tif(wb && !wb.SSF) {\r\n\t\twb.SSF = SSF.get_table();\r\n\t}\r\n\tif(wb && wb.SSF) {\r\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\r\n\t\t// $FlowIgnore\r\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\r\n\t\topts.ssf = wb.SSF;\r\n\t}\r\n\topts.rels = {}; opts.wbrels = {};\r\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\r\n\tif(browser_has_Map) opts.revStrings = new Map();\r\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\r\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\r\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\r\n\tvar ct = new_ct();\r\n\tfix_write_opts(opts = opts || {});\r\n\tvar zip = zip_new();\r\n\tvar f = \"\", rId = 0;\r\n\r\n\topts.cellXfs = [];\r\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\r\n\r\n\tif(!wb.Props) wb.Props = {};\r\n\r\n\tf = \"docProps/core.xml\";\r\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\r\n\tct.coreprops.push(f);\r\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\r\n\r\nf = \"docProps/app.xml\";\r\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\r\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\r\n\telse {\r\n\t\tvar _sn = [];\r\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\r\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\r\n\t\twb.Props.SheetNames = _sn;\r\n\t}\r\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\r\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\r\n\tct.extprops.push(f);\r\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\r\n\r\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\r\n\t\tf = \"docProps/custom.xml\";\r\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\r\n\t\tct.custprops.push(f);\r\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\r\n\t}\r\n\r\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\r\n\t\tvar wsrels = {'!id':{}};\r\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\r\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\r\n\t\tswitch(_type) {\r\n\t\tcase \"chart\":\r\n\t\t\t/* falls through */\r\n\t\tdefault:\r\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\r\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\r\n\t\t\tct.sheets.push(f);\r\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\r\n\t\t}\r\n\r\n\t\tif(ws) {\r\n\t\t\tvar comments = ws['!comments'];\r\n\t\t\tvar need_vml = false;\r\n\t\t\tif(comments && comments.length > 0) {\r\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\r\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\r\n\t\t\t\tct.comments.push(cf);\r\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\r\n\t\t\t\tneed_vml = true;\r\n\t\t\t}\r\n\t\t\tif(ws['!legacy']) {\r\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\r\n\t\t\t}\r\n\t\t\tdelete ws['!comments'];\r\n\t\t\tdelete ws['!legacy'];\r\n\t\t}\r\n\r\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\r\n\t}\r\n\r\n\tif(opts.Strings != null && opts.Strings.length > 0) {\r\n\t\tf = \"xl/sharedStrings.\" + wbext;\r\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\r\n\t\tct.strs.push(f);\r\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\r\n\t}\r\n\r\n\tf = \"xl/workbook.\" + wbext;\r\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\r\n\tct.workbooks.push(f);\r\n\tadd_rels(opts.rels, 1, f, RELS.WB);\r\n\r\n\t/* TODO: something more intelligent with themes */\r\n\r\n\tf = \"xl/theme/theme1.xml\";\r\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\r\n\tct.themes.push(f);\r\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\r\n\r\n\t/* TODO: something more intelligent with styles */\r\n\r\n\tf = \"xl/styles.\" + wbext;\r\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\r\n\tct.styles.push(f);\r\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\r\n\r\n\tif(wb.vbaraw && vbafmt) {\r\n\t\tf = \"xl/vbaProject.bin\";\r\n\t\tzip_add_file(zip, f, wb.vbaraw);\r\n\t\tct.vba.push(f);\r\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\r\n\t}\r\n\r\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\r\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\r\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\r\n\r\n\tdelete opts.revssf; delete opts.ssf;\r\n\treturn zip;\r\n}\r\nfunction firstbyte(f,o) {\r\n\tvar x = \"\";\r\n\tswitch((o||{}).type || \"base64\") {\r\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\r\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\r\n\t\tcase 'binary': x = f; break;\r\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\r\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\r\n\t}\r\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\r\n}\r\n\r\nfunction read_cfb(cfb, opts) {\r\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\r\n\treturn parse_xlscfb(cfb, opts);\r\n}\r\n\r\nfunction read_zip(data, opts) {\r\n\tvar zip, d = data;\r\n\tvar o = opts||{};\r\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\r\n\tzip = zip_read(d, o);\r\n\treturn parse_zip(zip, o);\r\n}\r\n\r\nfunction read_plaintext(data, o) {\r\n\tvar i = 0;\r\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\r\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\r\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\r\n\t\tdefault: break main;\r\n\t}\r\n\treturn PRN.to_workbook(data, o);\r\n}\r\n\r\nfunction read_plaintext_raw(data, o) {\r\n\tvar str = \"\", bytes = firstbyte(data, o);\r\n\tswitch(o.type) {\r\n\t\tcase 'base64': str = Base64.decode(data); break;\r\n\t\tcase 'binary': str = data; break;\r\n\t\tcase 'buffer': str = data.toString('binary'); break;\r\n\t\tcase 'array': str = cc2str(data); break;\r\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\r\n\t}\r\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\r\n\treturn read_plaintext(str, o);\r\n}\r\n\r\nfunction read_utf16(data, o) {\r\n\tvar d = data;\r\n\tif(o.type == 'base64') d = Base64.decode(d);\r\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\r\n\to.type = \"binary\";\r\n\treturn read_plaintext(d, o);\r\n}\r\n\r\nfunction bstrify(data) {\r\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\r\n}\r\n\r\nfunction read_prn(data, d, o, str) {\r\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\r\n\treturn PRN.to_workbook(d, o);\r\n}\r\n\r\nfunction readSync(data, opts) {\r\n\treset_cp();\r\n\tvar o = opts||{};\r\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\r\n\tvar d = data, n = [0,0,0,0], str = false;\r\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\r\n\t_ssfopts = {};\r\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\r\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\r\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\r\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\r\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\r\n\t\t// $FlowIgnore\r\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\r\n\t\t// $FlowIgnore\r\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\r\n\t}\r\n\tswitch((n = firstbyte(d, o))[0]) {\r\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\r\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\r\n\t\tcase 0x3C: return parse_xlml(d, o);\r\n\t\tcase 0x49:\r\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\r\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\r\n\t\t\tbreak;\r\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\r\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\r\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\r\n\t\tcase 0xFF:\r\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\r\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\r\n\t\t\tbreak;\r\n\t\tcase 0x00:\r\n\t\t\tif(n[1] === 0x00) {\r\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\r\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\r\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\r\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\r\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\r\n\t}\r\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\r\n\treturn read_prn(data, d, o, str);\r\n}\r\n\r\nfunction readFileSync(filename, opts) {\r\n\tvar o = opts||{}; o.type = 'file';\r\n\treturn readSync(filename, o);\r\n}\r\nfunction write_cfb_ctr(cfb, o) {\r\n\tswitch(o.type) {\r\n\t\tcase \"base64\": case \"binary\": break;\r\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\r\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\r\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\r\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\r\n\t}\r\n\treturn CFB.write(cfb, o);\r\n}\r\n\r\nfunction write_zip_type(wb, opts) {\r\n\tvar o = dup(opts||{});\r\n\tvar z = write_zip(wb, o);\r\n\tvar oopts = {};\r\n\tif(o.compression) oopts.compression = 'DEFLATE';\r\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\r\n\telse switch(o.type) {\r\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\r\n\t\tcase \"binary\": oopts.type = \"string\"; break;\r\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\r\n\t\tcase \"buffer\":\r\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\r\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\r\n\t}\r\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\r\n/*jshint -W083 */\r\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\r\n/*jshint +W083 */\r\n\tif(o.type === \"file\") return write_dl(o.file, out);\r\n\treturn o.type == \"string\" ? utf8read(out) : out;\r\n}\r\n\r\nfunction write_cfb_type(wb, opts) {\r\n\tvar o = opts||{};\r\n\tvar cfb = write_xlscfb(wb, o);\r\n\treturn write_cfb_ctr(cfb, o);\r\n}\r\n\r\nfunction write_string_type(out, opts, bom) {\r\n\tif(!bom) bom = \"\";\r\n\tvar o = bom + out;\r\n\tswitch(opts.type) {\r\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\r\n\t\tcase \"binary\": return utf8write(o);\r\n\t\tcase \"string\": return out;\r\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\r\n\t\tcase \"buffer\": {\r\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\r\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\r\n\t\t}\r\n\t}\r\n\tthrow new Error(\"Unrecognized type \" + opts.type);\r\n}\r\n\r\nfunction write_stxt_type(out, opts) {\r\n\tswitch(opts.type) {\r\n\t\tcase \"base64\": return Base64.encode(out);\r\n\t\tcase \"binary\": return out;\r\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\r\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\r\n\t\tcase \"buffer\": {\r\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\r\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\r\n\t\t}\r\n\t}\r\n\tthrow new Error(\"Unrecognized type \" + opts.type);\r\n}\r\n\r\n/* TODO: test consistency */\r\nfunction write_binary_type(out, opts) {\r\n\tswitch(opts.type) {\r\n\t\tcase \"string\":\r\n\t\tcase \"base64\":\r\n\t\tcase \"binary\":\r\n\t\t\tvar bstr = \"\";\r\n\t\t\t// $FlowIgnore\r\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\r\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\r\n\t\tcase \"file\": return write_dl(opts.file, out);\r\n\t\tcase \"buffer\": return out;\r\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\r\n\t}\r\n}\r\n\r\nfunction writeSync(wb, opts) {\r\n\treset_cp();\r\n\tcheck_wb(wb);\r\n\tvar o = dup(opts||{});\r\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\r\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\r\n\tswitch(o.bookType || 'xlsb') {\r\n\t\tcase 'xml':\r\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\r\n\t\tcase 'slk':\r\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\r\n\t\tcase 'htm':\r\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\r\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\r\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\r\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\r\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\r\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\r\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\r\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\r\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\r\n\t\tcase 'wk1': return write_binary_type(write_wk1_buf(wb, o), o);\r\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\r\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\r\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\r\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\r\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\r\n\t\tcase 'biff8':\r\n\t\tcase 'xla':\r\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\r\n\t\tcase 'xlsx':\r\n\t\tcase 'xlsm':\r\n\t\tcase 'xlam':\r\n\t\tcase 'xlsb':\r\n\t\tcase 'ods': return write_zip_type(wb, o);\r\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\r\n\t}\r\n}\r\n\r\nfunction resolve_book_type(o) {\r\n\tif(o.bookType) return;\r\n\tvar _BT = {\r\n\t\t\"xls\": \"biff8\",\r\n\t\t\"htm\": \"html\",\r\n\t\t\"slk\": \"sylk\",\r\n\t\t\"socialcalc\": \"eth\",\r\n\t\t\"Sh33tJS\": \"WTF\"\r\n\t};\r\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\r\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\r\n\to.bookType = _BT[o.bookType] || o.bookType;\r\n}\r\n\r\nfunction writeFileSync(wb, filename, opts) {\r\n\tvar o = opts||{}; o.type = 'file';\r\n\to.file = filename;\r\n\tresolve_book_type(o);\r\n\treturn writeSync(wb, o);\r\n}\r\n\r\nfunction writeFileAsync(filename, wb, opts, cb) {\r\n\tvar o = opts||{}; o.type = 'file';\r\n\to.file = filename;\r\n\tresolve_book_type(o);\r\n\to.type = 'buffer';\r\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\r\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\r\n}\r\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\r\n\tvar rr = encode_row(R);\r\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\r\n\tvar isempty = true;\r\n\tvar row = (header === 1) ? [] : {};\r\n\tif(header !== 1) {\r\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\r\n\t\telse row.__rowNum__ = R;\r\n\t}\r\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\r\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\r\n\t\tif(val === undefined || val.t === undefined) {\r\n\t\t\tif(defval === undefined) continue;\r\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\tvar v = val.v;\r\n\t\tswitch(val.t){\r\n\t\t\tcase 'z': if(v == null) break; continue;\r\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\r\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\r\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\r\n\t\t}\r\n\t\tif(hdr[C] != null) {\r\n\t\t\tif(v == null) {\r\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\r\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\r\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\r\n\t\t\t\telse continue;\r\n\t\t\t} else {\r\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\r\n\t\t\t}\r\n\t\t\tif(v != null) isempty = false;\r\n\t\t}\r\n\t}\r\n\treturn { row: row, isempty: isempty };\r\n}\r\n\r\n\r\nfunction sheet_to_json(sheet, opts) {\r\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\r\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\r\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\r\n\tvar o = opts || {};\r\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\r\n\tif(o.header === 1) header = 1;\r\n\telse if(o.header === \"A\") header = 2;\r\n\telse if(Array.isArray(o.header)) header = 3;\r\n\telse if(o.header == null) header = 0;\r\n\tswitch(typeof range) {\r\n\t\tcase 'string': r = safe_decode_range(range); break;\r\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\r\n\t\tdefault: r = range;\r\n\t}\r\n\tif(header > 0) offset = 0;\r\n\tvar rr = encode_row(r.s.r);\r\n\tvar cols = [];\r\n\tvar out = [];\r\n\tvar outi = 0, counter = 0;\r\n\tvar dense = Array.isArray(sheet);\r\n\tvar R = r.s.r, C = 0, CC = 0;\r\n\tif(dense && !sheet[R]) sheet[R] = [];\r\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\r\n\t\tcols[C] = encode_col(C);\r\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\r\n\t\tswitch(header) {\r\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\r\n\t\t\tcase 2: hdr[C] = cols[C]; break;\r\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\r\n\t\t\tdefault:\r\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\r\n\t\t\t\tvv = v = format_cell(val, null, o);\r\n\t\t\t\tcounter = 0;\r\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\r\n\t\t\t\thdr[C] = vv;\r\n\t\t}\r\n\t}\r\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\r\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\r\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\r\n\t}\r\n\tout.length = outi;\r\n\treturn out;\r\n}\r\n\r\nvar qreg = /\"/g;\r\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\r\n\tvar isempty = true;\r\n\tvar row = [], txt = \"\", rr = encode_row(R);\r\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\r\n\t\tif (!cols[C]) continue;\r\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\r\n\t\tif(val == null) txt = \"\";\r\n\t\telse if(val.v != null) {\r\n\t\t\tisempty = false;\r\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\r\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\r\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\r\n\t\t} else if(val.f != null && !val.F) {\r\n\t\t\tisempty = false;\r\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\r\n\t\t} else txt = \"\";\r\n\t\t/* NOTE: Excel CSV does not support array formulae */\r\n\t\trow.push(txt);\r\n\t}\r\n\tif(o.blankrows === false && isempty) return null;\r\n\treturn row.join(FS);\r\n}\r\n\r\nfunction sheet_to_csv(sheet, opts) {\r\n\tvar out = [];\r\n\tvar o = opts == null ? {} : opts;\r\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\r\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\r\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\r\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\r\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\r\n\tvar row = \"\", cols = [];\r\n\to.dense = Array.isArray(sheet);\r\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\r\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\r\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\r\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\r\n\t\tif ((rowinfo[R]||{}).hidden) continue;\r\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\r\n\t\tif(row == null) { continue; }\r\n\t\tif(o.strip) row = row.replace(endregex,\"\");\r\n\t\tout.push(row + RS);\r\n\t}\r\n\tdelete o.dense;\r\n\treturn out.join(\"\");\r\n}\r\n\r\nfunction sheet_to_txt(sheet, opts) {\r\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\r\n\tvar s = sheet_to_csv(sheet, opts);\r\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\r\n\tvar o = cptable.utils.encode(1200, s, 'str');\r\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\r\n}\r\n\r\nfunction sheet_to_formulae(sheet) {\r\n\tvar y = \"\", x, val=\"\";\r\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\r\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\r\n\tvar cmds = [];\r\n\tvar dense = Array.isArray(sheet);\r\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\r\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\r\n\t\trr = encode_row(R);\r\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\r\n\t\t\ty = cols[C] + rr;\r\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\r\n\t\t\tval = \"\";\r\n\t\t\tif(x === undefined) continue;\r\n\t\t\telse if(x.F != null) {\r\n\t\t\t\ty = x.F;\r\n\t\t\t\tif(!x.f) continue;\r\n\t\t\t\tval = x.f;\r\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\r\n\t\t\t}\r\n\t\t\tif(x.f != null) val = x.f;\r\n\t\t\telse if(x.t == 'z') continue;\r\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\r\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\r\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\r\n\t\t\telse if(x.v === undefined) continue;\r\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\r\n\t\t\telse val = \"\"+x.v;\r\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\r\n\t\t}\r\n\t}\r\n\treturn cmds;\r\n}\r\n\r\nfunction sheet_add_json(_ws, js, opts) {\r\n\tvar o = opts || {};\r\n\tvar offset = +!o.skipHeader;\r\n\tvar ws = _ws || ({});\r\n\tvar _R = 0, _C = 0;\r\n\tif(ws && o.origin != null) {\r\n\t\tif(typeof o.origin == 'number') _R = o.origin;\r\n\t\telse {\r\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\r\n\t\t\t_R = _origin.r; _C = _origin.c;\r\n\t\t}\r\n\t}\r\n\tvar cell;\r\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\r\n\tif(ws['!ref']) {\r\n\t\tvar _range = safe_decode_range(ws['!ref']);\r\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\r\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\r\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\r\n\t} else {\r\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\r\n\t}\r\n\tvar hdr = o.header || [], C = 0;\r\n\r\n\tjs.forEach(function (JS, R) {\r\n\t\tkeys(JS).forEach(function(k) {\r\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\r\n\t\t\tvar v = JS[k];\r\n\t\t\tvar t = 'z';\r\n\t\t\tvar z = \"\";\r\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\r\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\r\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\r\n\t\t\t\tws[ref] = v;\r\n\t\t\t} else {\r\n\t\t\t\tif(typeof v == 'number') t = 'n';\r\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\r\n\t\t\t\telse if(typeof v == 'string') t = 's';\r\n\t\t\t\telse if(v instanceof Date) {\r\n\t\t\t\t\tt = 'd';\r\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\r\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\r\n\t\t\t\t}\r\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\r\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\r\n\t\t\t\telse {\r\n\t\t\t\t\tcell.t = t; cell.v = v;\r\n\t\t\t\t\tdelete cell.w; delete cell.R;\r\n\t\t\t\t\tif(z) cell.z = z;\r\n\t\t\t\t}\r\n\t\t\t\tif(z) cell.z = z;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\r\n\tvar __R = encode_row(_R);\r\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\r\n\tws['!ref'] = encode_range(range);\r\n\treturn ws;\r\n}\r\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\r\n\r\nvar utils = {\r\n\tencode_col: encode_col,\r\n\tencode_row: encode_row,\r\n\tencode_cell: encode_cell,\r\n\tencode_range: encode_range,\r\n\tdecode_col: decode_col,\r\n\tdecode_row: decode_row,\r\n\tsplit_cell: split_cell,\r\n\tdecode_cell: decode_cell,\r\n\tdecode_range: decode_range,\r\n\tformat_cell: format_cell,\r\n\tget_formulae: sheet_to_formulae,\r\n\tmake_csv: sheet_to_csv,\r\n\tmake_json: sheet_to_json,\r\n\tmake_formulae: sheet_to_formulae,\r\n\tsheet_add_aoa: sheet_add_aoa,\r\n\tsheet_add_json: sheet_add_json,\r\n\tsheet_add_dom: sheet_add_dom,\r\n\taoa_to_sheet: aoa_to_sheet,\r\n\tjson_to_sheet: json_to_sheet,\r\n\ttable_to_sheet: parse_dom_table,\r\n\ttable_to_book: table_to_book,\r\n\tsheet_to_csv: sheet_to_csv,\r\n\tsheet_to_txt: sheet_to_txt,\r\n\tsheet_to_json: sheet_to_json,\r\n\tsheet_to_html: HTML_.from_sheet,\r\n\tsheet_to_formulae: sheet_to_formulae,\r\n\tsheet_to_row_object_array: sheet_to_json\r\n};\r\n\r\n(function(utils) {\r\nutils.consts = utils.consts || {};\r\nfunction add_consts(R/*Array<any>*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\r\n\r\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\r\n\r\n/* get cell, creating a stub if necessary */\r\nfunction ws_get_cell_stub(ws, R, C) {\r\n\t/* A1 cell address */\r\n\tif(typeof R == \"string\") {\r\n\t\t/* dense */\r\n\t\tif(Array.isArray(ws)) {\r\n\t\t\tvar RC = decode_cell(R);\r\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\r\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\r\n\t\t}\r\n\t\treturn ws[R] || (ws[R] = {t:'z'});\r\n\t}\r\n\t/* cell address object */\r\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\r\n\t/* R and C are 0-based indices */\r\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\r\n}\r\nutils.sheet_get_cell = ws_get_cell_stub;\r\n\r\n/* find sheet index for given name / validate index */\r\nfunction wb_sheet_idx(wb, sh) {\r\n\tif(typeof sh == \"number\") {\r\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\r\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\r\n\t} else if(typeof sh == \"string\") {\r\n\t\tvar idx = wb.SheetNames.indexOf(sh);\r\n\t\tif(idx > -1) return idx;\r\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\r\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\r\n}\r\n\r\n/* simple blank workbook object */\r\nutils.book_new = function() {\r\n\treturn { SheetNames: [], Sheets: {} };\r\n};\r\n\r\n/* add a worksheet to the end of a given workbook */\r\nutils.book_append_sheet = function(wb, ws, name) {\r\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\r\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\r\n\tcheck_ws_name(name);\r\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\r\n\r\n\twb.SheetNames.push(name);\r\n\twb.Sheets[name] = ws;\r\n};\r\n\r\n/* set sheet visibility (visible/hidden/very hidden) */\r\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\r\n\tget_default(wb,\"Workbook\",{});\r\n\tget_default(wb.Workbook,\"Sheets\",[]);\r\n\r\n\tvar idx = wb_sheet_idx(wb, sh);\r\n\t// $FlowIgnore\r\n\tget_default(wb.Workbook.Sheets,idx, {});\r\n\r\n\tswitch(vis) {\r\n\t\tcase 0: case 1: case 2: break;\r\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\r\n\t}\r\n\t// $FlowIgnore\r\n\twb.Workbook.Sheets[idx].Hidden = vis;\r\n};\r\nadd_consts([\r\n\t[\"SHEET_VISIBLE\", 0],\r\n\t[\"SHEET_HIDDEN\", 1],\r\n\t[\"SHEET_VERY_HIDDEN\", 2]\r\n]);\r\n\r\n/* set number format */\r\nutils.cell_set_number_format = function(cell, fmt) {\r\n\tcell.z = fmt;\r\n\treturn cell;\r\n};\r\n\r\n/* set cell hyperlink */\r\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\r\n\tif(!target) {\r\n\t\tdelete cell.l;\r\n\t} else {\r\n\t\tcell.l = ({ Target: target });\r\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\r\n\t}\r\n\treturn cell;\r\n};\r\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\r\n\r\n/* add to cell comments */\r\nutils.cell_add_comment = function(cell, text, author) {\r\n\tif(!cell.c) cell.c = [];\r\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\r\n};\r\n\r\n/* set array formula and flush related cells */\r\nutils.sheet_set_array_formula = function(ws, range, formula) {\r\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\r\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\r\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\r\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\r\n\t\tcell.t = 'n';\r\n\t\tcell.F = rngstr;\r\n\t\tdelete cell.v;\r\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\r\n\t}\r\n\treturn ws;\r\n};\r\n\r\nreturn utils;\r\n})(utils);\r\n\r\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\r\nXLSX.parse_zip = parse_zip;\r\nXLSX.read = readSync; //xlsread\r\nXLSX.readFile = readFileSync; //readFile\r\nXLSX.readFileSync = readFileSync;\r\nXLSX.write = writeSync;\r\nXLSX.writeFile = writeFileSync;\r\nXLSX.writeFileSync = writeFileSync;\r\nXLSX.writeFileAsync = writeFileAsync;\r\nXLSX.utils = utils;\r\nXLSX.SSF = SSF;\r\nXLSX.excel_exprot=excel_exprot;\r\n\r\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\r\n\r\nconst fs = wx.getFileSystemManager() ;//获取全局唯一的文件管理器\r\nfunction excel_exprot (data, header, headerName, fileName) {\r\n let wopts = {\r\n \tbookType: 'xlsx',\r\n \tbookSST: false,\r\n \ttype: 'binary',\r\n }\r\n let workBook = {\r\n \tSheetNames: ['Sheet1'],\r\n \tSheets: {},\r\n \tProps: {},\r\n }\r\n dell();\r\n const newData = [headerName, ...data]\r\n // 1.XLSX.utils.json_to_sheet(data)接受一个对象数组并返回一个基于对象关键字自动生成的“标题”的工作表\r\n //默认的列顺序由使用Object.keys的字段的第一次出现确定\r\n // 2.将数据放入对象workBook的Sheets中等待输出\r\n //加了一句skipHeader:true,这样就会忽略原来的表头\r\n workBook.Sheets['Sheet1'] = XLSX.utils.json_to_sheet(newData, { header: header, skipHeader: true })\r\n // 3.XLSX.write()开始编写Excel表格\r\n // 4.changeData()将数据处理成需要的输出的格式\r\n // console.log(this.changeData(XLSX.write(workBook, wopts)))\r\n let time = new Date().getTime()\r\n const StrData = changeData(XLSX.write(workBook, wopts))\r\n fs.writeFile({\r\n \tfilePath: wx.env.USER_DATA_PATH + `/${fileName+time}.xlsx`, // wx.env.USER_DATA_PATH 指定临时文件存入的路径,后面字符串自定义\r\n \tdata: StrData,\r\n \tencoding: 'binary', //二进制流文件必须是 binary\r\n \tsuccess(res) {\r\n \t\tuni.hideLoading()\r\n \t\twx.openDocument({\r\n \t\t\t// 打开文档\r\n \t\t\tfilePath: wx.env.USER_DATA_PATH + `/${fileName+time}.xlsx`, //拿上面存入的文件路径\r\n \t\t\tshowMenu: true, // 显示右上角菜单\r\n \t\t\tsuccess: function(res) {\r\n\t\t\t},\r\n \t\t\tfail: function() {\r\n \t\t\t\tuni.showToast({\r\n \t\t\t\t\ttitle: `打开失败`,\r\n \t\t\t\t\ticon: 'error',\r\n \t\t\t\t\tduration: 2000,\r\n \t\t\t\t})\r\n \t\t\t},\r\n \t\t})\r\n \t},\r\n })\r\n}\r\nfunction\tchangeData(s) {\r\n\t\t\t//如果存在ArrayBuffer对象(es6)最好采用该对象\r\n\t\t\tif (typeof ArrayBuffer !== 'undefined') {\r\n\t\t\t\t//1.创建一个字节长度为s.length的内存区域\r\n\t\t\t\tlet buf = new ArrayBuffer(s.length)\r\n\t\t\t\t//2.创建一个指向buf的Unit8视图,开始于字节0,直到缓冲区的末尾\r\n\t\t\t\tlet view = new Uint8Array(buf)\r\n\t\t\t\t//3.返回指定位置的字符的Unicode编码\r\n\t\t\t\tfor (let i = 0; i != s.length; ++i) {\r\n\t\t\t\t\tview[i] = s.charCodeAt(i) & 0xff\r\n\t\t\t\t}\r\n\t\t\t\treturn buf\r\n\t\t\t} else {\r\n\t\t\t\tlet buf = new Array(s.length)\r\n\t\t\t\tfor (let i = 0; i != s.length; ++i) {\r\n\t\t\t\t\tbuf[i] = s.charCodeAt(i) & 0xff\r\n\t\t\t\t}\r\n\t\t\t\treturn buf\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t//删除缓存文件\r\n\tfunction\tdell(){\r\n\t\t\tfs.readdir({\r\n\t\t\t dirPath: wx.env.USER_DATA_PATH,\r\n\t\t\t success(res) {\r\n\t\t\t\t console.log(\"文件列表\",res)\r\n\t\t\t let indexVal = res.files.length;\r\n\t\t\t res.files.forEach((el) => {\r\n\t\t\t let name = (wx.env.USER_DATA_PATH+el).replace(/usr/g, \"usr/\");\r\n\t\t\t fs.unlink({\r\n\t\t\t filePath:name,\r\n\t\t\t fail(e) {\r\n\t\t\t console.log('文件删除失败:', e)\r\n\t\t\t \r\n\t\t\t },\r\n\t\t\t success(succ){\r\n\t\t\t indexVal++;\r\n\t\t\t if(indexVal==0){\r\n\t\t\t \r\n\t\t\t }\r\n\t\t\t console.log('文件删除成功:', succ);\r\n\t\t\t }\r\n\t\t\t })\r\n\t\t\t })\r\n\t\t\t }\r\n\t\t\t})\r\n\t\t}\r\n}\r\n/*global define */\r\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\r\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\r\nelse if(typeof define === 'function' && define.amd) define('xlsx', function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\r\nelse make_xlsx_lib(XLSX);\r\n/* NOTE: the following extra line is needed for \"Lightning Locker Service\" */\r\nif(typeof window !== 'undefined' && !window.XLSX) try { window.XLSX = XLSX; } catch(e) {}\r\n/*exported XLS, ODS */\r\nvar XLS = XLSX, ODS = XLSX;\r\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"sourceRoot":""}