-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathzee-worker.js
40 lines (29 loc) · 244 KB
/
zee-worker.js
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
30
31
32
33
34
35
36
37
38
39
// zee.js: zlib compiled to js
var Zee = (function() {
var Module=typeof Module!=="undefined"?Module:{};var Module={"noExitRuntime":true};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename)}return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);Module["quit"]=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}Module["read"]=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=function(title){document.title=title}}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end<=_emscripten_get_heap_size()){HEAP32[DYNAMICTOP_PTR>>2]=end}else{return 0}return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ALLOC_NONE=3;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,stackAlloc,dynamicAlloc][allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=u8Array[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|u8Array[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STACK_BASE=17360,DYNAMIC_BASE=5260240,DYNAMICTOP_PTR=17104;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(INITIAL_TOTAL_MEMORY<TOTAL_STACK)err("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+INITIAL_TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}}updateGlobalBufferViews();HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}memoryInitializer="data:application/octet-stream;base64,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GgAFAAYABQAWAAUADgAFAB4ABQABAAUAEQAFAAkABQAZAAUABQAFABUABQANAAUAHQAFAAMABQATAAUACwAFABsABQAHAAUAFwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAAAAAAAAAAAAAAAMAAgAjAAIAEwACADMAAgALAAIAKwACABsAAgA7AAIABwACACcAAgAXAAIANwACAA8AAgAvAAIAHwACAD8AAgAAgAIAIIACABCAAgAwgAIACIACACiAAgAYgAIAOIACAASAAgAkgAIAFIACADSAAgAMgAIALIACAByAAgA8gAIAAoACACKAAgASgAIAMoACAAqAAgAqgAIAGoACADqAAgAGgAIAJoACABaAAgA2gAIADoACAC6AAgAegAIAPoACAAGAAgAhgAIAEYACADGAAgAJgAIAKYACABmAAgA5gAIABYACACWAAgAVgAIANYACAA2AAgAtgAIAHYACAD2AAgADgAIAI4ACABOAAgAzgAIAC4ACACuAAgAbgAIAO4ACAAeAAgAngAIAF4ACADeAAgAPgAIAL4ACAB+AAgA/gAIAAEACACBAAgAQQAIAMEACAAhAAgAoQAIAGEACADhAAgAEQAIAJEACABRAAgA0QAIADEACACxAAgAcQAIAPEACAAJAAgAiQAIAEkACADJAAgAKQAIAKkACABpAAgA6QAIABkACACZAAgAWQAIANkACAA5AAgAuQAIAHkACAD5AAgABQAIAIUACABFAAgAxQAIACUACAClAAgAZQAIAOUACAAVAAgAlQAIAFUACADVAAgANQAIALUACAB1AAgA9QAIAA0ACACNAAgATQAIAM0ACAAtAAgArQAIAG0ACADtAAgAHQAIAJ0ACABdAAgA3QAIAD0ACAC9AAgAfQAIAP0ACAATAAkAEwEJAJMACQCTAQkAUwAJAFMBCQDTAAkA0wEJADMACQAzAQkAswAJALMBCQBzAAkAcwEJAPMACQDzAQkACwAJAAsBCQCLAAkAiwEJAEsACQBLAQkAywAJAMsBCQArAAkAKwEJAKsACQCrAQkAawAJAGsBCQDrAAkA6wEJABsACQAbAQkAmwAJAJsBCQBbAAkAWwEJANsACQDbAQkAOwAJADsBCQC7AAkAuwEJAHsACQB7AQkA+wAJAPsBCQAHAAkABwEJAIcACQCHAQkARwAJAEcBCQDHAAkAxwEJACcACQAnAQkApwAJAKcBCQBnAAkAZwEJAOcACQDnAQkAFwAJABcBCQCXAAkAlwEJAFcACQBXAQkA1wAJANcBCQA3AAkANwEJALcACQC3AQkAdwAJAHcBCQD3AAkA9wEJAA8ACQAPAQkAjwAJAI8BCQBPAAkATwEJAM8ACQDPAQkALwAJAC8BCQCvAAkArwEJAG8ACQBvAQkA7wAJAO8BCQAfAAkAHwEJAJ8ACQCfAQkAXwAJAF8BCQDfAAkA3wEJAD8ACQA/AQkAvwAJAL8BCQB/AAkAfwEJAP8ACQD/AQkAAAAHAEAABwAgAAcAYAAHABAABwBQAAcAMAAHAHAABwAIAAcASAAHACgABwBoAAcAGAAHAFgABwA4AAcAeAAHAAQABwBEAAcAJAAHAGQABwAUAAcAVAAHADQABwB0AAcAAwAIAIMACABDAAgAwwAIACMACACjAAgAYwAIAOMACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAAQAAAAEAAAABAAAAAQAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAAAAAEAAIABAAAAAgAAAAMAAAAEAAAABgAAAAgAAAAMAAAAEAAAABgAAAAgAAAAMAAAAEAAAABgAAAAAAAAAAAAAARAAAAUQAAAtEIAAB9AAAAqQAAAN0AAAEJAAABWQAAAY0AAALRCAAAAAAAAAAAAAFQhIhkNAQIDEUscDBAECx0SHidobm9wcWIgBQYPExQVGggWBygkFxgJCg4bHyUjg4J9JiorPD0+P0NHSk1YWVpbXF1eX2BhY2RlZmdpamtscnN0eXp7fAAAAAAAAAAAAElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE5vIGVycm9yIGluZm9ybWF0aW9uAAAAAAAAkC4AABAzAAABAQAAHgEAAA8AAACQLQAAEC4AAAAAAAAeAAAADwAAAAAAAABALQAAAAAAABMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADogAHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUAaW50ZXJuYWwgZXJyb3I6IGluZmxhdGUgc3RyZWFtIGNvcnJ1cHQAY29tcHJlc3NlZCBkYXRhIGVycm9yAHJlcXVlc3RlZCBsZW5ndGggZG9lcyBub3QgZml0IGluIGludABpbnRlcm5hbCBlcnJvcjogZGVmbGF0ZSBzdHJlYW0gY29ycnVwdABvdXQgb2YgbWVtb3J5ADEuMi41AGluY29ycmVjdCBoZWFkZXIgY2hlY2sAdW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QAaW52YWxpZCB3aW5kb3cgc2l6ZQB1bmtub3duIGhlYWRlciBmbGFncyBzZXQAaGVhZGVyIGNyYyBtaXNtYXRjaABpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwB0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scwBpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdABpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2sAaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAGluY29ycmVjdCBkYXRhIGNoZWNrAGluY29ycmVjdCBsZW5ndGggY2hlY2sAbmVlZCBkaWN0aW9uYXJ5AHN0cmVhbSBlbmQAZmlsZSBlcnJvcgBzdHJlYW0gZXJyb3IAZGF0YSBlcnJvcgBpbnN1ZmZpY2llbnQgbWVtb3J5AGJ1ZmZlciBlcnJvcgBpbmNvbXBhdGlibGUgdmVyc2lvbg==";var tempDoublePtr=17344;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)},resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name]},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var IDBFS={dbs:{},indexedDB:function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount){return MEMFS.mount.apply(null,arguments)},syncfs:function(mount,populate,callback){IDBFS.getLocalSet(mount,function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},getDB:function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=function(e){callback(this.error);e.preventDefault()}},getLocalSet:function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return function(p){return PATH.join2(root,p)}}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})},getRemoteSet:function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,function(err,db){if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=function(e){callback(this.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)},removeLocalEntry:function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:function(store,path,callback){var req=store.get(path);req.onsuccess=function(event){callback(null,event.target.result)};req.onerror=function(e){callback(this.error);e.preventDefault()}},storeRemoteEntry:function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=function(){callback(null)};req.onerror=function(e){callback(this.error);e.preventDefault()}},removeRemoteEntry:function(store,path,callback){var req=store.delete(path);req.onsuccess=function(){callback(null)};req.onerror=function(e){callback(this.error);e.preventDefault()}},reconcile:function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=function(e){done(this.error);e.preventDefault()};create.sort().forEach(function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var NODEFS={isWindows:false,staticInit:function(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"]}},bufferFrom:function(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer)},mount:function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode:function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode:function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode},realPath:function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},flagsForNode:function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(!flags){return newFlags}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}},node_ops:{getattr:function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod:function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node},rename:function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir:function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink:function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink:function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open:function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close:function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read:function(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}},write:function(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)});(mount.opts["blobs"]||[]).forEach(function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])});(mount.opts["packages"]||[]).forEach(function(pack){pack["metadata"].files.forEach(function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))})});return root},createNode:function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node},node_ops:{getattr:function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}},lookup:function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)},mknod:function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)},rename:function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)},unlink:function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)},rmdir:function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)},readlink:function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}},stream_ops:{read:function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(40)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(40)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 13}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 13}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 13}return 0},mayLookup:function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return 13;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 17}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return 20}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 16}}else{if(FS.isDir(node.mode)){return 21}}return 0},mayOpen:function(node,flags){if(!node){return 2}if(FS.isLink(node.mode)){return 40}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 21}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(24)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(29)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(16)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(20)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(22)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(22)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(1)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=17)throw e}}},mkdev:function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(2)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(2)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(1)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(16)}if(!old_dir||!new_dir)throw new FS.ErrnoError(2);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(18)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(22)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(39)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(1)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(16)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}},rmdir:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(1)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readdir:function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(20)}return node.node_ops.readdir(node)},unlink:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(1)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readlink:function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(2)}if(!link.node_ops.readlink){throw new FS.ErrnoError(22)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(2)}if(!node.node_ops.getattr){throw new FS.ErrnoError(1)}return node.node_ops.getattr(node)},lstat:function(path){return FS.stat(path,true)},chmod:function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(1)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:function(path,mode){FS.chmod(path,mode,true)},fchmod:function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(9)}FS.chmod(stream.node,mode)},chown:function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(1)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:function(path,uid,gid){FS.chown(path,uid,gid,true)},fchown:function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(9)}FS.chown(stream.node,uid,gid)},truncate:function(path,len){if(len<0){throw new FS.ErrnoError(22)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(1)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(21)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(22)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(9)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(22)}FS.truncate(stream.node,len)},utime:function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(2)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(17)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(2)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(20)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;console.log("FS.trackingDelegate error on read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream},close:function(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:function(stream){return stream.fd===null},llseek:function(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(29)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(22)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(22)}if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(9)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(21)}if(!stream.stream_ops.read){throw new FS.ErrnoError(22)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(29)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(22)}if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(9)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(21)}if(!stream.stream_ops.write){throw new FS.ErrnoError(22)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(29)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+stream.path+"') threw an exception: "+e.message)}return bytesWritten},allocate:function(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if(offset<0||length<=0){throw new FS.ErrnoError(22)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(9)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(19)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(95)}stream.stream_ops.allocate(stream,offset,length)},mmap:function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(13)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(19)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)},msync:function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:function(stream){return 0},ioctl:function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(25)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:function(){return FS.currentPath},chdir:function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(2)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(20)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path},createDefaultDirectories:function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(stream,buffer,offset,length,pos){return length}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);random_device=function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");random_device=function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}else{}if(!random_device){random_device=function(){abort("random_device")}}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(9);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return stream.path}}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");var stdout=FS.open("/dev/stdout","w");var stderr=FS.open("/dev/stderr","w")},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error";if(this.stack)Object.defineProperty(this,"stack",{value:(new Error).stack,writable:true})};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[2].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},joinPath:function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path},absolutePath:function(relative,base){return PATH.resolve(base,relative)},standardizePath:function(path){return PATH.normalize(path)},findObject:function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}},analyzePath:function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createFolder:function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)},createPath:function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function(stream){stream.seekable=false},close:function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}},read:function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(5)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(11)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(5)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},createLink:function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)},forceLoadFile:function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(5);return success},createLazyFile:function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(5)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(5)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node},createPreloadedFile:function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep)});handled=true}});if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,function(byteArray){processData(byteArray)},onerror)}else{processData(url)}},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0},doMsync:function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret},doWritev:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream},getSocketFromFD:function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket},getSocketAddress:function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall3(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.read(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall4(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.write(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_get_heap_size(){return HEAP8.length}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){abortOnCannotGrowMemory(requestedSize)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}FS.staticInit();if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==="boolean"&&ENVIRONMENT_IS_NODE){var buf;try{buf=Buffer.from(s,"base64")}catch(_){buf=new Buffer(s,"base64")}return new Uint8Array(buf.buffer,buf.byteOffset,buf.byteLength)}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error("Converting base64 string to bytes failed.")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array};var asmLibraryArg={"a":abort,"b":setTempRet0,"c":getTempRet0,"d":___setErrNo,"e":___syscall140,"f":___syscall221,"g":___syscall3,"h":___syscall4,"i":___syscall5,"j":___syscall6,"k":_emscripten_get_heap_size,"l":_emscripten_memcpy_big,"m":_emscripten_resize_heap,"n":abortOnCannotGrowMemory,"o":tempDoublePtr,"p":DYNAMICTOP_PTR};// EMSCRIPTEN_START_ASM
var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer),b=new global.Int16Array(buffer),c=new global.Int32Array(buffer),d=new global.Uint8Array(buffer),e=new global.Uint16Array(buffer),f=env.o|0,g=env.p|0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=global.Math.imul,q=env.a,r=env.b,s=env.c,t=env.d,u=env.e,v=env.f,w=env.g,x=env.h,y=env.i,z=env.j,A=env.k,B=env.l,C=env.m,D=env.n,E=17360,F=5260240,G=0.0;
// EMSCRIPTEN_START_FUNCS
function K(a){a=a|0;var b=0;b=E;E=E+a|0;E=E+15&-16;return b|0}function L(){return E|0}function M(a){a=a|0;E=a}function N(a,b){a=a|0;b=b|0;E=a;F=b}function O(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;e=a>>>16;f=a&65535;if((c|0)==1){a=f+(d[b>>0]|0)|0;g=a>>>0>65520?a+-65521|0:a;a=g+e|0;h=a<<16;i=(a>>>0>65520?h+983040|0:h)|g;return i|0}if(!b){i=1;return i|0}if(c>>>0<16){if(!c){j=e;k=f}else{g=c;h=b;a=f;l=e;while(1){g=g+-1|0;m=a+(d[h>>0]|0)|0;n=m+l|0;if(!g){j=n;k=m;break}else{h=h+1|0;a=m;l=n}}}i=((j>>>0)%65521|0)<<16|(k>>>0>65520?k+-65521|0:k);return i|0}if(c>>>0>5551){k=c;j=b;l=e;a=f;do{k=k+-5552|0;h=347;g=j;n=l;m=a;while(1){o=m+(d[g>>0]|0)|0;p=o+(d[g+1>>0]|0)|0;q=p+(d[g+2>>0]|0)|0;r=q+(d[g+3>>0]|0)|0;s=r+(d[g+4>>0]|0)|0;t=s+(d[g+5>>0]|0)|0;u=t+(d[g+6>>0]|0)|0;v=u+(d[g+7>>0]|0)|0;w=v+(d[g+8>>0]|0)|0;x=w+(d[g+9>>0]|0)|0;y=x+(d[g+10>>0]|0)|0;z=y+(d[g+11>>0]|0)|0;A=z+(d[g+12>>0]|0)|0;B=A+(d[g+13>>0]|0)|0;C=B+(d[g+14>>0]|0)|0;m=C+(d[g+15>>0]|0)|0;n=o+n+p+q+r+s+t+u+v+w+x+y+z+A+B+C+m|0;h=h+-1|0;if(!h)break;else g=g+16|0}j=j+5552|0;a=(m>>>0)%65521|0;l=(n>>>0)%65521|0}while(k>>>0>5551);if(k)if(k>>>0>15){D=k;E=j;F=l;G=a;H=16}else{I=k;J=j;K=l;L=a;H=19}else{M=l;N=a}}else{D=c;E=b;F=e;G=f;H=16}if((H|0)==16){f=D+-16|0;e=f&-16;b=e+16|0;c=D;D=E;a=F;F=G;while(1){c=c+-16|0;G=F+(d[D>>0]|0)|0;l=G+(d[D+1>>0]|0)|0;j=l+(d[D+2>>0]|0)|0;k=j+(d[D+3>>0]|0)|0;g=k+(d[D+4>>0]|0)|0;h=g+(d[D+5>>0]|0)|0;C=h+(d[D+6>>0]|0)|0;B=C+(d[D+7>>0]|0)|0;A=B+(d[D+8>>0]|0)|0;z=A+(d[D+9>>0]|0)|0;y=z+(d[D+10>>0]|0)|0;x=y+(d[D+11>>0]|0)|0;w=x+(d[D+12>>0]|0)|0;v=w+(d[D+13>>0]|0)|0;u=v+(d[D+14>>0]|0)|0;F=u+(d[D+15>>0]|0)|0;a=G+a+l+j+k+g+h+C+B+A+z+y+x+w+v+u+F|0;if(c>>>0<=15)break;else D=D+16|0}D=f-e|0;if(!D){O=a;P=F;H=21}else{I=D;J=E+b|0;K=a;L=F;H=19}}if((H|0)==19){F=I;I=J;J=K;K=L;while(1){F=F+-1|0;L=K+(d[I>>0]|0)|0;a=L+J|0;if(!F){O=a;P=L;H=21;break}else{I=I+1|0;J=a;K=L}}}if((H|0)==21){M=(O>>>0)%65521|0;N=(P>>>0)%65521|0}i=M<<16|N;return i|0}function P(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if(!b){f=0;return f|0}g=~a;a:do if(e){a=g;h=e;i=b;while(1){if(!(i&3))break;j=c[16+((a&255^(d[i>>0]|0))<<2)>>2]^a>>>8;k=h+-1|0;if(!k){l=j;break a}else{a=j;h=k;i=i+1|0}}if(h>>>0>31){k=h+-32|0;j=k&-32;m=i+(j+32)|0;n=i;o=a;p=h;while(1){q=c[n>>2]^o;r=c[2064+((q>>>8&255)<<2)>>2]^c[3088+((q&255)<<2)>>2]^c[1040+((q>>>16&255)<<2)>>2]^c[16+(q>>>24<<2)>>2]^c[n+4>>2];q=c[2064+((r>>>8&255)<<2)>>2]^c[3088+((r&255)<<2)>>2]^c[1040+((r>>>16&255)<<2)>>2]^c[16+(r>>>24<<2)>>2]^c[n+8>>2];r=c[2064+((q>>>8&255)<<2)>>2]^c[3088+((q&255)<<2)>>2]^c[1040+((q>>>16&255)<<2)>>2]^c[16+(q>>>24<<2)>>2]^c[n+12>>2];q=c[2064+((r>>>8&255)<<2)>>2]^c[3088+((r&255)<<2)>>2]^c[1040+((r>>>16&255)<<2)>>2]^c[16+(r>>>24<<2)>>2]^c[n+16>>2];r=c[2064+((q>>>8&255)<<2)>>2]^c[3088+((q&255)<<2)>>2]^c[1040+((q>>>16&255)<<2)>>2]^c[16+(q>>>24<<2)>>2]^c[n+20>>2];q=c[2064+((r>>>8&255)<<2)>>2]^c[3088+((r&255)<<2)>>2]^c[1040+((r>>>16&255)<<2)>>2]^c[16+(r>>>24<<2)>>2]^c[n+24>>2];r=c[2064+((q>>>8&255)<<2)>>2]^c[3088+((q&255)<<2)>>2]^c[1040+((q>>>16&255)<<2)>>2]^c[16+(q>>>24<<2)>>2]^c[n+28>>2];o=c[2064+((r>>>8&255)<<2)>>2]^c[3088+((r&255)<<2)>>2]^c[1040+((r>>>16&255)<<2)>>2]^c[16+(r>>>24<<2)>>2];p=p+-32|0;if(p>>>0<=31)break;else n=n+32|0}s=m;t=o;u=k-j|0}else{s=i;t=a;u=h}if(u>>>0>3){n=u+-4|0;p=n>>>2;r=s;q=u;v=t;while(1){w=c[r>>2]^v;v=c[2064+((w>>>8&255)<<2)>>2]^c[3088+((w&255)<<2)>>2]^c[1040+((w>>>16&255)<<2)>>2]^c[16+(w>>>24<<2)>>2];q=q+-4|0;if(q>>>0<=3)break;else r=r+4|0}x=s+(p+1<<2)|0;y=v;z=n&3}else{x=s;y=t;z=u}if(!z)l=y;else{r=x;q=y;h=z;while(1){a=c[16+((q&255^(d[r>>0]|0))<<2)>>2]^q>>>8;h=h+-1|0;if(!h){l=a;break}else{r=r+1|0;q=a}}}}else l=g;while(0);f=~l;return f|0}function Q(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;if(!i){k=-6;return k|0}if((j|0)!=56|(a[i>>0]|0)!=49){k=-6;return k|0}if(!b){k=-2;return k|0}i=b+24|0;c[i>>2]=0;j=b+32|0;l=c[j>>2]|0;if(!l){c[j>>2]=1;c[b+40>>2]=0;m=1}else m=l;l=b+36|0;if(!(c[l>>2]|0))c[l>>2]=1;l=(d|0)==-1?6:d;if((f|0)<0){n=0;o=0-f|0}else{d=(f|0)>15;n=d?2:1;o=d?f+-16|0:f}if(h>>>0>4|(l>>>0>9|((e|0)!=8|(g+-1|0)>>>0>8|(o&-8|0)!=8))){k=-2;return k|0}e=(o|0)==8?9:o;o=b+40|0;f=I[m&1](c[o>>2]|0,1,5828)|0;if(!f){k=-4;return k|0}c[b+28>>2]=f;c[f>>2]=b;c[f+24>>2]=n;c[f+28>>2]=0;c[f+48>>2]=e;n=1<<e;e=f+44|0;c[e>>2]=n;c[f+52>>2]=n+-1;m=g+7|0;c[f+80>>2]=m;d=1<<m;m=f+76|0;c[m>>2]=d;c[f+84>>2]=d+-1;c[f+88>>2]=((g+9|0)>>>0)/3|0;d=f+56|0;c[d>>2]=I[c[j>>2]&1](c[o>>2]|0,n,2)|0;n=I[c[j>>2]&1](c[o>>2]|0,c[e>>2]|0,2)|0;p=f+64|0;c[p>>2]=n;_a(n|0,0,c[e>>2]<<1|0)|0;e=f+68|0;c[e>>2]=I[c[j>>2]&1](c[o>>2]|0,c[m>>2]|0,2)|0;c[f+5824>>2]=0;m=1<<g+6;g=f+5788|0;c[g>>2]=m;n=I[c[j>>2]&1](c[o>>2]|0,m,4)|0;c[f+8>>2]=n;m=c[g>>2]|0;c[f+12>>2]=m<<2;if((c[d>>2]|0?c[p>>2]|0:0)?!((n|0)==0|(c[e>>2]|0)==0):0){c[f+5796>>2]=n+(m>>>1<<1);c[f+5784>>2]=n+(m*3|0);c[f+132>>2]=l;c[f+136>>2]=h;a[f+36>>0]=8;k=S(b)|0;return k|0}c[f+4>>2]=666;c[i>>2]=c[3378];R(b)|0;k=-4;return k|0}function R(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!a){b=-2;return b|0}d=a+28|0;e=c[d>>2]|0;if(!e){b=-2;return b|0}f=c[e+4>>2]|0;switch(f|0){case 42:case 69:case 73:case 91:case 103:case 113:case 666:break;default:{b=-2;return b|0}}g=c[e+8>>2]|0;if(!g)h=e;else{J[c[a+36>>2]&1](c[a+40>>2]|0,g);h=c[d>>2]|0}g=c[h+68>>2]|0;if(!g)i=h;else{J[c[a+36>>2]&1](c[a+40>>2]|0,g);i=c[d>>2]|0}g=c[i+64>>2]|0;if(!g)j=i;else{J[c[a+36>>2]&1](c[a+40>>2]|0,g);j=c[d>>2]|0}g=c[j+56>>2]|0;if(!g){k=a+40|0;l=a+36|0;m=j}else{j=a+36|0;i=a+40|0;J[c[j>>2]&1](c[i>>2]|0,g);k=i;l=j;m=c[d>>2]|0}J[c[l>>2]&1](c[k>>2]|0,m);c[d>>2]=0;b=(f|0)==113?-3:0;return b|0}function S(a){a=a|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a){d=-2;return d|0}f=c[a+28>>2]|0;if(!f){d=-2;return d|0}if(!(c[a+32>>2]|0)){d=-2;return d|0}if(!(c[a+36>>2]|0)){d=-2;return d|0}c[a+20>>2]=0;c[a+8>>2]=0;c[a+24>>2]=0;c[a+44>>2]=2;c[f+20>>2]=0;c[f+16>>2]=c[f+8>>2];g=f+24|0;h=c[g>>2]|0;i=0-h|0;if((h|0)<0){c[g>>2]=i;j=i}else j=h;c[f+4>>2]=(j|0)==0?113:42;if((j|0)==2)k=P(0,0,0)|0;else k=O(0,0,0)|0;c[a+48>>2]=k;c[f+40>>2]=0;ra(f);c[f+60>>2]=c[f+44>>2]<<1;k=c[f+68>>2]|0;a=c[f+76>>2]|0;b[k+(a+-1<<1)>>1]=0;_a(k|0,0,(a<<1)+-2|0)|0;a=c[f+132>>2]|0;c[f+128>>2]=e[8208+(a*12|0)+2>>1];c[f+140>>2]=e[8208+(a*12|0)>>1];c[f+144>>2]=e[8208+(a*12|0)+4>>1];c[f+124>>2]=e[8208+(a*12|0)+6>>1];c[f+108>>2]=0;c[f+92>>2]=0;c[f+116>>2]=0;c[f+120>>2]=2;c[f+96>>2]=2;c[f+112>>2]=0;c[f+104>>2]=0;c[f+72>>2]=0;d=0;return d|0}function T(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;d=(c[a+12>>2]|0)+-5|0;e=d>>>0<65535?d:65535;d=a+116|0;f=a+108|0;g=a+92|0;h=a+44|0;i=a+56|0;while(1){j=c[d>>2]|0;if(j>>>0<2){W(a);k=c[d>>2]|0;if(!(k|b)){l=0;m=29;break}if(!k){m=21;break}else n=k}else n=j;j=(c[f>>2]|0)+n|0;c[f>>2]=j;c[d>>2]=0;k=c[g>>2]|0;o=k+e|0;if((j|0)!=0&j>>>0<o>>>0){p=k;q=j}else{c[d>>2]=j-o;c[f>>2]=o;if((k|0)>-1)r=(c[i>>2]|0)+k|0;else r=0;va(a,r,e,0);c[g>>2]=c[f>>2];k=c[a>>2]|0;o=k+28|0;j=c[o>>2]|0;s=c[j+20>>2]|0;t=k+16|0;u=c[t>>2]|0;v=s>>>0>u>>>0?u:s;if(v|0?(s=k+12|0,Za(c[s>>2]|0,c[j+16>>2]|0,v|0)|0,c[s>>2]=(c[s>>2]|0)+v,s=c[o>>2]|0,o=s+16|0,c[o>>2]=(c[o>>2]|0)+v,j=k+20|0,c[j>>2]=(c[j>>2]|0)+v,c[t>>2]=(c[t>>2]|0)-v,t=s+20|0,j=(c[t>>2]|0)-v|0,c[t>>2]=j,(j|0)==0):0)c[o>>2]=c[s+8>>2];if(!(c[(c[a>>2]|0)+16>>2]|0)){l=0;m=29;break}p=c[g>>2]|0;q=c[f>>2]|0}s=q-p|0;if(s>>>0>=((c[h>>2]|0)+-262|0)>>>0){if((p|0)>-1)w=(c[i>>2]|0)+p|0;else w=0;va(a,w,s,0);c[g>>2]=c[f>>2];s=c[a>>2]|0;o=s+28|0;j=c[o>>2]|0;t=c[j+20>>2]|0;v=s+16|0;k=c[v>>2]|0;u=t>>>0>k>>>0?k:t;if(u|0?(t=s+12|0,Za(c[t>>2]|0,c[j+16>>2]|0,u|0)|0,c[t>>2]=(c[t>>2]|0)+u,t=c[o>>2]|0,o=t+16|0,c[o>>2]=(c[o>>2]|0)+u,j=s+20|0,c[j>>2]=(c[j>>2]|0)+u,c[v>>2]=(c[v>>2]|0)-u,v=t+20|0,j=(c[v>>2]|0)-u|0,c[v>>2]=j,(j|0)==0):0)c[o>>2]=c[t+8>>2];if(!(c[(c[a>>2]|0)+16>>2]|0)){l=0;m=29;break}}}if((m|0)==21){w=c[g>>2]|0;if((w|0)>-1)x=(c[i>>2]|0)+w|0;else x=0;i=(b|0)==4;va(a,x,(c[f>>2]|0)-w|0,i&1);c[g>>2]=c[f>>2];f=c[a>>2]|0;g=f+28|0;w=c[g>>2]|0;x=c[w+20>>2]|0;b=f+16|0;p=c[b>>2]|0;h=x>>>0>p>>>0?p:x;if(h|0?(x=f+12|0,Za(c[x>>2]|0,c[w+16>>2]|0,h|0)|0,c[x>>2]=(c[x>>2]|0)+h,x=c[g>>2]|0,g=x+16|0,c[g>>2]=(c[g>>2]|0)+h,w=f+20|0,c[w>>2]=(c[w>>2]|0)+h,c[b>>2]=(c[b>>2]|0)-h,b=x+20|0,w=(c[b>>2]|0)-h|0,c[b>>2]=w,(w|0)==0):0)c[g>>2]=c[x+8>>2];if(!(c[(c[a>>2]|0)+16>>2]|0)){l=i?2:0;return l|0}else{l=i?3:1;return l|0}}else if((m|0)==29)return l|0;return 0}function U(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;g=e+116|0;h=(f|0)==0;i=e+72|0;j=e+88|0;k=e+56|0;l=e+108|0;m=e+84|0;n=e+68|0;o=e+64|0;p=e+52|0;q=e+96|0;r=e+44|0;s=e+112|0;t=e+5796|0;u=e+5792|0;v=e+5784|0;w=e+5788|0;x=e+128|0;y=e+92|0;while(1){if((c[g>>2]|0)>>>0<262){W(e);z=c[g>>2]|0;if(h&z>>>0<262){A=0;B=33;break}if(!z){B=25;break}if(z>>>0<=2)B=9;else B=6}else B=6;if((B|0)==6){B=0;z=c[l>>2]|0;C=(c[i>>2]<<c[j>>2]^(d[(c[k>>2]|0)+(z+2)>>0]|0))&c[m>>2];c[i>>2]=C;D=(c[n>>2]|0)+(C<<1)|0;C=b[D>>1]|0;b[(c[o>>2]|0)+((c[p>>2]&z)<<1)>>1]=C;E=C&65535;b[D>>1]=z;if(C<<16>>16!=0?(z-E|0)>>>0<=((c[r>>2]|0)+-262|0)>>>0:0){z=X(e,E)|0;c[q>>2]=z;F=z}else B=9}if((B|0)==9){B=0;F=c[q>>2]|0}do if(F>>>0>2){z=F+253|0;E=(c[l>>2]|0)-(c[s>>2]|0)|0;C=c[u>>2]|0;b[(c[t>>2]|0)+(C<<1)>>1]=E;D=c[v>>2]|0;c[u>>2]=C+1;a[D+C>>0]=z;C=e+148+((d[11328+(z&255)>>0]|0|256)+1<<2)|0;b[C>>1]=(b[C>>1]|0)+1<<16>>16;C=E+65535&65535;E=e+2440+((d[10816+(C>>>0<256?C:(C>>>7)+256|0)>>0]|0)<<2)|0;b[E>>1]=(b[E>>1]|0)+1<<16>>16;E=(c[u>>2]|0)==((c[w>>2]|0)+-1|0)&1;C=c[q>>2]|0;z=(c[g>>2]|0)-C|0;c[g>>2]=z;if(!(z>>>0>2?C>>>0<=(c[x>>2]|0)>>>0:0)){z=(c[l>>2]|0)+C|0;c[l>>2]=z;c[q>>2]=0;D=c[k>>2]|0;G=d[D+z>>0]|0;c[i>>2]=G;c[i>>2]=(G<<c[j>>2]^(d[D+(z+1)>>0]|0))&c[m>>2];H=E;I=z;break}z=C+-1|0;c[q>>2]=z;C=c[j>>2]|0;D=c[k>>2]|0;G=c[m>>2]|0;J=c[n>>2]|0;K=c[o>>2]|0;L=c[p>>2]|0;M=c[l>>2]|0;N=c[i>>2]|0;O=z;while(1){z=M+1|0;c[l>>2]=z;N=(N<<C^(d[D+(M+3)>>0]|0))&G;c[i>>2]=N;P=J+(N<<1)|0;b[K+((L&z)<<1)>>1]=b[P>>1]|0;b[P>>1]=z;O=O+-1|0;c[q>>2]=O;if(!O)break;else M=z}O=M+2|0;c[l>>2]=O;H=E;I=O}else{O=a[(c[k>>2]|0)+(c[l>>2]|0)>>0]|0;L=c[u>>2]|0;b[(c[t>>2]|0)+(L<<1)>>1]=0;K=c[v>>2]|0;c[u>>2]=L+1;a[K+L>>0]=O;L=e+148+((O&255)<<2)|0;b[L>>1]=(b[L>>1]|0)+1<<16>>16;L=(c[u>>2]|0)==((c[w>>2]|0)+-1|0)&1;c[g>>2]=(c[g>>2]|0)+-1;O=(c[l>>2]|0)+1|0;c[l>>2]=O;H=L;I=O}while(0);if(H|0){O=c[y>>2]|0;if((O|0)>-1)Q=(c[k>>2]|0)+O|0;else Q=0;va(e,Q,I-O|0,0);c[y>>2]=c[l>>2];O=c[e>>2]|0;L=O+28|0;K=c[L>>2]|0;N=c[K+20>>2]|0;J=O+16|0;G=c[J>>2]|0;D=N>>>0>G>>>0?G:N;if(D|0?(N=O+12|0,Za(c[N>>2]|0,c[K+16>>2]|0,D|0)|0,c[N>>2]=(c[N>>2]|0)+D,N=c[L>>2]|0,L=N+16|0,c[L>>2]=(c[L>>2]|0)+D,K=O+20|0,c[K>>2]=(c[K>>2]|0)+D,c[J>>2]=(c[J>>2]|0)-D,J=N+20|0,K=(c[J>>2]|0)-D|0,c[J>>2]=K,(K|0)==0):0)c[L>>2]=c[N+8>>2];if(!(c[(c[e>>2]|0)+16>>2]|0)){A=0;B=33;break}}}if((B|0)==25){I=c[y>>2]|0;if((I|0)>-1)R=(c[k>>2]|0)+I|0;else R=0;k=(f|0)==4;va(e,R,(c[l>>2]|0)-I|0,k&1);c[y>>2]=c[l>>2];l=c[e>>2]|0;y=l+28|0;I=c[y>>2]|0;R=c[I+20>>2]|0;f=l+16|0;Q=c[f>>2]|0;H=R>>>0>Q>>>0?Q:R;if(H|0?(R=l+12|0,Za(c[R>>2]|0,c[I+16>>2]|0,H|0)|0,c[R>>2]=(c[R>>2]|0)+H,R=c[y>>2]|0,y=R+16|0,c[y>>2]=(c[y>>2]|0)+H,I=l+20|0,c[I>>2]=(c[I>>2]|0)+H,c[f>>2]=(c[f>>2]|0)-H,f=R+20|0,I=(c[f>>2]|0)-H|0,c[f>>2]=I,(I|0)==0):0)c[y>>2]=c[R+8>>2];if(!(c[(c[e>>2]|0)+16>>2]|0)){A=k?2:0;return A|0}else{A=k?3:1;return A|0}}else if((B|0)==33)return A|0;return 0}function V(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;g=e+116|0;h=(f|0)==0;i=e+72|0;j=e+88|0;k=e+56|0;l=e+108|0;m=e+84|0;n=e+68|0;o=e+64|0;p=e+52|0;q=e+96|0;r=e+120|0;s=e+112|0;t=e+100|0;u=e+128|0;v=e+104|0;w=e+44|0;x=e+5796|0;y=e+5792|0;z=e+5784|0;A=e+5788|0;B=e+92|0;C=e+136|0;a:while(1){if((c[g>>2]|0)>>>0<262){W(e);D=c[g>>2]|0;if(h&D>>>0<262){E=0;F=48;break}if(!D){F=38;break}if(D>>>0<=2){D=c[q>>2]|0;c[r>>2]=D;c[t>>2]=c[s>>2];c[q>>2]=2;G=D;H=2}else F=7}else F=7;if((F|0)==7){F=0;D=c[l>>2]|0;I=(c[i>>2]<<c[j>>2]^(d[(c[k>>2]|0)+(D+2)>>0]|0))&c[m>>2];c[i>>2]=I;J=(c[n>>2]|0)+(I<<1)|0;I=b[J>>1]|0;b[(c[o>>2]|0)+((c[p>>2]&D)<<1)>>1]=I;K=I&65535;b[J>>1]=D;D=c[q>>2]|0;c[r>>2]=D;c[t>>2]=c[s>>2];c[q>>2]=2;if(!(I<<16>>16)){G=D;H=2}else{do if(D>>>0<(c[u>>2]|0)>>>0?((c[l>>2]|0)-K|0)>>>0<=((c[w>>2]|0)+-262|0)>>>0:0){I=X(e,K)|0;c[q>>2]=I;if(I>>>0<6){if((c[C>>2]|0)!=1){if((I|0)!=3){L=I;break}if(((c[l>>2]|0)-(c[s>>2]|0)|0)>>>0<=4096){L=3;break}}c[q>>2]=2;L=2}else L=I}else L=2;while(0);G=c[r>>2]|0;H=L}}do if(G>>>0<3|H>>>0>G>>>0){if(!(c[v>>2]|0)){c[v>>2]=1;c[l>>2]=(c[l>>2]|0)+1;c[g>>2]=(c[g>>2]|0)+-1;break}K=a[(c[k>>2]|0)+((c[l>>2]|0)+-1)>>0]|0;D=c[y>>2]|0;b[(c[x>>2]|0)+(D<<1)>>1]=0;I=c[z>>2]|0;c[y>>2]=D+1;a[I+D>>0]=K;D=e+148+((K&255)<<2)|0;b[D>>1]=(b[D>>1]|0)+1<<16>>16;if((c[y>>2]|0)==((c[A>>2]|0)+-1|0)){D=c[B>>2]|0;if((D|0)>-1)M=(c[k>>2]|0)+D|0;else M=0;va(e,M,(c[l>>2]|0)-D|0,0);c[B>>2]=c[l>>2];D=c[e>>2]|0;K=D+28|0;I=c[K>>2]|0;J=c[I+20>>2]|0;N=D+16|0;O=c[N>>2]|0;P=J>>>0>O>>>0?O:J;if(P|0?(J=D+12|0,Za(c[J>>2]|0,c[I+16>>2]|0,P|0)|0,c[J>>2]=(c[J>>2]|0)+P,J=c[K>>2]|0,K=J+16|0,c[K>>2]=(c[K>>2]|0)+P,I=D+20|0,c[I>>2]=(c[I>>2]|0)+P,c[N>>2]=(c[N>>2]|0)-P,N=J+20|0,I=(c[N>>2]|0)-P|0,c[N>>2]=I,(I|0)==0):0)c[K>>2]=c[J+8>>2]}c[l>>2]=(c[l>>2]|0)+1;c[g>>2]=(c[g>>2]|0)+-1;if(!(c[(c[e>>2]|0)+16>>2]|0)){E=0;F=48;break a}}else{J=c[l>>2]|0;K=J+-3+(c[g>>2]|0)|0;I=G+253|0;N=J+65535-(c[t>>2]|0)|0;J=c[y>>2]|0;b[(c[x>>2]|0)+(J<<1)>>1]=N;P=c[z>>2]|0;c[y>>2]=J+1;a[P+J>>0]=I;J=e+148+((d[11328+(I&255)>>0]|0|256)+1<<2)|0;b[J>>1]=(b[J>>1]|0)+1<<16>>16;J=N+65535&65535;N=e+2440+((d[10816+(J>>>0<256?J:(J>>>7)+256|0)>>0]|0)<<2)|0;b[N>>1]=(b[N>>1]|0)+1<<16>>16;N=c[y>>2]|0;J=(c[A>>2]|0)+-1|0;I=c[r>>2]|0;c[g>>2]=1-I+(c[g>>2]|0);P=I+-2|0;c[r>>2]=P;I=c[l>>2]|0;D=P;while(1){P=I+1|0;c[l>>2]=P;if(P>>>0<=K>>>0){O=(c[i>>2]<<c[j>>2]^(d[(c[k>>2]|0)+(I+3)>>0]|0))&c[m>>2];c[i>>2]=O;Q=(c[n>>2]|0)+(O<<1)|0;b[(c[o>>2]|0)+((c[p>>2]&P)<<1)>>1]=b[Q>>1]|0;b[Q>>1]=P}D=D+-1|0;c[r>>2]=D;if(!D)break;else I=P}c[v>>2]=0;c[q>>2]=2;D=I+2|0;c[l>>2]=D;if((N|0)==(J|0)){K=c[B>>2]|0;if((K|0)>-1)R=(c[k>>2]|0)+K|0;else R=0;va(e,R,D-K|0,0);c[B>>2]=c[l>>2];K=c[e>>2]|0;D=K+28|0;P=c[D>>2]|0;Q=c[P+20>>2]|0;O=K+16|0;S=c[O>>2]|0;T=Q>>>0>S>>>0?S:Q;if(T|0?(Q=K+12|0,Za(c[Q>>2]|0,c[P+16>>2]|0,T|0)|0,c[Q>>2]=(c[Q>>2]|0)+T,Q=c[D>>2]|0,D=Q+16|0,c[D>>2]=(c[D>>2]|0)+T,P=K+20|0,c[P>>2]=(c[P>>2]|0)+T,c[O>>2]=(c[O>>2]|0)-T,O=Q+20|0,P=(c[O>>2]|0)-T|0,c[O>>2]=P,(P|0)==0):0)c[D>>2]=c[Q+8>>2];if(!(c[(c[e>>2]|0)+16>>2]|0)){E=0;F=48;break a}}}while(0)}if((F|0)==38){if(c[v>>2]|0){R=a[(c[k>>2]|0)+((c[l>>2]|0)+-1)>>0]|0;q=c[y>>2]|0;b[(c[x>>2]|0)+(q<<1)>>1]=0;x=c[z>>2]|0;c[y>>2]=q+1;a[x+q>>0]=R;q=e+148+((R&255)<<2)|0;b[q>>1]=(b[q>>1]|0)+1<<16>>16;c[v>>2]=0}v=c[B>>2]|0;if((v|0)>-1)U=(c[k>>2]|0)+v|0;else U=0;k=(f|0)==4;va(e,U,(c[l>>2]|0)-v|0,k&1);c[B>>2]=c[l>>2];l=c[e>>2]|0;B=l+28|0;v=c[B>>2]|0;U=c[v+20>>2]|0;f=l+16|0;q=c[f>>2]|0;R=U>>>0>q>>>0?q:U;if(R|0?(U=l+12|0,Za(c[U>>2]|0,c[v+16>>2]|0,R|0)|0,c[U>>2]=(c[U>>2]|0)+R,U=c[B>>2]|0,B=U+16|0,c[B>>2]=(c[B>>2]|0)+R,v=l+20|0,c[v>>2]=(c[v>>2]|0)+R,c[f>>2]=(c[f>>2]|0)-R,f=U+20|0,v=(c[f>>2]|0)-R|0,c[f>>2]=v,(v|0)==0):0)c[B>>2]=c[U+8>>2];if(!(c[(c[e>>2]|0)+16>>2]|0)){E=k?2:0;return E|0}else{E=k?3:1;return E|0}}else if((F|0)==48)return E|0;return 0}function W(a){a=a|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;f=a+44|0;g=c[f>>2]|0;h=a+60|0;i=a+116|0;j=a+108|0;k=g+-262|0;l=a+56|0;m=a+112|0;n=a+92|0;o=a+76|0;p=a+68|0;q=a+64|0;r=a+72|0;s=a+88|0;t=a+84|0;u=c[i>>2]|0;v=g;while(1){w=c[j>>2]|0;x=(c[h>>2]|0)-u-w|0;if(w>>>0<(k+v|0)>>>0){y=x;z=w}else{w=c[l>>2]|0;Za(w|0,w+g|0,g|0)|0;c[m>>2]=(c[m>>2]|0)-g;w=(c[j>>2]|0)-g|0;c[j>>2]=w;c[n>>2]=(c[n>>2]|0)-g;A=c[o>>2]|0;B=(c[p>>2]|0)+(A<<1)|0;C=A;do{B=B+-2|0;A=e[B>>1]|0;b[B>>1]=g>>>0>A>>>0?0:A-g&65535;C=C+-1|0}while((C|0)!=0);C=g;B=(c[q>>2]|0)+(g<<1)|0;do{B=B+-2|0;A=e[B>>1]|0;b[B>>1]=g>>>0>A>>>0?0:A-g&65535;C=C+-1|0}while((C|0)!=0);y=x+g|0;z=w}C=c[a>>2]|0;B=C+4|0;A=c[B>>2]|0;if(!A){D=24;break}E=c[i>>2]|0;F=(c[l>>2]|0)+z+E|0;G=A>>>0>y>>>0?y:A;if(!G){H=0;I=E}else{c[B>>2]=A-G;switch(c[(c[C+28>>2]|0)+24>>2]|0){case 1:{A=C+48|0;c[A>>2]=O(c[A>>2]|0,c[C>>2]|0,G)|0;J=C;break}case 2:{A=C+48|0;c[A>>2]=P(c[A>>2]|0,c[C>>2]|0,G)|0;J=C;break}default:J=C}Za(F|0,c[J>>2]|0,G|0)|0;c[J>>2]=(c[J>>2]|0)+G;F=C+8|0;c[F>>2]=(c[F>>2]|0)+G;H=G;I=c[i>>2]|0}K=I+H|0;c[i>>2]=K;if(K>>>0>2?(G=c[l>>2]|0,F=c[j>>2]|0,C=d[G+F>>0]|0,c[r>>2]=C,c[r>>2]=(C<<c[s>>2]^(d[G+(F+1)>>0]|0))&c[t>>2],K>>>0>=262):0)break;if(!(c[(c[a>>2]|0)+4>>2]|0))break;u=K;v=c[f>>2]|0}if((D|0)==24)return;D=a+5824|0;a=c[D>>2]|0;f=c[h>>2]|0;if(f>>>0<=a>>>0)return;h=(c[j>>2]|0)+K|0;if(a>>>0<h>>>0){K=f-h|0;j=K>>>0<258?K:258;_a((c[l>>2]|0)+h|0,0,j|0)|0;c[D>>2]=j+h;return}j=h+258|0;if(j>>>0<=a>>>0)return;h=j-a|0;j=f-a|0;f=h>>>0>j>>>0?j:h;_a((c[l>>2]|0)+a|0,0,f|0)|0;c[D>>2]=(c[D>>2]|0)+f;return}function X(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;f=c[b+124>>2]|0;g=c[b+56>>2]|0;h=c[b+108>>2]|0;i=g+h|0;j=c[b+120>>2]|0;k=c[b+144>>2]|0;l=(c[b+44>>2]|0)+-262|0;m=h>>>0>l>>>0?h-l|0:0;l=c[b+64>>2]|0;h=c[b+52>>2]|0;n=c[b+116>>2]|0;o=k>>>0>n>>>0?n:k;k=b+112|0;p=i+1|0;q=i+258|0;r=a[i+j>>0]|0;s=a[i+(j+-1)>>0]|0;t=d;d=j;u=j>>>0<(c[b+140>>2]|0)>>>0?f:f>>>2;while(1){f=g+t|0;if((((a[f+d>>0]|0)==r<<24>>24?(a[f+(d+-1)>>0]|0)==s<<24>>24:0)?(a[f>>0]|0)==(a[i>>0]|0):0)?(b=f+1|0,(a[b>>0]|0)==(a[p>>0]|0)):0){f=2;j=b;while(1){v=i+f|0;if((a[v+1>>0]|0)!=(a[j+2>>0]|0)){w=22;break}if((a[v+2>>0]|0)!=(a[j+3>>0]|0)){w=21;break}if((a[v+3>>0]|0)!=(a[j+4>>0]|0)){w=20;break}if((a[v+4>>0]|0)!=(a[j+5>>0]|0)){w=19;break}if((a[v+5>>0]|0)!=(a[j+6>>0]|0)){w=18;break}if((a[v+6>>0]|0)!=(a[j+7>>0]|0)){w=17;break}b=j;j=j+8|0;if((a[v+7>>0]|0)!=(a[j>>0]|0)){w=16;break}x=f;f=f+8|0;if(!(x>>>0<250?(a[i+f>>0]|0)==(a[b+9>>0]|0):0)){w=15;break}}if((w|0)==15){w=0;y=i+f|0}else if((w|0)==16){w=0;y=v+7|0}else if((w|0)==17){w=0;y=v+6|0}else if((w|0)==18){w=0;y=v+5|0}else if((w|0)==19){w=0;y=v+4|0}else if((w|0)==20){w=0;y=v+3|0}else if((w|0)==21){w=0;y=v+2|0}else if((w|0)==22){w=0;y=v+1|0}j=y-q|0;b=j+258|0;if((b|0)>(d|0)){c[k>>2]=t;if((b|0)>=(o|0)){z=b;w=28;break}A=a[i+b>>0]|0;B=a[i+(j+257)>>0]|0;C=b}else{A=r;B=s;C=d}}else{A=r;B=s;C=d}t=e[l+((t&h)<<1)>>1]|0;if(m>>>0>=t>>>0){z=C;w=28;break}u=u+-1|0;if(!u){z=C;w=28;break}else{r=A;s=B;d=C}}if((w|0)==28)return (z>>>0>n>>>0?n:z)|0;return 0}function Y(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0;if(!e){g=-2;return g|0}h=e+28|0;i=c[h>>2]|0;if(f>>>0>5|(i|0)==0){g=-2;return g|0}j=e+12|0;do if(c[j>>2]|0){if((c[e>>2]|0)==0?c[e+4>>2]|0:0)break;k=i+4|0;l=c[k>>2]|0;m=(f|0)!=4;if(!(m&(l|0)==666)){n=e+16|0;if(!(c[n>>2]|0)){c[e+24>>2]=c[3379];g=-5;return g|0}c[i>>2]=e;o=i+40|0;p=c[o>>2]|0;c[o>>2]=f;do if((l|0)==42){if((c[i+24>>2]|0)!=2){q=(c[i+48>>2]<<12)+-30720|0;if((c[i+136>>2]|0)<=1?(r=c[i+132>>2]|0,(r|0)>=2):0)s=(r|0)<6?64:(r|0)==6?128:192;else s=0;r=s|q;q=i+108|0;t=(c[q>>2]|0)==0?r:r|32;r=(((t>>>0)%31|0)^31)+t|0;c[k>>2]=113;t=i+8|0;u=c[t>>2]|0;v=i+20|0;w=c[v>>2]|0;c[v>>2]=w+1;a[u+w>>0]=r>>>8;w=c[t>>2]|0;u=c[v>>2]|0;c[v>>2]=u+1;a[w+u>>0]=r;r=e+48|0;if(c[q>>2]|0){q=c[r>>2]|0;u=c[t>>2]|0;w=c[v>>2]|0;c[v>>2]=w+1;a[u+w>>0]=q>>>24;w=c[t>>2]|0;u=c[v>>2]|0;c[v>>2]=u+1;a[w+u>>0]=q>>>16;q=c[r>>2]|0;u=c[t>>2]|0;w=c[v>>2]|0;c[v>>2]=w+1;a[u+w>>0]=q>>>8;w=c[t>>2]|0;t=c[v>>2]|0;c[v>>2]=t+1;a[w+t>>0]=q}c[r>>2]=O(0,0,0)|0;x=c[k>>2]|0;y=29;break}r=e+48|0;c[r>>2]=P(0,0,0)|0;q=i+8|0;t=c[q>>2]|0;w=i+20|0;v=c[w>>2]|0;c[w>>2]=v+1;a[t+v>>0]=31;v=c[q>>2]|0;t=c[w>>2]|0;c[w>>2]=t+1;a[v+t>>0]=-117;t=c[q>>2]|0;v=c[w>>2]|0;c[w>>2]=v+1;a[t+v>>0]=8;v=i+28|0;t=c[v>>2]|0;if(!t){u=c[q>>2]|0;z=c[w>>2]|0;c[w>>2]=z+1;a[u+z>>0]=0;z=c[q>>2]|0;u=c[w>>2]|0;c[w>>2]=u+1;a[z+u>>0]=0;u=c[q>>2]|0;z=c[w>>2]|0;c[w>>2]=z+1;a[u+z>>0]=0;z=c[q>>2]|0;u=c[w>>2]|0;c[w>>2]=u+1;a[z+u>>0]=0;u=c[q>>2]|0;z=c[w>>2]|0;c[w>>2]=z+1;a[u+z>>0]=0;z=c[i+132>>2]|0;if((z|0)==9)A=2;else A=((z|0)<2?1:(c[i+136>>2]|0)>1)?4:0;z=c[q>>2]|0;u=c[w>>2]|0;c[w>>2]=u+1;a[z+u>>0]=A;u=c[q>>2]|0;z=c[w>>2]|0;c[w>>2]=z+1;a[u+z>>0]=3;c[k>>2]=113;break}z=(((c[t+44>>2]|0)==0?0:2)|(c[t>>2]|0)!=0|((c[t+16>>2]|0)==0?0:4)|((c[t+28>>2]|0)==0?0:8)|((c[t+36>>2]|0)==0?0:16))&255;t=c[q>>2]|0;u=c[w>>2]|0;c[w>>2]=u+1;a[t+u>>0]=z;z=c[(c[v>>2]|0)+4>>2]&255;u=c[q>>2]|0;t=c[w>>2]|0;c[w>>2]=t+1;a[u+t>>0]=z;z=(c[(c[v>>2]|0)+4>>2]|0)>>>8&255;t=c[q>>2]|0;u=c[w>>2]|0;c[w>>2]=u+1;a[t+u>>0]=z;z=(c[(c[v>>2]|0)+4>>2]|0)>>>16&255;u=c[q>>2]|0;t=c[w>>2]|0;c[w>>2]=t+1;a[u+t>>0]=z;z=(c[(c[v>>2]|0)+4>>2]|0)>>>24&255;t=c[q>>2]|0;u=c[w>>2]|0;c[w>>2]=u+1;a[t+u>>0]=z;z=c[i+132>>2]|0;if((z|0)==9)B=2;else B=((z|0)<2?1:(c[i+136>>2]|0)>1)?4:0;z=c[q>>2]|0;u=c[w>>2]|0;c[w>>2]=u+1;a[z+u>>0]=B;u=c[(c[v>>2]|0)+12>>2]&255;z=c[q>>2]|0;t=c[w>>2]|0;c[w>>2]=t+1;a[z+t>>0]=u;u=c[v>>2]|0;if(!(c[u+16>>2]|0))C=u;else{t=c[u+20>>2]&255;u=c[q>>2]|0;z=c[w>>2]|0;c[w>>2]=z+1;a[u+z>>0]=t;t=(c[(c[v>>2]|0)+20>>2]|0)>>>8&255;z=c[q>>2]|0;u=c[w>>2]|0;c[w>>2]=u+1;a[z+u>>0]=t;C=c[v>>2]|0}if(c[C+44>>2]|0)c[r>>2]=P(c[r>>2]|0,c[q>>2]|0,c[w>>2]|0)|0;c[i+32>>2]=0;c[k>>2]=69;D=v;y=31}else{x=l;y=29}while(0);if((y|0)==29)if((x|0)==69){D=i+28|0;y=31}else{E=x;y=51}do if((y|0)==31){l=c[D>>2]|0;if(!(c[l+16>>2]|0)){c[k>>2]=73;F=D;G=l;y=53;break}v=i+20|0;w=c[v>>2]|0;q=i+32|0;r=c[q>>2]|0;a:do if(r>>>0<(c[l+20>>2]&65535)>>>0){t=i+12|0;u=i+8|0;z=e+48|0;I=e+20|0;J=w;K=r;L=w;M=l;while(1){if((L|0)==(c[t>>2]|0)){if(L>>>0>J>>>0&(c[M+44>>2]|0)!=0)c[z>>2]=P(c[z>>2]|0,(c[u>>2]|0)+J|0,L-J|0)|0;N=c[h>>2]|0;Q=c[N+20>>2]|0;R=c[n>>2]|0;S=Q>>>0>R>>>0?R:Q;if(S|0?(Za(c[j>>2]|0,c[N+16>>2]|0,S|0)|0,c[j>>2]=(c[j>>2]|0)+S,N=c[h>>2]|0,Q=N+16|0,c[Q>>2]=(c[Q>>2]|0)+S,c[I>>2]=(c[I>>2]|0)+S,c[n>>2]=(c[n>>2]|0)-S,R=N+20|0,T=(c[R>>2]|0)-S|0,c[R>>2]=T,(T|0)==0):0)c[Q>>2]=c[N+8>>2];N=c[v>>2]|0;Q=c[D>>2]|0;if((N|0)==(c[t>>2]|0)){U=N;V=Q;break a}X=N;Y=Q;Z=c[q>>2]|0;_=N}else{X=J;Y=M;Z=K;_=L}N=a[(c[Y+16>>2]|0)+Z>>0]|0;Q=c[u>>2]|0;c[v>>2]=_+1;a[Q+_>>0]=N;N=(c[q>>2]|0)+1|0;c[q>>2]=N;Q=c[D>>2]|0;if(N>>>0>=(c[Q+20>>2]&65535)>>>0){U=X;V=Q;break a}J=X;K=N;L=c[v>>2]|0;M=Q}}else{U=w;V=l}while(0);if((c[V+44>>2]|0)!=0?(l=c[v>>2]|0,l>>>0>U>>>0):0){w=e+48|0;c[w>>2]=P(c[w>>2]|0,(c[i+8>>2]|0)+U|0,l-U|0)|0;$=c[D>>2]|0}else $=V;if((c[q>>2]|0)==(c[$+20>>2]|0)){c[q>>2]=0;c[k>>2]=73;F=D;G=$;y=53;break}else{E=c[k>>2]|0;y=51;break}}while(0);if((y|0)==51)if((E|0)==73){l=i+28|0;F=l;G=c[l>>2]|0;y=53}else{aa=E;y=71}do if((y|0)==53){if(!(c[G+28>>2]|0)){c[k>>2]=91;ba=F;y=73;break}l=i+20|0;w=c[l>>2]|0;r=i+12|0;M=i+32|0;L=i+8|0;K=e+48|0;J=e+20|0;u=w;t=w;while(1){if((t|0)==(c[r>>2]|0)){if(t>>>0>u>>>0?(c[(c[F>>2]|0)+44>>2]|0)!=0:0)c[K>>2]=P(c[K>>2]|0,(c[L>>2]|0)+u|0,t-u|0)|0;w=c[h>>2]|0;I=c[w+20>>2]|0;z=c[n>>2]|0;Q=I>>>0>z>>>0?z:I;if(Q|0?(Za(c[j>>2]|0,c[w+16>>2]|0,Q|0)|0,c[j>>2]=(c[j>>2]|0)+Q,w=c[h>>2]|0,I=w+16|0,c[I>>2]=(c[I>>2]|0)+Q,c[J>>2]=(c[J>>2]|0)+Q,c[n>>2]=(c[n>>2]|0)-Q,z=w+20|0,N=(c[z>>2]|0)-Q|0,c[z>>2]=N,(N|0)==0):0)c[I>>2]=c[w+8>>2];w=c[l>>2]|0;if((w|0)==(c[r>>2]|0)){ca=1;da=w;break}else{ea=w;fa=w}}else{ea=u;fa=t}w=c[(c[F>>2]|0)+28>>2]|0;I=c[M>>2]|0;c[M>>2]=I+1;N=a[w+I>>0]|0;I=c[L>>2]|0;c[l>>2]=fa+1;a[I+fa>>0]=N;if(!(N<<24>>24)){ca=0;da=ea;break}u=ea;t=c[l>>2]|0}if(c[(c[F>>2]|0)+44>>2]|0?(t=c[l>>2]|0,t>>>0>da>>>0):0)c[K>>2]=P(c[K>>2]|0,(c[L>>2]|0)+da|0,t-da|0)|0;if(!ca){c[M>>2]=0;c[k>>2]=91;ba=F;y=73;break}else{aa=c[k>>2]|0;y=71;break}}while(0);if((y|0)==71)if((aa|0)==91){ba=i+28|0;y=73}else{ga=aa;y=91}do if((y|0)==73){if(!(c[(c[ba>>2]|0)+36>>2]|0)){c[k>>2]=103;ha=ba;y=93;break}t=i+20|0;u=c[t>>2]|0;r=i+12|0;J=i+32|0;q=i+8|0;v=e+48|0;N=e+20|0;I=u;w=u;while(1){if((w|0)==(c[r>>2]|0)){if(w>>>0>I>>>0?(c[(c[ba>>2]|0)+44>>2]|0)!=0:0)c[v>>2]=P(c[v>>2]|0,(c[q>>2]|0)+I|0,w-I|0)|0;u=c[h>>2]|0;z=c[u+20>>2]|0;Q=c[n>>2]|0;T=z>>>0>Q>>>0?Q:z;if(T|0?(Za(c[j>>2]|0,c[u+16>>2]|0,T|0)|0,c[j>>2]=(c[j>>2]|0)+T,u=c[h>>2]|0,z=u+16|0,c[z>>2]=(c[z>>2]|0)+T,c[N>>2]=(c[N>>2]|0)+T,c[n>>2]=(c[n>>2]|0)-T,Q=u+20|0,R=(c[Q>>2]|0)-T|0,c[Q>>2]=R,(R|0)==0):0)c[z>>2]=c[u+8>>2];u=c[t>>2]|0;if((u|0)==(c[r>>2]|0)){ia=1;ja=u;break}else{ka=u;la=u}}else{ka=I;la=w}u=c[(c[ba>>2]|0)+36>>2]|0;z=c[J>>2]|0;c[J>>2]=z+1;R=a[u+z>>0]|0;z=c[q>>2]|0;c[t>>2]=la+1;a[z+la>>0]=R;if(!(R<<24>>24)){ia=0;ja=ka;break}I=ka;w=c[t>>2]|0}if(c[(c[ba>>2]|0)+44>>2]|0?(w=c[t>>2]|0,w>>>0>ja>>>0):0)c[v>>2]=P(c[v>>2]|0,(c[q>>2]|0)+ja|0,w-ja|0)|0;if(!ia){c[k>>2]=103;ha=ba;y=93;break}else{ga=c[k>>2]|0;y=91;break}}while(0);if((y|0)==91?(ga|0)==103:0){ha=i+28|0;y=93}do if((y|0)==93){if(!(c[(c[ha>>2]|0)+44>>2]|0)){c[k>>2]=113;break}w=i+20|0;I=i+12|0;if((((c[w>>2]|0)+2|0)>>>0>(c[I>>2]|0)>>>0?(J=c[h>>2]|0,r=c[J+20>>2]|0,N=c[n>>2]|0,M=r>>>0>N>>>0?N:r,M|0):0)?(Za(c[j>>2]|0,c[J+16>>2]|0,M|0)|0,c[j>>2]=(c[j>>2]|0)+M,J=c[h>>2]|0,r=J+16|0,c[r>>2]=(c[r>>2]|0)+M,N=e+20|0,c[N>>2]=(c[N>>2]|0)+M,c[n>>2]=(c[n>>2]|0)-M,N=J+20|0,L=(c[N>>2]|0)-M|0,c[N>>2]=L,(L|0)==0):0)c[r>>2]=c[J+8>>2];J=c[w>>2]|0;if((J+2|0)>>>0<=(c[I>>2]|0)>>>0){I=e+48|0;r=c[I>>2]&255;L=i+8|0;N=c[L>>2]|0;c[w>>2]=J+1;a[N+J>>0]=r;r=(c[I>>2]|0)>>>8&255;J=c[L>>2]|0;L=c[w>>2]|0;c[w>>2]=L+1;a[J+L>>0]=r;c[I>>2]=P(0,0,0)|0;c[k>>2]=113}}while(0);I=i+20|0;if(!(c[I>>2]|0)){if(m&(p|0)>=(f|0)&(c[e+4>>2]|0)==0){c[e+24>>2]=c[3379];g=-5;return g|0}}else{r=c[h>>2]|0;L=c[r+20>>2]|0;J=c[n>>2]|0;w=L>>>0>J>>>0?J:L;if(w){Za(c[j>>2]|0,c[r+16>>2]|0,w|0)|0;c[j>>2]=(c[j>>2]|0)+w;r=c[h>>2]|0;L=r+16|0;c[L>>2]=(c[L>>2]|0)+w;N=e+20|0;c[N>>2]=(c[N>>2]|0)+w;N=(c[n>>2]|0)-w|0;c[n>>2]=N;M=r+20|0;K=(c[M>>2]|0)-w|0;c[M>>2]=K;if(!K){c[L>>2]=c[r+8>>2];ma=N}else ma=N}else ma=J;if(!ma){c[o>>2]=-1;g=0;return g|0}}J=(c[k>>2]|0)==666;N=(c[e+4>>2]|0)==0;if(J)if(N)y=113;else{c[e+24>>2]=c[3379];g=-5;return g|0}else if(N)y=113;else y=114;if((y|0)==113?!(((f|0)==0|J)&(c[i+116>>2]|0)==0):0)y=114;do if((y|0)==114){b:do switch(c[i+136>>2]|0){case 2:{J=i+116|0;N=i+96|0;r=i+56|0;L=i+108|0;K=i+5796|0;M=i+5792|0;w=i+5784|0;l=i+5788|0;R=i+92|0;while(1){if((c[J>>2]|0)==0?(W(i),(c[J>>2]|0)==0):0)break;c[N>>2]=0;z=a[(c[r>>2]|0)+(c[L>>2]|0)>>0]|0;u=c[M>>2]|0;b[(c[K>>2]|0)+(u<<1)>>1]=0;Q=c[w>>2]|0;c[M>>2]=u+1;a[Q+u>>0]=z;u=i+148+((z&255)<<2)|0;b[u>>1]=(b[u>>1]|0)+1<<16>>16;u=(c[M>>2]|0)==((c[l>>2]|0)+-1|0);c[J>>2]=(c[J>>2]|0)+-1;z=(c[L>>2]|0)+1|0;c[L>>2]=z;if(u){u=c[R>>2]|0;if((u|0)>-1)na=(c[r>>2]|0)+u|0;else na=0;va(i,na,z-u|0,0);c[R>>2]=c[L>>2];u=c[i>>2]|0;z=u+28|0;Q=c[z>>2]|0;T=c[Q+20>>2]|0;S=u+16|0;oa=c[S>>2]|0;pa=T>>>0>oa>>>0?oa:T;if(pa|0?(T=u+12|0,Za(c[T>>2]|0,c[Q+16>>2]|0,pa|0)|0,c[T>>2]=(c[T>>2]|0)+pa,T=c[z>>2]|0,z=T+16|0,c[z>>2]=(c[z>>2]|0)+pa,Q=u+20|0,c[Q>>2]=(c[Q>>2]|0)+pa,c[S>>2]=(c[S>>2]|0)-pa,S=T+20|0,Q=(c[S>>2]|0)-pa|0,c[S>>2]=Q,(Q|0)==0):0)c[z>>2]=c[T+8>>2];if(!(c[(c[i>>2]|0)+16>>2]|0))break b}}if(f|0){J=c[R>>2]|0;if((J|0)>-1)qa=(c[r>>2]|0)+J|0;else qa=0;l=(f|0)==4;va(i,qa,(c[L>>2]|0)-J|0,l&1);c[R>>2]=c[L>>2];J=c[i>>2]|0;M=J+28|0;w=c[M>>2]|0;K=c[w+20>>2]|0;N=J+16|0;T=c[N>>2]|0;z=K>>>0>T>>>0?T:K;if(z|0?(K=J+12|0,Za(c[K>>2]|0,c[w+16>>2]|0,z|0)|0,c[K>>2]=(c[K>>2]|0)+z,K=c[M>>2]|0,M=K+16|0,c[M>>2]=(c[M>>2]|0)+z,w=J+20|0,c[w>>2]=(c[w>>2]|0)+z,c[N>>2]=(c[N>>2]|0)-z,N=K+20|0,w=(c[N>>2]|0)-z|0,c[N>>2]=w,(w|0)==0):0)c[M>>2]=c[K+8>>2];if(!(c[(c[i>>2]|0)+16>>2]|0)){ra=l?2:0;y=182;break b}else{ra=l?3:1;y=182;break b}}break}case 3:{l=i+116|0;K=(f|0)==0;M=i+108|0;w=i+92|0;N=i+56|0;z=i+5796|0;J=i+5792|0;T=i+5784|0;Q=i+5788|0;S=i+96|0;while(1){pa=c[l>>2]|0;if(pa>>>0<258){W(i);u=c[l>>2]|0;if(K&u>>>0<258)break b;if(!u)break;c[S>>2]=0;if(u>>>0>2){sa=u;y=142}else{wa=c[M>>2]|0;y=165}}else{c[S>>2]=0;sa=pa;y=142}if((y|0)==142){y=0;pa=c[M>>2]|0;if(pa){u=(c[N>>2]|0)+pa|0;oa=a[u+-1>>0]|0;if((oa<<24>>24==(a[u>>0]|0)?(xa=u+1|0,oa<<24>>24==(a[xa>>0]|0)):0)?oa<<24>>24==(a[xa+1>>0]|0):0){xa=u+258|0;ya=1;while(1){za=u+ya|0;if(oa<<24>>24!=(a[za+2>>0]|0)){y=155;break}if(oa<<24>>24!=(a[za+3>>0]|0)){y=156;break}if(oa<<24>>24!=(a[za+4>>0]|0)){y=157;break}if(oa<<24>>24!=(a[za+5>>0]|0)){y=158;break}if(oa<<24>>24!=(a[za+6>>0]|0)){y=159;break}if(oa<<24>>24!=(a[za+7>>0]|0)){y=160;break}Aa=ya;ya=ya+8|0;if(oa<<24>>24!=(a[u+ya>>0]|0)){y=161;break}Ba=Aa+9|0;if(!(Ba>>>0<258?oa<<24>>24==(a[u+Ba>>0]|0):0)){y=162;break}}if((y|0)==155){y=0;Ca=za+2|0}else if((y|0)==156){y=0;Ca=za+3|0}else if((y|0)==157){y=0;Ca=za+4|0}else if((y|0)==158){y=0;Ca=za+5|0}else if((y|0)==159){y=0;Ca=za+6|0}else if((y|0)==160){y=0;Ca=za+7|0}else if((y|0)==161){y=0;Ca=u+ya|0}else if((y|0)==162){y=0;Ca=u+Ba|0}oa=Ca-xa+258|0;Aa=oa>>>0>sa>>>0?sa:oa;c[S>>2]=Aa;if(Aa>>>0>2){oa=Aa+253|0;Aa=c[J>>2]|0;b[(c[z>>2]|0)+(Aa<<1)>>1]=1;Da=c[T>>2]|0;c[J>>2]=Aa+1;a[Da+Aa>>0]=oa;Aa=i+148+((d[11328+(oa&255)>>0]|256)+1<<2)|0;b[Aa>>1]=(b[Aa>>1]|0)+1<<16>>16;Aa=i+2440+(d[10816]<<2)|0;b[Aa>>1]=(b[Aa>>1]|0)+1<<16>>16;Aa=(c[J>>2]|0)==((c[Q>>2]|0)+-1|0);oa=c[S>>2]|0;c[l>>2]=(c[l>>2]|0)-oa;Da=(c[M>>2]|0)+oa|0;c[M>>2]=Da;c[S>>2]=0;if(Aa){Ea=Da;y=166}}else{wa=pa;y=165}}else{wa=pa;y=165}}else{wa=0;y=165}}if((y|0)==165?(y=0,Da=a[(c[N>>2]|0)+wa>>0]|0,Aa=c[J>>2]|0,b[(c[z>>2]|0)+(Aa<<1)>>1]=0,oa=c[T>>2]|0,c[J>>2]=Aa+1,a[oa+Aa>>0]=Da,Aa=i+148+((Da&255)<<2)|0,b[Aa>>1]=(b[Aa>>1]|0)+1<<16>>16,Aa=(c[J>>2]|0)==((c[Q>>2]|0)+-1|0),c[l>>2]=(c[l>>2]|0)+-1,Da=(c[M>>2]|0)+1|0,c[M>>2]=Da,Aa):0){Ea=Da;y=166}if((y|0)==166){y=0;Da=c[w>>2]|0;if((Da|0)>-1)Fa=(c[N>>2]|0)+Da|0;else Fa=0;va(i,Fa,Ea-Da|0,0);c[w>>2]=c[M>>2];Da=c[i>>2]|0;Aa=Da+28|0;oa=c[Aa>>2]|0;Ga=c[oa+20>>2]|0;Ha=Da+16|0;Ia=c[Ha>>2]|0;Ja=Ga>>>0>Ia>>>0?Ia:Ga;if(Ja|0?(Ga=Da+12|0,Za(c[Ga>>2]|0,c[oa+16>>2]|0,Ja|0)|0,c[Ga>>2]=(c[Ga>>2]|0)+Ja,Ga=c[Aa>>2]|0,Aa=Ga+16|0,c[Aa>>2]=(c[Aa>>2]|0)+Ja,oa=Da+20|0,c[oa>>2]=(c[oa>>2]|0)+Ja,c[Ha>>2]=(c[Ha>>2]|0)-Ja,Ha=Ga+20|0,oa=(c[Ha>>2]|0)-Ja|0,c[Ha>>2]=oa,(oa|0)==0):0)c[Aa>>2]=c[Ga+8>>2];if(!(c[(c[i>>2]|0)+16>>2]|0))break b}}l=c[w>>2]|0;if((l|0)>-1)Ka=(c[N>>2]|0)+l|0;else Ka=0;Q=(f|0)==4;va(i,Ka,(c[M>>2]|0)-l|0,Q&1);c[w>>2]=c[M>>2];l=c[i>>2]|0;J=l+28|0;T=c[J>>2]|0;z=c[T+20>>2]|0;S=l+16|0;K=c[S>>2]|0;L=z>>>0>K>>>0?K:z;if(L|0?(z=l+12|0,Za(c[z>>2]|0,c[T+16>>2]|0,L|0)|0,c[z>>2]=(c[z>>2]|0)+L,z=c[J>>2]|0,J=z+16|0,c[J>>2]=(c[J>>2]|0)+L,T=l+20|0,c[T>>2]=(c[T>>2]|0)+L,c[S>>2]=(c[S>>2]|0)-L,S=z+20|0,T=(c[S>>2]|0)-L|0,c[S>>2]=T,(T|0)==0):0)c[J>>2]=c[z+8>>2];if(!(c[(c[i>>2]|0)+16>>2]|0)){ra=Q?2:0;y=182;break b}else{ra=Q?3:1;y=182;break b}break}default:{ra=H[c[8208+((c[i+132>>2]|0)*12|0)+8>>2]&3](i,f)|0;y=182}}while(0);if((y|0)==182){if((ra|1|0)==3)c[k>>2]=666;if((ra|2|0)!=2){if((ra|0)!=1)break;switch(f|0){case 1:{ua(i);break}case 5:break;default:{ta(i,0,0,0);if((f|0)==3?(q=c[i+68>>2]|0,v=c[i+76>>2]|0,b[q+(v+-1<<1)>>1]=0,_a(q|0,0,(v<<1)+-2|0)|0,(c[i+116>>2]|0)==0):0){c[i+108>>2]=0;c[i+92>>2]=0}}}v=c[h>>2]|0;q=c[v+20>>2]|0;t=c[n>>2]|0;Q=q>>>0>t>>>0?t:q;if(Q){Za(c[j>>2]|0,c[v+16>>2]|0,Q|0)|0;c[j>>2]=(c[j>>2]|0)+Q;v=c[h>>2]|0;q=v+16|0;c[q>>2]=(c[q>>2]|0)+Q;z=e+20|0;c[z>>2]=(c[z>>2]|0)+Q;z=(c[n>>2]|0)-Q|0;c[n>>2]=z;J=v+20|0;T=(c[J>>2]|0)-Q|0;c[J>>2]=T;if(!T){c[q>>2]=c[v+8>>2];La=z}else La=z}else La=t;if(La|0)break;c[o>>2]=-1;g=0;return g|0}}if(c[n>>2]|0){g=0;return g|0}c[o>>2]=-1;g=0;return g|0}while(0);if(m){g=0;return g|0}o=i+24|0;k=c[o>>2]|0;if((k|0)<1){g=1;return g|0}p=e+48|0;t=c[p>>2]|0;if((k|0)==2){k=i+8|0;z=c[k>>2]|0;v=c[I>>2]|0;c[I>>2]=v+1;a[z+v>>0]=t;v=(c[p>>2]|0)>>>8&255;z=c[k>>2]|0;q=c[I>>2]|0;c[I>>2]=q+1;a[z+q>>0]=v;v=(c[p>>2]|0)>>>16&255;q=c[k>>2]|0;z=c[I>>2]|0;c[I>>2]=z+1;a[q+z>>0]=v;v=(c[p>>2]|0)>>>24&255;z=c[k>>2]|0;q=c[I>>2]|0;c[I>>2]=q+1;a[z+q>>0]=v;v=e+8|0;q=c[v>>2]&255;z=c[k>>2]|0;T=c[I>>2]|0;c[I>>2]=T+1;a[z+T>>0]=q;q=(c[v>>2]|0)>>>8&255;T=c[k>>2]|0;z=c[I>>2]|0;c[I>>2]=z+1;a[T+z>>0]=q;q=(c[v>>2]|0)>>>16&255;z=c[k>>2]|0;T=c[I>>2]|0;c[I>>2]=T+1;a[z+T>>0]=q;q=(c[v>>2]|0)>>>24;v=c[k>>2]|0;k=c[I>>2]|0;c[I>>2]=k+1;Ma=q;Na=v+k|0}else{k=i+8|0;v=c[k>>2]|0;q=c[I>>2]|0;c[I>>2]=q+1;a[v+q>>0]=t>>>24;q=c[k>>2]|0;v=c[I>>2]|0;c[I>>2]=v+1;a[q+v>>0]=t>>>16;t=c[p>>2]|0;p=c[k>>2]|0;v=c[I>>2]|0;c[I>>2]=v+1;a[p+v>>0]=t>>>8;v=c[k>>2]|0;k=c[I>>2]|0;c[I>>2]=k+1;Ma=t;Na=v+k|0}a[Na>>0]=Ma;k=c[h>>2]|0;v=c[k+20>>2]|0;t=c[n>>2]|0;p=v>>>0>t>>>0?t:v;if(p|0?(Za(c[j>>2]|0,c[k+16>>2]|0,p|0)|0,c[j>>2]=(c[j>>2]|0)+p,k=c[h>>2]|0,v=k+16|0,c[v>>2]=(c[v>>2]|0)+p,t=e+20|0,c[t>>2]=(c[t>>2]|0)+p,c[n>>2]=(c[n>>2]|0)-p,t=k+20|0,q=(c[t>>2]|0)-p|0,c[t>>2]=q,(q|0)==0):0)c[v>>2]=c[k+8>>2];k=c[o>>2]|0;if((k|0)>0)c[o>>2]=0-k;g=(c[I>>2]|0)==0&1;return g|0}}while(0);c[e+24>>2]=c[3376];g=-2;return g|0}function Z(a){a=a|0;var b=0;do if(a)if((c[a>>2]|0)==7247){b=fa(a)|0;break}else{b=ja(a)|0;break}else b=-2;while(0);return b|0}function _(a,b){a=a|0;b=b|0;return $(a,-1,b)|0}function $(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=E;E=E+16|0;g=f;h=Ba(140)|0;if(!h){i=0;E=f;return i|0}c[h+16>>2]=0;c[h+20>>2]=8192;j=h+80|0;c[j>>2]=0;c[h>>2]=0;k=h+60|0;c[k>>2]=-1;l=h+64|0;c[l>>2]=0;m=a[e>>0]|0;if(m<<24>>24){n=e;e=m;m=0;a:while(1){o=e<<24>>24;b:do if((e+-48&255)<10){c[k>>2]=o+-48;p=m}else switch(o|0){case 43:{q=10;break a;break}case 114:{c[h>>2]=7247;p=7247;break b;break}case 119:{c[h>>2]=31153;p=31153;break b;break}case 97:{c[h>>2]=1;p=1;break b;break}case 70:{c[l>>2]=4;p=m;break b;break}case 102:{c[l>>2]=1;p=m;break b;break}case 104:{c[l>>2]=2;p=m;break b;break}case 82:{c[l>>2]=3;p=m;break b;break}default:{p=m;break b}}while(0);n=n+1|0;e=a[n>>0]|0;if(!(e<<24>>24))break;else m=p}if((q|0)==10){Ca(h);i=0;E=f;return i|0}if(p|0){q=Ba((Ha(b)|0)+1|0)|0;c[h+8>>2]=q;if(!q){Ca(h);i=0;E=f;return i|0}Ma(q,b)|0;if((d|0)==-1){c[g>>2]=438;m=Qa(b,(p|0)==7247?32768:(p|0)==31153?33345:33857,g)|0;c[h+4>>2]=m;if((m|0)==-1){Ca(q);Ca(h);i=0;E=f;return i|0}else r=m}else{c[h+4>>2]=d;r=d}if((p|0)!=1){if((c[h>>2]|0)==7247?(p=Ra(r,0,1)|0,c[h+44>>2]=(p|0)==-1?0:p,(c[h>>2]|0)==7247):0){c[h+36>>2]=0;c[h+40>>2]=0;c[h+52>>2]=0;c[h+56>>2]=1}}else c[h>>2]=31153;c[h+72>>2]=0;p=c[j>>2]|0;r=h+76|0;if(p|0){if((c[r>>2]|0)!=-4)Ca(p);c[j>>2]=0}c[r>>2]=0;c[h+12>>2]=0;c[h+88>>2]=0;i=h;E=f;return i|0}}Ca(h);i=0;E=f;return i|0}function aa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=b+80|0;g=c[f>>2]|0;h=b+76|0;if(g|0){if((c[h>>2]|0)!=-4)Ca(g);c[f>>2]=0}c[h>>2]=d;if(!e)return;if((d|0)==-4){c[f>>2]=e;return}d=c[b+8>>2]|0;b=Ha(d)|0;g=Ba(b+3+(Ha(e)|0)|0)|0;c[f>>2]=g;if(!g){c[h>>2]=-4;c[f>>2]=15907;return}else{Ma(g,d)|0;d=c[f>>2]|0;g=d+(Ha(d)|0)|0;a[g>>0]=a[15744]|0;a[g+1>>0]=a[15745]|0;a[g+2>>0]=a[15746]|0;Na(c[f>>2]|0,e)|0;return}}function ba(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;if(!a){e=-1;return e|0}if((c[a>>2]|0)!=7247){e=-1;return e|0}if(c[a+76>>2]|0){e=-1;return e|0}if((d|0)<0){aa(a,-5,15831);e=-1;return e|0}if(!d){e=0;return e|0}f=a+72|0;a:do if(c[f>>2]|0){c[f>>2]=0;g=c[a+68>>2]|0;h=a+88|0;if(g){i=a+36|0;j=a+40|0;k=a+32|0;l=a+12|0;m=a+52|0;n=a+28|0;o=a+16|0;p=a+4|0;q=a+100|0;r=a+96|0;s=g;b:while(1){g=c[i>>2]|0;c:do if(!g){if(c[j>>2]|0?(c[h>>2]|0)==0:0){t=h;break a}u=c[m>>2]|0;if(!u){if((ca(a)|0)==-1){e=-1;v=59;break b}if(c[i>>2]|0){w=s;break}x=c[m>>2]|0}else x=u;switch(x|0){case 1:break;case 2:{c[q>>2]=c[o>>2]<<1;c[r>>2]=c[n>>2];if((da(a)|0)==-1){e=-1;v=59;break b}else{w=s;break c}break}default:{w=s;break c}}u=c[n>>2]|0;y=c[o>>2]<<1;c[i>>2]=0;z=0;do{A=Xa(c[p>>2]|0,u+z|0,y-z|0)|0;if((A|0)<1){v=23;break}z=(c[i>>2]|0)+A|0;c[i>>2]=z}while(z>>>0<y>>>0);if((v|0)==23){v=0;if((A|0)<0){v=25;break b}c[j>>2]=1}c[k>>2]=c[n>>2];w=s}else{y=(g|0)<0|(g|0)>(s|0)?s:g;c[i>>2]=g-y;c[k>>2]=(c[k>>2]|0)+y;c[l>>2]=(c[l>>2]|0)+y;w=s-y|0}while(0);if(!w){t=h;break a}else s=w}if((v|0)==25){aa(a,-1,Sa(c[(Ea()|0)>>2]|0)|0);e=-1;return e|0}else if((v|0)==59)return e|0}else t=h}else t=a+88|0;while(0);w=a+36|0;A=a+40|0;x=a+12|0;f=a+32|0;s=a+52|0;l=a+16|0;k=a+28|0;i=a+4|0;n=a+100|0;j=a+96|0;p=b;b=0;o=d;d:while(1){d=c[w>>2]|0;e:do if(!d){if(c[A>>2]|0?(c[t>>2]|0)==0:0){e=b;v=59;break d}r=c[s>>2]|0;if(r)if(o>>>0<c[l>>2]<<1>>>0)B=r;else{if((r|0)!=1){c[n>>2]=o;c[j>>2]=p;if((da(a)|0)==-1){e=-1;v=59;break d}r=c[w>>2]|0;c[w>>2]=0;C=r;v=57;break}r=0;while(1){D=Xa(c[i>>2]|0,p+r|0,o-r|0)|0;if((D|0)<1)break;q=D+r|0;if(q>>>0<o>>>0)r=q;else{C=q;v=57;break e}}if((D|0)<0){v=54;break d}c[A>>2]=1;C=r;v=57;break}else{if((ca(a)|0)==-1){e=-1;v=59;break d}if(c[w>>2]|0){E=p;F=b;G=o;break}B=c[s>>2]|0}switch(B|0){case 1:break;case 2:{c[n>>2]=c[l>>2]<<1;c[j>>2]=c[k>>2];if((da(a)|0)==-1){e=-1;v=59;break d}else{E=p;F=b;G=o;break e}break}default:{E=p;F=b;G=o;break e}}q=c[k>>2]|0;m=c[l>>2]<<1;c[w>>2]=0;g=0;do{H=Xa(c[i>>2]|0,q+g|0,m-g|0)|0;if((H|0)<1){v=43;break}g=(c[w>>2]|0)+H|0;c[w>>2]=g}while(g>>>0<m>>>0);if((v|0)==43){v=0;if((H|0)<0){v=45;break d}c[A>>2]=1}c[f>>2]=c[k>>2];E=p;F=b;G=o}else{m=d>>>0>o>>>0?o:d;Za(p|0,c[f>>2]|0,m|0)|0;c[f>>2]=(c[f>>2]|0)+m;c[w>>2]=(c[w>>2]|0)-m;C=m;v=57}while(0);if((v|0)==57){v=0;c[x>>2]=(c[x>>2]|0)+C;E=p+C|0;F=C+b|0;G=o-C|0}if(!G){e=F;v=59;break}else{p=E;b=F;o=G}}if((v|0)==45){aa(a,-1,Sa(c[(Ea()|0)>>2]|0)|0);e=-1;return e|0}else if((v|0)==54){aa(a,-1,Sa(c[(Ea()|0)>>2]|0)|0);e=-1;return e|0}else if((v|0)==59)return e|0;return 0}function ca(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Da=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0;e=b+84|0;f=b+16|0;do if(!(c[f>>2]|0)){g=c[b+20>>2]|0;h=Ba(g)|0;i=b+24|0;c[i>>2]=h;j=Ba(g<<1)|0;k=b+28|0;c[k>>2]=j;l=(j|0)==0;if(!((h|0)==0|l)){c[f>>2]=g;c[b+116>>2]=0;c[b+120>>2]=0;c[b+124>>2]=0;g=b+88|0;c[g>>2]=0;c[e>>2]=0;if(!(ma(e,-15,15921,56)|0)){m=g;break}Ca(c[k>>2]|0);Ca(c[i>>2]|0);c[f>>2]=0;aa(b,-4,15907);n=-1;return n|0}if(l)o=h;else{Ca(j);o=c[i>>2]|0}if(o|0)Ca(o);aa(b,-4,15907);n=-1;return n|0}else m=b+88|0;while(0);o=c[m>>2]|0;if(!o){if(c[b+76>>2]|0){n=-1;return n|0}i=b+40|0;if(c[i>>2]|0){n=0;return n|0}j=b+24|0;h=c[j>>2]|0;l=c[f>>2]|0;c[m>>2]=0;k=b+4|0;g=0;while(1){p=Xa(c[k>>2]|0,h+g|0,l-g|0)|0;if((p|0)<1){q=17;break}r=(c[m>>2]|0)+p|0;c[m>>2]=r;if(r>>>0<l>>>0)g=r;else{s=r;break}}do if((q|0)==17){if((p|0)>=0){c[i>>2]=1;s=c[m>>2]|0;break}aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);n=-1;return n|0}while(0);c[e>>2]=c[j>>2];if(!s){n=0;return n|0}else t=s}else t=o;o=c[e>>2]|0;if((a[o>>0]|0)==31){s=t+-1|0;c[m>>2]=s;j=o+1|0;c[e>>2]=j;if(!s){if(c[b+76>>2]|0){n=-1;return n|0}o=b+40|0;if(!(c[o>>2]|0)){i=b+24|0;p=c[i>>2]|0;g=c[f>>2]|0;c[m>>2]=0;l=b+4|0;h=0;while(1){u=Xa(c[l>>2]|0,p+h|0,g-h|0)|0;if((u|0)<1){q=29;break}k=(c[m>>2]|0)+u|0;c[m>>2]=k;if(k>>>0<g>>>0)h=k;else{v=k;break}}do if((q|0)==29){if((u|0)>=0){c[o>>2]=1;v=c[m>>2]|0;break}aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);n=-1;return n|0}while(0);o=c[i>>2]|0;c[e>>2]=o;if(v|0){w=o;x=v;q=33}}}else{w=j;x=s;q=33}if((q|0)==33?(a[w>>0]|0)==-117:0){s=x+-1|0;c[m>>2]=s;x=w+1|0;c[e>>2]=x;a:do if(!s){if((c[b+76>>2]|0)==0?(w=b+40|0,(c[w>>2]|0)==0):0){j=b+24|0;v=c[j>>2]|0;o=c[f>>2]|0;c[m>>2]=0;i=b+4|0;u=0;while(1){y=Xa(c[i>>2]|0,v+u|0,o-u|0)|0;if((y|0)<1){q=40;break}h=(c[m>>2]|0)+y|0;c[m>>2]=h;if(h>>>0<o>>>0)u=h;else{z=h;break}}do if((q|0)==40)if((y|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);break a}else{c[w>>2]=1;z=c[m>>2]|0;break}while(0);w=c[j>>2]|0;c[e>>2]=w;if(z|0){A=z;B=w;q=44}}}else{A=s;B=x;q=44}while(0);if((q|0)==44?(x=A+-1|0,c[m>>2]=x,A=B+1|0,c[e>>2]=A,(a[B>>0]|0)==8):0){b:do if(!x){if((c[b+76>>2]|0)==0?(B=b+40|0,(c[B>>2]|0)==0):0){s=b+24|0;z=c[s>>2]|0;y=c[f>>2]|0;c[m>>2]=0;w=b+4|0;u=0;while(1){C=Xa(c[w>>2]|0,z+u|0,y-u|0)|0;if((C|0)<1){q=52;break}o=(c[m>>2]|0)+C|0;c[m>>2]=o;if(o>>>0<y>>>0)u=o;else{D=o;break}}do if((q|0)==52)if((C|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);break b}else{c[B>>2]=1;D=c[m>>2]|0;break}while(0);B=c[s>>2]|0;c[e>>2]=B;if(D|0){E=D;F=B;q=56}}}else{E=x;F=A;q=56}while(0);if((q|0)==56?(A=E+-1|0,c[m>>2]=A,E=F+1|0,c[e>>2]=E,x=d[F>>0]|0,(x&224|0)==0):0){c:do if(!A){F=b+76|0;if(!(c[F>>2]|0)){D=b+40|0;if(!(c[D>>2]|0)){C=b+24|0;B=c[C>>2]|0;u=c[f>>2]|0;c[m>>2]=0;y=b+4|0;z=0;while(1){G=Xa(c[y>>2]|0,B+z|0,u-z|0)|0;if((G|0)<1){q=64;break}w=(c[m>>2]|0)+G|0;c[m>>2]=w;if(w>>>0<u>>>0)z=w;else{H=w;break}}do if((q|0)==64)if((G|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);I=c[m>>2]|0;q=69;break c}else{c[D>>2]=1;H=c[m>>2]|0;break}while(0);D=c[C>>2]|0;c[e>>2]=D;if(H){J=H;K=D;q=68}else{L=F;q=71}}else{L=F;q=71}}else q=70}else{J=A;K=E;q=68}while(0);if((q|0)==68){E=J+-1|0;c[m>>2]=E;c[e>>2]=K+1;I=E;q=69}if((q|0)==69)if(!I)q=70;else{M=I;q=80}if((q|0)==70){L=b+76|0;q=71}d:do if((q|0)==71)if((c[L>>2]|0)==0?(I=b+40|0,(c[I>>2]|0)==0):0){E=b+24|0;K=c[E>>2]|0;J=c[f>>2]|0;c[m>>2]=0;A=b+4|0;H=0;while(1){N=Xa(c[A>>2]|0,K+H|0,J-H|0)|0;if((N|0)<1){q=76;break}G=(c[m>>2]|0)+N|0;c[m>>2]=G;if(G>>>0<J>>>0)H=G;else{O=G;break}}do if((q|0)==76)if((N|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);Q=c[m>>2]|0;q=81;break d}else{c[I>>2]=1;O=c[m>>2]|0;break}while(0);c[e>>2]=c[E>>2];if(O){M=O;q=80}else q=82}else q=82;while(0);if((q|0)==80){O=M+-1|0;c[m>>2]=O;c[e>>2]=(c[e>>2]|0)+1;Q=O;q=81}if((q|0)==81)if(!Q)q=82;else{R=Q;q=91}e:do if((q|0)==82)if((c[b+76>>2]|0)==0?(Q=b+40|0,(c[Q>>2]|0)==0):0){O=b+24|0;M=c[O>>2]|0;N=c[f>>2]|0;c[m>>2]=0;L=b+4|0;I=0;while(1){S=Xa(c[L>>2]|0,M+I|0,N-I|0)|0;if((S|0)<1){q=87;break}H=(c[m>>2]|0)+S|0;c[m>>2]=H;if(H>>>0<N>>>0)I=H;else{T=H;break}}do if((q|0)==87)if((S|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);U=c[m>>2]|0;q=92;break e}else{c[Q>>2]=1;T=c[m>>2]|0;break}while(0);c[e>>2]=c[O>>2];if(T){R=T;q=91}else q=93}else q=93;while(0);if((q|0)==91){T=R+-1|0;c[m>>2]=T;c[e>>2]=(c[e>>2]|0)+1;U=T;q=92}if((q|0)==92)if(!U)q=93;else{V=U;q=102}f:do if((q|0)==93)if((c[b+76>>2]|0)==0?(U=b+40|0,(c[U>>2]|0)==0):0){T=b+24|0;R=c[T>>2]|0;S=c[f>>2]|0;c[m>>2]=0;Q=b+4|0;I=0;while(1){W=Xa(c[Q>>2]|0,R+I|0,S-I|0)|0;if((W|0)<1){q=98;break}N=(c[m>>2]|0)+W|0;c[m>>2]=N;if(N>>>0<S>>>0)I=N;else{X=N;break}}do if((q|0)==98)if((W|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);Y=c[m>>2]|0;q=103;break f}else{c[U>>2]=1;X=c[m>>2]|0;break}while(0);c[e>>2]=c[T>>2];if(X){V=X;q=102}else q=104}else q=104;while(0);if((q|0)==102){X=V+-1|0;c[m>>2]=X;c[e>>2]=(c[e>>2]|0)+1;Y=X;q=103}if((q|0)==103)if(!Y)q=104;else{Z=Y;q=113}g:do if((q|0)==104)if((c[b+76>>2]|0)==0?(Y=b+40|0,(c[Y>>2]|0)==0):0){X=b+24|0;V=c[X>>2]|0;W=c[f>>2]|0;c[m>>2]=0;U=b+4|0;I=0;while(1){_=Xa(c[U>>2]|0,V+I|0,W-I|0)|0;if((_|0)<1){q=109;break}S=(c[m>>2]|0)+_|0;c[m>>2]=S;if(S>>>0<W>>>0)I=S;else{$=S;break}}do if((q|0)==109)if((_|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);ba=c[m>>2]|0;q=114;break g}else{c[Y>>2]=1;$=c[m>>2]|0;break}while(0);c[e>>2]=c[X>>2];if($){Z=$;q=113}else q=115}else q=115;while(0);if((q|0)==113){$=Z+-1|0;c[m>>2]=$;c[e>>2]=(c[e>>2]|0)+1;ba=$;q=114}if((q|0)==114)if(!ba)q=115;else{ca=ba;q=124}h:do if(((q|0)==115?(c[b+76>>2]|0)==0:0)?(ba=b+40|0,(c[ba>>2]|0)==0):0){$=b+24|0;Z=c[$>>2]|0;_=c[f>>2]|0;c[m>>2]=0;Y=b+4|0;I=0;while(1){da=Xa(c[Y>>2]|0,Z+I|0,_-I|0)|0;if((da|0)<1){q=120;break}W=(c[m>>2]|0)+da|0;c[m>>2]=W;if(W>>>0<_>>>0)I=W;else{ea=W;break}}do if((q|0)==120)if((da|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);break h}else{c[ba>>2]=1;ea=c[m>>2]|0;break}while(0);c[e>>2]=c[$>>2];if(ea|0){ca=ea;q=124}}while(0);if((q|0)==124){c[m>>2]=ca+-1;c[e>>2]=(c[e>>2]|0)+1}i:do if(x&4|0){ca=c[m>>2]|0;j:do if(!ca){ea=b+76|0;if(!(c[ea>>2]|0)){da=b+40|0;if(!(c[da>>2]|0)){ba=b+24|0;I=c[ba>>2]|0;_=c[f>>2]|0;c[m>>2]=0;Z=b+4|0;Y=0;while(1){fa=Xa(c[Z>>2]|0,I+Y|0,_-Y|0)|0;if((fa|0)<1){q=132;break}X=(c[m>>2]|0)+fa|0;c[m>>2]=X;if(X>>>0<_>>>0)Y=X;else{ga=X;break}}do if((q|0)==132)if((fa|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);ha=-1;ia=c[m>>2]|0;q=137;break j}else{c[da>>2]=1;ga=c[m>>2]|0;break}while(0);c[e>>2]=c[ba>>2];if(ga){ja=ga;q=136}else{ka=ea;na=-1;q=139}}else{ka=ea;na=-1;q=139}}else{oa=-1;q=138}}else{ja=ca;q=136}while(0);if((q|0)==136){ca=ja+-1|0;c[m>>2]=ca;$=c[e>>2]|0;c[e>>2]=$+1;ha=d[$>>0]|0;ia=ca;q=137}if((q|0)==137)if(!ia){oa=ha;q=138}else{pa=ia;qa=ha;q=148}if((q|0)==138){ka=b+76|0;na=oa;q=139}k:do if((q|0)==139)if((c[ka>>2]|0)==0?(ca=b+40|0,(c[ca>>2]|0)==0):0){$=b+24|0;da=c[$>>2]|0;Y=c[f>>2]|0;c[m>>2]=0;_=b+4|0;I=0;while(1){ra=Xa(c[_>>2]|0,da+I|0,Y-I|0)|0;if((ra|0)<1){q=144;break}Z=(c[m>>2]|0)+ra|0;c[m>>2]=Z;if(Z>>>0<Y>>>0)I=Z;else{sa=Z;break}}do if((q|0)==144)if((ra|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);ta=na;ua=-256;break k}else{c[ca>>2]=1;sa=c[m>>2]|0;break}while(0);c[e>>2]=c[$>>2];if(sa){pa=sa;qa=na;q=148}else{ta=na;ua=-256}}else{ta=na;ua=-256}while(0);if((q|0)==148){c[m>>2]=pa+-1;ca=c[e>>2]|0;c[e>>2]=ca+1;ta=qa;ua=d[ca>>0]<<8}ca=ua+ta|0;if(ca|0){I=b+76|0;Y=b+40|0;da=b+24|0;_=b+4|0;ea=ca;ca=c[m>>2]|0;while(1){ea=ea+-1|0;if(!ca){if(c[I>>2]|0)break i;if(c[Y>>2]|0)break i;ba=c[da>>2]|0;Z=c[f>>2]|0;c[m>>2]=0;X=0;while(1){va=Xa(c[_>>2]|0,ba+X|0,Z-X|0)|0;if((va|0)<1){q=157;break}W=(c[m>>2]|0)+va|0;c[m>>2]=W;if(W>>>0<Z>>>0)X=W;else{wa=W;break}}if((q|0)==157){q=0;if((va|0)<0)break;c[Y>>2]=1;wa=c[m>>2]|0}c[e>>2]=c[da>>2];if(!wa)break i;else xa=wa}else xa=ca;ca=xa+-1|0;c[m>>2]=ca;c[e>>2]=(c[e>>2]|0)+1;if(!ea)break i}aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0)}}while(0);l:do if(x&8|0){xa=b+76|0;wa=b+40|0;va=b+24|0;ta=b+4|0;ua=c[m>>2]|0;while(1){if(!ua){if(c[xa>>2]|0)break l;if(c[wa>>2]|0)break l;qa=c[va>>2]|0;pa=c[f>>2]|0;c[m>>2]=0;na=0;while(1){ya=Xa(c[ta>>2]|0,qa+na|0,pa-na|0)|0;if((ya|0)<1){q=170;break}sa=(c[m>>2]|0)+ya|0;c[m>>2]=sa;if(sa>>>0<pa>>>0)na=sa;else{za=sa;break}}if((q|0)==170){q=0;if((ya|0)<0)break;c[wa>>2]=1;za=c[m>>2]|0}c[e>>2]=c[va>>2];if(!za)break l;else Aa=za}else Aa=ua;ua=Aa+-1|0;c[m>>2]=ua;na=c[e>>2]|0;c[e>>2]=na+1;if(!(a[na>>0]|0))break l}aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0)}while(0);m:do if(x&16|0){Aa=b+76|0;za=b+40|0;ya=b+24|0;ua=b+4|0;va=c[m>>2]|0;while(1){if(!va){if(c[Aa>>2]|0)break m;if(c[za>>2]|0)break m;wa=c[ya>>2]|0;ta=c[f>>2]|0;c[m>>2]=0;xa=0;while(1){Da=Xa(c[ua>>2]|0,wa+xa|0,ta-xa|0)|0;if((Da|0)<1){q=183;break}na=(c[m>>2]|0)+Da|0;c[m>>2]=na;if(na>>>0<ta>>>0)xa=na;else{Fa=na;break}}if((q|0)==183){q=0;if((Da|0)<0)break;c[za>>2]=1;Fa=c[m>>2]|0}c[e>>2]=c[ya>>2];if(!Fa)break m;else Ga=Fa}else Ga=va;va=Ga+-1|0;c[m>>2]=va;xa=c[e>>2]|0;c[e>>2]=xa+1;if(!(a[xa>>0]|0))break m}aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0)}while(0);n:do if(x&2|0){Ga=c[m>>2]|0;o:do if(!Ga){Fa=b+76|0;if(c[Fa>>2]|0){q=201;break}Da=b+40|0;if(c[Da>>2]|0){Ha=Fa;q=202;break}va=b+24|0;ya=c[va>>2]|0;za=c[f>>2]|0;c[m>>2]=0;ua=b+4|0;Aa=0;while(1){Ia=Xa(c[ua>>2]|0,ya+Aa|0,za-Aa|0)|0;if((Ia|0)<1){q=195;break}xa=(c[m>>2]|0)+Ia|0;c[m>>2]=xa;if(xa>>>0<za>>>0)Aa=xa;else{Ja=xa;break}}do if((q|0)==195)if((Ia|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);Ka=c[m>>2]|0;q=200;break o}else{c[Da>>2]=1;Ja=c[m>>2]|0;break}while(0);c[e>>2]=c[va>>2];if(!Ja){Ha=Fa;q=202}else{La=Ja;q=199}}else{La=Ga;q=199}while(0);if((q|0)==199){Ga=La+-1|0;c[m>>2]=Ga;c[e>>2]=(c[e>>2]|0)+1;Ka=Ga;q=200}if((q|0)==200)if(!Ka)q=201;else Ma=Ka;if((q|0)==201){Ha=b+76|0;q=202}if((q|0)==202){if(c[Ha>>2]|0)break;Ga=b+40|0;if(c[Ga>>2]|0)break;Da=b+24|0;Aa=c[Da>>2]|0;za=c[f>>2]|0;c[m>>2]=0;ya=b+4|0;ua=0;while(1){Na=Xa(c[ya>>2]|0,Aa+ua|0,za-ua|0)|0;if((Na|0)<1){q=207;break}xa=(c[m>>2]|0)+Na|0;c[m>>2]=xa;if(xa>>>0<za>>>0)ua=xa;else{Oa=xa;break}}do if((q|0)==207)if((Na|0)<0){aa(b,-1,Sa(c[(Ea()|0)>>2]|0)|0);break n}else{c[Ga>>2]=1;Oa=c[m>>2]|0;break}while(0);c[e>>2]=c[Da>>2];if(!Oa)break;else Ma=Oa}c[m>>2]=Ma+-1;c[e>>2]=(c[e>>2]|0)+1}while(0);la(e)|0;c[b+132>>2]=P(0,0,0)|0;c[b+52>>2]=2;c[b+56>>2]=0;n=0;return n|0}aa(b,-3,15997);n=-1;return n|0}aa(b,-3,15950);n=-1;return n|0}Ma=b+28|0;a[c[Ma>>2]>>0]=31;c[b+36>>2]=1;Pa=Ma;Qa=c[m>>2]|0}else{Pa=b+28|0;Qa=t}c[b+48>>2]=c[b+12>>2];t=c[Pa>>2]|0;c[b+32>>2]=t;if(Qa|0){Pa=b+36|0;Za(t+(c[Pa>>2]|0)|0,c[e>>2]|0,Qa|0)|0;c[Pa>>2]=(c[Pa>>2]|0)+(c[m>>2]|0);c[m>>2]=0}c[b+52>>2]=1;c[b+56>>2]=1;n=0;return n|0}function da(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;b=E;E=E+16|0;d=b+4|0;e=b;f=a+84|0;g=a+100|0;h=c[g>>2]|0;i=a+88|0;j=a+76|0;k=a+40|0;l=a+24|0;m=a+16|0;n=a+4|0;a:while(1){if(!(c[i>>2]|0)){if(c[j>>2]|0){o=-1;p=27;break}if(c[k>>2]|0){p=12;break}q=c[l>>2]|0;r=c[m>>2]|0;c[i>>2]=0;s=0;while(1){t=Xa(c[n>>2]|0,q+s|0,r-s|0)|0;if((t|0)<1){p=8;break}u=(c[i>>2]|0)+t|0;c[i>>2]=u;if(u>>>0<r>>>0)s=u;else{v=u;break}}if((p|0)==8){p=0;if((t|0)<0){p=10;break}c[k>>2]=1;v=c[i>>2]|0}c[f>>2]=c[l>>2];if(!v){p=12;break}}w=na(f,0)|0;switch(w|0){case 2:case -2:{p=14;break a;break}case -4:{p=15;break a;break}case -3:{p=16;break a;break}default:{}}x=c[g>>2]|0;if(!((w|0)!=1&(x|0)!=0)){p=18;break}}if((p|0)==10){aa(a,-1,Sa(c[(Ea()|0)>>2]|0)|0);o=-1;E=b;return o|0}else if((p|0)==12){aa(a,-3,15747);o=-1;E=b;return o|0}else if((p|0)==14){aa(a,-2,15770);o=-1;E=b;return o|0}else if((p|0)==15){aa(a,-4,15907);o=-1;E=b;return o|0}else if((p|0)==16){g=c[a+108>>2]|0;aa(a,-3,(g|0)==0?15809:g);o=-1;E=b;return o|0}else if((p|0)==18){g=h-x|0;c[a+36>>2]=g;x=(c[a+96>>2]|0)+(0-g)|0;c[a+32>>2]=x;h=a+132|0;c[h>>2]=P(c[h>>2]|0,x,g)|0;if((w|0)!=1){o=0;E=b;return o|0}if((ea(a,d)|0)!=-1?(ea(a,e)|0)!=-1:0){if((c[d>>2]|0)!=(c[h>>2]|0)){aa(a,-3,16344);o=-1;E=b;return o|0}if((c[e>>2]|0)==(c[a+104>>2]|0)){c[a+52>>2]=0;o=0;E=b;return o|0}else{aa(a,-3,16365);o=-1;E=b;return o|0}}aa(a,-3,15747);o=-1;E=b;return o|0}else if((p|0)==27){E=b;return o|0}return 0}function ea(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;e=a+84|0;f=a+88|0;g=c[f>>2]|0;a:do if(!g){h=a+76|0;if(!(c[h>>2]|0)){i=a+40|0;if(!(c[i>>2]|0)){j=a+24|0;k=c[j>>2]|0;l=c[a+16>>2]|0;c[f>>2]=0;m=a+4|0;n=0;while(1){o=Xa(c[m>>2]|0,k+n|0,l-n|0)|0;if((o|0)<1){p=7;break}q=(c[f>>2]|0)+o|0;c[f>>2]=q;if(q>>>0<l>>>0)n=q;else{r=q;break}}do if((p|0)==7)if((o|0)<0){aa(a,-1,Sa(c[(Ea()|0)>>2]|0)|0);s=-1;t=c[f>>2]|0;p=12;break a}else{c[i>>2]=1;r=c[f>>2]|0;break}while(0);c[e>>2]=c[j>>2];if(r){u=r;p=11}else{v=h;w=-1;p=14}}else{v=h;w=-1;p=14}}else{x=-1;p=13}}else{u=g;p=11}while(0);if((p|0)==11){g=u+-1|0;c[f>>2]=g;u=c[e>>2]|0;c[e>>2]=u+1;s=d[u>>0]|0;t=g;p=12}if((p|0)==12)if(!t){x=s;p=13}else{y=s;z=t;p=25}if((p|0)==13){v=a+76|0;w=x;p=14}b:do if((p|0)==14){if(c[v>>2]|0){A=w+-256|0;p=27;break}x=a+40|0;if(!(c[x>>2]|0)){t=a+24|0;s=c[t>>2]|0;g=c[a+16>>2]|0;c[f>>2]=0;u=a+4|0;r=0;while(1){B=Xa(c[u>>2]|0,s+r|0,g-r|0)|0;if((B|0)<1){p=20;break}o=(c[f>>2]|0)+B|0;c[f>>2]=o;if(o>>>0<g>>>0)r=o;else{C=o;break}}do if((p|0)==20)if((B|0)<0){aa(a,-1,Sa(c[(Ea()|0)>>2]|0)|0);D=w;E=-256;F=c[f>>2]|0;p=26;break b}else{c[x>>2]=1;C=c[f>>2]|0;break}while(0);c[e>>2]=c[t>>2];if(C|0){y=w;z=C;p=25;break}}G=v;H=w+-256|0;p=28}while(0);if((p|0)==25){w=z+-1|0;c[f>>2]=w;z=c[e>>2]|0;c[e>>2]=z+1;D=y;E=(d[z>>0]|0)<<8;F=w;p=26}if((p|0)==26){w=E+D|0;if(!F){A=w;p=27}else{I=F;J=w;p=39}}if((p|0)==27){G=a+76|0;H=A;p=28}c:do if((p|0)==28){if(c[G>>2]|0){K=H+-65536|0;p=41;break}A=a+40|0;if(!(c[A>>2]|0)){w=a+24|0;F=c[w>>2]|0;D=c[a+16>>2]|0;c[f>>2]=0;E=a+4|0;z=0;while(1){L=Xa(c[E>>2]|0,F+z|0,D-z|0)|0;if((L|0)<1){p=34;break}y=(c[f>>2]|0)+L|0;c[f>>2]=y;if(y>>>0<D>>>0)z=y;else{M=y;break}}do if((p|0)==34)if((L|0)<0){aa(a,-1,Sa(c[(Ea()|0)>>2]|0)|0);N=H;O=-65536;P=c[f>>2]|0;p=40;break c}else{c[A>>2]=1;M=c[f>>2]|0;break}while(0);c[e>>2]=c[w>>2];if(M|0){I=M;J=H;p=39;break}}Q=G;R=H+-65536|0;p=42}while(0);if((p|0)==39){H=I+-1|0;c[f>>2]=H;I=c[e>>2]|0;c[e>>2]=I+1;N=J;O=(d[I>>0]|0)<<16;P=H;p=40}if((p|0)==40){H=O+N|0;if(!P){K=H;p=41}else{S=P;T=H}}if((p|0)==41){Q=a+76|0;R=K;p=42}if((p|0)==42){if(c[Q>>2]|0){U=-1;return U|0}Q=a+40|0;if(c[Q>>2]|0){U=-1;return U|0}K=a+24|0;H=c[K>>2]|0;P=c[a+16>>2]|0;c[f>>2]=0;N=a+4|0;O=0;while(1){V=Xa(c[N>>2]|0,H+O|0,P-O|0)|0;if((V|0)<1){p=47;break}I=(c[f>>2]|0)+V|0;c[f>>2]=I;if(I>>>0<P>>>0)O=I;else{W=I;break}}do if((p|0)==47){if((V|0)>=0){c[Q>>2]=1;W=c[f>>2]|0;break}aa(a,-1,Sa(c[(Ea()|0)>>2]|0)|0);U=-1;return U|0}while(0);c[e>>2]=c[K>>2];if(!W){U=-1;return U|0}else{S=W;T=R}}c[f>>2]=S+-1;S=c[e>>2]|0;c[e>>2]=S+1;c[b>>2]=((d[S>>0]|0)<<24)+T;U=0;return U|0}function fa(a){a=a|0;var b=0,d=0;if(!a){b=-2;return b|0}if((c[a>>2]|0)!=7247){b=-2;return b|0}if(c[a+16>>2]|0){pa(a+84|0)|0;Ca(c[a+28>>2]|0);Ca(c[a+24>>2]|0)}aa(a,0,0);Ca(c[a+8>>2]|0);d=Pa(c[a+4>>2]|0)|0;Ca(a);b=((d|0)!=0)<<31>>31;return b|0}function ga(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!a){e=0;return e|0}f=a+84|0;if((c[a>>2]|0)!=31153){e=0;return e|0}if(c[a+76>>2]|0){e=0;return e|0}if((d|0)<0){aa(a,-5,15831);e=0;return e|0}if(!d){e=0;return e|0}g=a+16|0;if((c[g>>2]|0)==0?(ha(a)|0)==-1:0){e=0;return e|0}h=a+72|0;a:do if(c[h>>2]|0){c[h>>2]=0;i=c[a+68>>2]|0;j=a+88|0;if(c[j>>2]|0?(ia(a,0)|0)==-1:0){e=0;return e|0}if(!i)k=j;else{l=a+24|0;m=a+12|0;n=i;i=0;while(1){o=c[g>>2]|0;p=(o|0)<0|(o|0)>(n|0)?n:o;if(!i)_a(c[l>>2]|0,0,p|0)|0;c[j>>2]=p;c[f>>2]=c[l>>2];c[m>>2]=(c[m>>2]|0)+p;n=n-p|0;if((ia(a,0)|0)==-1){e=0;break}if(!n){k=j;break a}else i=1}return e|0}}else k=a+88|0;while(0);b:do if((c[g>>2]|0)>>>0<=d>>>0){if(c[k>>2]|0?(ia(a,0)|0)==-1:0){e=0;return e|0}c[k>>2]=d;c[f>>2]=b;h=a+12|0;c[h>>2]=(c[h>>2]|0)+d;if((ia(a,0)|0)==-1){e=0;return e|0}}else{h=a+24|0;i=a+12|0;j=b;n=d;while(1){m=c[k>>2]|0;if(!m){l=c[h>>2]|0;c[f>>2]=l;q=l}else q=c[f>>2]|0;l=(c[g>>2]|0)-m|0;p=l>>>0>n>>>0?n:l;Za(q+m|0,j|0,p|0)|0;c[k>>2]=(c[k>>2]|0)+p;c[i>>2]=(c[i>>2]|0)+p;n=n-p|0;if(!n)break b;if((ia(a,0)|0)==-1){e=0;break}else j=j+p|0}return e|0}while(0);e=d;return e|0}function ha(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=a+20|0;d=c[b>>2]|0;e=Ba(d)|0;f=a+24|0;c[f>>2]=e;g=Ba(d)|0;d=a+28|0;c[d>>2]=g;h=(g|0)==0;if(!((e|0)==0|h)){c[a+116>>2]=0;c[a+120>>2]=0;c[a+124>>2]=0;if(!(Q(a+84|0,c[a+60>>2]|0,8,31,8,c[a+64>>2]|0,15921,56)|0)){i=c[b>>2]|0;c[a+16>>2]=i;c[a+100>>2]=i;i=c[d>>2]|0;c[a+96>>2]=i;c[a+32>>2]=i;j=0;return j|0}else{Ca(c[f>>2]|0);aa(a,-4,15907);j=-1;return j|0}}if(h)k=e;else{Ca(g);k=c[f>>2]|0}if(k|0)Ca(k);aa(a,-4,15907);j=-1;return j|0}function ia(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=a+84|0;e=a+16|0;if((c[e>>2]|0)==0?(ha(a)|0)==-1:0){f=-1;return f|0}g=a+100|0;h=a+96|0;i=a+32|0;j=a+4|0;k=a+28|0;a:do switch(b|0){case 0:{l=c[g>>2]|0;while(1){if(!l){m=c[i>>2]|0;n=(c[h>>2]|0)-m|0;if(n){o=Wa(c[j>>2]|0,m,n)|0;if(!((o|0)>-1&(o|0)==(n|0))){p=27;break a}n=c[g>>2]|0;if(n){q=c[h>>2]|0;r=n}else p=11}else p=11;if((p|0)==11){p=0;n=c[e>>2]|0;c[g>>2]=n;o=c[k>>2]|0;c[h>>2]=o;q=o;r=n}c[i>>2]=q;s=r}else s=l;if((Y(d,0)|0)==-2){p=33;break a}l=c[g>>2]|0;if((s|0)==(l|0)){p=35;break}}break}case 4:{l=0;n=c[g>>2]|0;while(1){if((n|0)==0|(l|0)==1){o=c[i>>2]|0;m=(c[h>>2]|0)-o|0;if(!m)t=n;else{u=Wa(c[j>>2]|0,o,m)|0;if(!((u|0)>-1&(u|0)==(m|0))){p=27;break a}t=c[g>>2]|0}if(!t){m=c[e>>2]|0;c[g>>2]=m;u=c[k>>2]|0;c[h>>2]=u;v=u;w=m}else{v=c[h>>2]|0;w=t}c[i>>2]=v;x=w}else x=n;l=Y(d,4)|0;if((l|0)==-2){p=33;break a}n=c[g>>2]|0;if((x|0)==(n|0)){p=35;break}}break}default:while(1){n=c[i>>2]|0;l=(c[h>>2]|0)-n|0;if(l|0?(m=Wa(c[j>>2]|0,n,l)|0,!((m|0)>-1&(m|0)==(l|0))):0){p=27;break a}l=c[g>>2]|0;if(!l){m=c[e>>2]|0;c[g>>2]=m;n=c[k>>2]|0;c[h>>2]=n;y=n;z=m}else{y=c[h>>2]|0;z=l}c[i>>2]=y;if((Y(d,b)|0)==-2){p=33;break a}if((z|0)==(c[g>>2]|0)){p=35;break}}}while(0);if((p|0)==27){aa(a,-1,Sa(c[(Ea()|0)>>2]|0)|0);f=-1;return f|0}else if((p|0)==33){aa(a,-2,15868);f=-1;return f|0}else if((p|0)==35){if((b|0)!=4){f=0;return f|0}S(d)|0;f=0;return f|0}return 0}function ja(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(!a){b=-2;return b|0}if((c[a>>2]|0)!=31153){b=-2;return b|0}d=a+72|0;a:do if(c[d>>2]|0){c[d>>2]=0;e=c[a+68>>2]|0;f=a+84|0;g=a+88|0;if(c[g>>2]|0?(ia(a,0)|0)==-1:0){h=-1;i=f;break}if(!e){h=0;i=f}else{j=a+16|0;k=a+24|0;l=a+12|0;m=e;e=0;while(1){n=c[j>>2]|0;o=(n|0)<0|(n|0)>(m|0)?m:n;if(!e)_a(c[k>>2]|0,0,o|0)|0;c[g>>2]=o;c[f>>2]=c[k>>2];c[l>>2]=(c[l>>2]|0)+o;m=m-o|0;if((ia(a,0)|0)==-1){h=-1;i=f;break a}if(!m){h=0;i=f;break}else e=1}}}else{h=0;i=a+84|0}while(0);d=(ia(a,4)|0)+h|0;R(i)|0;Ca(c[a+28>>2]|0);Ca(c[a+24>>2]|0);aa(a,0,0);Ca(c[a+8>>2]|0);i=Pa(c[a+4>>2]|0)|0;Ca(a);b=((d|0)!=(0-i|0))<<31>>31;return b|0}function ka(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0;g=c[e+28>>2]|0;h=(c[e>>2]|0)+-1|0;i=e+4|0;j=h+((c[i>>2]|0)+-5)|0;k=e+12|0;l=(c[k>>2]|0)+-1|0;m=e+16|0;n=c[m>>2]|0;o=l+(n+-257)|0;p=c[g+40>>2]|0;q=c[g+44>>2]|0;r=c[g+48>>2]|0;s=g+56|0;t=g+60|0;u=c[g+76>>2]|0;v=c[g+80>>2]|0;w=(1<<c[g+84>>2])+-1|0;x=(1<<c[g+88>>2])+-1|0;y=l+(n-f)|0;f=g+7104|0;n=(c[g+52>>2]|0)+-1|0;z=(r|0)==0;A=r+p|0;B=y-r|0;C=h;h=l;l=c[s>>2]|0;D=c[t>>2]|0;a:while(1){if(D>>>0<15){E=C+2|0;F=E;G=((d[C+1>>0]|0)<<D)+l+((d[E>>0]|0)<<D+8)|0;H=D+16|0}else{F=C;G=l;H=D}E=G&w;I=a[u+(E<<2)>>0]|0;J=b[u+(E<<2)+2>>1]|0;K=d[u+(E<<2)+1>>0]|0;E=G>>>K;L=H-K|0;do if(I<<24>>24){K=J;M=I&255;N=L;O=E;while(1){if(M&16|0)break;if(M&64|0){P=56;break a}Q=(O&(1<<M)+-1)+(K&65535)|0;R=a[u+(Q<<2)>>0]|0;S=b[u+(Q<<2)+2>>1]|0;T=d[u+(Q<<2)+1>>0]|0;U=O>>>T;V=N-T|0;if(!(R<<24>>24)){P=6;break}else{K=S;M=R&255;N=V;O=U}}if((P|0)==6){P=0;W=V;X=U;Y=S&255;P=7;break}R=K&65535;T=M&15;if(!T){Z=R;_=F;$=O;aa=N}else{Q=F+1|0;if(N>>>0<T>>>0){ba=Q;ca=((d[Q>>0]|0)<<N)+O|0;da=N+8|0}else{ba=F;ca=O;da=N}Z=(ca&(1<<T)+-1)+R|0;_=ba;$=ca>>>T;aa=da-T|0}if(aa>>>0<15){T=_+2|0;ea=T;fa=((d[_+1>>0]|0)<<aa)+$+((d[T>>0]|0)<<aa+8)|0;ga=aa+16|0}else{ea=_;fa=$;ga=aa}T=fa&x;R=b[v+(T<<2)+2>>1]|0;Q=d[v+(T<<2)+1>>0]|0;ha=fa>>>Q;ia=ga-Q|0;Q=d[v+(T<<2)>>0]|0;if(!(Q&16)){T=R;ja=Q;ka=ha;la=ia;do{if(ja&64|0){ma=ea;na=ka;oa=la;pa=16292;P=58;break a}qa=(ka&(1<<ja)+-1)+(T&65535)|0;ra=a[v+(qa<<2)>>0]|0;T=b[v+(qa<<2)+2>>1]|0;sa=d[v+(qa<<2)+1>>0]|0;ka=ka>>>sa;la=la-sa|0;ja=ra&255}while(!(ja&16|0));ta=ra&255;ua=la;va=ka;wa=T}else{ta=Q;ua=ia;va=ha;wa=R}ja=wa&65535;K=ta&15;if(ua>>>0<K>>>0){sa=ea+1|0;qa=((d[sa>>0]|0)<<ua)+va|0;xa=ua+8|0;ya=ea+2|0;if(xa>>>0<K>>>0){za=ya;Aa=((d[ya>>0]|0)<<xa)+qa|0;Ba=ua+16|0}else{za=sa;Aa=qa;Ba=xa}}else{za=ea;Aa=va;Ba=ua}xa=(Aa&(1<<K)+-1)+ja|0;ja=Aa>>>K;qa=Ba-K|0;K=h;sa=K-y|0;if(xa>>>0<=sa>>>0){ya=Z;Ca=h+(0-xa)|0;Da=h;while(1){a[Da+1>>0]=a[Ca+1>>0]|0;a[Da+2>>0]=a[Ca+2>>0]|0;Ea=Ca+3|0;Fa=Da+3|0;a[Fa>>0]=a[Ea>>0]|0;ya=ya+-3|0;if(ya>>>0<=2)break;else{Ca=Ea;Da=Fa}}if(!ya){Ga=za;Ha=Fa;Ia=ja;Ja=qa;break}R=Da+4|0;a[R>>0]=a[Ca+4>>0]|0;if((ya|0)==1){Ga=za;Ha=R;Ia=ja;Ja=qa;break}R=Da+5|0;a[R>>0]=a[Ca+5>>0]|0;Ga=za;Ha=R;Ia=ja;Ja=qa;break}R=xa-sa|0;if(R>>>0>q>>>0?c[f>>2]|0:0){ma=za;na=ja;oa=qa;pa=16314;P=58;break a}do if(z){ha=n+(p-R)|0;if(Z>>>0>R>>>0){ia=Z-R|0;Q=xa-K|0;T=ha;ka=R;la=h;do{T=T+1|0;la=la+1|0;a[la>>0]=a[T>>0]|0;ka=ka+-1|0}while((ka|0)!=0);ka=h+y+Q|0;Ka=ia;La=ka+(0-xa)|0;Ma=ka}else{Ka=Z;La=ha;Ma=h}}else{if(r>>>0>=R>>>0){ka=n+(r-R)|0;if(Z>>>0<=R>>>0){Ka=Z;La=ka;Ma=h;break}T=Z-R|0;la=xa-K|0;Ea=ka;ka=R;Na=h;do{Ea=Ea+1|0;Na=Na+1|0;a[Na>>0]=a[Ea>>0]|0;ka=ka+-1|0}while((ka|0)!=0);ka=h+y+la|0;Ka=T;La=ka+(0-xa)|0;Ma=ka;break}ka=n+(A-R)|0;Ea=R-r|0;if(Z>>>0>Ea>>>0){Na=Z-Ea|0;ha=xa-K|0;ia=ka;Q=Ea;Ea=h;do{ia=ia+1|0;Ea=Ea+1|0;a[Ea>>0]=a[ia>>0]|0;Q=Q+-1|0}while((Q|0)!=0);Q=h+B+ha|0;if(Na>>>0>r>>>0){ia=h+y|0;Ea=n;T=r;la=Q;do{Ea=Ea+1|0;la=la+1|0;a[la>>0]=a[Ea>>0]|0;T=T+-1|0}while((T|0)!=0);T=ia+ha|0;Ka=Na-r|0;La=T+(0-xa)|0;Ma=T}else{Ka=Na;La=n;Ma=Q}}else{Ka=Z;La=ka;Ma=h}}while(0);if(Ka>>>0>2){xa=Ka;K=La;R=Ma;while(1){a[R+1>>0]=a[K+1>>0]|0;a[R+2>>0]=a[K+2>>0]|0;sa=K+3|0;Ca=R+3|0;a[Ca>>0]=a[sa>>0]|0;Da=xa+-3|0;if(Da>>>0>2){xa=Da;K=sa;R=Ca}else{Oa=Da;Pa=sa;Qa=Ca;break}}}else{Oa=Ka;Pa=La;Qa=Ma}if(Oa){R=Qa+1|0;a[R>>0]=a[Pa+1>>0]|0;if((Oa|0)==1){Ga=za;Ha=R;Ia=ja;Ja=qa}else{R=Qa+2|0;a[R>>0]=a[Pa+2>>0]|0;Ga=za;Ha=R;Ia=ja;Ja=qa}}else{Ga=za;Ha=Qa;Ia=ja;Ja=qa}}else{W=L;X=E;Y=J&255;P=7}while(0);if((P|0)==7){P=0;J=h+1|0;a[J>>0]=Y;Ga=F;Ha=J;Ia=X;Ja=W}if(Ha>>>0<o>>>0&Ga>>>0<j>>>0){C=Ga;h=Ha;l=Ia;D=Ja}else{Ra=Ga;Sa=Ha;Ta=Ia;Ua=Ja;P=60;break}}if((P|0)==56)if(!(M&32)){ma=F;na=O;oa=N;pa=16264;P=58}else{Va=F;Wa=O;Xa=N;Ya=11}else if((P|0)==60){Za=Ua>>>3;_a=0-Za|0;$a=Ra+_a|0;ab=Ua&7;bb=1<<ab;cb=bb+-1|0;db=cb&Ta;eb=$a+1|0;c[e>>2]=eb;fb=Sa+1|0;c[k>>2]=fb;gb=j;hb=$a;ib=gb+5|0;jb=ib-hb|0;c[i>>2]=jb;kb=o;lb=Sa;mb=kb+257|0;nb=mb-lb|0;c[m>>2]=nb;c[s>>2]=db;c[t>>2]=ab;return}if((P|0)==58){c[e+24>>2]=pa;Va=ma;Wa=na;Xa=oa;Ya=29}c[g>>2]=Ya;Ra=Va;Sa=h;Ta=Wa;Ua=Xa;Za=Ua>>>3;_a=0-Za|0;$a=Ra+_a|0;ab=Ua&7;bb=1<<ab;cb=bb+-1|0;db=cb&Ta;eb=$a+1|0;c[e>>2]=eb;fb=Sa+1|0;c[k>>2]=fb;gb=j;hb=$a;ib=gb+5|0;jb=ib-hb|0;c[i>>2]=jb;kb=o;lb=Sa;mb=kb+257|0;nb=mb-lb|0;c[m>>2]=nb;c[s>>2]=db;c[t>>2]=ab;return}function la(a){a=a|0;var b=0,d=0;if(!a){b=-2;return b|0}d=c[a+28>>2]|0;if(!d){b=-2;return b|0}c[d+28>>2]=0;c[a+20>>2]=0;c[a+8>>2]=0;c[a+24>>2]=0;c[a+48>>2]=1;c[d>>2]=0;c[d+4>>2]=0;c[d+12>>2]=0;c[d+20>>2]=32768;c[d+32>>2]=0;c[d+40>>2]=0;c[d+44>>2]=0;c[d+48>>2]=0;c[d+56>>2]=0;c[d+60>>2]=0;a=d+1328|0;c[d+108>>2]=a;c[d+80>>2]=a;c[d+76>>2]=a;c[d+7104>>2]=1;c[d+7108>>2]=-1;b=0;return b|0}function ma(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;if(!e){g=-6;return g|0}if((f|0)!=56|(a[e>>0]|0)!=49){g=-6;return g|0}if(!b){g=-2;return g|0}e=b+24|0;c[e>>2]=0;f=b+32|0;h=c[f>>2]|0;if(!h){c[f>>2]=1;c[b+40>>2]=0;i=1}else i=h;h=b+36|0;if(!(c[h>>2]|0))c[h>>2]=1;f=b+40|0;j=I[i&1](c[f>>2]|0,1,7116)|0;if(!j){g=-4;return g|0}i=b+28|0;c[i>>2]=j;c[j+52>>2]=0;if((d|0)<0){k=0;l=0-d|0}else{k=(d>>>4)+1|0;l=(d|0)<48?d&15:d}if((l|0)==0|(l&-8|0)==8){c[j+8>>2]=k;c[j+36>>2]=l;c[j+28>>2]=0;c[b+20>>2]=0;c[b+8>>2]=0;c[e>>2]=0;c[b+48>>2]=1;c[j>>2]=0;c[j+4>>2]=0;c[j+12>>2]=0;c[j+20>>2]=32768;c[j+32>>2]=0;c[j+40>>2]=0;c[j+44>>2]=0;c[j+48>>2]=0;c[j+56>>2]=0;c[j+60>>2]=0;b=j+1328|0;c[j+108>>2]=b;c[j+80>>2]=b;c[j+76>>2]=b;c[j+7104>>2]=1;c[j+7108>>2]=-1;g=0;return g|0}else{J[c[h>>2]&1](c[f>>2]|0,j);c[i>>2]=0;g=-2;return g|0}return 0}function na(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,la=0,ma=0,na=0,pa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Rd=0,Sd=0,Td=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,ae=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,$e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0,Af=0,Bf=0,Cf=0,Df=0,Ef=0,Ff=0,Gf=0,Hf=0,If=0,Jf=0,Kf=0,Lf=0,Mf=0,Nf=0,Of=0,Pf=0,Qf=0,Rf=0,Sf=0,Tf=0,Uf=0,Vf=0,Wf=0,Xf=0,Yf=0,Zf=0,_f=0,$f=0,ag=0,bg=0,cg=0,dg=0,eg=0,fg=0,gg=0,hg=0,ig=0,jg=0,kg=0,lg=0,mg=0,ng=0,og=0,pg=0,qg=0,rg=0,sg=0,tg=0,ug=0,vg=0,wg=0,xg=0,yg=0,zg=0,Ag=0,Bg=0,Cg=0,Dg=0,Eg=0,Fg=0,Gg=0,Hg=0;h=E;E=E+16|0;i=h;if(!f){j=-2;E=h;return j|0}k=c[f+28>>2]|0;if(!k){j=-2;E=h;return j|0}l=f+12|0;m=c[l>>2]|0;if(!m){j=-2;E=h;return j|0}n=c[f>>2]|0;if((n|0)==0?c[f+4>>2]|0:0){j=-2;E=h;return j|0}o=c[k>>2]|0;if((o|0)==11){c[k>>2]=12;p=12}else p=o;o=f+16|0;q=c[o>>2]|0;r=f+4|0;s=c[r>>2]|0;t=k+56|0;u=k+60|0;v=k+8|0;w=k+16|0;x=k+12|0;y=(g+-5|0)>>>0<2;z=k+4|0;A=k+64|0;B=k+104|0;C=k+92|0;D=k+96|0;F=k+100|0;G=k+72|0;H=k+80|0;I=k+88|0;J=k+32|0;K=k+24|0;L=f+48|0;M=k+76|0;N=k+84|0;Q=k+7108|0;R=k+7112|0;S=k+68|0;T=f+24|0;U=(g|0)==6;V=k+1328|0;W=k+108|0;X=k+112|0;Y=k+752|0;Z=k+624|0;_=k+44|0;$=f+20|0;aa=k+28|0;ba=i+1|0;ca=i+2|0;da=i+3|0;ea=k+7104|0;fa=k+48|0;ga=k+52|0;ha=k+40|0;ia=k+36|0;ja=k+20|0;la=0;ma=s;na=m;m=n;n=q;pa=c[u>>2]|0;ra=c[t>>2]|0;sa=q;q=p;a:while(1){b:do switch(q|0){case 28:{ta=sa;ua=pa;va=ra;wa=ma;xa=m;ya=1;za=312;break a;break}case 29:{Aa=sa;Ba=n;Ca=pa;Da=ra;Ea=ma;Fa=m;Ga=-3;break a;break}case 30:{za=324;break a;break}case 0:{p=c[v>>2]|0;if(!p){c[k>>2]=12;Ha=sa;Ia=na;Ja=n;Ka=pa;La=ra;Ma=ma;Na=m;Oa=la;break b}if(pa>>>0<16){Pa=ma;Qa=m;Ra=pa;Sa=ra;while(1){if(!Pa){Aa=sa;Ba=n;Ca=Ra;Da=Sa;Ea=0;Fa=Qa;Ga=la;break a}Ta=Pa+-1|0;Ua=Qa+1|0;Va=(d[Qa>>0]<<Ra)+Sa|0;Wa=Ra+8|0;if(Wa>>>0<16){Pa=Ta;Qa=Ua;Ra=Wa;Sa=Va}else{Xa=Ta;_a=Ua;$a=Wa;ab=Va;break}}}else{Xa=ma;_a=m;$a=pa;ab=ra}if((p&2|0)!=0&(ab|0)==35615){Sa=P(0,0,0)|0;c[K>>2]=Sa;a[i>>0]=31;a[ba>>0]=-117;c[K>>2]=P(Sa,i,2)|0;c[k>>2]=1;Ha=sa;Ia=na;Ja=n;Ka=0;La=0;Ma=Xa;Na=_a;Oa=la;break b}c[w>>2]=0;Sa=c[J>>2]|0;if(Sa|0)c[Sa+48>>2]=-1;if(p&1|0?((((ab<<8&65280)+(ab>>>8)|0)>>>0)%31|0|0)==0:0){if((ab&15|0)!=8){c[T>>2]=15950;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=$a;La=ab;Ma=Xa;Na=_a;Oa=la;break b}Sa=ab>>>4;Ra=$a+-4|0;Qa=Sa&15;Pa=Qa+8|0;Va=c[ia>>2]|0;if(Va){if(Pa>>>0>Va>>>0){c[T>>2]=15977;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=Ra;La=Sa;Ma=Xa;Na=_a;Oa=la;break b}}else c[ia>>2]=Pa;c[ja>>2]=256<<Qa;Qa=O(0,0,0)|0;c[K>>2]=Qa;c[L>>2]=Qa;c[k>>2]=ab>>>12&2^11;Ha=sa;Ia=na;Ja=n;Ka=0;La=0;Ma=Xa;Na=_a;Oa=la;break b}c[T>>2]=15927;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=$a;La=ab;Ma=Xa;Na=_a;Oa=la;break}case 1:{if(pa>>>0<16){Qa=ma;Pa=m;Sa=pa;Ra=ra;while(1){if(!Qa){Aa=sa;Ba=n;Ca=Sa;Da=Ra;Ea=0;Fa=Pa;Ga=la;break a}Va=Qa+-1|0;Wa=Pa+1|0;Ua=(d[Pa>>0]<<Sa)+Ra|0;Ta=Sa+8|0;if(Ta>>>0<16){Qa=Va;Pa=Wa;Sa=Ta;Ra=Ua}else{bb=Va;cb=Wa;db=Ta;eb=Ua;break}}}else{bb=ma;cb=m;db=pa;eb=ra}c[w>>2]=eb;if((eb&255|0)!=8){c[T>>2]=15950;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=db;La=eb;Ma=bb;Na=cb;Oa=la;break b}if(eb&57344|0){c[T>>2]=15997;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=db;La=eb;Ma=bb;Na=cb;Oa=la;break b}Ra=c[J>>2]|0;if(Ra|0)c[Ra>>2]=eb>>>8&1;if(eb&512|0){a[i>>0]=eb;a[ba>>0]=eb>>>8;c[K>>2]=P(c[K>>2]|0,i,2)|0}c[k>>2]=2;fb=bb;gb=cb;hb=0;ib=0;za=47;break}case 2:{if(pa>>>0<32){fb=ma;gb=m;hb=pa;ib=ra;za=47}else{jb=ma;kb=m;lb=ra;za=50}break}case 3:{if(pa>>>0<16){mb=ma;nb=m;ob=pa;pb=ra;za=56}else{qb=ma;rb=m;sb=ra;za=59}break}case 4:{tb=ma;ub=m;vb=pa;wb=ra;za=64;break}case 5:{xb=ma;yb=m;zb=pa;Ab=ra;za=76;break}case 6:{Bb=pa;Cb=ra;Db=ma;Eb=m;za=86;break}case 7:{Fb=pa;Gb=ra;Hb=ma;Ib=m;za=100;break}case 8:{Jb=pa;Kb=ra;Lb=ma;Mb=m;za=114;break}case 9:{if(pa>>>0<32){Ra=pa;Sa=ra;Pa=ma;Qa=m;while(1){if(!Pa){Aa=sa;Ba=n;Ca=Ra;Da=Sa;Ea=0;Fa=Qa;Ga=la;break a}p=Pa+-1|0;Ua=Qa+1|0;Ta=(d[Qa>>0]<<Ra)+Sa|0;Ra=Ra+8|0;if(Ra>>>0>=32){Nb=Ta;Ob=p;Pb=Ua;break}else{Sa=Ta;Pa=p;Qa=Ua}}}else{Nb=ra;Ob=ma;Pb=m}Qa=Ya(Nb|0)|0;c[K>>2]=Qa;c[L>>2]=Qa;c[k>>2]=10;Qb=0;Rb=0;Sb=Ob;Tb=Pb;za=129;break}case 10:{Qb=pa;Rb=ra;Sb=ma;Tb=m;za=129;break}case 11:{Ub=pa;Vb=ra;Wb=ma;Xb=m;za=132;break}case 12:{Yb=pa;Zb=ra;_b=ma;$b=m;za=133;break}case 13:{Qa=pa&7;Pa=ra>>>Qa;Sa=pa-Qa|0;if(Sa>>>0<32){Qa=Sa;Ra=Pa;Ua=ma;p=m;while(1){if(!Ua){Aa=sa;Ba=n;Ca=Qa;Da=Ra;Ea=0;Fa=p;Ga=la;break a}Ta=Ua+-1|0;Wa=p+1|0;Va=(d[p>>0]<<Qa)+Ra|0;ac=Qa+8|0;if(ac>>>0<32){Qa=ac;Ra=Va;Ua=Ta;p=Wa}else{bc=ac;cc=Va;dc=Ta;ec=Wa;break}}}else{bc=Sa;cc=Pa;dc=ma;ec=m}p=cc&65535;if((p|0)==(cc>>>16^65535|0)){c[A>>2]=p;c[k>>2]=14;if(U){ta=sa;ua=0;va=0;wa=dc;xa=ec;ya=la;za=312;break a}else{fc=0;gc=0;hc=dc;ic=ec;za=153;break b}}else{c[T>>2]=16061;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=bc;La=cc;Ma=dc;Na=ec;Oa=la;break b}break}case 14:{fc=pa;gc=ra;hc=ma;ic=m;za=153;break}case 15:{jc=pa;kc=ra;lc=ma;mc=m;za=154;break}case 16:{if(pa>>>0<14){p=pa;Ua=ra;Ra=ma;Qa=m;while(1){if(!Ra){Aa=sa;Ba=n;Ca=p;Da=Ua;Ea=0;Fa=Qa;Ga=la;break a}Wa=Ra+-1|0;Ta=Qa+1|0;Va=(d[Qa>>0]<<p)+Ua|0;ac=p+8|0;if(ac>>>0<14){p=ac;Ua=Va;Ra=Wa;Qa=Ta}else{nc=ac;oc=Va;pc=Wa;qc=Ta;break}}}else{nc=pa;oc=ra;pc=ma;qc=m}Qa=(oc&31)+257|0;c[D>>2]=Qa;Ra=oc>>>5&31;c[F>>2]=Ra+1;Ua=(oc>>>10&15)+4|0;c[C>>2]=Ua;p=oc>>>14;Pa=nc+-14|0;if(Qa>>>0>286|Ra>>>0>29){c[T>>2]=16090;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=Pa;La=p;Ma=pc;Na=qc;Oa=la;break b}else{c[B>>2]=0;c[k>>2]=17;rc=Pa;sc=p;tc=pc;uc=qc;vc=Ua;wc=0;za=166;break b}break}case 17:{Ua=c[B>>2]|0;p=c[C>>2]|0;if(Ua>>>0<p>>>0){rc=pa;sc=ra;tc=ma;uc=m;vc=p;wc=Ua;za=166}else{xc=pa;yc=ra;zc=ma;Ac=m;Bc=Ua;za=171}break}case 18:{Cc=la;Dc=pa;Ec=ra;Fc=ma;Gc=m;Hc=c[B>>2]|0;za=178;break}case 19:{Ic=la;Jc=pa;Kc=ra;Lc=ma;Mc=m;za=222;break}case 20:{Nc=la;Oc=pa;Pc=ra;Qc=ma;Rc=m;za=223;break}case 21:{Sc=la;Tc=pa;Uc=ra;Vc=ma;Wc=m;Xc=c[G>>2]|0;za=243;break}case 22:{Yc=pa;Zc=ra;_c=la;$c=ma;ad=m;za=251;break}case 23:{bd=pa;cd=ra;dd=ma;ed=m;fd=la;gd=c[G>>2]|0;za=265;break}case 24:{hd=pa;id=ra;jd=ma;kd=m;ld=la;za=272;break}case 25:{if(!sa){ta=0;ua=pa;va=ra;wa=ma;xa=m;ya=la;za=312;break a}a[na>>0]=c[A>>2];c[k>>2]=20;Ha=sa+-1|0;Ia=na+1|0;Ja=n;Ka=pa;La=ra;Ma=ma;Na=m;Oa=la;break}case 26:{if(c[v>>2]|0){if(pa>>>0<32){Ua=pa;p=ra;Pa=ma;Ra=m;while(1){if(!Pa){Aa=sa;Ba=n;Ca=Ua;Da=p;Ea=0;Fa=Ra;Ga=la;break a}Qa=Pa+-1|0;Sa=Ra+1|0;Ta=(d[Ra>>0]<<Ua)+p|0;Wa=Ua+8|0;if(Wa>>>0<32){Ua=Wa;p=Ta;Pa=Qa;Ra=Sa}else{md=Wa;nd=Ta;od=Qa;pd=Sa;break}}}else{md=pa;nd=ra;od=ma;pd=m}Ra=n-sa|0;c[$>>2]=(c[$>>2]|0)+Ra;c[aa>>2]=(c[aa>>2]|0)+Ra;if(!Ra)qd=c[K>>2]|0;else{Pa=c[K>>2]|0;p=na+(0-Ra)|0;if(!(c[w>>2]|0))rd=O(Pa,p,Ra)|0;else rd=P(Pa,p,Ra)|0;c[K>>2]=rd;c[L>>2]=rd;qd=rd}Ra=(c[w>>2]|0)==0;p=Ya(nd|0)|0;if(((Ra?p:nd)|0)==(qd|0)){sd=sa;td=0;ud=0;vd=od;wd=pd}else{c[T>>2]=16344;c[k>>2]=29;Ha=sa;Ia=na;Ja=sa;Ka=md;La=nd;Ma=od;Na=pd;Oa=la;break b}}else{sd=n;td=pa;ud=ra;vd=ma;wd=m}c[k>>2]=27;xd=sd;yd=td;zd=ud;Ad=vd;Bd=wd;za=302;break}case 27:{xd=n;yd=pa;zd=ra;Ad=ma;Bd=m;za=302;break}default:{j=-2;za=325;break a}}while(0);if((za|0)==47){za=0;p=fb;Ra=gb;Pa=hb;Ua=ib;while(1){if(!p){Aa=sa;Ba=n;Ca=Pa;Da=Ua;Ea=0;Fa=Ra;Ga=la;break a}Sa=p+-1|0;Qa=Ra+1|0;Ta=(d[Ra>>0]<<Pa)+Ua|0;Pa=Pa+8|0;if(Pa>>>0>=32){jb=Sa;kb=Qa;lb=Ta;za=50;break}else{p=Sa;Ra=Qa;Ua=Ta}}}else if((za|0)==129){za=0;if(!(c[x>>2]|0)){za=130;break}Ua=O(0,0,0)|0;c[K>>2]=Ua;c[L>>2]=Ua;c[k>>2]=11;Ub=Qb;Vb=Rb;Wb=Sb;Xb=Tb;za=132}else if((za|0)==153){za=0;c[k>>2]=15;jc=fc;kc=gc;lc=hc;mc=ic;za=154}else if((za|0)==166){za=0;Ua=rc;Ra=sc;p=tc;Pa=uc;Ta=wc;while(1){if(Ua>>>0<3){if(!p){Aa=sa;Ba=n;Ca=Ua;Da=Ra;Ea=0;Fa=Pa;Ga=la;break a}Cd=Ua+8|0;Dd=(d[Pa>>0]<<Ua)+Ra|0;Ed=p+-1|0;Fd=Pa+1|0}else{Cd=Ua;Dd=Ra;Ed=p;Fd=Pa}Qa=Ta+1|0;c[B>>2]=Qa;b[k+112+(e[10512+(Ta<<1)>>1]<<1)>>1]=Dd&7;Sa=Dd>>>3;Wa=Cd+-3|0;if(Qa>>>0<vc>>>0){Ua=Wa;Ra=Sa;p=Ed;Pa=Fd;Ta=Qa}else{xc=Wa;yc=Sa;zc=Ed;Ac=Fd;Bc=Qa;za=171;break}}}else if((za|0)==302){za=0;if(!(c[v>>2]|0)){Gd=yd;Hd=zd;Id=Ad;Jd=Bd;za=310;break}if(!(c[w>>2]|0)){Gd=yd;Hd=zd;Id=Ad;Jd=Bd;za=310;break}if(yd>>>0<32){Ta=yd;Pa=zd;p=Ad;Ra=Bd;while(1){if(!p){Aa=sa;Ba=xd;Ca=Ta;Da=Pa;Ea=0;Fa=Ra;Ga=la;break a}Ua=p+-1|0;Qa=Ra+1|0;Sa=(d[Ra>>0]<<Ta)+Pa|0;Wa=Ta+8|0;if(Wa>>>0<32){Ta=Wa;Pa=Sa;p=Ua;Ra=Qa}else{Kd=Wa;Ld=Sa;Md=Ua;Nd=Qa;break}}}else{Kd=yd;Ld=zd;Md=Ad;Nd=Bd}if((Ld|0)==(c[aa>>2]|0)){Gd=0;Hd=0;Id=Md;Jd=Nd;za=310;break}c[T>>2]=16365;c[k>>2]=29;Ha=sa;Ia=na;Ja=xd;Ka=Kd;La=Ld;Ma=Md;Na=Nd;Oa=la}do if((za|0)==50){za=0;Ra=c[J>>2]|0;if(Ra|0)c[Ra+4>>2]=lb;if(c[w>>2]&512|0){a[i>>0]=lb;a[ba>>0]=lb>>>8;a[ca>>0]=lb>>>16;a[da>>0]=lb>>>24;c[K>>2]=P(c[K>>2]|0,i,4)|0}c[k>>2]=3;mb=jb;nb=kb;ob=0;pb=0;za=56}else if((za|0)==132){za=0;if(y){ta=sa;ua=Ub;va=Vb;wa=Wb;xa=Xb;ya=la;za=312;break a}else{Yb=Ub;Zb=Vb;_b=Wb;$b=Xb;za=133}}else if((za|0)==154){za=0;Ra=c[A>>2]|0;if(!Ra){c[k>>2]=11;Ha=sa;Ia=na;Ja=n;Ka=jc;La=kc;Ma=lc;Na=mc;Oa=la;break}p=Ra>>>0>lc>>>0?lc:Ra;Ra=p>>>0>sa>>>0?sa:p;if(!Ra){ta=sa;ua=jc;va=kc;wa=lc;xa=mc;ya=la;za=312;break a}Za(na|0,mc|0,Ra|0)|0;c[A>>2]=(c[A>>2]|0)-Ra;Ha=sa-Ra|0;Ia=na+Ra|0;Ja=n;Ka=jc;La=kc;Ma=lc-Ra|0;Na=mc+Ra|0;Oa=la}else if((za|0)==171){za=0;if(Bc>>>0<19){Ra=Bc;do{b[k+112+(e[10512+(Ra<<1)>>1]<<1)>>1]=0;Ra=Ra+1|0}while((Ra|0)!=19);c[B>>2]=19}c[W>>2]=V;c[M>>2]=V;c[N>>2]=7;Ra=qa(0,X,19,W,N,Y)|0;if(!Ra){c[B>>2]=0;c[k>>2]=18;Cc=0;Dc=xc;Ec=yc;Fc=zc;Gc=Ac;Hc=0;za=178;break}else{c[T>>2]=16126;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=xc;La=yc;Ma=zc;Na=Ac;Oa=Ra;break}}while(0);c:do if((za|0)==56){za=0;Ra=mb;p=nb;Pa=ob;Ta=pb;while(1){if(!Ra){Aa=sa;Ba=n;Ca=Pa;Da=Ta;Ea=0;Fa=p;Ga=la;break a}Qa=Ra+-1|0;Ua=p+1|0;Sa=(d[p>>0]<<Pa)+Ta|0;Pa=Pa+8|0;if(Pa>>>0>=16){qb=Qa;rb=Ua;sb=Sa;za=59;break}else{Ra=Qa;p=Ua;Ta=Sa}}}else if((za|0)==133){za=0;if(c[z>>2]|0){Ta=Yb&7;c[k>>2]=26;Ha=sa;Ia=na;Ja=n;Ka=Yb-Ta|0;La=Zb>>>Ta;Ma=_b;Na=$b;Oa=la;break}if(Yb>>>0<3){if(!_b){ta=sa;ua=Yb;va=Zb;wa=0;xa=$b;ya=la;za=312;break a}Od=Yb+8|0;Pd=(d[$b>>0]<<Yb)+Zb|0;Qd=_b+-1|0;Rd=$b+1|0}else{Od=Yb;Pd=Zb;Qd=_b;Rd=$b}c[z>>2]=Pd&1;switch(Pd>>>1&3){case 0:{Sd=13;za=144;break}case 1:{c[M>>2]=8336;c[N>>2]=9;c[H>>2]=10384;c[I>>2]=5;c[k>>2]=19;if(U){za=140;break a}break}case 2:{Sd=16;za=144;break}case 3:{c[T>>2]=16042;Sd=29;za=144;break}default:{za=143;break a}}if((za|0)==144){za=0;c[k>>2]=Sd}Ha=sa;Ia=na;Ja=n;Ka=Od+-3|0;La=Pd>>>3;Ma=Qd;Na=Rd;Oa=la}else if((za|0)==178){za=0;Ta=c[D>>2]|0;p=(c[F>>2]|0)+Ta|0;d:do if(Hc>>>0<p>>>0){Ra=c[M>>2]|0;Pa=(1<<c[N>>2])+-1|0;Sa=Dc;Ua=Ec;Qa=Fc;Wa=Gc;Va=Hc;e:while(1){ac=Pa&Ua;Td=d[Ra+(ac<<2)+1>>0]|0;if(Sa>>>0<Td>>>0){Ud=Sa;Vd=Ua;Wd=Qa;Xd=Wa;do{if(!Wd){Aa=sa;Ba=n;Ca=Ud;Da=Vd;Ea=0;Fa=Xd;Ga=Cc;break a}Wd=Wd+-1|0;Yd=Xd;Xd=Xd+1|0;Vd=(d[Yd>>0]<<Ud)+Vd|0;Ud=Ud+8|0;Zd=Pa&Vd;_d=a[Ra+(Zd<<2)+1>>0]|0}while(Ud>>>0<(_d&255)>>>0);$d=Ud;ae=Vd;be=Wd;ce=Xd;de=_d&255;ee=Zd}else{$d=Sa;ae=Ua;be=Qa;ce=Wa;de=Td;ee=ac}Yd=b[Ra+(ee<<2)+2>>1]|0;if((Yd&65535)<16){if($d>>>0<de>>>0){fe=$d;ge=ae;he=be;ie=ce;while(1){if(!he){Aa=sa;Ba=n;Ca=fe;Da=ge;Ea=0;Fa=ie;Ga=Cc;break a}je=he+-1|0;ke=ie+1|0;le=(d[ie>>0]<<fe)+ge|0;me=fe+8|0;if(me>>>0<de>>>0){fe=me;ge=le;he=je;ie=ke}else{ne=me;oe=le;pe=je;qe=ke;break}}}else{ne=$d;oe=ae;pe=be;qe=ce}ie=Va+1|0;c[B>>2]=ie;b[k+112+(Va<<1)>>1]=Yd;re=ne-de|0;se=oe>>>de;te=pe;ue=qe;ve=ie}else{switch(Yd<<16>>16){case 16:{ie=de+2|0;if($d>>>0<ie>>>0){he=$d;ge=ae;fe=be;ac=ce;while(1){if(!fe){Aa=sa;Ba=n;Ca=he;Da=ge;Ea=0;Fa=ac;Ga=Cc;break a}Td=fe+-1|0;Xd=ac+1|0;Wd=(d[ac>>0]<<he)+ge|0;Vd=he+8|0;if(Vd>>>0<ie>>>0){he=Vd;ge=Wd;fe=Td;ac=Xd}else{we=Vd;xe=Wd;ye=Td;ze=Xd;break}}}else{we=$d;xe=ae;ye=be;ze=ce}Ae=xe>>>de;Be=we-de|0;if(!Va){za=197;break e}Ce=e[k+112+(Va+-1<<1)>>1]|0;De=Be+-2|0;Ee=Ae>>>2;Fe=ye;Ge=ze;He=(Ae&3)+3|0;break}case 17:{ac=de+3|0;if($d>>>0<ac>>>0){fe=$d;ge=ae;he=be;ie=ce;while(1){if(!he){Aa=sa;Ba=n;Ca=fe;Da=ge;Ea=0;Fa=ie;Ga=Cc;break a}Yd=he+-1|0;Xd=ie+1|0;Td=(d[ie>>0]<<fe)+ge|0;Wd=fe+8|0;if(Wd>>>0<ac>>>0){fe=Wd;ge=Td;he=Yd;ie=Xd}else{Ie=Wd;Je=Td;Ke=Yd;Le=Xd;break}}}else{Ie=$d;Je=ae;Ke=be;Le=ce}ie=Je>>>de;Ce=0;De=-3-de+Ie|0;Ee=ie>>>3;Fe=Ke;Ge=Le;He=(ie&7)+3|0;break}default:{ie=de+7|0;if($d>>>0<ie>>>0){he=$d;ge=ae;fe=be;ac=ce;while(1){if(!fe){Aa=sa;Ba=n;Ca=he;Da=ge;Ea=0;Fa=ac;Ga=Cc;break a}Xd=fe+-1|0;Yd=ac+1|0;Td=(d[ac>>0]<<he)+ge|0;Wd=he+8|0;if(Wd>>>0<ie>>>0){he=Wd;ge=Td;fe=Xd;ac=Yd}else{Me=Wd;Ne=Td;Oe=Xd;Pe=Yd;break}}}else{Me=$d;Ne=ae;Oe=be;Pe=ce}ac=Ne>>>de;Ce=0;De=-7-de+Me|0;Ee=ac>>>7;Fe=Oe;Ge=Pe;He=(ac&127)+11|0}}ac=He+Va|0;if(ac>>>0>p>>>0){za=210;break}fe=Ce&65535;ge=He;he=Va;while(1){ge=ge+-1|0;b[k+112+(he<<1)>>1]=fe;if(!ge)break;else he=he+1|0}c[B>>2]=ac;re=De;se=Ee;te=Fe;ue=Ge;ve=ac}if(ve>>>0<p>>>0){Sa=re;Ua=se;Qa=te;Wa=ue;Va=ve}else{Qe=re;Re=se;Se=te;Te=ue;break d}}if((za|0)==197){za=0;c[T>>2]=16151;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=Be;La=Ae;Ma=ye;Na=ze;Oa=Cc;break c}else if((za|0)==210){za=0;c[T>>2]=16151;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=De;La=Ee;Ma=Fe;Na=Ge;Oa=Cc;break c}}else{Qe=Dc;Re=Ec;Se=Fc;Te=Gc}while(0);if(!(b[Z>>1]|0)){c[T>>2]=16177;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=Qe;La=Re;Ma=Se;Na=Te;Oa=Cc;break}c[W>>2]=V;c[M>>2]=V;c[N>>2]=9;p=qa(1,X,Ta,W,N,Y)|0;if(p|0){c[T>>2]=16214;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=Qe;La=Re;Ma=Se;Na=Te;Oa=p;break}c[H>>2]=c[W>>2];c[I>>2]=6;p=qa(2,k+112+(c[D>>2]<<1)|0,c[F>>2]|0,W,I,Y)|0;if(!p){c[k>>2]=19;if(U){ta=sa;ua=Qe;va=Re;wa=Se;xa=Te;ya=0;za=312;break a}else{Ic=0;Jc=Qe;Kc=Re;Lc=Se;Mc=Te;za=222;break}}else{c[T>>2]=16242;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=Qe;La=Re;Ma=Se;Na=Te;Oa=p;break}}while(0);if((za|0)==59){za=0;p=c[J>>2]|0;if(p|0){c[p+8>>2]=sb&255;c[p+12>>2]=sb>>>8}if(c[w>>2]&512|0){a[i>>0]=sb;a[ba>>0]=sb>>>8;c[K>>2]=P(c[K>>2]|0,i,2)|0}c[k>>2]=4;tb=qb;ub=rb;vb=0;wb=0;za=64}else if((za|0)==222){za=0;c[k>>2]=20;Nc=Ic;Oc=Jc;Pc=Kc;Qc=Lc;Rc=Mc;za=223}do if((za|0)==64){za=0;p=c[w>>2]|0;if(!(p&1024)){Va=c[J>>2]|0;if(!Va){Ue=tb;Ve=ub;We=vb;Xe=wb}else{c[Va+16>>2]=0;Ue=tb;Ve=ub;We=vb;Xe=wb}}else{if(vb>>>0<16){Va=tb;Wa=ub;Qa=vb;Ua=wb;while(1){if(!Va){Aa=sa;Ba=n;Ca=Qa;Da=Ua;Ea=0;Fa=Wa;Ga=la;break a}Sa=Va+-1|0;Ra=Wa+1|0;Pa=(d[Wa>>0]<<Qa)+Ua|0;Qa=Qa+8|0;if(Qa>>>0>=16){Ye=Sa;Ze=Ra;_e=Pa;break}else{Va=Sa;Wa=Ra;Ua=Pa}}}else{Ye=tb;Ze=ub;_e=wb}c[A>>2]=_e;Ua=c[J>>2]|0;if(Ua|0)c[Ua+20>>2]=_e;if(!(p&512)){Ue=Ye;Ve=Ze;We=0;Xe=0}else{a[i>>0]=_e;a[ba>>0]=_e>>>8;c[K>>2]=P(c[K>>2]|0,i,2)|0;Ue=Ye;Ve=Ze;We=0;Xe=0}}c[k>>2]=5;xb=Ue;yb=Ve;zb=We;Ab=Xe;za=76}else if((za|0)==223){za=0;if(sa>>>0>257&Qc>>>0>5){c[l>>2]=na;c[o>>2]=sa;c[f>>2]=Rc;c[r>>2]=Qc;c[t>>2]=Pc;c[u>>2]=Oc;ka(f,n);Ua=c[l>>2]|0;Wa=c[o>>2]|0;Va=c[f>>2]|0;Qa=c[r>>2]|0;Ta=c[t>>2]|0;Pa=c[u>>2]|0;if((c[k>>2]|0)!=11){Ha=Wa;Ia=Ua;Ja=n;Ka=Pa;La=Ta;Ma=Qa;Na=Va;Oa=Nc;break}c[Q>>2]=-1;Ha=Wa;Ia=Ua;Ja=n;Ka=Pa;La=Ta;Ma=Qa;Na=Va;Oa=Nc;break}c[Q>>2]=0;Va=c[M>>2]|0;Qa=(1<<c[N>>2])+-1|0;Ta=Qa&Pc;Pa=a[Va+(Ta<<2)+1>>0]|0;Ua=Pa&255;if(Oc>>>0<Ua>>>0){Wa=Oc;Ra=Pc;Sa=Qc;he=Rc;while(1){if(!Sa){Aa=sa;Ba=n;Ca=Wa;Da=Ra;Ea=0;Fa=he;Ga=Nc;break a}ge=Sa+-1|0;fe=he+1|0;ie=(d[he>>0]<<Wa)+Ra|0;Yd=Wa+8|0;Xd=Qa&ie;Td=a[Va+(Xd<<2)+1>>0]|0;Wd=Td&255;if(Yd>>>0<Wd>>>0){Wa=Yd;Ra=ie;Sa=ge;he=fe}else{$e=Yd;af=ie;bf=ge;cf=fe;df=Wd;ef=Xd;ff=Td;break}}}else{$e=Oc;af=Pc;bf=Qc;cf=Rc;df=Ua;ef=Ta;ff=Pa}he=b[Va+(ef<<2)+2>>1]|0;Sa=a[Va+(ef<<2)>>0]|0;Ra=Sa&255;if(Sa<<24>>24!=0&(Ra&240|0)==0){Wa=he&65535;Qa=(1<<df+Ra)+-1|0;p=((af&Qa)>>>df)+Wa|0;Td=a[Va+(p<<2)+1>>0]|0;if((df+(Td&255)|0)>>>0>$e>>>0){Xd=$e;Wd=af;fe=bf;ge=cf;while(1){if(!fe){Aa=sa;Ba=n;Ca=Xd;Da=Wd;Ea=0;Fa=ge;Ga=Nc;break a}ie=fe+-1|0;Yd=ge+1|0;Vd=(d[ge>>0]<<Xd)+Wd|0;Ud=Xd+8|0;ke=((Vd&Qa)>>>df)+Wa|0;je=a[Va+(ke<<2)+1>>0]|0;if((df+(je&255)|0)>>>0>Ud>>>0){Xd=Ud;Wd=Vd;fe=ie;ge=Yd}else{gf=Ud;hf=Vd;jf=ie;kf=Yd;lf=ke;mf=je;break}}}else{gf=$e;hf=af;jf=bf;kf=cf;lf=p;mf=Td}ge=b[Va+(lf<<2)+2>>1]|0;fe=a[Va+(lf<<2)>>0]|0;c[Q>>2]=df;nf=gf-df|0;of=hf>>>df;pf=jf;qf=kf;rf=fe&255;sf=fe;tf=mf;uf=ge;vf=df}else{nf=$e;of=af;pf=bf;qf=cf;rf=Ra;sf=Sa;tf=ff;uf=he;vf=0}ge=tf&255;fe=of>>>ge;Wd=nf-ge|0;c[Q>>2]=vf+ge;c[A>>2]=uf&65535;if(!(sf<<24>>24)){c[k>>2]=25;Ha=sa;Ia=na;Ja=n;Ka=Wd;La=fe;Ma=pf;Na=qf;Oa=Nc;break}if(rf&32|0){c[Q>>2]=-1;c[k>>2]=11;Ha=sa;Ia=na;Ja=n;Ka=Wd;La=fe;Ma=pf;Na=qf;Oa=Nc;break}if(!(rf&64)){ge=rf&15;c[G>>2]=ge;c[k>>2]=21;Sc=Nc;Tc=Wd;Uc=fe;Vc=pf;Wc=qf;Xc=ge;za=243;break}else{c[T>>2]=16264;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=Wd;La=fe;Ma=pf;Na=qf;Oa=Nc;break}}while(0);if((za|0)==76){za=0;fe=c[w>>2]|0;if(fe&1024){Wd=c[A>>2]|0;ge=Wd>>>0>xb>>>0?xb:Wd;if(!ge){wf=xb;xf=yb;yf=Wd}else{Xd=c[J>>2]|0;if((Xd|0)!=0?(Wa=c[Xd+16>>2]|0,(Wa|0)!=0):0){Qa=(c[Xd+20>>2]|0)-Wd|0;Wd=c[Xd+24>>2]|0;Za(Wa+Qa|0,yb|0,((Qa+ge|0)>>>0>Wd>>>0?Wd-Qa|0:ge)|0)|0;zf=c[w>>2]|0}else zf=fe;if(zf&512|0)c[K>>2]=P(c[K>>2]|0,yb,ge)|0;fe=(c[A>>2]|0)-ge|0;c[A>>2]=fe;wf=xb-ge|0;xf=yb+ge|0;yf=fe}if(!yf){Af=wf;Bf=xf}else{ta=sa;ua=zb;va=Ab;wa=wf;xa=xf;ya=la;za=312;break}}else{Af=xb;Bf=yb}c[A>>2]=0;c[k>>2]=6;Bb=zb;Cb=Ab;Db=Af;Eb=Bf;za=86}else if((za|0)==243){za=0;if(!Xc){Cf=Tc;Df=Uc;Ef=Vc;Ff=Wc;Gf=c[A>>2]|0}else{if(Tc>>>0<Xc>>>0){fe=Tc;ge=Uc;Qa=Vc;Wd=Wc;while(1){if(!Qa){Aa=sa;Ba=n;Ca=fe;Da=ge;Ea=0;Fa=Wd;Ga=Sc;break a}Wa=Qa+-1|0;Xd=Wd+1|0;Pa=(d[Wd>>0]<<fe)+ge|0;Ta=fe+8|0;if(Ta>>>0<Xc>>>0){fe=Ta;ge=Pa;Qa=Wa;Wd=Xd}else{Hf=Ta;If=Pa;Jf=Wa;Kf=Xd;break}}}else{Hf=Tc;If=Uc;Jf=Vc;Kf=Wc}Wd=(c[A>>2]|0)+(If&(1<<Xc)+-1)|0;c[A>>2]=Wd;c[Q>>2]=(c[Q>>2]|0)+Xc;Cf=Hf-Xc|0;Df=If>>>Xc;Ef=Jf;Ff=Kf;Gf=Wd}c[R>>2]=Gf;c[k>>2]=22;Yc=Cf;Zc=Df;_c=Sc;$c=Ef;ad=Ff;za=251}do if((za|0)==86){za=0;if(!(c[w>>2]&2048)){Wd=c[J>>2]|0;if(!Wd){Lf=Db;Mf=Eb}else{c[Wd+28>>2]=0;Lf=Db;Mf=Eb}}else{if(!Db){ta=sa;ua=Bb;va=Cb;wa=0;xa=Eb;ya=la;za=312;break a}Wd=0;do{Qa=Wd;Wd=Wd+1|0;ge=a[Eb+Qa>>0]|0;Qa=c[J>>2]|0;if((Qa|0?(fe=c[Qa+28>>2]|0,fe|0):0)?(Xd=c[A>>2]|0,Xd>>>0<(c[Qa+32>>2]|0)>>>0):0){c[A>>2]=Xd+1;a[fe+Xd>>0]=ge}Nf=ge<<24>>24!=0}while(Nf&Db>>>0>Wd>>>0);if(c[w>>2]&512|0)c[K>>2]=P(c[K>>2]|0,Eb,Wd)|0;he=Db-Wd|0;Sa=Eb+Wd|0;if(Nf){ta=sa;ua=Bb;va=Cb;wa=he;xa=Sa;ya=la;za=312;break a}else{Lf=he;Mf=Sa}}c[A>>2]=0;c[k>>2]=7;Fb=Bb;Gb=Cb;Hb=Lf;Ib=Mf;za=100}else if((za|0)==251){za=0;Sa=c[H>>2]|0;he=(1<<c[I>>2])+-1|0;Ra=he&Zc;Va=a[Sa+(Ra<<2)+1>>0]|0;Td=Va&255;if(Yc>>>0<Td>>>0){p=Yc;ge=Zc;Xd=$c;fe=ad;while(1){if(!Xd){Aa=sa;Ba=n;Ca=p;Da=ge;Ea=0;Fa=fe;Ga=_c;break a}Qa=Xd+-1|0;Wa=fe+1|0;Pa=(d[fe>>0]<<p)+ge|0;Ta=p+8|0;Ua=he&Pa;je=a[Sa+(Ua<<2)+1>>0]|0;ke=je&255;if(Ta>>>0<ke>>>0){p=Ta;ge=Pa;Xd=Qa;fe=Wa}else{Of=Ta;Pf=Pa;Qf=Qa;Rf=Wa;Sf=ke;Tf=Ua;Uf=je;break}}}else{Of=Yc;Pf=Zc;Qf=$c;Rf=ad;Sf=Td;Tf=Ra;Uf=Va}fe=b[Sa+(Tf<<2)+2>>1]|0;Xd=d[Sa+(Tf<<2)>>0]|0;if(!(Xd&240)){ge=fe&65535;p=(1<<Sf+Xd)+-1|0;he=((Pf&p)>>>Sf)+ge|0;Wd=a[Sa+(he<<2)+1>>0]|0;if((Sf+(Wd&255)|0)>>>0>Of>>>0){je=Of;Ua=Pf;ke=Qf;Wa=Rf;while(1){if(!ke){Aa=sa;Ba=n;Ca=je;Da=Ua;Ea=0;Fa=Wa;Ga=_c;break a}Qa=ke+-1|0;Pa=Wa+1|0;Ta=(d[Wa>>0]<<je)+Ua|0;Yd=je+8|0;ie=((Ta&p)>>>Sf)+ge|0;Vd=a[Sa+(ie<<2)+1>>0]|0;if((Sf+(Vd&255)|0)>>>0>Yd>>>0){je=Yd;Ua=Ta;ke=Qa;Wa=Pa}else{Vf=Yd;Wf=Ta;Xf=Qa;Yf=Pa;Zf=ie;_f=Vd;break}}}else{Vf=Of;Wf=Pf;Xf=Qf;Yf=Rf;Zf=he;_f=Wd}Wa=b[Sa+(Zf<<2)+2>>1]|0;ke=a[Sa+(Zf<<2)>>0]|0;Ua=(c[Q>>2]|0)+Sf|0;c[Q>>2]=Ua;$f=Vf-Sf|0;ag=Wf>>>Sf;bg=Xf;cg=Yf;dg=ke&255;eg=_f;fg=Wa;gg=Ua}else{$f=Of;ag=Pf;bg=Qf;cg=Rf;dg=Xd;eg=Uf;fg=fe;gg=c[Q>>2]|0}Ua=eg&255;Wa=ag>>>Ua;ke=$f-Ua|0;c[Q>>2]=gg+Ua;if(!(dg&64)){c[S>>2]=fg&65535;Ua=dg&15;c[G>>2]=Ua;c[k>>2]=23;bd=ke;cd=Wa;dd=bg;ed=cg;fd=_c;gd=Ua;za=265;break}else{c[T>>2]=16292;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=ke;La=Wa;Ma=bg;Na=cg;Oa=_c;break}}while(0);if((za|0)==100){za=0;if(!(c[w>>2]&4096)){Wa=c[J>>2]|0;if(!Wa){hg=Hb;ig=Ib}else{c[Wa+36>>2]=0;hg=Hb;ig=Ib}}else{if(!Hb){ta=sa;ua=Fb;va=Gb;wa=0;xa=Ib;ya=la;za=312;break}Wa=0;do{ke=Wa;Wa=Wa+1|0;Ua=a[Ib+ke>>0]|0;ke=c[J>>2]|0;if((ke|0?(je=c[ke+36>>2]|0,je|0):0)?(ge=c[A>>2]|0,ge>>>0<(c[ke+40>>2]|0)>>>0):0){c[A>>2]=ge+1;a[je+ge>>0]=Ua}jg=Ua<<24>>24!=0}while(jg&Hb>>>0>Wa>>>0);if(c[w>>2]&512|0)c[K>>2]=P(c[K>>2]|0,Ib,Wa)|0;Ua=Hb-Wa|0;ge=Ib+Wa|0;if(jg){ta=sa;ua=Fb;va=Gb;wa=Ua;xa=ge;ya=la;za=312;break}else{hg=Ua;ig=ge}}c[k>>2]=8;Jb=Fb;Kb=Gb;Lb=hg;Mb=ig;za=114}else if((za|0)==265){za=0;if(!gd){kg=bd;lg=cd;mg=dd;ng=ed}else{if(bd>>>0<gd>>>0){ge=bd;Ua=cd;je=dd;ke=ed;while(1){if(!je){Aa=sa;Ba=n;Ca=ge;Da=Ua;Ea=0;Fa=ke;Ga=fd;break a}p=je+-1|0;Va=ke+1|0;Ra=(d[ke>>0]<<ge)+Ua|0;Td=ge+8|0;if(Td>>>0<gd>>>0){ge=Td;Ua=Ra;je=p;ke=Va}else{og=Td;pg=Ra;qg=p;rg=Va;break}}}else{og=bd;pg=cd;qg=dd;rg=ed}c[S>>2]=(c[S>>2]|0)+(pg&(1<<gd)+-1);c[Q>>2]=(c[Q>>2]|0)+gd;kg=og-gd|0;lg=pg>>>gd;mg=qg;ng=rg}c[k>>2]=24;hd=kg;id=lg;jd=mg;kd=ng;ld=fd;za=272}do if((za|0)==114){za=0;ke=c[w>>2]|0;if(ke&512){if(Jb>>>0<16){je=Jb;Ua=Kb;ge=Lb;Wa=Mb;while(1){if(!ge){Aa=sa;Ba=n;Ca=je;Da=Ua;Ea=0;Fa=Wa;Ga=la;break a}Va=ge+-1|0;p=Wa+1|0;Ra=(d[Wa>>0]<<je)+Ua|0;Td=je+8|0;if(Td>>>0<16){je=Td;Ua=Ra;ge=Va;Wa=p}else{sg=Td;tg=Ra;ug=Va;vg=p;break}}}else{sg=Jb;tg=Kb;ug=Lb;vg=Mb}if((tg|0)==(c[K>>2]&65535|0)){wg=0;xg=0;yg=ug;zg=vg}else{c[T>>2]=16022;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=sg;La=tg;Ma=ug;Na=vg;Oa=la;break}}else{wg=Jb;xg=Kb;yg=Lb;zg=Mb}Wa=c[J>>2]|0;if(Wa|0){c[Wa+44>>2]=ke>>>9&1;c[Wa+48>>2]=1}Wa=P(0,0,0)|0;c[K>>2]=Wa;c[L>>2]=Wa;c[k>>2]=11;Ha=sa;Ia=na;Ja=n;Ka=wg;La=xg;Ma=yg;Na=zg;Oa=la}else if((za|0)==272){za=0;if(!sa){ta=0;ua=hd;va=id;wa=jd;xa=kd;ya=ld;za=312;break a}Wa=n-sa|0;ge=c[S>>2]|0;if(ge>>>0>Wa>>>0){Ua=ge-Wa|0;if(Ua>>>0>(c[_>>2]|0)>>>0?c[ea>>2]|0:0){c[T>>2]=16314;c[k>>2]=29;Ha=sa;Ia=na;Ja=n;Ka=hd;La=id;Ma=jd;Na=kd;Oa=ld;break}Wa=c[fa>>2]|0;if(Ua>>>0>Wa>>>0){je=Ua-Wa|0;Ag=je;Bg=(c[ha>>2]|0)-je|0}else{Ag=Ua;Bg=Wa-Ua|0}Ua=c[A>>2]|0;Cg=(c[ga>>2]|0)+Bg|0;Dg=Ag>>>0>Ua>>>0?Ua:Ag;Eg=Ua}else{Ua=c[A>>2]|0;Cg=na+(0-ge)|0;Dg=Ua;Eg=Ua}Ua=Dg>>>0>sa>>>0?sa:Dg;c[A>>2]=Eg-Ua;ge=Ua;Wa=na;je=Cg;while(1){a[Wa>>0]=a[je>>0]|0;ge=ge+-1|0;if(!ge)break;else{Wa=Wa+1|0;je=je+1|0}}je=sa-Ua|0;Wa=na+Ua|0;if(!(c[A>>2]|0)){c[k>>2]=20;Ha=je;Ia=Wa;Ja=n;Ka=hd;La=id;Ma=jd;Na=kd;Oa=ld}else{Ha=je;Ia=Wa;Ja=n;Ka=hd;La=id;Ma=jd;Na=kd;Oa=ld}}while(0);la=Oa;ma=Ma;na=Ia;m=Na;n=Ja;pa=Ka;ra=La;sa=Ha;q=c[k>>2]|0}if((za|0)==130){c[l>>2]=na;c[o>>2]=sa;c[f>>2]=Tb;c[r>>2]=Sb;c[t>>2]=Rb;c[u>>2]=Qb;j=2;E=h;return j|0}else if((za|0)==140){Aa=sa;Ba=n;Ca=Od+-3|0;Da=Pd>>>3;Ea=Qd;Fa=Rd;Ga=la}else if((za|0)!=143)if((za|0)==310){c[k>>2]=28;Aa=sa;Ba=xd;Ca=Gd;Da=Hd;Ea=Id;Fa=Jd;Ga=1}else if((za|0)==312){Aa=ta;Ba=n;Ca=ua;Da=va;Ea=wa;Fa=xa;Ga=ya}else if((za|0)==324){j=-4;E=h;return j|0}else if((za|0)==325){E=h;return j|0}c[l>>2]=na;c[o>>2]=Aa;c[f>>2]=Fa;c[r>>2]=Ea;c[t>>2]=Da;c[u>>2]=Ca;if((c[ha>>2]|0)==0?(Ba|0)==(Aa|0)|(c[k>>2]|0)>>>0>25:0){Fg=Ea;Gg=Aa}else za=315;do if((za|0)==315){if(!(oa(f,Ba)|0)){Fg=c[r>>2]|0;Gg=c[o>>2]|0;break}c[k>>2]=30;j=-4;E=h;return j|0}while(0);o=s-Fg|0;Fg=Ba-Gg|0;Gg=f+8|0;c[Gg>>2]=(c[Gg>>2]|0)+o;c[$>>2]=(c[$>>2]|0)+Fg;c[aa>>2]=(c[aa>>2]|0)+Fg;if((Fg|0)!=0&(c[v>>2]|0)!=0){v=c[K>>2]|0;aa=(c[l>>2]|0)+(0-Fg)|0;if(!(c[w>>2]|0))Hg=O(v,aa,Fg)|0;else Hg=P(v,aa,Fg)|0;c[K>>2]=Hg;c[L>>2]=Hg}Hg=c[k>>2]|0;c[f+44>>2]=((c[z>>2]|0)==0?0:64)+(c[u>>2]|0)+((Hg|0)==11?128:0)+((Hg|0)==19|(Hg|0)==14?256:0);j=(Ga|0)==0&((g|0)==4|(Fg|o|0)==0)?-5:Ga;E=h;return j|0}function oa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=c[a+28>>2]|0;e=d+52|0;f=c[e>>2]|0;if(!f){g=I[c[a+32>>2]&1](c[a+40>>2]|0,1<<c[d+36>>2],1)|0;c[e>>2]=g;if(!g){h=1;return h|0}else i=g}else i=f;f=d+40|0;g=c[f>>2]|0;if(!g){j=1<<c[d+36>>2];c[f>>2]=j;c[d+48>>2]=0;c[d+44>>2]=0;k=j}else k=g;g=b-(c[a+16>>2]|0)|0;if(g>>>0>=k>>>0){Za(i|0,(c[a+12>>2]|0)+(0-k)|0,k|0)|0;c[d+48>>2]=0;c[d+44>>2]=c[f>>2];h=0;return h|0}b=d+48|0;j=c[b>>2]|0;l=k-j|0;k=l>>>0>g>>>0?g:l;l=a+12|0;Za(i+j|0,(c[l>>2]|0)+(0-g)|0,k|0)|0;j=g-k|0;if(j|0){Za(c[e>>2]|0,(c[l>>2]|0)+(0-j)|0,j|0)|0;c[b>>2]=j;c[d+44>>2]=c[f>>2];h=0;return h|0}j=(c[b>>2]|0)+k|0;l=c[f>>2]|0;c[b>>2]=(j|0)==(l|0)?0:j;j=d+44|0;d=c[j>>2]|0;if(d>>>0>=l>>>0){h=0;return h|0}c[j>>2]=d+k;h=0;return h|0}function pa(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a){b=-2;return b|0}d=a+28|0;e=c[d>>2]|0;if(!e){b=-2;return b|0}f=a+36|0;g=c[f>>2]|0;if(!g){b=-2;return b|0}h=c[e+52>>2]|0;i=a+40|0;if(!h){j=g;k=e}else{J[g&1](c[i>>2]|0,h);j=c[f>>2]|0;k=c[d>>2]|0}J[j&1](c[i>>2]|0,k);c[d>>2]=0;b=0;return b|0}function qa(d,f,g,h,i,j){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;k=E;E=E+64|0;l=k+32|0;m=k;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;n=(g|0)==0;if(!n){o=0;do{p=l+(e[f+(o<<1)>>1]<<1)|0;b[p>>1]=(b[p>>1]|0)+1<<16>>16;o=o+1|0}while((o|0)!=(g|0));o=b[l+30>>1]|0;p=c[i>>2]|0;if(!(o<<16>>16)){q=p;r=6}else{s=15;t=p;u=o;r=8}}else{q=c[i>>2]|0;r=6}do if((r|0)==6)if(!(b[l+28>>1]|0))if(!(b[l+26>>1]|0))if(!(b[l+24>>1]|0))if(!(b[l+22>>1]|0))if(!(b[l+20>>1]|0))if(!(b[l+18>>1]|0))if(!(b[l+16>>1]|0))if(!(b[l+14>>1]|0))if(!(b[l+12>>1]|0))if(!(b[l+10>>1]|0))if(!(b[l+8>>1]|0))if(!(b[l+6>>1]|0))if(!(b[l+4>>1]|0)){if(b[l+2>>1]|0){v=1;w=1;x=0;y=(q|0)!=0&1;break}o=c[h>>2]|0;c[h>>2]=o+4;a[o>>0]=64;a[o+1>>0]=1;b[o+2>>1]=0;o=c[h>>2]|0;c[h>>2]=o+4;a[o>>0]=64;a[o+1>>0]=1;b[o+2>>1]=0;c[i>>2]=1;z=0;E=k;return z|0}else{s=2;t=q;u=0;r=8}else{s=3;t=q;u=0;r=8}else{s=4;t=q;u=0;r=8}else{s=5;t=q;u=0;r=8}else{s=6;t=q;u=0;r=8}else{s=7;t=q;u=0;r=8}else{s=8;t=q;u=0;r=8}else{s=9;t=q;u=0;r=8}else{s=10;t=q;u=0;r=8}else{s=11;t=q;u=0;r=8}else{s=12;t=q;u=0;r=8}else{s=13;t=q;u=0;r=8}else{s=14;t=q;u=0;r=8}while(0);a:do if((r|0)==8){q=t>>>0>s>>>0?s:t;o=1;while(1){if(b[l+(o<<1)>>1]|0){v=s;w=o;x=u;y=q;break a}p=o+1|0;if(p>>>0<s>>>0)o=p;else{v=s;w=p;x=u;y=q;break}}}while(0);u=y>>>0<w>>>0?w:y;y=b[l+2>>1]|0;s=y&65535;t=2-s|0;if((t|0)<0){z=-1;E=k;return z|0}q=e[l+4>>1]|0;o=(t<<1)-q|0;if((o|0)<0){z=-1;E=k;return z|0}t=e[l+6>>1]|0;p=(o<<1)-t|0;if((p|0)<0){z=-1;E=k;return z|0}o=e[l+8>>1]|0;A=(p<<1)-o|0;if((A|0)<0){z=-1;E=k;return z|0}p=e[l+10>>1]|0;B=(A<<1)-p|0;if((B|0)<0){z=-1;E=k;return z|0}A=e[l+12>>1]|0;C=(B<<1)-A|0;if((C|0)<0){z=-1;E=k;return z|0}B=e[l+14>>1]|0;D=(C<<1)-B|0;if((D|0)<0){z=-1;E=k;return z|0}C=e[l+16>>1]|0;F=(D<<1)-C|0;if((F|0)<0){z=-1;E=k;return z|0}D=e[l+18>>1]|0;G=(F<<1)-D|0;if((G|0)<0){z=-1;E=k;return z|0}F=e[l+20>>1]|0;H=(G<<1)-F|0;if((H|0)<0){z=-1;E=k;return z|0}G=e[l+22>>1]|0;I=(H<<1)-G|0;if((I|0)<0){z=-1;E=k;return z|0}H=e[l+24>>1]|0;J=(I<<1)-H|0;if((J|0)<0){z=-1;E=k;return z|0}I=e[l+26>>1]|0;K=(J<<1)-I|0;if((K|0)<0){z=-1;E=k;return z|0}J=e[l+28>>1]|0;L=(K<<1)-J|0;if((L|0)<0){z=-1;E=k;return z|0}K=(L<<1)-(x&65535)|0;if((K|0)<0){z=-1;E=k;return z|0}if(K|0?(d|0)==0|(v|0)!=1:0){z=-1;E=k;return z|0}b[m+2>>1]=0;b[m+4>>1]=y;y=q+s|0;b[m+6>>1]=y;s=y+t|0;b[m+8>>1]=s;t=s+o|0;b[m+10>>1]=t;o=t+p|0;b[m+12>>1]=o;p=o+A|0;b[m+14>>1]=p;A=p+B|0;b[m+16>>1]=A;B=A+C|0;b[m+18>>1]=B;C=B+D|0;b[m+20>>1]=C;D=C+F|0;b[m+22>>1]=D;F=D+G|0;b[m+24>>1]=F;G=F+H|0;b[m+26>>1]=G;H=G+I|0;b[m+28>>1]=H;b[m+30>>1]=H+J;if(!n){n=0;do{J=b[f+(n<<1)>>1]|0;if(J<<16>>16){H=m+((J&65535)<<1)|0;J=b[H>>1]|0;b[H>>1]=J+1<<16>>16;b[j+((J&65535)<<1)>>1]=n}n=n+1|0}while((n|0)!=(g|0))}switch(d|0){case 0:{M=j;N=j;O=19;P=0;Q=0;break}case 1:{if(u>>>0>9){z=1;E=k;return z|0}else{M=10238;N=10110;O=256;P=1;Q=0}break}default:{g=(d|0)==2;if(g&u>>>0>9){z=1;E=k;return z|0}else{M=10688;N=10560;O=-1;P=0;Q=g}}}g=1<<u;d=g+-1|0;n=u&255;m=c[h>>2]|0;J=-1;H=0;I=g;g=0;G=u;F=0;D=w;b:while(1){w=1<<G;C=H;B=F;A=D;while(1){p=A-g|0;R=p&255;o=b[j+(B<<1)>>1]|0;t=o&65535;do if((O|0)>(t|0)){S=0;T=o}else{if((O|0)>=(t|0)){S=96;T=0;break}S=b[M+(t<<1)>>1]&255;T=b[N+(t<<1)>>1]|0}while(0);t=1<<p;o=C>>>g;s=w;do{s=s-t|0;y=s+o|0;a[m+(y<<2)>>0]=S;a[m+(y<<2)+1>>0]=R;b[m+(y<<2)+2>>1]=T}while((s|0)!=0);s=1<<A+-1;while(1)if(!(s&C))break;else s=s>>>1;U=(s|0)==0?0:(s+-1&C)+s|0;V=B+1|0;o=l+(A<<1)|0;t=(b[o>>1]|0)+-1<<16>>16;b[o>>1]=t;if(!(t<<16>>16)){if((A|0)==(v|0))break b;W=e[f+(e[j+(V<<1)>>1]<<1)>>1]|0}else W=A;if(W>>>0>u>>>0?(X=U&d,(X|0)!=(J|0)):0)break;C=U;B=V;A=W}A=(g|0)==0?u:g;B=m+(w<<2)|0;C=W-A|0;c:do if(W>>>0<v>>>0){t=1<<C;o=C;p=W;while(1){y=t-(e[l+(p<<1)>>1]|0)|0;if((y|0)<1){Y=o;break c}q=o+1|0;p=q+A|0;if(p>>>0>=v>>>0){Y=q;break}else{t=y<<1;o=q}}}else Y=C;while(0);C=(1<<Y)+I|0;if(P&C>>>0>851|Q&C>>>0>591){z=1;r=51;break}w=c[h>>2]|0;a[w+(X<<2)>>0]=Y;a[w+(X<<2)+1>>0]=n;b[w+(X<<2)+2>>1]=(B-w|0)>>>2;m=B;J=X;H=U;I=C;g=A;G=Y;F=V;D=W}if((r|0)==51){E=k;return z|0}if(U|0){r=U;U=m;m=g;g=v;v=R;while(1){if((m|0)==0|(r&d|0)==(J|0)){Z=U;_=m;$=g;aa=v}else{Z=c[h>>2]|0;_=0;$=u;aa=n}R=r>>>_;a[Z+(R<<2)>>0]=64;a[Z+(R<<2)+1>>0]=aa;b[Z+(R<<2)+2>>1]=0;R=1<<$+-1;while(1)if(!(R&r))break;else R=R>>>1;r=(R|0)==0?0:(R+-1&r)+R|0;if(!r)break;else{U=Z;m=_;g=$;v=aa}}}c[h>>2]=(c[h>>2]|0)+(I<<2);c[i>>2]=u;z=0;E=k;return z|0}function ra(a){a=a|0;c[a+2840>>2]=a+148;c[a+2848>>2]=15440;c[a+2852>>2]=a+2440;c[a+2860>>2]=15460;c[a+2864>>2]=a+2684;c[a+2872>>2]=15480;b[a+5816>>1]=0;c[a+5820>>2]=0;c[a+5812>>2]=8;sa(a);return}function sa(a){a=a|0;var d=0;d=0;do{b[a+148+(d<<2)>>1]=0;d=d+1|0}while((d|0)!=286);b[a+2440>>1]=0;b[a+2444>>1]=0;b[a+2448>>1]=0;b[a+2452>>1]=0;b[a+2456>>1]=0;b[a+2460>>1]=0;b[a+2464>>1]=0;b[a+2468>>1]=0;b[a+2472>>1]=0;b[a+2476>>1]=0;b[a+2480>>1]=0;b[a+2484>>1]=0;b[a+2488>>1]=0;b[a+2492>>1]=0;b[a+2496>>1]=0;b[a+2500>>1]=0;b[a+2504>>1]=0;b[a+2508>>1]=0;b[a+2512>>1]=0;b[a+2516>>1]=0;b[a+2520>>1]=0;b[a+2524>>1]=0;b[a+2528>>1]=0;b[a+2532>>1]=0;b[a+2536>>1]=0;b[a+2540>>1]=0;b[a+2544>>1]=0;b[a+2548>>1]=0;b[a+2552>>1]=0;b[a+2556>>1]=0;b[a+2684>>1]=0;b[a+2688>>1]=0;b[a+2692>>1]=0;b[a+2696>>1]=0;b[a+2700>>1]=0;b[a+2704>>1]=0;b[a+2708>>1]=0;b[a+2712>>1]=0;b[a+2716>>1]=0;b[a+2720>>1]=0;b[a+2724>>1]=0;b[a+2728>>1]=0;b[a+2732>>1]=0;b[a+2736>>1]=0;b[a+2740>>1]=0;b[a+2744>>1]=0;b[a+2748>>1]=0;b[a+2752>>1]=0;b[a+2756>>1]=0;b[a+1172>>1]=1;c[a+5804>>2]=0;c[a+5800>>2]=0;c[a+5808>>2]=0;c[a+5792>>2]=0;return}function ta(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=d+5820|0;j=c[i>>2]|0;k=h&65535;h=d+5816|0;l=k<<j|(e[h>>1]|0);b[h>>1]=l;if((j|0)>13){m=d+8|0;n=c[m>>2]|0;o=d+20|0;p=c[o>>2]|0;c[o>>2]=p+1;a[n+p>>0]=l;p=(e[h>>1]|0)>>>8&255;n=c[m>>2]|0;m=c[o>>2]|0;c[o>>2]=m+1;a[n+m>>0]=p;p=c[i>>2]|0;m=k>>>(16-p|0);b[h>>1]=m;q=m;r=p+-13|0}else{q=l;r=j+3|0}j=q&255;c[i>>2]=r;do if((r|0)<=8){q=d+8|0;if((r|0)>0){l=c[q>>2]|0;p=d+20|0;m=c[p>>2]|0;c[p>>2]=m+1;a[l+m>>0]=j;s=q;t=p;break}else{s=q;t=d+20|0;break}}else{q=d+8|0;p=c[q>>2]|0;m=d+20|0;l=c[m>>2]|0;c[m>>2]=l+1;a[p+l>>0]=j;l=(e[h>>1]|0)>>>8&255;p=c[q>>2]|0;k=c[m>>2]|0;c[m>>2]=k+1;a[p+k>>0]=l;s=q;t=m}while(0);b[h>>1]=0;c[i>>2]=0;c[d+5812>>2]=8;d=c[s>>2]|0;i=c[t>>2]|0;c[t>>2]=i+1;a[d+i>>0]=g;i=c[s>>2]|0;d=c[t>>2]|0;c[t>>2]=d+1;a[i+d>>0]=g>>>8;d=g&65535^65535;i=c[s>>2]|0;h=c[t>>2]|0;c[t>>2]=h+1;a[i+h>>0]=d;h=c[s>>2]|0;i=c[t>>2]|0;c[t>>2]=i+1;a[h+i>>0]=d>>>8;if(!g)return;d=g;g=f;while(1){d=d+-1|0;f=a[g>>0]|0;i=c[s>>2]|0;h=c[t>>2]|0;c[t>>2]=h+1;a[i+h>>0]=f;if(!d)break;else g=g+1|0}return}function ua(d){d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=d+5820|0;g=c[f>>2]|0;h=d+5816|0;i=2<<g|(e[h>>1]|0);j=i&65535;b[h>>1]=j;if((g|0)>13){k=d+8|0;l=c[k>>2]|0;m=d+20|0;n=c[m>>2]|0;c[m>>2]=n+1;a[l+n>>0]=i;i=(e[h>>1]|0)>>>8&255;n=c[k>>2]|0;k=c[m>>2]|0;c[m>>2]=k+1;a[n+k>>0]=i;i=c[f>>2]|0;k=2>>>(16-i|0)&65535;b[h>>1]=k;o=k;p=i+-13|0}else{o=j;p=g+3|0}c[f>>2]=p;if((p|0)>9){g=d+8|0;j=c[g>>2]|0;i=d+20|0;k=c[i>>2]|0;c[i>>2]=k+1;a[j+k>>0]=o;k=(e[h>>1]|0)>>>8&255;j=c[g>>2]|0;g=c[i>>2]|0;c[i>>2]=g+1;a[j+g>>0]=k;b[h>>1]=0;q=0;r=(c[f>>2]|0)+-9|0}else{q=o;r=p+7|0}c[f>>2]=r;if((r|0)!=16)if((r|0)>7){p=c[d+8>>2]|0;o=d+20|0;k=c[o>>2]|0;c[o>>2]=k+1;a[p+k>>0]=q;k=(e[h>>1]|0)>>>8;b[h>>1]=k;s=k;t=(c[f>>2]|0)+-8|0;u=11}else{v=r;w=q}else{r=d+8|0;k=c[r>>2]|0;p=d+20|0;o=c[p>>2]|0;c[p>>2]=o+1;a[k+o>>0]=q;q=(e[h>>1]|0)>>>8&255;o=c[r>>2]|0;r=c[p>>2]|0;c[p>>2]=r+1;a[o+r>>0]=q;b[h>>1]=0;s=0;t=0;u=11}if((u|0)==11){c[f>>2]=t;v=t;w=s}s=d+5812|0;if((11-v+(c[s>>2]|0)|0)>=9){c[s>>2]=7;return}t=2<<v|w&65535;b[h>>1]=t;if((v|0)>13){w=d+8|0;u=c[w>>2]|0;q=d+20|0;r=c[q>>2]|0;c[q>>2]=r+1;a[u+r>>0]=t;r=(e[h>>1]|0)>>>8&255;u=c[w>>2]|0;w=c[q>>2]|0;c[q>>2]=w+1;a[u+w>>0]=r;r=c[f>>2]|0;w=2>>>(16-r|0);b[h>>1]=w;x=w;y=r+-13|0}else{x=t;y=v+3|0}v=x&255;c[f>>2]=y;if((y|0)>9){x=d+8|0;t=c[x>>2]|0;r=d+20|0;w=c[r>>2]|0;c[r>>2]=w+1;a[t+w>>0]=v;w=(e[h>>1]|0)>>>8&255;t=c[x>>2]|0;x=c[r>>2]|0;c[r>>2]=x+1;a[t+x>>0]=w;b[h>>1]=0;z=0;A=(c[f>>2]|0)+-9|0}else{z=v;A=y+7|0}c[f>>2]=A;if((A|0)==16){y=d+8|0;v=c[y>>2]|0;w=d+20|0;x=c[w>>2]|0;c[w>>2]=x+1;a[v+x>>0]=z;x=(e[h>>1]|0)>>>8&255;v=c[y>>2]|0;y=c[w>>2]|0;c[w>>2]=y+1;a[v+y>>0]=x;b[h>>1]=0;c[f>>2]=0;c[s>>2]=7;return}if((A|0)<=7){c[s>>2]=7;return}A=c[d+8>>2]|0;x=d+20|0;d=c[x>>2]|0;c[x>>2]=d+1;a[A+d>>0]=z;b[h>>1]=(e[h>>1]|0)>>>8;c[f>>2]=(c[f>>2]|0)+-8;c[s>>2]=7;return}function va(f,g,h,i){f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;if((c[f+132>>2]|0)>0){j=(c[f>>2]|0)+44|0;if((c[j>>2]|0)==2){a:do if(((((((((((((((b[f+148>>1]|0)==0?(b[f+152>>1]|0)==0:0)?(b[f+156>>1]|0)==0:0)?(b[f+160>>1]|0)==0:0)?(b[f+164>>1]|0)==0:0)?(b[f+168>>1]|0)==0:0)?(b[f+172>>1]|0)==0:0)?(b[f+204>>1]|0)==0:0)?(b[f+208>>1]|0)==0:0)?(b[f+212>>1]|0)==0:0)?(b[f+216>>1]|0)==0:0)?(b[f+220>>1]|0)==0:0)?(b[f+224>>1]|0)==0:0)?(b[f+228>>1]|0)==0:0)?(b[f+232>>1]|0)==0:0){if(b[f+236>>1]|0){k=0;break}if(b[f+240>>1]|0){k=0;break}if(b[f+244>>1]|0){k=0;break}if(b[f+248>>1]|0){k=0;break}if(b[f+260>>1]|0){k=0;break}if(b[f+264>>1]|0){k=0;break}if(b[f+268>>1]|0){k=0;break}if(b[f+272>>1]|0){k=0;break}if(b[f+184>>1]|0){k=1;break}if(b[f+188>>1]|0){k=1;break}if(b[f+200>>1]|0){k=1;break}l=32;while(1){if(b[f+148+(l<<2)>>1]|0){k=1;break a}l=l+1|0;if(l>>>0>=256){k=0;break}}}else k=0;while(0);c[j>>2]=k}wa(f,f+2840|0);wa(f,f+2852|0);k=c[f+2844>>2]|0;j=b[f+150>>1]|0;l=j<<16>>16==0;m=k+1|0;b[f+148+(m<<2)+2>>1]=-1;if((k|0)>=0){k=f+2752|0;n=f+2756|0;o=f+2748|0;p=0;q=j&65535;j=0;r=-1;s=l?138:7;t=l?3:4;while(1){j=j+1|0;l=b[f+148+(j<<2)+2>>1]|0;u=q;q=l&65535;v=p+1|0;w=(u|0)==(q|0);if((v|0)<(s|0)&w){x=v;y=r;z=t;A=s}else{do if((v|0)>=(t|0))if(!u)if((p|0)<10){b[k>>1]=(b[k>>1]|0)+1<<16>>16;break}else{b[n>>1]=(b[n>>1]|0)+1<<16>>16;break}else{B=f+2684+(u<<2)|0;if((u|0)!=(r|0))b[B>>1]=(b[B>>1]|0)+1<<16>>16;b[o>>1]=(b[o>>1]|0)+1<<16>>16;break}else{B=f+2684+(u<<2)|0;b[B>>1]=v+(e[B>>1]|0)}while(0);v=l<<16>>16==0;x=0;y=u;z=v|w?3:4;A=v?138:w?6:7}if((j|0)==(m|0))break;else{p=x;r=y;s=A;t=z}}}z=c[f+2856>>2]|0;t=b[f+2442>>1]|0;A=t<<16>>16==0;s=z+1|0;b[f+2440+(s<<2)+2>>1]=-1;if((z|0)>=0){z=f+2752|0;y=f+2756|0;r=f+2748|0;x=0;p=t&65535;t=0;m=-1;j=A?138:7;o=A?3:4;while(1){t=t+1|0;A=b[f+2440+(t<<2)+2>>1]|0;n=p;p=A&65535;k=x+1|0;q=(n|0)==(p|0);if((k|0)<(j|0)&q){C=k;D=m;E=o;F=j}else{do if((k|0)>=(o|0))if(!n)if((x|0)<10){b[z>>1]=(b[z>>1]|0)+1<<16>>16;break}else{b[y>>1]=(b[y>>1]|0)+1<<16>>16;break}else{v=f+2684+(n<<2)|0;if((n|0)!=(m|0))b[v>>1]=(b[v>>1]|0)+1<<16>>16;b[r>>1]=(b[r>>1]|0)+1<<16>>16;break}else{v=f+2684+(n<<2)|0;b[v>>1]=k+(e[v>>1]|0)}while(0);k=A<<16>>16==0;C=0;D=n;E=k|q?3:4;F=k?138:q?6:7}if((t|0)==(s|0))break;else{x=C;m=D;j=F;o=E}}}wa(f,f+2864|0);do if(!(b[f+2746>>1]|0))if(!(b[f+2690>>1]|0))if(!(b[f+2742>>1]|0))if(!(b[f+2694>>1]|0))if(!(b[f+2738>>1]|0))if(!(b[f+2698>>1]|0))if(!(b[f+2734>>1]|0))if(!(b[f+2702>>1]|0))if(!(b[f+2730>>1]|0))if(!(b[f+2706>>1]|0))if(!(b[f+2726>>1]|0))if(!(b[f+2710>>1]|0))if(!(b[f+2722>>1]|0))if(!(b[f+2714>>1]|0)){if(b[f+2718>>1]|0){G=4;break}G=(b[f+2686>>1]|0)==0?2:3}else G=5;else G=6;else G=7;else G=8;else G=9;else G=10;else G=11;else G=12;else G=13;else G=14;else G=15;else G=16;else G=17;else G=18;while(0);E=f+5800|0;o=(G*3|0)+17+(c[E>>2]|0)|0;c[E>>2]=o;E=(o+10|0)>>>3;o=((c[f+5804>>2]|0)+10|0)>>>3;H=o>>>0>E>>>0?E:o;I=o;J=G}else{G=h+5|0;H=G;I=G;J=0}do if((g|0)!=0&(h+4|0)>>>0<=H>>>0)ta(f,g,h,i);else{G=f+5820|0;o=c[G>>2]|0;E=(o|0)>13;if((I|0)==(H|0)?1:(c[f+136>>2]|0)==4){F=i+2&65535;j=f+5816|0;D=F<<o|e[j>>1];b[j>>1]=D;if(E){m=f+8|0;C=c[m>>2]|0;x=f+20|0;s=c[x>>2]|0;c[x>>2]=s+1;a[C+s>>0]=D;D=(e[j>>1]|0)>>>8&255;s=c[m>>2]|0;m=c[x>>2]|0;c[x>>2]=m+1;a[s+m>>0]=D;D=c[G>>2]|0;b[j>>1]=F>>>(16-D|0);K=D+-13|0}else K=o+3|0;c[G>>2]=K;xa(f,11920,11664);break}D=i+4&65535;F=f+5816|0;j=D<<o|e[F>>1];b[F>>1]=j;if(E){E=f+8|0;m=c[E>>2]|0;s=f+20|0;x=c[s>>2]|0;c[s>>2]=x+1;a[m+x>>0]=j;x=(e[F>>1]|0)>>>8&255;m=c[E>>2]|0;E=c[s>>2]|0;c[s>>2]=E+1;a[m+E>>0]=x;x=c[G>>2]|0;E=D>>>(16-x|0);b[F>>1]=E;L=E;M=x+-13|0}else{L=j;M=o+3|0}c[G>>2]=M;o=c[f+2844>>2]|0;j=c[f+2856>>2]|0;x=o+65280&65535;E=x<<M|L&65535;b[F>>1]=E;if((M|0)>11){D=f+8|0;m=c[D>>2]|0;s=f+20|0;C=c[s>>2]|0;c[s>>2]=C+1;a[m+C>>0]=E;C=(e[F>>1]|0)>>>8&255;m=c[D>>2]|0;D=c[s>>2]|0;c[s>>2]=D+1;a[m+D>>0]=C;C=c[G>>2]|0;D=x>>>(16-C|0);b[F>>1]=D;N=D;O=C+-11|0}else{N=E;O=M+5|0}c[G>>2]=O;E=j&65535;C=E<<O|N&65535;b[F>>1]=C;if((O|0)>11){D=f+8|0;x=c[D>>2]|0;m=f+20|0;s=c[m>>2]|0;c[m>>2]=s+1;a[x+s>>0]=C;s=(e[F>>1]|0)>>>8&255;x=c[D>>2]|0;D=c[m>>2]|0;c[m>>2]=D+1;a[x+D>>0]=s;s=c[G>>2]|0;D=E>>>(16-s|0);b[F>>1]=D;P=D;Q=s+-11|0}else{P=C;Q=O+5|0}c[G>>2]=Q;C=J+65533&65535;s=C<<Q|P&65535;b[F>>1]=s;if((Q|0)>12){D=f+8|0;E=c[D>>2]|0;x=f+20|0;m=c[x>>2]|0;c[x>>2]=m+1;a[E+m>>0]=s;m=(e[F>>1]|0)>>>8&255;E=c[D>>2]|0;t=c[x>>2]|0;c[x>>2]=t+1;a[E+t>>0]=m;m=c[G>>2]|0;t=C>>>(16-m|0);b[F>>1]=t;R=x;S=D;T=t;U=m+-12|0}else{R=f+20|0;S=f+8|0;T=s;U=Q+4|0}c[G>>2]=U;s=0;m=U;t=T;while(1){D=e[f+2684+(d[13200+s>>0]<<2)+2>>1]|0;x=D<<m|t&65535;b[F>>1]=x;if((m|0)>13){C=c[S>>2]|0;E=c[R>>2]|0;c[R>>2]=E+1;a[C+E>>0]=x;E=(e[F>>1]|0)>>>8&255;C=c[S>>2]|0;r=c[R>>2]|0;c[R>>2]=r+1;a[C+r>>0]=E;E=c[G>>2]|0;r=D>>>(16-E|0);b[F>>1]=r;V=r;W=E+-13|0}else{V=x;W=m+3|0}c[G>>2]=W;if((s|0)==(J|0))break;else{s=s+1|0;m=W;t=V}}t=f+148|0;ya(f,t,o);m=f+2440|0;ya(f,m,j);xa(f,t,m)}while(0);sa(f);if(!i)return;i=f+5820|0;V=c[i>>2]|0;if((V|0)<=8){W=f+5816|0;if((V|0)>0){V=b[W>>1]&255;J=c[f+8>>2]|0;R=f+20|0;S=c[R>>2]|0;c[R>>2]=S+1;X=W;Y=V;Z=J+S|0;_=109}else $=W}else{W=f+5816|0;S=b[W>>1]&255;J=f+8|0;V=c[J>>2]|0;R=f+20|0;f=c[R>>2]|0;c[R>>2]=f+1;a[V+f>>0]=S;S=(e[W>>1]|0)>>>8&255;f=c[J>>2]|0;J=c[R>>2]|0;c[R>>2]=J+1;X=W;Y=S;Z=f+J|0;_=109}if((_|0)==109){a[Z>>0]=Y;$=X}b[$>>1]=0;c[i>>2]=0;return}function wa(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;h=E;E=E+32|0;i=h;j=c[g>>2]|0;k=g+8|0;l=c[k>>2]|0;m=c[l>>2]|0;n=c[l+12>>2]|0;l=f+5200|0;c[l>>2]=0;o=f+5204|0;c[o>>2]=573;if((n|0)>0){q=-1;r=0;while(1){if(!(b[j+(r<<2)>>1]|0)){b[j+(r<<2)+2>>1]=0;s=q}else{t=(c[l>>2]|0)+1|0;c[l>>2]=t;c[f+2908+(t<<2)>>2]=r;a[f+5208+r>>0]=0;s=r}r=r+1|0;if((r|0)==(n|0))break;else q=s}q=c[l>>2]|0;if((q|0)<2){u=s;v=q;w=8}else{x=s;y=q}}else{u=-1;v=0;w=8}if((w|0)==8){w=f+5800|0;q=f+5804|0;if(!m){s=u;r=v;while(1){t=(s|0)<2;z=s+1|0;A=t?z:s;B=t?z:0;z=r+1|0;c[l>>2]=z;c[f+2908+(z<<2)>>2]=B;b[j+(B<<2)>>1]=1;a[f+5208+B>>0]=0;c[w>>2]=(c[w>>2]|0)+-1;B=c[l>>2]|0;if((B|0)<2){s=A;r=B}else{x=A;y=B;break}}}else{r=u;u=v;while(1){v=(r|0)<2;s=r+1|0;B=v?s:r;A=v?s:0;s=u+1|0;c[l>>2]=s;c[f+2908+(s<<2)>>2]=A;b[j+(A<<2)>>1]=1;a[f+5208+A>>0]=0;c[w>>2]=(c[w>>2]|0)+-1;c[q>>2]=(c[q>>2]|0)-(e[m+(A<<2)+2>>1]|0);A=c[l>>2]|0;if((A|0)<2){r=B;u=A}else{x=B;y=A;break}}}}u=g+4|0;c[u>>2]=x;r=y>>>1;if(!r)C=y;else{m=r;r=y;while(1){y=f+2908+(m<<2)|0;q=c[y>>2]|0;w=f+5208+q|0;A=m<<1;if((A|0)>(r|0))D=y;else{y=j+(q<<2)|0;B=m;s=A;A=r;while(1){do if((s|0)<(A|0)){v=s|1;z=f+2908+(v<<2)|0;t=c[z>>2]|0;F=b[j+(t<<2)>>1]|0;G=f+2908+(s<<2)|0;H=c[G>>2]|0;I=b[j+(H<<2)>>1]|0;if((F&65535)>=(I&65535)){if(F<<16>>16!=I<<16>>16){J=s;K=G;break}if((d[f+5208+t>>0]|0)>(d[f+5208+H>>0]|0)){J=s;K=G;break}}J=v;K=z}else{J=s;K=f+2908+(s<<2)|0}while(0);z=b[y>>1]|0;v=c[K>>2]|0;G=b[j+(v<<2)>>1]|0;if((z&65535)<(G&65535)){L=B;break}if(z<<16>>16==G<<16>>16?(d[w>>0]|0)<=(d[f+5208+v>>0]|0):0){L=B;break}c[f+2908+(B<<2)>>2]=v;s=J<<1;A=c[l>>2]|0;if((s|0)>(A|0)){L=J;break}else B=J}D=f+2908+(L<<2)|0}c[D>>2]=q;if((m|0)<=1)break;m=m+-1|0;r=c[l>>2]|0}C=c[l>>2]|0}r=f+2912|0;m=n;n=C;do{C=c[r>>2]|0;D=n+-1|0;c[l>>2]=D;L=c[f+2908+(n<<2)>>2]|0;c[r>>2]=L;J=f+5208+L|0;if((n|0)<3)M=r;else{K=j+(L<<2)|0;B=1;A=2;s=D;while(1){do if((A|0)<(s|0)){D=A|1;w=f+2908+(D<<2)|0;y=c[w>>2]|0;v=b[j+(y<<2)>>1]|0;G=f+2908+(A<<2)|0;z=c[G>>2]|0;H=b[j+(z<<2)>>1]|0;if((v&65535)>=(H&65535)){if(v<<16>>16!=H<<16>>16){N=A;O=G;break}if((d[f+5208+y>>0]|0)>(d[f+5208+z>>0]|0)){N=A;O=G;break}}N=D;O=w}else{N=A;O=f+2908+(A<<2)|0}while(0);w=b[K>>1]|0;D=c[O>>2]|0;G=b[j+(D<<2)>>1]|0;if((w&65535)<(G&65535)){P=B;break}if(w<<16>>16==G<<16>>16?(d[J>>0]|0)<=(d[f+5208+D>>0]|0):0){P=B;break}c[f+2908+(B<<2)>>2]=D;A=N<<1;s=c[l>>2]|0;if((A|0)>(s|0)){P=N;break}else B=N}M=f+2908+(P<<2)|0}c[M>>2]=L;B=c[r>>2]|0;s=(c[o>>2]|0)+-1|0;c[o>>2]=s;c[f+2908+(s<<2)>>2]=C;s=(c[o>>2]|0)+-1|0;c[o>>2]=s;c[f+2908+(s<<2)>>2]=B;s=j+(m<<2)|0;b[s>>1]=(e[j+(B<<2)>>1]|0)+(e[j+(C<<2)>>1]|0);A=a[f+5208+C>>0]|0;J=a[f+5208+B>>0]|0;K=f+5208+m|0;a[K>>0]=(((A&255)<(J&255)?J:A)&255)+1;A=m&65535;b[j+(B<<2)+2>>1]=A;b[j+(C<<2)+2>>1]=A;c[r>>2]=m;A=c[l>>2]|0;if((A|0)<2)Q=r;else{B=1;J=2;q=A;while(1){do if((J|0)<(q|0)){A=J|1;D=f+2908+(A<<2)|0;G=c[D>>2]|0;w=b[j+(G<<2)>>1]|0;z=f+2908+(J<<2)|0;y=c[z>>2]|0;H=b[j+(y<<2)>>1]|0;if((w&65535)>=(H&65535)){if(w<<16>>16!=H<<16>>16){R=J;S=z;break}if((d[f+5208+G>>0]|0)>(d[f+5208+y>>0]|0)){R=J;S=z;break}}R=A;S=D}else{R=J;S=f+2908+(J<<2)|0}while(0);D=b[s>>1]|0;A=c[S>>2]|0;z=b[j+(A<<2)>>1]|0;if((D&65535)<(z&65535)){T=B;break}if(D<<16>>16==z<<16>>16?(d[K>>0]|0)<=(d[f+5208+A>>0]|0):0){T=B;break}c[f+2908+(B<<2)>>2]=A;J=R<<1;q=c[l>>2]|0;if((J|0)>(q|0)){T=R;break}else B=R}Q=f+2908+(T<<2)|0}c[Q>>2]=m;m=m+1|0;n=c[l>>2]|0}while((n|0)>1);n=c[r>>2]|0;r=(c[o>>2]|0)+-1|0;c[o>>2]=r;c[f+2908+(r<<2)>>2]=n;n=c[g>>2]|0;g=c[u>>2]|0;u=c[k>>2]|0;k=c[u>>2]|0;r=c[u+4>>2]|0;l=c[u+8>>2]|0;m=c[u+16>>2]|0;u=f+2876|0;Q=u;T=Q+32|0;do{b[Q>>1]=0;Q=Q+2|0}while((Q|0)<(T|0));b[n+(c[f+2908+(c[o>>2]<<2)>>2]<<2)+2>>1]=0;Q=c[o>>2]|0;o=Q+1|0;a:do if((Q|0)<572){T=f+5800|0;R=f+5804|0;if(!k){S=o;M=0;while(1){P=c[f+2908+(S<<2)>>2]|0;N=n+(P<<2)+2|0;O=e[n+(e[N>>1]<<2)+2>>1]|0;B=(m|0)>(O|0);q=B?O+1|0:m;O=M+((B^1)&1)|0;b[N>>1]=q;if((P|0)<=(g|0)){N=f+2876+(q<<1)|0;b[N>>1]=(b[N>>1]|0)+1<<16>>16;if((P|0)<(l|0))U=0;else U=c[r+(P-l<<2)>>2]|0;N=p(U+q|0,e[n+(P<<2)>>1]|0)|0;c[T>>2]=N+(c[T>>2]|0)}if((S|0)<572){S=S+1|0;M=O}else{V=O;break}}}else{M=o;S=0;while(1){O=c[f+2908+(M<<2)>>2]|0;N=n+(O<<2)+2|0;P=e[n+(e[N>>1]<<2)+2>>1]|0;q=(m|0)>(P|0);B=q?P+1|0:m;P=S+((q^1)&1)|0;b[N>>1]=B;if((O|0)<=(g|0)){N=f+2876+(B<<1)|0;b[N>>1]=(b[N>>1]|0)+1<<16>>16;if((O|0)<(l|0))W=0;else W=c[r+(O-l<<2)>>2]|0;N=e[n+(O<<2)>>1]|0;q=p(W+B|0,N)|0;c[T>>2]=q+(c[T>>2]|0);q=p(W+(e[k+(O<<2)+2>>1]|0)|0,N)|0;c[R>>2]=q+(c[R>>2]|0)}if((M|0)<572){M=M+1|0;S=P}else{V=P;break}}}if(V|0){S=f+2876+(m<<1)|0;M=V;while(1){R=m;while(1){P=R+-1|0;X=f+2876+(P<<1)|0;Y=b[X>>1]|0;if(!(Y<<16>>16))R=P;else break}b[X>>1]=Y+-1<<16>>16;P=f+2876+(R<<1)|0;b[P>>1]=(e[P>>1]|0)+2;Z=(b[S>>1]|0)+-1<<16>>16;b[S>>1]=Z;if((M|0)>2)M=M+-2|0;else break}if(m|0){M=573;S=m;P=Z;while(1){if(!(P<<16>>16))_=M;else{q=S&65535;N=P&65535;O=M;while(1){B=O;do{B=B+-1|0;$=c[f+2908+(B<<2)>>2]|0}while(($|0)>(g|0));J=n+($<<2)+2|0;K=e[J>>1]|0;if((S|0)!=(K|0)){s=p(S-K|0,e[n+($<<2)>>1]|0)|0;c[T>>2]=s+(c[T>>2]|0);b[J>>1]=q}N=N+-1|0;if(!N){_=B;break}else O=B}}O=S+-1|0;if(!O)break a;M=_;S=O;P=b[f+2876+(O<<1)>>1]|0}}}}while(0);_=e[u>>1]<<1;b[i+2>>1]=_;u=(_&65534)+(e[f+2878>>1]|0)<<1;b[i+4>>1]=u;_=(u&65534)+(e[f+2880>>1]|0)<<1;b[i+6>>1]=_;u=(_&65534)+(e[f+2882>>1]|0)<<1;b[i+8>>1]=u;_=(u&65534)+(e[f+2884>>1]|0)<<1;b[i+10>>1]=_;u=(_&65534)+(e[f+2886>>1]|0)<<1;b[i+12>>1]=u;_=(u&65534)+(e[f+2888>>1]|0)<<1;b[i+14>>1]=_;u=(_&65534)+(e[f+2890>>1]|0)<<1;b[i+16>>1]=u;_=(u&65534)+(e[f+2892>>1]|0)<<1;b[i+18>>1]=_;u=(_&65534)+(e[f+2894>>1]|0)<<1;b[i+20>>1]=u;_=(u&65534)+(e[f+2896>>1]|0)<<1;b[i+22>>1]=_;u=(_&65534)+(e[f+2898>>1]|0)<<1;b[i+24>>1]=u;_=(u&65534)+(e[f+2900>>1]|0)<<1;b[i+26>>1]=_;u=(_&65534)+(e[f+2902>>1]|0)<<1;b[i+28>>1]=u;b[i+30>>1]=(u&65534)+(e[f+2904>>1]|0)<<1;if((x|0)<0){E=h;return}f=0;while(1){u=b[j+(f<<2)+2>>1]|0;_=u&65535;if(u<<16>>16){u=i+(_<<1)|0;$=b[u>>1]|0;b[u>>1]=$+1<<16>>16;u=0;n=_;_=$&65535;while(1){aa=u|_&1;if((n|0)>1){u=aa<<1;n=n+-1|0;_=_>>>1}else break}b[j+(f<<2)>>1]=aa}if((f|0)==(x|0))break;else f=f+1|0}E=h;return}function xa(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;i=f+5792|0;if(!(c[i>>2]|0)){j=f+5820|0;k=f+5816|0;l=k;m=j;n=c[j>>2]|0;o=b[k>>1]|0}else{k=f+5796|0;j=f+5784|0;p=f+5820|0;q=f+5816|0;r=f+8|0;s=f+20|0;t=0;do{u=b[(c[k>>2]|0)+(t<<1)>>1]|0;v=u&65535;w=d[(c[j>>2]|0)+t>>0]|0;t=t+1|0;do if(!(u<<16>>16)){x=e[g+(w<<2)+2>>1]|0;y=c[p>>2]|0;z=e[g+(w<<2)>>1]|0;A=z<<y|(e[q>>1]|0);B=A&65535;b[q>>1]=B;if((y|0)>(16-x|0)){C=c[r>>2]|0;D=c[s>>2]|0;c[s>>2]=D+1;a[C+D>>0]=A;A=(e[q>>1]|0)>>>8&255;D=c[r>>2]|0;C=c[s>>2]|0;c[s>>2]=C+1;a[D+C>>0]=A;A=c[p>>2]|0;C=z>>>(16-A|0)&65535;b[q>>1]=C;E=C;F=x+-16+A|0;G=23;break}else{E=B;F=y+x|0;G=23;break}}else{x=d[11328+w>>0]|0;y=(x|256)+1|0;B=e[g+(y<<2)+2>>1]|0;A=c[p>>2]|0;C=e[g+(y<<2)>>1]|0;y=C<<A|(e[q>>1]|0);z=y&65535;b[q>>1]=z;if((A|0)>(16-B|0)){D=c[r>>2]|0;H=c[s>>2]|0;c[s>>2]=H+1;a[D+H>>0]=y;y=(e[q>>1]|0)>>>8&255;H=c[r>>2]|0;D=c[s>>2]|0;c[s>>2]=D+1;a[H+D>>0]=y;y=c[p>>2]|0;D=C>>>(16-y|0)&65535;b[q>>1]=D;I=D;J=B+-16+y|0}else{I=z;J=A+B|0}c[p>>2]=J;B=c[13072+(x<<2)>>2]|0;if((x+-8|0)>>>0<20){A=w-(c[13232+(x<<2)>>2]|0)&65535;x=A<<J|I&65535;z=x&65535;b[q>>1]=z;if((J|0)>(16-B|0)){y=c[r>>2]|0;D=c[s>>2]|0;c[s>>2]=D+1;a[y+D>>0]=x;x=(e[q>>1]|0)>>>8&255;D=c[r>>2]|0;y=c[s>>2]|0;c[s>>2]=y+1;a[D+y>>0]=x;x=c[p>>2]|0;y=A>>>(16-x|0)&65535;b[q>>1]=y;K=y;L=B+-16+x|0}else{K=z;L=B+J|0}c[p>>2]=L;M=L;N=K}else{M=J;N=I}B=v+-1|0;z=d[10816+(B>>>0<256?B:(B>>>7)+256|0)>>0]|0;x=e[h+(z<<2)+2>>1]|0;y=e[h+(z<<2)>>1]|0;A=y<<M|N&65535;D=A&65535;b[q>>1]=D;if((M|0)>(16-x|0)){C=c[r>>2]|0;H=c[s>>2]|0;c[s>>2]=H+1;a[C+H>>0]=A;A=(e[q>>1]|0)>>>8&255;H=c[r>>2]|0;C=c[s>>2]|0;c[s>>2]=C+1;a[H+C>>0]=A;A=c[p>>2]|0;C=y>>>(16-A|0)&65535;b[q>>1]=C;O=C;P=x+-16+A|0}else{O=D;P=M+x|0}c[p>>2]=P;x=c[11792+(z<<2)>>2]|0;if((z+-4|0)>>>0<26){D=B-(c[13360+(z<<2)>>2]|0)&65535;z=D<<P|O&65535;B=z&65535;b[q>>1]=B;if((P|0)>(16-x|0)){A=c[r>>2]|0;C=c[s>>2]|0;c[s>>2]=C+1;a[A+C>>0]=z;z=(e[q>>1]|0)>>>8&255;C=c[r>>2]|0;A=c[s>>2]|0;c[s>>2]=A+1;a[C+A>>0]=z;z=c[p>>2]|0;A=D>>>(16-z|0)&65535;b[q>>1]=A;E=A;F=x+-16+z|0;G=23;break}else{E=B;F=x+P|0;G=23;break}}else{Q=O;R=P}}while(0);if((G|0)==23){G=0;c[p>>2]=F;Q=E;R=F}}while(t>>>0<(c[i>>2]|0)>>>0);l=q;m=p;n=R;o=Q}Q=g+1026|0;R=e[Q>>1]|0;p=e[g+1024>>1]|0;g=p<<n|o&65535;b[l>>1]=g;if((n|0)>(16-R|0)){o=f+8|0;q=c[o>>2]|0;i=f+20|0;t=c[i>>2]|0;c[i>>2]=t+1;a[q+t>>0]=g;g=(e[l>>1]|0)>>>8&255;t=c[o>>2]|0;o=c[i>>2]|0;c[i>>2]=o+1;a[t+o>>0]=g;g=c[m>>2]|0;b[l>>1]=p>>>(16-g|0);S=R+-16+g|0;c[m>>2]=S;T=b[Q>>1]|0;U=T&65535;V=f+5812|0;c[V>>2]=U;return}else{S=n+R|0;c[m>>2]=S;T=b[Q>>1]|0;U=T&65535;V=f+5812|0;c[V>>2]=U;return}}function ya(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;h=b[f+2>>1]|0;i=h<<16>>16==0;if((g|0)<0)return;j=d+5820|0;k=d+5816|0;l=d+8|0;m=d+20|0;n=d+2754|0;o=d+2752|0;p=d+2758|0;q=d+2756|0;r=d+2750|0;s=d+2748|0;t=-1;u=h&65535;h=0;v=0;w=i?138:7;x=i?3:4;while(1){i=v;v=v+1|0;y=b[f+(v<<2)+2>>1]|0;z=u;u=y&65535;A=h+1|0;B=(z|0)==(u|0);if((A|0)<(w|0)&B){C=t;D=w;E=x;F=A}else{if((A|0)<(x|0)){G=d+2684+(z<<2)+2|0;H=d+2684+(z<<2)|0;I=A;J=c[j>>2]|0;K=b[k>>1]|0;while(1){L=e[G>>1]|0;M=e[H>>1]|0;N=M<<J|K&65535;O=N&65535;b[k>>1]=O;if((J|0)>(16-L|0)){P=c[l>>2]|0;Q=c[m>>2]|0;c[m>>2]=Q+1;a[P+Q>>0]=N;N=(e[k>>1]|0)>>>8&255;Q=c[l>>2]|0;P=c[m>>2]|0;c[m>>2]=P+1;a[Q+P>>0]=N;N=c[j>>2]|0;P=M>>>(16-N|0)&65535;b[k>>1]=P;R=P;S=L+-16+N|0}else{R=O;S=J+L|0}c[j>>2]=S;I=I+-1|0;if(!I)break;else{J=S;K=R}}}else{do if(!z)if((h|0)<10){K=e[n>>1]|0;J=c[j>>2]|0;I=e[o>>1]|0;H=I<<J|(e[k>>1]|0);b[k>>1]=H;if((J|0)>(16-K|0)){G=c[l>>2]|0;L=c[m>>2]|0;c[m>>2]=L+1;a[G+L>>0]=H;L=(e[k>>1]|0)>>>8&255;G=c[l>>2]|0;O=c[m>>2]|0;c[m>>2]=O+1;a[G+O>>0]=L;L=c[j>>2]|0;O=I>>>(16-L|0);b[k>>1]=O;T=O;U=K+-16+L|0}else{T=H;U=J+K|0}c[j>>2]=U;K=h+65534&65535;J=K<<U|T&65535;b[k>>1]=J;if((U|0)>13){H=c[l>>2]|0;L=c[m>>2]|0;c[m>>2]=L+1;a[H+L>>0]=J;J=(e[k>>1]|0)>>>8&255;L=c[l>>2]|0;H=c[m>>2]|0;c[m>>2]=H+1;a[L+H>>0]=J;J=c[j>>2]|0;b[k>>1]=K>>>(16-J|0);V=J+-13|0;break}else{V=U+3|0;break}}else{J=e[p>>1]|0;K=c[j>>2]|0;H=e[q>>1]|0;L=H<<K|(e[k>>1]|0);b[k>>1]=L;if((K|0)>(16-J|0)){O=c[l>>2]|0;I=c[m>>2]|0;c[m>>2]=I+1;a[O+I>>0]=L;I=(e[k>>1]|0)>>>8&255;O=c[l>>2]|0;G=c[m>>2]|0;c[m>>2]=G+1;a[O+G>>0]=I;I=c[j>>2]|0;G=H>>>(16-I|0);b[k>>1]=G;W=G;X=J+-16+I|0}else{W=L;X=K+J|0}c[j>>2]=X;J=h+65526&65535;K=J<<X|W&65535;b[k>>1]=K;if((X|0)>9){L=c[l>>2]|0;I=c[m>>2]|0;c[m>>2]=I+1;a[L+I>>0]=K;K=(e[k>>1]|0)>>>8&255;I=c[l>>2]|0;L=c[m>>2]|0;c[m>>2]=L+1;a[I+L>>0]=K;K=c[j>>2]|0;b[k>>1]=J>>>(16-K|0);V=K+-9|0;break}else{V=X+7|0;break}}else{if((z|0)==(t|0)){Y=A;Z=c[j>>2]|0}else{K=e[d+2684+(z<<2)+2>>1]|0;J=c[j>>2]|0;L=e[d+2684+(z<<2)>>1]|0;I=L<<J|(e[k>>1]|0);b[k>>1]=I;if((J|0)>(16-K|0)){G=c[l>>2]|0;H=c[m>>2]|0;c[m>>2]=H+1;a[G+H>>0]=I;I=(e[k>>1]|0)>>>8&255;H=c[l>>2]|0;G=c[m>>2]|0;c[m>>2]=G+1;a[H+G>>0]=I;I=c[j>>2]|0;b[k>>1]=L>>>(16-I|0);_=K+-16+I|0}else _=J+K|0;c[j>>2]=_;Y=h;Z=_}K=e[r>>1]|0;J=e[s>>1]|0;I=J<<Z|(e[k>>1]|0);b[k>>1]=I;if((Z|0)>(16-K|0)){L=c[l>>2]|0;G=c[m>>2]|0;c[m>>2]=G+1;a[L+G>>0]=I;G=(e[k>>1]|0)>>>8&255;L=c[l>>2]|0;H=c[m>>2]|0;c[m>>2]=H+1;a[L+H>>0]=G;G=c[j>>2]|0;H=J>>>(16-G|0);b[k>>1]=H;$=H;aa=K+-16+G|0}else{$=I;aa=Z+K|0}c[j>>2]=aa;K=Y+65533&65535;I=K<<aa|$&65535;b[k>>1]=I;if((aa|0)>14){G=c[l>>2]|0;H=c[m>>2]|0;c[m>>2]=H+1;a[G+H>>0]=I;I=(e[k>>1]|0)>>>8&255;H=c[l>>2]|0;G=c[m>>2]|0;c[m>>2]=G+1;a[H+G>>0]=I;I=c[j>>2]|0;b[k>>1]=K>>>(16-I|0);V=I+-14|0;break}else{V=aa+2|0;break}}while(0);c[j>>2]=V}A=y<<16>>16==0;C=z;D=A?138:B?6:7;E=A|B?3:4;F=0}if((i|0)==(g|0))break;else{t=C;h=F;w=D;x=E}}return}function za(a,b,c){a=a|0;b=b|0;c=c|0;return Ba(p(c,b)|0)|0}function Aa(a,b){a=a|0;b=b|0;Ca(b);return}
function Ba(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0;b=E;E=E+16|0;d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[4128]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=16552+(i<<1<<2)|0;k=j+8|0;l=c[k>>2]|0;m=l+8|0;n=c[m>>2]|0;if((n|0)==(j|0))c[4128]=g&~(1<<i);else{c[n+12>>2]=j;c[k>>2]=n}n=i<<3;c[l+4>>2]=n|3;i=l+n+4|0;c[i>>2]=c[i>>2]|1;o=m;E=b;return o|0}m=c[4130]|0;if(e>>>0>m>>>0){if(h|0){i=2<<f;n=h<<f&(i|0-i);i=(n&0-n)+-1|0;n=i>>>12&16;f=i>>>n;i=f>>>5&8;h=f>>>i;f=h>>>2&4;l=h>>>f;h=l>>>1&2;k=l>>>h;l=k>>>1&1;j=(i|n|f|h|l)+(k>>>l)|0;l=16552+(j<<1<<2)|0;k=l+8|0;h=c[k>>2]|0;f=h+8|0;n=c[f>>2]|0;if((n|0)==(l|0)){i=g&~(1<<j);c[4128]=i;p=i}else{c[n+12>>2]=l;c[k>>2]=n;p=g}n=j<<3;j=n-e|0;c[h+4>>2]=e|3;k=h+e|0;c[k+4>>2]=j|1;c[h+n>>2]=j;if(m|0){n=c[4133]|0;h=m>>>3;l=16552+(h<<1<<2)|0;i=1<<h;if(!(p&i)){c[4128]=p|i;q=l;r=l+8|0}else{i=l+8|0;q=c[i>>2]|0;r=i}c[r>>2]=n;c[q+12>>2]=n;c[n+8>>2]=q;c[n+12>>2]=l}c[4130]=j;c[4133]=k;o=f;E=b;return o|0}f=c[4129]|0;if(f){k=(f&0-f)+-1|0;j=k>>>12&16;l=k>>>j;k=l>>>5&8;n=l>>>k;l=n>>>2&4;i=n>>>l;n=i>>>1&2;h=i>>>n;i=h>>>1&1;s=c[16816+((k|j|l|n|i)+(h>>>i)<<2)>>2]|0;i=s;h=s;n=(c[s+4>>2]&-8)-e|0;while(1){s=c[i+16>>2]|0;if(!s){l=c[i+20>>2]|0;if(!l)break;else t=l}else t=s;s=(c[t+4>>2]&-8)-e|0;l=s>>>0<n>>>0;i=t;h=l?t:h;n=l?s:n}i=h+e|0;if(i>>>0>h>>>0){s=c[h+24>>2]|0;l=c[h+12>>2]|0;do if((l|0)==(h|0)){j=h+20|0;k=c[j>>2]|0;if(!k){u=h+16|0;v=c[u>>2]|0;if(!v){w=0;break}else{x=v;y=u}}else{x=k;y=j}j=x;k=y;while(1){u=j+20|0;v=c[u>>2]|0;if(!v){z=j+16|0;A=c[z>>2]|0;if(!A)break;else{B=A;C=z}}else{B=v;C=u}j=B;k=C}c[k>>2]=0;w=j}else{u=c[h+8>>2]|0;c[u+12>>2]=l;c[l+8>>2]=u;w=l}while(0);do if(s|0){l=c[h+28>>2]|0;u=16816+(l<<2)|0;if((h|0)==(c[u>>2]|0)){c[u>>2]=w;if(!w){c[4129]=f&~(1<<l);break}}else{l=s+16|0;c[((c[l>>2]|0)==(h|0)?l:s+20|0)>>2]=w;if(!w)break}c[w+24>>2]=s;l=c[h+16>>2]|0;if(l|0){c[w+16>>2]=l;c[l+24>>2]=w}l=c[h+20>>2]|0;if(l|0){c[w+20>>2]=l;c[l+24>>2]=w}}while(0);if(n>>>0<16){s=n+e|0;c[h+4>>2]=s|3;f=h+s+4|0;c[f>>2]=c[f>>2]|1}else{c[h+4>>2]=e|3;c[i+4>>2]=n|1;c[i+n>>2]=n;if(m|0){f=c[4133]|0;s=m>>>3;l=16552+(s<<1<<2)|0;u=1<<s;if(!(u&g)){c[4128]=u|g;D=l;F=l+8|0}else{u=l+8|0;D=c[u>>2]|0;F=u}c[F>>2]=f;c[D+12>>2]=f;c[f+8>>2]=D;c[f+12>>2]=l}c[4130]=n;c[4133]=i}o=h+8|0;E=b;return o|0}else G=e}else G=e}else G=e}else if(a>>>0<=4294967231){l=a+11|0;f=l&-8;u=c[4129]|0;if(u){s=0-f|0;v=l>>>8;if(v)if(f>>>0>16777215)H=31;else{l=(v+1048320|0)>>>16&8;z=v<<l;v=(z+520192|0)>>>16&4;A=z<<v;z=(A+245760|0)>>>16&2;I=14-(v|l|z)+(A<<z>>>15)|0;H=f>>>(I+7|0)&1|I<<1}else H=0;I=c[16816+(H<<2)>>2]|0;a:do if(!I){J=0;K=0;L=s;M=61}else{z=0;A=s;l=I;v=f<<((H|0)==31?0:25-(H>>>1)|0);N=0;while(1){O=(c[l+4>>2]&-8)-f|0;if(O>>>0<A>>>0)if(!O){P=l;Q=0;R=l;M=65;break a}else{S=l;T=O}else{S=z;T=A}O=c[l+20>>2]|0;l=c[l+16+(v>>>31<<2)>>2]|0;U=(O|0)==0|(O|0)==(l|0)?N:O;if(!l){J=U;K=S;L=T;M=61;break}else{z=S;A=T;v=v<<1;N=U}}}while(0);if((M|0)==61){if((J|0)==0&(K|0)==0){I=2<<H;s=(I|0-I)&u;if(!s){G=f;break}I=(s&0-s)+-1|0;s=I>>>12&16;e=I>>>s;I=e>>>5&8;h=e>>>I;e=h>>>2&4;i=h>>>e;h=i>>>1&2;n=i>>>h;i=n>>>1&1;V=0;W=c[16816+((I|s|e|h|i)+(n>>>i)<<2)>>2]|0}else{V=K;W=J}if(!W){X=V;Y=L}else{P=V;Q=L;R=W;M=65}}if((M|0)==65){i=P;n=Q;h=R;while(1){e=(c[h+4>>2]&-8)-f|0;s=e>>>0<n>>>0;I=s?e:n;e=s?h:i;s=c[h+16>>2]|0;if(!s)Z=c[h+20>>2]|0;else Z=s;if(!Z){X=e;Y=I;break}else{i=e;n=I;h=Z}}}if(((X|0)!=0?Y>>>0<((c[4130]|0)-f|0)>>>0:0)?(h=X+f|0,h>>>0>X>>>0):0){n=c[X+24>>2]|0;i=c[X+12>>2]|0;do if((i|0)==(X|0)){I=X+20|0;e=c[I>>2]|0;if(!e){s=X+16|0;g=c[s>>2]|0;if(!g){_=0;break}else{$=g;aa=s}}else{$=e;aa=I}I=$;e=aa;while(1){s=I+20|0;g=c[s>>2]|0;if(!g){m=I+16|0;N=c[m>>2]|0;if(!N)break;else{ba=N;ca=m}}else{ba=g;ca=s}I=ba;e=ca}c[e>>2]=0;_=I}else{s=c[X+8>>2]|0;c[s+12>>2]=i;c[i+8>>2]=s;_=i}while(0);do if(n){i=c[X+28>>2]|0;s=16816+(i<<2)|0;if((X|0)==(c[s>>2]|0)){c[s>>2]=_;if(!_){s=u&~(1<<i);c[4129]=s;da=s;break}}else{s=n+16|0;c[((c[s>>2]|0)==(X|0)?s:n+20|0)>>2]=_;if(!_){da=u;break}}c[_+24>>2]=n;s=c[X+16>>2]|0;if(s|0){c[_+16>>2]=s;c[s+24>>2]=_}s=c[X+20>>2]|0;if(s){c[_+20>>2]=s;c[s+24>>2]=_;da=u}else da=u}else da=u;while(0);b:do if(Y>>>0<16){u=Y+f|0;c[X+4>>2]=u|3;n=X+u+4|0;c[n>>2]=c[n>>2]|1}else{c[X+4>>2]=f|3;c[h+4>>2]=Y|1;c[h+Y>>2]=Y;n=Y>>>3;if(Y>>>0<256){u=16552+(n<<1<<2)|0;s=c[4128]|0;i=1<<n;if(!(s&i)){c[4128]=s|i;ea=u;fa=u+8|0}else{i=u+8|0;ea=c[i>>2]|0;fa=i}c[fa>>2]=h;c[ea+12>>2]=h;c[h+8>>2]=ea;c[h+12>>2]=u;break}u=Y>>>8;if(u)if(Y>>>0>16777215)ga=31;else{i=(u+1048320|0)>>>16&8;s=u<<i;u=(s+520192|0)>>>16&4;n=s<<u;s=(n+245760|0)>>>16&2;g=14-(u|i|s)+(n<<s>>>15)|0;ga=Y>>>(g+7|0)&1|g<<1}else ga=0;g=16816+(ga<<2)|0;c[h+28>>2]=ga;s=h+16|0;c[s+4>>2]=0;c[s>>2]=0;s=1<<ga;if(!(da&s)){c[4129]=da|s;c[g>>2]=h;c[h+24>>2]=g;c[h+12>>2]=h;c[h+8>>2]=h;break}s=c[g>>2]|0;c:do if((c[s+4>>2]&-8|0)==(Y|0))ha=s;else{g=Y<<((ga|0)==31?0:25-(ga>>>1)|0);n=s;while(1){ia=n+16+(g>>>31<<2)|0;i=c[ia>>2]|0;if(!i)break;if((c[i+4>>2]&-8|0)==(Y|0)){ha=i;break c}else{g=g<<1;n=i}}c[ia>>2]=h;c[h+24>>2]=n;c[h+12>>2]=h;c[h+8>>2]=h;break b}while(0);s=ha+8|0;I=c[s>>2]|0;c[I+12>>2]=h;c[s>>2]=h;c[h+8>>2]=I;c[h+12>>2]=ha;c[h+24>>2]=0}while(0);o=X+8|0;E=b;return o|0}else G=f}else G=f}else G=-1;while(0);X=c[4130]|0;if(X>>>0>=G>>>0){ha=X-G|0;ia=c[4133]|0;if(ha>>>0>15){Y=ia+G|0;c[4133]=Y;c[4130]=ha;c[Y+4>>2]=ha|1;c[ia+X>>2]=ha;c[ia+4>>2]=G|3}else{c[4130]=0;c[4133]=0;c[ia+4>>2]=X|3;ha=ia+X+4|0;c[ha>>2]=c[ha>>2]|1}o=ia+8|0;E=b;return o|0}ia=c[4131]|0;if(ia>>>0>G>>>0){ha=ia-G|0;c[4131]=ha;X=c[4134]|0;Y=X+G|0;c[4134]=Y;c[Y+4>>2]=ha|1;c[X+4>>2]=G|3;o=X+8|0;E=b;return o|0}if(!(c[4246]|0)){c[4248]=4096;c[4247]=4096;c[4249]=-1;c[4250]=-1;c[4251]=0;c[4239]=0;c[4246]=d&-16^1431655768;ja=4096}else ja=c[4248]|0;d=G+48|0;X=G+47|0;ha=ja+X|0;Y=0-ja|0;ja=ha&Y;if(ja>>>0<=G>>>0){o=0;E=b;return o|0}ga=c[4238]|0;if(ga|0?(da=c[4236]|0,ea=da+ja|0,ea>>>0<=da>>>0|ea>>>0>ga>>>0):0){o=0;E=b;return o|0}d:do if(!(c[4239]&4)){ga=c[4134]|0;e:do if(ga){ea=16960;while(1){da=c[ea>>2]|0;if(da>>>0<=ga>>>0?(da+(c[ea+4>>2]|0)|0)>>>0>ga>>>0:0)break;da=c[ea+8>>2]|0;if(!da){M=128;break e}else ea=da}da=ha-ia&Y;if(da>>>0<2147483647){fa=$a(da|0)|0;if((fa|0)==((c[ea>>2]|0)+(c[ea+4>>2]|0)|0))if((fa|0)==(-1|0))ka=da;else{la=da;ma=fa;M=145;break d}else{na=fa;oa=da;M=136}}else ka=0}else M=128;while(0);do if((M|0)==128){ga=$a(0)|0;if((ga|0)!=(-1|0)?(f=ga,da=c[4247]|0,fa=da+-1|0,_=((fa&f|0)==0?0:(fa+f&0-da)-f|0)+ja|0,f=c[4236]|0,da=_+f|0,_>>>0>G>>>0&_>>>0<2147483647):0){fa=c[4238]|0;if(fa|0?da>>>0<=f>>>0|da>>>0>fa>>>0:0){ka=0;break}fa=$a(_|0)|0;if((fa|0)==(ga|0)){la=_;ma=ga;M=145;break d}else{na=fa;oa=_;M=136}}else ka=0}while(0);do if((M|0)==136){_=0-oa|0;if(!(d>>>0>oa>>>0&(oa>>>0<2147483647&(na|0)!=(-1|0))))if((na|0)==(-1|0)){ka=0;break}else{la=oa;ma=na;M=145;break d}fa=c[4248]|0;ga=X-oa+fa&0-fa;if(ga>>>0>=2147483647){la=oa;ma=na;M=145;break d}if(($a(ga|0)|0)==(-1|0)){$a(_|0)|0;ka=0;break}else{la=ga+oa|0;ma=na;M=145;break d}}while(0);c[4239]=c[4239]|4;pa=ka;M=143}else{pa=0;M=143}while(0);if(((M|0)==143?ja>>>0<2147483647:0)?(ka=$a(ja|0)|0,ja=$a(0)|0,na=ja-ka|0,oa=na>>>0>(G+40|0)>>>0,!((ka|0)==(-1|0)|oa^1|ka>>>0<ja>>>0&((ka|0)!=(-1|0)&(ja|0)!=(-1|0))^1)):0){la=oa?na:pa;ma=ka;M=145}if((M|0)==145){ka=(c[4236]|0)+la|0;c[4236]=ka;if(ka>>>0>(c[4237]|0)>>>0)c[4237]=ka;ka=c[4134]|0;f:do if(ka){pa=16960;while(1){qa=c[pa>>2]|0;ra=c[pa+4>>2]|0;if((ma|0)==(qa+ra|0)){M=154;break}na=c[pa+8>>2]|0;if(!na)break;else pa=na}if(((M|0)==154?(na=pa+4|0,(c[pa+12>>2]&8|0)==0):0)?ma>>>0>ka>>>0&qa>>>0<=ka>>>0:0){c[na>>2]=ra+la;na=(c[4131]|0)+la|0;oa=ka+8|0;ja=(oa&7|0)==0?0:0-oa&7;oa=ka+ja|0;X=na-ja|0;c[4134]=oa;c[4131]=X;c[oa+4>>2]=X|1;c[ka+na+4>>2]=40;c[4135]=c[4250];break}if(ma>>>0<(c[4132]|0)>>>0)c[4132]=ma;na=ma+la|0;X=16960;while(1){if((c[X>>2]|0)==(na|0)){M=162;break}oa=c[X+8>>2]|0;if(!oa)break;else X=oa}if((M|0)==162?(c[X+12>>2]&8|0)==0:0){c[X>>2]=ma;pa=X+4|0;c[pa>>2]=(c[pa>>2]|0)+la;pa=ma+8|0;oa=ma+((pa&7|0)==0?0:0-pa&7)|0;pa=na+8|0;ja=na+((pa&7|0)==0?0:0-pa&7)|0;pa=oa+G|0;d=ja-oa-G|0;c[oa+4>>2]=G|3;g:do if((ka|0)==(ja|0)){Y=(c[4131]|0)+d|0;c[4131]=Y;c[4134]=pa;c[pa+4>>2]=Y|1}else{if((c[4133]|0)==(ja|0)){Y=(c[4130]|0)+d|0;c[4130]=Y;c[4133]=pa;c[pa+4>>2]=Y|1;c[pa+Y>>2]=Y;break}Y=c[ja+4>>2]|0;if((Y&3|0)==1){ia=Y&-8;ha=Y>>>3;h:do if(Y>>>0<256){ga=c[ja+8>>2]|0;_=c[ja+12>>2]|0;if((_|0)==(ga|0)){c[4128]=c[4128]&~(1<<ha);break}else{c[ga+12>>2]=_;c[_+8>>2]=ga;break}}else{ga=c[ja+24>>2]|0;_=c[ja+12>>2]|0;do if((_|0)==(ja|0)){fa=ja+16|0;da=fa+4|0;f=c[da>>2]|0;if(!f){ca=c[fa>>2]|0;if(!ca){sa=0;break}else{ta=ca;ua=fa}}else{ta=f;ua=da}da=ta;f=ua;while(1){fa=da+20|0;ca=c[fa>>2]|0;if(!ca){ba=da+16|0;aa=c[ba>>2]|0;if(!aa)break;else{va=aa;wa=ba}}else{va=ca;wa=fa}da=va;f=wa}c[f>>2]=0;sa=da}else{fa=c[ja+8>>2]|0;c[fa+12>>2]=_;c[_+8>>2]=fa;sa=_}while(0);if(!ga)break;_=c[ja+28>>2]|0;n=16816+(_<<2)|0;do if((c[n>>2]|0)!=(ja|0)){fa=ga+16|0;c[((c[fa>>2]|0)==(ja|0)?fa:ga+20|0)>>2]=sa;if(!sa)break h}else{c[n>>2]=sa;if(sa|0)break;c[4129]=c[4129]&~(1<<_);break h}while(0);c[sa+24>>2]=ga;_=ja+16|0;n=c[_>>2]|0;if(n|0){c[sa+16>>2]=n;c[n+24>>2]=sa}n=c[_+4>>2]|0;if(!n)break;c[sa+20>>2]=n;c[n+24>>2]=sa}while(0);xa=ja+ia|0;ya=ia+d|0}else{xa=ja;ya=d}ha=xa+4|0;c[ha>>2]=c[ha>>2]&-2;c[pa+4>>2]=ya|1;c[pa+ya>>2]=ya;ha=ya>>>3;if(ya>>>0<256){Y=16552+(ha<<1<<2)|0;ea=c[4128]|0;n=1<<ha;if(!(ea&n)){c[4128]=ea|n;za=Y;Aa=Y+8|0}else{n=Y+8|0;za=c[n>>2]|0;Aa=n}c[Aa>>2]=pa;c[za+12>>2]=pa;c[pa+8>>2]=za;c[pa+12>>2]=Y;break}Y=ya>>>8;do if(!Y)Ba=0;else{if(ya>>>0>16777215){Ba=31;break}n=(Y+1048320|0)>>>16&8;ea=Y<<n;ha=(ea+520192|0)>>>16&4;_=ea<<ha;ea=(_+245760|0)>>>16&2;fa=14-(ha|n|ea)+(_<<ea>>>15)|0;Ba=ya>>>(fa+7|0)&1|fa<<1}while(0);Y=16816+(Ba<<2)|0;c[pa+28>>2]=Ba;ia=pa+16|0;c[ia+4>>2]=0;c[ia>>2]=0;ia=c[4129]|0;fa=1<<Ba;if(!(ia&fa)){c[4129]=ia|fa;c[Y>>2]=pa;c[pa+24>>2]=Y;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break}fa=c[Y>>2]|0;i:do if((c[fa+4>>2]&-8|0)==(ya|0))Ca=fa;else{Y=ya<<((Ba|0)==31?0:25-(Ba>>>1)|0);ia=fa;while(1){Da=ia+16+(Y>>>31<<2)|0;ea=c[Da>>2]|0;if(!ea)break;if((c[ea+4>>2]&-8|0)==(ya|0)){Ca=ea;break i}else{Y=Y<<1;ia=ea}}c[Da>>2]=pa;c[pa+24>>2]=ia;c[pa+12>>2]=pa;c[pa+8>>2]=pa;break g}while(0);fa=Ca+8|0;Y=c[fa>>2]|0;c[Y+12>>2]=pa;c[fa>>2]=pa;c[pa+8>>2]=Y;c[pa+12>>2]=Ca;c[pa+24>>2]=0}while(0);o=oa+8|0;E=b;return o|0}pa=16960;while(1){d=c[pa>>2]|0;if(d>>>0<=ka>>>0?(Fa=d+(c[pa+4>>2]|0)|0,Fa>>>0>ka>>>0):0)break;pa=c[pa+8>>2]|0}pa=Fa+-47|0;oa=pa+8|0;d=pa+((oa&7|0)==0?0:0-oa&7)|0;oa=ka+16|0;pa=d>>>0<oa>>>0?ka:d;d=pa+8|0;ja=la+-40|0;na=ma+8|0;X=(na&7|0)==0?0:0-na&7;na=ma+X|0;Y=ja-X|0;c[4134]=na;c[4131]=Y;c[na+4>>2]=Y|1;c[ma+ja+4>>2]=40;c[4135]=c[4250];ja=pa+4|0;c[ja>>2]=27;c[d>>2]=c[4240];c[d+4>>2]=c[4241];c[d+8>>2]=c[4242];c[d+12>>2]=c[4243];c[4240]=ma;c[4241]=la;c[4243]=0;c[4242]=d;d=pa+24|0;do{Y=d;d=d+4|0;c[d>>2]=7}while((Y+8|0)>>>0<Fa>>>0);if((pa|0)!=(ka|0)){d=pa-ka|0;c[ja>>2]=c[ja>>2]&-2;c[ka+4>>2]=d|1;c[pa>>2]=d;Y=d>>>3;if(d>>>0<256){na=16552+(Y<<1<<2)|0;X=c[4128]|0;fa=1<<Y;if(!(X&fa)){c[4128]=X|fa;Ga=na;Ha=na+8|0}else{fa=na+8|0;Ga=c[fa>>2]|0;Ha=fa}c[Ha>>2]=ka;c[Ga+12>>2]=ka;c[ka+8>>2]=Ga;c[ka+12>>2]=na;break}na=d>>>8;if(na)if(d>>>0>16777215)Ia=31;else{fa=(na+1048320|0)>>>16&8;X=na<<fa;na=(X+520192|0)>>>16&4;Y=X<<na;X=(Y+245760|0)>>>16&2;ga=14-(na|fa|X)+(Y<<X>>>15)|0;Ia=d>>>(ga+7|0)&1|ga<<1}else Ia=0;ga=16816+(Ia<<2)|0;c[ka+28>>2]=Ia;c[ka+20>>2]=0;c[oa>>2]=0;X=c[4129]|0;Y=1<<Ia;if(!(X&Y)){c[4129]=X|Y;c[ga>>2]=ka;c[ka+24>>2]=ga;c[ka+12>>2]=ka;c[ka+8>>2]=ka;break}Y=c[ga>>2]|0;j:do if((c[Y+4>>2]&-8|0)==(d|0))Ja=Y;else{ga=d<<((Ia|0)==31?0:25-(Ia>>>1)|0);X=Y;while(1){Ka=X+16+(ga>>>31<<2)|0;fa=c[Ka>>2]|0;if(!fa)break;if((c[fa+4>>2]&-8|0)==(d|0)){Ja=fa;break j}else{ga=ga<<1;X=fa}}c[Ka>>2]=ka;c[ka+24>>2]=X;c[ka+12>>2]=ka;c[ka+8>>2]=ka;break f}while(0);d=Ja+8|0;Y=c[d>>2]|0;c[Y+12>>2]=ka;c[d>>2]=ka;c[ka+8>>2]=Y;c[ka+12>>2]=Ja;c[ka+24>>2]=0}}else{Y=c[4132]|0;if((Y|0)==0|ma>>>0<Y>>>0)c[4132]=ma;c[4240]=ma;c[4241]=la;c[4243]=0;c[4137]=c[4246];c[4136]=-1;c[4141]=16552;c[4140]=16552;c[4143]=16560;c[4142]=16560;c[4145]=16568;c[4144]=16568;c[4147]=16576;c[4146]=16576;c[4149]=16584;c[4148]=16584;c[4151]=16592;c[4150]=16592;c[4153]=16600;c[4152]=16600;c[4155]=16608;c[4154]=16608;c[4157]=16616;c[4156]=16616;c[4159]=16624;c[4158]=16624;c[4161]=16632;c[4160]=16632;c[4163]=16640;c[4162]=16640;c[4165]=16648;c[4164]=16648;c[4167]=16656;c[4166]=16656;c[4169]=16664;c[4168]=16664;c[4171]=16672;c[4170]=16672;c[4173]=16680;c[4172]=16680;c[4175]=16688;c[4174]=16688;c[4177]=16696;c[4176]=16696;c[4179]=16704;c[4178]=16704;c[4181]=16712;c[4180]=16712;c[4183]=16720;c[4182]=16720;c[4185]=16728;c[4184]=16728;c[4187]=16736;c[4186]=16736;c[4189]=16744;c[4188]=16744;c[4191]=16752;c[4190]=16752;c[4193]=16760;c[4192]=16760;c[4195]=16768;c[4194]=16768;c[4197]=16776;c[4196]=16776;c[4199]=16784;c[4198]=16784;c[4201]=16792;c[4200]=16792;c[4203]=16800;c[4202]=16800;Y=la+-40|0;d=ma+8|0;oa=(d&7|0)==0?0:0-d&7;d=ma+oa|0;pa=Y-oa|0;c[4134]=d;c[4131]=pa;c[d+4>>2]=pa|1;c[ma+Y+4>>2]=40;c[4135]=c[4250]}while(0);ma=c[4131]|0;if(ma>>>0>G>>>0){la=ma-G|0;c[4131]=la;ma=c[4134]|0;ka=ma+G|0;c[4134]=ka;c[ka+4>>2]=la|1;c[ma+4>>2]=G|3;o=ma+8|0;E=b;return o|0}}c[(Ea()|0)>>2]=12;o=0;E=b;return o|0}function Ca(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;if(!a)return;b=a+-8|0;d=c[4132]|0;e=c[a+-4>>2]|0;a=e&-8;f=b+a|0;do if(!(e&1)){g=c[b>>2]|0;if(!(e&3))return;h=b+(0-g)|0;i=g+a|0;if(h>>>0<d>>>0)return;if((c[4133]|0)==(h|0)){j=f+4|0;k=c[j>>2]|0;if((k&3|0)!=3){l=h;m=i;n=h;break}c[4130]=i;c[j>>2]=k&-2;c[h+4>>2]=i|1;c[h+i>>2]=i;return}k=g>>>3;if(g>>>0<256){g=c[h+8>>2]|0;j=c[h+12>>2]|0;if((j|0)==(g|0)){c[4128]=c[4128]&~(1<<k);l=h;m=i;n=h;break}else{c[g+12>>2]=j;c[j+8>>2]=g;l=h;m=i;n=h;break}}g=c[h+24>>2]|0;j=c[h+12>>2]|0;do if((j|0)==(h|0)){k=h+16|0;o=k+4|0;p=c[o>>2]|0;if(!p){q=c[k>>2]|0;if(!q){r=0;break}else{s=q;t=k}}else{s=p;t=o}o=s;p=t;while(1){k=o+20|0;q=c[k>>2]|0;if(!q){u=o+16|0;v=c[u>>2]|0;if(!v)break;else{w=v;x=u}}else{w=q;x=k}o=w;p=x}c[p>>2]=0;r=o}else{k=c[h+8>>2]|0;c[k+12>>2]=j;c[j+8>>2]=k;r=j}while(0);if(g){j=c[h+28>>2]|0;k=16816+(j<<2)|0;if((c[k>>2]|0)==(h|0)){c[k>>2]=r;if(!r){c[4129]=c[4129]&~(1<<j);l=h;m=i;n=h;break}}else{j=g+16|0;c[((c[j>>2]|0)==(h|0)?j:g+20|0)>>2]=r;if(!r){l=h;m=i;n=h;break}}c[r+24>>2]=g;j=h+16|0;k=c[j>>2]|0;if(k|0){c[r+16>>2]=k;c[k+24>>2]=r}k=c[j+4>>2]|0;if(k){c[r+20>>2]=k;c[k+24>>2]=r;l=h;m=i;n=h}else{l=h;m=i;n=h}}else{l=h;m=i;n=h}}else{l=b;m=a;n=b}while(0);if(n>>>0>=f>>>0)return;b=f+4|0;a=c[b>>2]|0;if(!(a&1))return;if(!(a&2)){if((c[4134]|0)==(f|0)){r=(c[4131]|0)+m|0;c[4131]=r;c[4134]=l;c[l+4>>2]=r|1;if((l|0)!=(c[4133]|0))return;c[4133]=0;c[4130]=0;return}if((c[4133]|0)==(f|0)){r=(c[4130]|0)+m|0;c[4130]=r;c[4133]=n;c[l+4>>2]=r|1;c[n+r>>2]=r;return}r=(a&-8)+m|0;x=a>>>3;do if(a>>>0<256){w=c[f+8>>2]|0;t=c[f+12>>2]|0;if((t|0)==(w|0)){c[4128]=c[4128]&~(1<<x);break}else{c[w+12>>2]=t;c[t+8>>2]=w;break}}else{w=c[f+24>>2]|0;t=c[f+12>>2]|0;do if((t|0)==(f|0)){s=f+16|0;d=s+4|0;e=c[d>>2]|0;if(!e){k=c[s>>2]|0;if(!k){y=0;break}else{z=k;A=s}}else{z=e;A=d}d=z;e=A;while(1){s=d+20|0;k=c[s>>2]|0;if(!k){j=d+16|0;q=c[j>>2]|0;if(!q)break;else{B=q;C=j}}else{B=k;C=s}d=B;e=C}c[e>>2]=0;y=d}else{o=c[f+8>>2]|0;c[o+12>>2]=t;c[t+8>>2]=o;y=t}while(0);if(w|0){t=c[f+28>>2]|0;h=16816+(t<<2)|0;if((c[h>>2]|0)==(f|0)){c[h>>2]=y;if(!y){c[4129]=c[4129]&~(1<<t);break}}else{t=w+16|0;c[((c[t>>2]|0)==(f|0)?t:w+20|0)>>2]=y;if(!y)break}c[y+24>>2]=w;t=f+16|0;h=c[t>>2]|0;if(h|0){c[y+16>>2]=h;c[h+24>>2]=y}h=c[t+4>>2]|0;if(h|0){c[y+20>>2]=h;c[h+24>>2]=y}}}while(0);c[l+4>>2]=r|1;c[n+r>>2]=r;if((l|0)==(c[4133]|0)){c[4130]=r;return}else D=r}else{c[b>>2]=a&-2;c[l+4>>2]=m|1;c[n+m>>2]=m;D=m}m=D>>>3;if(D>>>0<256){n=16552+(m<<1<<2)|0;a=c[4128]|0;b=1<<m;if(!(a&b)){c[4128]=a|b;E=n;F=n+8|0}else{b=n+8|0;E=c[b>>2]|0;F=b}c[F>>2]=l;c[E+12>>2]=l;c[l+8>>2]=E;c[l+12>>2]=n;return}n=D>>>8;if(n)if(D>>>0>16777215)G=31;else{E=(n+1048320|0)>>>16&8;F=n<<E;n=(F+520192|0)>>>16&4;b=F<<n;F=(b+245760|0)>>>16&2;a=14-(n|E|F)+(b<<F>>>15)|0;G=D>>>(a+7|0)&1|a<<1}else G=0;a=16816+(G<<2)|0;c[l+28>>2]=G;c[l+20>>2]=0;c[l+16>>2]=0;F=c[4129]|0;b=1<<G;a:do if(!(F&b)){c[4129]=F|b;c[a>>2]=l;c[l+24>>2]=a;c[l+12>>2]=l;c[l+8>>2]=l}else{E=c[a>>2]|0;b:do if((c[E+4>>2]&-8|0)==(D|0))H=E;else{n=D<<((G|0)==31?0:25-(G>>>1)|0);m=E;while(1){I=m+16+(n>>>31<<2)|0;r=c[I>>2]|0;if(!r)break;if((c[r+4>>2]&-8|0)==(D|0)){H=r;break b}else{n=n<<1;m=r}}c[I>>2]=l;c[l+24>>2]=m;c[l+12>>2]=l;c[l+8>>2]=l;break a}while(0);E=H+8|0;w=c[E>>2]|0;c[w+12>>2]=l;c[E>>2]=l;c[l+8>>2]=w;c[l+12>>2]=H;c[l+24>>2]=0}while(0);l=(c[4136]|0)+-1|0;c[4136]=l;if(l|0)return;l=16968;while(1){H=c[l>>2]|0;if(!H)break;else l=H+8|0}c[4136]=-1;return}function Da(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(Ea()|0)>>2]=0-a;b=-1}else b=a;return b|0}function Ea(){return 17008}function Fa(a){a=a|0;return a|0}function Ga(){return 15500}function Ha(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=b;a:do if(!(d&3)){e=b;f=5}else{g=b;h=d;while(1){if(!(a[g>>0]|0)){i=h;break a}j=g+1|0;h=j;if(!(h&3)){e=j;f=5;break}else g=j}}while(0);if((f|0)==5){f=e;while(1){k=c[f>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))f=f+4|0;else break}if(!((k&255)<<24>>24))l=f;else{k=f;while(1){f=k+1|0;if(!(a[f>>0]|0)){l=f;break}else k=f}}i=l}return i-d|0}function Ia(a,b){a=a|0;b=b|0;var d=0;if(!b)d=0;else d=Ja(c[b>>2]|0,c[b+4>>2]|0,a)|0;return ((d|0)==0?a:d)|0}function Ja(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=(c[b>>2]|0)+1794895138|0;g=Ka(c[b+8>>2]|0,f)|0;h=Ka(c[b+12>>2]|0,f)|0;i=Ka(c[b+16>>2]|0,f)|0;a:do if((g>>>0<d>>>2>>>0?(j=d-(g<<2)|0,h>>>0<j>>>0&i>>>0<j>>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=Ka(c[b+(q<<2)>>2]|0,f)|0;s=Ka(c[b+(q+1<<2)>>2]|0,f)|0;if(!(s>>>0<d>>>0&r>>>0<(d-s|0)>>>0)){t=0;break a}if(a[b+(s+r)>>0]|0){t=0;break a}r=La(e,b+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}l=s?l:o;m=s?n:m-n|0}m=p+k|0;l=Ka(c[b+(m<<2)>>2]|0,f)|0;j=Ka(c[b+(m+1<<2)>>2]|0,f)|0;if(j>>>0<d>>>0&l>>>0<(d-j|0)>>>0)t=(a[b+(j+l)>>0]|0)==0?b+j|0:0;else t=0}else t=0;while(0);return t|0}function Ka(a,b){a=a|0;b=b|0;var c=0;c=Ya(a|0)|0;return ((b|0)==0?a:c)|0}function La(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=b;do{c=c+1|0;d=d+1|0;b=a[c>>0]|0;e=a[d>>0]|0}while(!(b<<24>>24==0?1:b<<24>>24!=e<<24>>24));f=e;g=b}return (g&255)-(f&255)|0}function Ma(a,b){a=a|0;b=b|0;Oa(a,b)|0;return a|0}function Na(a,b){a=a|0;b=b|0;Ma(a+(Ha(a)|0)|0,b)|0;return a|0}function Oa(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=d;a:do if(!((e^b)&3)){if(!(e&3)){f=d;g=b}else{h=d;i=b;while(1){j=a[h>>0]|0;a[i>>0]=j;if(!(j<<24>>24)){k=i;break a}j=h+1|0;l=i+1|0;if(!(j&3)){f=j;g=l;break}else{h=j;i=l}}}i=c[f>>2]|0;if(!((i&-2139062144^-2139062144)&i+-16843009)){h=g;l=f;j=i;while(1){i=l+4|0;m=h+4|0;c[h>>2]=j;j=c[i>>2]|0;if((j&-2139062144^-2139062144)&j+-16843009|0){n=i;o=m;break}else{h=m;l=i}}}else{n=f;o=g}p=n;q=o;r=10}else{p=d;q=b;r=10}while(0);if((r|0)==10){r=a[p>>0]|0;a[q>>0]=r;if(!(r<<24>>24))k=q;else{r=q;q=p;while(1){q=q+1|0;p=r+1|0;b=a[q>>0]|0;a[p>>0]=b;if(!(b<<24>>24)){k=p;break}else r=p}}}return k|0}function Pa(a){a=a|0;var b=0,d=0;b=E;E=E+16|0;d=b;c[d>>2]=Fa(a)|0;a=z(6,d|0)|0;d=Da((a|0)==-4?0:a)|0;E=b;return d|0}function Qa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=E;E=E+48|0;f=e+32|0;g=e+16|0;h=e;if(!(b&4194368))i=0;else{c[h>>2]=d;d=(c[h>>2]|0)+(4-1)&~(4-1);j=c[d>>2]|0;c[h>>2]=d+4;i=j}c[g>>2]=a;c[g+4>>2]=b|32768;c[g+8>>2]=i;i=y(5,g|0)|0;if(!((b&524288|0)==0|(i|0)<0)){c[f>>2]=i;c[f+4>>2]=2;c[f+8>>2]=1;v(221,f|0)|0}f=Da(i)|0;E=e;return f|0}function Ra(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=E;E=E+32|0;f=e;g=e+20|0;c[f>>2]=a;c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;d=(Da(u(140,f|0)|0)|0)==0;E=e;return (d?c[g>>2]|0:-1)|0}function Sa(a){a=a|0;return Ua(a,c[(Ta()|0)+188>>2]|0)|0}function Ta(){return Ga()|0}function Ua(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=0;while(1){if((d[13536+f>>0]|0)==(b|0)){g=4;break}h=f+1|0;if((h|0)==87){i=87;g=5;break}else f=h}if((g|0)==4)if(!f)j=13632;else{i=f;g=5}if((g|0)==5){g=13632;f=i;while(1){i=g;do{b=i;i=i+1|0}while((a[b>>0]|0)!=0);f=f+-1|0;if(!f){j=i;break}else g=i}}return Va(j,c[e+20>>2]|0)|0}function Va(a,b){a=a|0;b=b|0;return Ia(a,b)|0}function Wa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=E;E=E+16|0;f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;d=Da(x(4,f|0)|0)|0;E=e;return d|0}function Xa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=E;E=E+16|0;f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;d=Da(w(3,f|0)|0)|0;E=e;return d|0}function Ya(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Za(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){B(b|0,d|0,e|0)|0;return b|0}f=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}h=g&-4|0;e=h-64|0;while((b|0)<=(e|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(h|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{h=g-4|0;while((b|0)<(h|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return f|0}function _a(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=f&-4|0;h=d|d<<8|d<<16|d<<24;i=g-64|0;while((b|0)<=(i|0)){c[b>>2]=h;c[b+4>>2]=h;c[b+8>>2]=h;c[b+12>>2]=h;c[b+16>>2]=h;c[b+20>>2]=h;c[b+24>>2]=h;c[b+28>>2]=h;c[b+32>>2]=h;c[b+36>>2]=h;c[b+40>>2]=h;c[b+44>>2]=h;c[b+48>>2]=h;c[b+52>>2]=h;c[b+56>>2]=h;c[b+60>>2]=h;b=b+64|0}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function $a(a){a=a|0;var b=0,d=0;b=c[g>>2]|0;d=b+a|0;if((a|0)>0&(d|0)<(b|0)|(d|0)<0){D(d|0)|0;t(12);return -1}if((d|0)>(A()|0)?(C(d|0)|0)==0:0){t(12);return -1}c[g>>2]=d;return b|0}function ab(a,b,c){a=a|0;b=b|0;c=c|0;return H[a&3](b|0,c|0)|0}function bb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return I[a&1](b|0,c|0,d|0)|0}function cb(a,b,c){a=a|0;b=b|0;c=c|0;J[a&1](b|0,c|0)}function db(a,b){a=a|0;b=b|0;q(0);return 0}function eb(a,b,c){a=a|0;b=b|0;c=c|0;q(1);return 0}function fb(a,b){a=a|0;b=b|0;q(2)}
// EMSCRIPTEN_END_FUNCS
var H=[db,T,U,V];var I=[eb,za];var J=[fb,Aa];return{___errno_location:Ea,_free:Ca,_gzclose:Z,_gzopen:_,_gzread:ba,_gzwrite:ga,_llvm_bswap_i32:Ya,_malloc:Ba,_memcpy:Za,_memset:_a,_sbrk:$a,dynCall_iii:ab,dynCall_iiii:bb,dynCall_vii:cb,establishStackSpace:N,stackAlloc:K,stackRestore:M,stackSave:L}})
// EMSCRIPTEN_END_ASM
(asmGlobalArg,asmLibraryArg,buffer);var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _free=Module["_free"]=asm["_free"];var _gzclose=Module["_gzclose"]=asm["_gzclose"];var _gzopen=Module["_gzopen"]=asm["_gzopen"];var _gzread=Module["_gzread"]=asm["_gzread"];var _gzwrite=Module["_gzwrite"]=asm["_gzwrite"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];Module["asm"]=asm;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run();Module["gzcompress"]=function(data){var gzFile=ccall("gzopen","number",["string","string"],["output.gz","wb"]);var buffer=_malloc(data.length);HEAPU8.set(data,buffer);ccall("gzwrite","number",["number","number","number"],[gzFile,buffer,data.length]);ccall("gzclose","number",["number"],[gzFile]);_free(buffer);var ret=FS.readFile("output.gz");FS.unlink("output.gz");return ret};Module["gzdecompress"]=function(data){var BUFSIZE=1024*1024;FS.writeFile("input.gz",data);var gzFile=ccall("gzopen","number",["string","string"],["input.gz","rb"]);var buffer=_malloc(BUFSIZE);var chunks=[];var total=0;var len;while((len=ccall("gzread","number",["number","number","number"],[gzFile,buffer,BUFSIZE]))>0){chunks.push(new Uint8Array(len));chunks[chunks.length-1].set(HEAPU8.subarray(buffer,buffer+len));total+=len}ccall("gzclose","number",["number"],[gzFile]);FS.unlink("input.gz");_free(buffer);var ret=new Uint8Array(total);var curr=0;for(var i=0;i<chunks.length;i++){ret.set(chunks[i],curr);curr+=chunks[i].length}return ret};
return {
compress: Module['gzcompress'],
decompress: Module['gzdecompress']
};
})();
// Export for NodeJS
if (typeof module == 'object') { module.exports = Zee; }
onmessage = function(msg) {
var start = Date.now();
var data = Zee.decompress(new Uint8Array(msg.data.data));
postMessage({
filename: msg.data.filename,
data: data,
callbackID: msg.data.callbackID,
time: Date.now() - start
});
};