var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var 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}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(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 Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){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=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"="+convertCode.returnValue+";"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;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)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;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,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;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];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(typeof _sbrk!=="undefined"&&!_sbrk.called||!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;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)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&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(u<=2097151){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}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;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 if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a<i;a++)pre+=" ";Module.print(pre+"^")}function parseNested(){i++;if(func[i]==="K")i++;var parts=[];while(func[i]!=="E"){if(func[i]==="S"){i++;var next=func.indexOf("_",i);var num=func.substring(i,next)||0;parts.push(subs[num]||"?");i=next+1;continue}if(func[i]==="C"){parts.push(parts[parts.length-1]);i+=2;continue}var size=parseInt(func.substr(i));var pre=size.toString().length;if(!size||!pre){i--;break}var curr=func.substr(i+pre,size);parts.push(curr);subs.push(curr);i+=pre+size}i++;return parts}function parse(rawList,limit,allowVoid){limit=limit||Infinity;var ret="",list=[];function flushList(){return"("+list.join(", ")+")"}var name;if(func[i]==="N"){name=parseNested().join("::");limit--;if(limit===0)return rawList?[name]:name}else{if(func[i]==="K"||first&&func[i]==="L")i++;var size=parseInt(func.substr(i));if(size){var pre=size.toString().length;name=func.substr(i+pre,size);i+=pre+size}}first=false;if(func[i]==="I"){i++;var iList=parse(true);var iRet=parse(true,1,true);ret+=iRet[0]+" "+name+"<"+iList.join(", ")+">"}else{ret=name}paramLoop:while(i<func.length&&limit-->0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}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(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+TOTAL_MEMORY+", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||5e8;var totalMemory=64*1024;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){TOTAL_MEMORY=totalMemory}assert(typeof Int32Array!=="undefined"&&typeof Float64Array!=="undefined"&&!!(new Int32Array(1))["subarray"]&&!!(new Int32Array(1))["set"],"JS engine does not provide full typed array support");var buffer;buffer=new ArrayBuffer(TOTAL_MEMORY);HEAP8=new Int8Array(buffer);HEAP16=new Int16Array(buffer);HEAP32=new Int32Array(buffer);HEAPU8=new Uint8Array(buffer);HEAPU16=new Uint16Array(buffer);HEAPU32=new Uint32Array(buffer);HEAPF32=new Float32Array(buffer);HEAPF64=new Float64Array(buffer);HEAP32[0]=255;assert(HEAPU8[0]===255&&HEAPU8[3]===0,"Typed arrays 2 must be run on a little-endian system");Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;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){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];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;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);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)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;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}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i<array.length){var chr=array[i];HEAP8[buffer+i>>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i<array.length;i++){HEAP8[buffer++>>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;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}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<<bits-1)+value:Math.pow(2,bits)+value}function reSign(value,bits,ignore){if(value<=0){return value}var half=bits<=32?Math.abs(1<<bits-1):Math.pow(2,bits-1);if(value>=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;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["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+648112;__ATINIT__.push();memoryInitializer="basis.js.mem";var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}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};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_bitshift64Shl"]=_bitshift64Shl;function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _abort(){Module["abort"]()}function ___lock(){}function ___unlock(){}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can   access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};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)}for(var i=0;i<length;i++){try{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 fd=process.stdin.fd;var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null);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){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](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){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength: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}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),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);assert(size>=0);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)}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);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()})}))}),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,{encoding:"binary",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/)}),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&146)>>1}}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)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}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.flagsToPermissionString(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;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i<res;i++){buffer[offset+i]=nbuffer[i]}}return res}),write:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(buffer.subarray(offset,offset+length));var res;try{res=fs.writeSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return res}),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,curr,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){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),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 _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,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(ERRNO_CODES.ELOOP)}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(ERRNO_CODES.ELOOP)}}}}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 ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}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 ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}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(ERRNO_CODES.EMFILE)}),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(ERRNO_CODES.ESPIPE)})},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}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(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(ERRNO_CODES.EBUSY)}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(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}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(ERRNO_CODES.EINVAL)}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);assert(idx!==-1);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(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}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)}),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(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}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(ERRNO_CODES.EPERM)}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(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}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(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}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(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}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(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}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(ERRNO_CODES.ENOTDIR)}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){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}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(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}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(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}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(ERRNO_CODES.EPERM)}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(ERRNO_CODES.EBADF)}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(ERRNO_CODES.EPERM)}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(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}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(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}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(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}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(ERRNO_CODES.ENOENT)}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(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}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;Module["printErr"]("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(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)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}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(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}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(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}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']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}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(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}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(ERRNO_CODES.ENOTTY)}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";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}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!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}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(ERRNO_CODES.EBADF);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");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].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){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");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(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){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}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(ERRNO_CODES.EIO);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 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]}));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.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"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.defineProperty(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(ERRNO_CODES.EIO)}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(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);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 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);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),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=Pointer_stringify(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();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};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 ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){setTimeout(Browser.mainLoop.runner,value)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="__emcc";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining<expected){Module["setStatus"](message+" ("+(expected-remaining)+"/"+expected+")")}else{Module["setStatus"](message)}}else{Module["setStatus"]("")}}}),runIter:(function(func){if(ABORT)return;if(Module["preMainLoop"]){var preRet=Module["preMainLoop"]();if(preRet===false){return}}try{func()}catch(e){if(e instanceof ExitStatus){return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}if(Module["postMainLoop"])Module["postMainLoop"]()})},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:(function(){if(!Module["preloadPlugins"])Module["preloadPlugins"]=[];if(Browser.initted)return;Browser.initted=true;try{new Blob;Browser.hasBlobConstructor=true}catch(e){Browser.hasBlobConstructor=false;console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:!Browser.hasBlobConstructor?console.log("warning: no BlobBuilder"):null;Browser.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:undefined;if(!Module.noImageDecoding&&typeof Browser.URLObject==="undefined"){console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");Module.noImageDecoding=true}var imagePlugin={};imagePlugin["canHandle"]=function imagePlugin_canHandle(name){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(name)};imagePlugin["handle"]=function imagePlugin_handle(byteArray,name,onload,onerror){var b=null;if(Browser.hasBlobConstructor){try{b=new Blob([byteArray],{type:Browser.getMimetype(name)});if(b.size!==byteArray.length){b=new Blob([(new Uint8Array(byteArray)).buffer],{type:Browser.getMimetype(name)})}}catch(e){Runtime.warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}}if(!b){var bb=new Browser.BlobBuilder;bb.append((new Uint8Array(byteArray)).buffer);b=bb.getBlob()}var url=Browser.URLObject.createObjectURL(b);var img=new Image;img.onload=function img_onload(){assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);Module["preloadedImages"][name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=function img_onerror(event){console.log("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;Module["preloadedAudios"][name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;Module["preloadedAudios"][name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",(function(){finish(audio)}),false);audio.onerror=function audio_onerror(event){if(done)return;console.log("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i<data.length;i++){leftchar=leftchar<<8|data[i];leftbits+=8;while(leftbits>=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(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)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h<Module["forcedAspectRatio"]){w=Math.round(h*Module["forcedAspectRatio"])}else{h=Math.round(w/Module["forcedAspectRatio"])}}if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvas.parentNode&&typeof screen!="undefined"){var factor=Math.min(screen.width/w,screen.height/h);w=Math.round(w*factor);h=Math.round(h*factor)}if(Browser.resizeCanvas){if(canvas.width!=w)canvas.width=w;if(canvas.height!=h)canvas.height=h;if(typeof canvas.style!="undefined"){canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}else{if(canvas.width!=wNative)canvas.width=wNative;if(canvas.height!=hNative)canvas.height=hNative;if(typeof canvas.style!="undefined"){if(w!=wNative||h!=hNative){canvas.style.setProperty("width",w+"px","important");canvas.style.setProperty("height",h+"px","important")}else{canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}}}),wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:(function(){var handle=Browser.nextWgetRequestHandle;Browser.nextWgetRequestHandle++;return handle})};function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}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;assert(offset_high===0);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 _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function ___cxa_allocate_exception(size){return _malloc(size)}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"invoke_iiii":invoke_iiii,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_ii":invoke_ii,"invoke_v":invoke_v,"invoke_viiiiii":invoke_viiiiii,"invoke_viiii":invoke_viiii,"_pthread_cleanup_pop":_pthread_cleanup_pop,"___syscall6":___syscall6,"___setErrNo":___setErrNo,"___assert_fail":___assert_fail,"___cxa_allocate_exception":___cxa_allocate_exception,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"_emscripten_set_main_loop_timing":_emscripten_set_main_loop_timing,"_sbrk":_sbrk,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___resumeException":___resumeException,"___cxa_find_matching_catch":___cxa_find_matching_catch,"_sysconf":_sysconf,"_pthread_self":_pthread_self,"___syscall54":___syscall54,"___unlock":___unlock,"_emscripten_set_main_loop":_emscripten_set_main_loop,"___cxa_throw":___cxa_throw,"___lock":___lock,"_abort":_abort,"_pthread_cleanup_push":_pthread_cleanup_push,"_time":_time,"___syscall140":___syscall140,"___syscall146":___syscall146,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT};// EMSCRIPTEN_START_ASM
var asm=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=0;var n=0;var o=0;var p=0;var q=global.NaN,r=global.Infinity;var s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0;var B=0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=global.Math.floor;var M=global.Math.abs;var N=global.Math.sqrt;var O=global.Math.pow;var P=global.Math.cos;var Q=global.Math.sin;var R=global.Math.tan;var S=global.Math.acos;var T=global.Math.asin;var U=global.Math.atan;var V=global.Math.atan2;var W=global.Math.exp;var X=global.Math.log;var Y=global.Math.ceil;var Z=global.Math.imul;var _=global.Math.min;var $=global.Math.clz32;var aa=env.abort;var ba=env.assert;var ca=env.invoke_iiii;var da=env.invoke_viiiii;var ea=env.invoke_vi;var fa=env.invoke_ii;var ga=env.invoke_v;var ha=env.invoke_viiiiii;var ia=env.invoke_viiii;var ja=env._pthread_cleanup_pop;var ka=env.___syscall6;var la=env.___setErrNo;var ma=env.___assert_fail;var na=env.___cxa_allocate_exception;var oa=env.__ZSt18uncaught_exceptionv;var pa=env._emscripten_set_main_loop_timing;var qa=env._sbrk;var ra=env._emscripten_memcpy_big;var sa=env.___resumeException;var ta=env.___cxa_find_matching_catch;var ua=env._sysconf;var va=env._pthread_self;var wa=env.___syscall54;var xa=env.___unlock;var ya=env._emscripten_set_main_loop;var za=env.___cxa_throw;var Aa=env.___lock;var Ba=env._abort;var Ca=env._pthread_cleanup_push;var Da=env._time;var Ea=env.___syscall140;var Fa=env.___syscall146;var Ga=0.0;
// EMSCRIPTEN_START_FUNCS
function Oa(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Pa(){return i|0}function Qa(a){a=a|0;i=a}function Ra(a,b){a=a|0;b=b|0;i=a;j=b}function Sa(a,b){a=a|0;b=b|0;if(!m){m=a;n=b}}function Ta(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Ua(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Va(a){a=a|0;B=a}function Wa(){return B|0}function Xa(){return c[123158]|0}function Ya(a){a=a|0;c[123158]=a;return}function Za(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;f=b+4|0;g=c[f>>2]|0;h=c[b>>2]|0;i=g-h>>4;if(i>>>0>=d>>>0){if(i>>>0>d>>>0?(j=h+(d<<4)|0,(g|0)!=(j|0)):0)c[f>>2]=g+(~((0-j+(g+-16)|0)>>>4)<<4)}else Gb(b,d-i|0);if(!d)return;else k=0;do{i=c[b>>2]|0;g=c[e+(k<<2)>>2]|0;a[i+(k<<4)>>0]=g&3;a[i+(k<<4)+1>>0]=g>>>2&3;a[i+(k<<4)+2>>0]=g>>>4&3;a[i+(k<<4)+3>>0]=g>>>6&3;a[i+(k<<4)+4>>0]=g>>>8&3;a[i+(k<<4)+5>>0]=g>>>10&3;a[i+(k<<4)+6>>0]=g>>>12&3;a[i+(k<<4)+7>>0]=g>>>14&3;a[i+(k<<4)+8>>0]=g>>>16&3;a[i+(k<<4)+9>>0]=g>>>18&3;a[i+(k<<4)+10>>0]=g>>>20&3;a[i+(k<<4)+11>>0]=g>>>22&3;a[i+(k<<4)+12>>0]=g>>>24&3;a[i+(k<<4)+13>>0]=g>>>26&3;a[i+(k<<4)+14>>0]=g>>>28&3;a[i+(k<<4)+15>>0]=g>>>30;k=k+1|0}while((k|0)!=(d|0));return}function _a(){var b=0,e=0,f=0,g=0,h=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;b=i;i=i+96|0;e=b+64|0;f=b;if(!(a[641766]|0))g=0;else{i=b;return}do{a[e+g>>0]=g<<3|g>>>2;g=g+1|0}while((g|0)!=32);h=0;do{g=641767+(h<<1)|0;j=641767+(h<<1)+1|0;k=0;l=256;while(1){m=k&255;n=d[e+k>>0]|0;o=0;p=l;while(1){q=d[e+o>>0]|0;r=((((q<<1)+n|0)>>>0)/3|0)-h|0;s=q-n|0;q=(((s|0)>-1?s:0-s|0)>>5)+((r|0)>-1?r:0-r|0)|0;if((q|0)<(p|0)){a[g>>0]=o;a[j>>0]=m;t=q}else t=p;o=o+1|0;if((o|0)==32){u=t;break}else p=t}p=k+1|0;if((p|0)==32)break;else{k=p;l=u}}h=h+1|0}while((h|0)!=256);v=0;do{h=642279+(v<<1)|0;u=642279+(v<<1)+1|0;t=0;l=256;while(1){k=t&255;j=0;g=l;while(1){p=(d[e+j>>0]|0)-v|0;o=(p|0)>-1?p:0-p|0;if((o|0)<(g|0)){a[h>>0]=j;a[u>>0]=k;w=o}else w=g;j=j+1|0;if((j|0)==32){x=w;break}else g=w}g=t+1|0;if((g|0)==32)break;else{t=g;l=x}}v=v+1|0}while((v|0)!=256);v=0;do{a[f+v>>0]=v<<2|v>>>4;v=v+1|0}while((v|0)!=64);y=0;do{v=642791+(y<<1)|0;x=642791+(y<<1)+1|0;w=0;e=256;while(1){l=w&255;t=d[f+w>>0]|0;u=0;h=e;while(1){g=d[f+u>>0]|0;j=((((g<<1)+t|0)>>>0)/3|0)-y|0;k=g-t|0;g=(((k|0)>-1?k:0-k|0)>>5)+((j|0)>-1?j:0-j|0)|0;if((g|0)<(h|0)){a[v>>0]=u;a[x>>0]=l;z=g}else z=h;u=u+1|0;if((u|0)==64){A=z;break}else h=z}h=w+1|0;if((h|0)==64)break;else{w=h;e=A}}y=y+1|0}while((y|0)!=256);B=0;do{y=643303+(B<<1)|0;A=643303+(B<<1)+1|0;z=0;e=256;while(1){w=z&255;x=0;v=e;while(1){h=(d[f+x>>0]|0)-B|0;u=(h|0)>-1?h:0-h|0;if((u|0)<(v|0)){a[y>>0]=x;a[A>>0]=w;C=u}else C=v;x=x+1|0;if((x|0)==64){D=C;break}else v=C}v=z+1|0;if((v|0)==64)break;else{z=v;e=D}}B=B+1|0}while((B|0)!=256);c[127259]=0;c[127263]=1;c[127258]=2;c[127262]=3;c[127267]=4;c[127257]=5;B=0;do{D=d[643823+(B<<2)+2>>0]|0;C=a[643819+D>>0]|0;a[643863+(B<<2)>>0]=a[643815+D>>0]|0;a[643903+(B<<2)>>0]=C;C=d[643823+(B<<2)+3>>0]|0;D=a[643819+C>>0]|0;a[643863+(B<<2)+1>>0]=a[643815+C>>0]|0;a[643903+(B<<2)+1>>0]=D;D=d[643823+(B<<2)+1>>0]|0;C=a[643819+D>>0]|0;a[643863+(B<<2)+2>>0]=a[643815+D>>0]|0;a[643903+(B<<2)+2>>0]=C;C=d[643823+(B<<2)>>0]|0;D=a[643819+C>>0]|0;a[643863+(B<<2)+3>>0]=a[643815+C>>0]|0;a[643903+(B<<2)+3>>0]=D;B=B+1|0}while((B|0)!=10);c[127272]=0;c[127277]=1;c[127282]=2;c[127287]=3;c[127275]=4;c[127279]=5;c[127274]=6;c[127278]=7;c[127283]=8;c[127273]=9;B=0;do{D=a[643943+(B<<2)+2>>0]|0;a[644135+(B<<2)>>0]=D;a[644327+(B<<2)>>0]=15-(D&255);D=a[643943+(B<<2)+3>>0]|0;a[644135+(B<<2)+1>>0]=D;a[644327+(B<<2)+1>>0]=15-(D&255);D=a[643943+(B<<2)+1>>0]|0;a[644135+(B<<2)+2>>0]=D;a[644327+(B<<2)+2>>0]=15-(D&255);D=a[643943+(B<<2)>>0]|0;a[644135+(B<<2)+3>>0]=D;a[644327+(B<<2)+3>>0]=15-(D&255);B=B+1|0}while((B|0)!=48);a[641766]=1;i=b;return}function $a(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=b;Pc(a+28|0,0,148)|0;ab(a+176|0);return}function ab(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;c[a+32>>2]=0;c[a+36>>2]=0;c[a+40>>2]=0;c[a+44>>2]=0;c[a+48>>2]=0;c[a+52>>2]=0;c[a+56>>2]=0;c[a+60>>2]=0;c[a+64>>2]=0;c[a+68>>2]=0;c[a+72>>2]=0;c[a+76>>2]=0;c[a+80>>2]=0;c[a+84>>2]=0;c[a+88>>2]=0;c[a+92>>2]=0;c[a+96>>2]=0;c[a+100>>2]=0;c[a+104>>2]=0;c[a+108>>2]=0;c[a+112>>2]=0;c[a+116>>2]=0;c[a+120>>2]=0;c[a+124>>2]=0;c[a+128>>2]=0;c[a+132>>2]=0;c[a+136>>2]=0;c[a+140>>2]=0;c[a+144>>2]=0;c[a+148>>2]=0;c[a+152>>2]=0;c[a+156>>2]=0;c[a+160>>2]=0;c[a+164>>2]=0;c[a+168>>2]=0;c[a+172>>2]=0;c[a+176>>2]=0;c[a+180>>2]=0;c[a+184>>2]=0;c[a+188>>2]=0;c[a+192>>2]=0;c[a+196>>2]=0;c[a+200>>2]=0;c[a+204>>2]=0;c[a+208>>2]=0;c[a+212>>2]=0;c[a+216>>2]=0;c[a+220>>2]=0;c[a+224>>2]=0;c[a+228>>2]=0;c[a+232>>2]=0;c[a+236>>2]=0;c[a+240>>2]=0;c[a+244>>2]=0;c[a+248>>2]=0;c[a+252>>2]=0;c[a+256>>2]=0;c[a+260>>2]=0;c[a+264>>2]=0;c[a+268>>2]=0;c[a+272>>2]=0;c[a+276>>2]=0;c[a+280>>2]=0;c[a+284>>2]=0;c[a+288>>2]=0;c[a+292>>2]=0;c[a+296>>2]=0;c[a+300>>2]=0;c[a+304>>2]=0;c[a+308>>2]=0;c[a+312>>2]=0;c[a+316>>2]=0;c[a+320>>2]=0;c[a+324>>2]=0;c[a+328>>2]=0;c[a+332>>2]=0;c[a+336>>2]=0;c[a+340>>2]=0;c[a+344>>2]=0;c[a+348>>2]=0;c[a+352>>2]=0;c[a+356>>2]=0;c[a+360>>2]=0;c[a+364>>2]=0;c[a+368>>2]=0;c[a+372>>2]=0;c[a+376>>2]=0;c[a+380>>2]=0;c[a+384>>2]=0;c[a+388>>2]=0;c[a+392>>2]=0;c[a+396>>2]=0;c[a+400>>2]=0;c[a+404>>2]=0;return}function bb(e,f,g,h,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var 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,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,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;m=i;i=i+352|0;n=m+264|0;o=m+224|0;p=m+188|0;q=m+152|0;r=m+116|0;s=m+76|0;t=m+80|0;u=m+40|0;v=m+336|0;w=m+320|0;x=m+4|0;y=m+304|0;z=m+288|0;A=m;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;B=o;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));B=p;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));B=q;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));B=r;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if((((((((!((g|0)==0&(h|0)!=0)?(c[n>>2]=h,D=n+4|0,c[D>>2]=g,E=n+8|0,c[E>>2]=g,F=n+12|0,c[F>>2]=g+h,h=n+16|0,c[h>>2]=0,g=n+20|0,c[g>>2]=0,cb(n,o)|0):0)?cb(n,p)|0:0)?cb(n,q)|0:0)?cb(n,r)|0:0)?(G=o+4|0,(c[G>>2]|0)!=(c[o>>2]|0)):0)?(H=p+4|0,(c[H>>2]|0)!=(c[p>>2]|0)):0)?(I=q+4|0,(c[I>>2]|0)!=(c[q>>2]|0)):0)?(J=r+4|0,(c[J>>2]|0)!=(c[r>>2]|0)):0){K=c[g>>2]|0;if(!K){L=c[D>>2]|0;if(L>>>0<(c[F>>2]|0)>>>0){c[D>>2]=L+1;M=d[L>>0]|0}else M=0;c[h>>2]=c[h>>2]|M;c[g>>2]=8;N=8}else N=K;K=c[h>>2]|0;M=K&1;c[h>>2]=K>>>1;c[g>>2]=N+-1;N=(M|0)==0;K=e+4|0;L=c[K>>2]|0;O=c[e>>2]|0;P=L-O>>3;if(P>>>0>=f>>>0){if(P>>>0>f>>>0?(Q=O+(f<<3)|0,(L|0)!=(Q|0)):0)c[K>>2]=L+(~((L+-8-Q|0)>>>3)<<3)}else Hb(e,f-P|0);a[s>>0]=16;a[s+1>>0]=16;a[s+2>>0]=16;a[s+3>>0]=0;a:do if(f){P=r+12|0;Q=M<<1^3;L=o+12|0;K=o+24|0;O=p+12|0;R=p+24|0;S=q+12|0;T=q+24|0;U=r+24|0;V=0;W=0;b:while(1){if((c[J>>2]|0)==(c[r>>2]|0)){X=23;break}Y=c[g>>2]|0;while(1){if(Y>>>0>=16){Z=Y;break}_=c[D>>2]|0;if(_>>>0<(c[F>>2]|0)>>>0){c[D>>2]=_+1;$=d[_>>0]|0}else $=0;c[h>>2]=c[h>>2]|$<<Y;Y=Y+8|0;c[g>>2]=Y;if(Y>>>0>=33){X=28;break b}}Y=c[h>>2]|0;_=c[(c[P>>2]|0)+((Y&1023)<<2)>>2]|0;if((_|0)>-1){aa=_>>16;ba=_&65535}else{ca=c[U>>2]|0;da=10;ea=_;while(1){_=da+1|0;fa=b[ca+((Y>>>da&1)+~ea<<1)>>1]|0;ga=fa<<16>>16;if(fa<<16>>16<0){da=_;ea=ga}else{aa=_;ba=ga;break}}}c[h>>2]=Y>>>aa;c[g>>2]=Z-aa;W=ba+W&7;a[(c[e>>2]|0)+(V<<3)+4>>0]=W;ea=0;do{da=s+ea|0;ca=a[da>>0]|0;do if((ca&255)>=10)if((ca&255)<22){if((c[H>>2]|0)==(c[p>>2]|0)){X=51;break b}ga=c[g>>2]|0;while(1){if(ga>>>0>=16){ha=ga;break}_=c[D>>2]|0;if(_>>>0<(c[F>>2]|0)>>>0){c[D>>2]=_+1;ia=d[_>>0]|0}else ia=0;c[h>>2]=c[h>>2]|ia<<ga;ga=ga+8|0;c[g>>2]=ga;if(ga>>>0>=33){X=56;break b}}ga=c[h>>2]|0;_=c[(c[O>>2]|0)+((ga&1023)<<2)>>2]|0;if((_|0)>-1){ja=_>>16;ka=_&65535}else{fa=c[R>>2]|0;la=10;na=_;while(1){_=la+1|0;oa=b[fa+((ga>>>la&1)+~na<<1)>>1]|0;pa=oa<<16>>16;if(oa<<16>>16<0){la=_;na=pa}else{ja=_;ka=pa;break}}}c[h>>2]=ga>>>ja;c[g>>2]=ha-ja;qa=ka;break}else{if((c[I>>2]|0)==(c[q>>2]|0)){X=64;break b}na=c[g>>2]|0;while(1){if(na>>>0>=16){ra=na;break}la=c[D>>2]|0;if(la>>>0<(c[F>>2]|0)>>>0){c[D>>2]=la+1;sa=d[la>>0]|0}else sa=0;c[h>>2]=c[h>>2]|sa<<na;na=na+8|0;c[g>>2]=na;if(na>>>0>=33){X=69;break b}}na=c[h>>2]|0;ga=c[(c[S>>2]|0)+((na&1023)<<2)>>2]|0;if((ga|0)>-1){ta=ga>>16;ua=ga&65535}else{la=c[T>>2]|0;fa=10;pa=ga;while(1){ga=fa+1|0;_=b[la+((na>>>fa&1)+~pa<<1)>>1]|0;oa=_<<16>>16;if(_<<16>>16<0){fa=ga;pa=oa}else{ta=ga;ua=oa;break}}}c[h>>2]=na>>>ta;c[g>>2]=ra-ta;qa=ua;break}else{if((c[G>>2]|0)==(c[o>>2]|0)){X=37;break b}pa=c[g>>2]|0;while(1){if(pa>>>0>=16){va=pa;break}fa=c[D>>2]|0;if(fa>>>0<(c[F>>2]|0)>>>0){c[D>>2]=fa+1;wa=d[fa>>0]|0}else wa=0;c[h>>2]=c[h>>2]|wa<<pa;pa=pa+8|0;c[g>>2]=pa;if(pa>>>0>=33){X=42;break b}}pa=c[h>>2]|0;na=c[(c[L>>2]|0)+((pa&1023)<<2)>>2]|0;if((na|0)>-1){xa=na>>16;ya=na&65535}else{fa=c[K>>2]|0;la=10;oa=na;while(1){na=la+1|0;ga=b[fa+((pa>>>la&1)+~oa<<1)>>1]|0;_=ga<<16>>16;if(ga<<16>>16<0){la=na;oa=_}else{xa=na;ya=_;break}}}c[h>>2]=pa>>>xa;c[g>>2]=va-xa;qa=ya}while(0);oa=(ca&255)+qa&31;a[(c[e>>2]|0)+(V<<3)+ea>>0]=oa;a[da>>0]=oa;ea=ea+1|0}while(ea>>>0<Q>>>0);if(!N){ea=(c[e>>2]|0)+(V<<3)|0;a[ea+1>>0]=a[ea>>0]|0;ea=(c[e>>2]|0)+(V<<3)|0;a[ea+2>>0]=a[ea>>0]|0}V=V+1|0;if(V>>>0>=f>>>0)break a}if((X|0)==23)ma(644993,644895,395,645016);else if((X|0)==28)ma(644972,644895,405,645016);else if((X|0)==37)ma(644993,644895,395,645016);else if((X|0)==42)ma(644972,644895,405,645016);else if((X|0)==51)ma(644993,644895,395,645016);else if((X|0)==56)ma(644972,644895,405,645016);else if((X|0)==64)ma(644993,644895,395,645016);else if((X|0)==69)ma(644972,644895,405,645016)}while(0);f=e+12|0;N=e+16|0;qa=c[N>>2]|0;ya=c[f>>2]|0;xa=(qa-ya|0)/7|0;if(xa>>>0>=j>>>0){if(xa>>>0>j>>>0?(va=ya+(j*7|0)|0,(qa|0)!=(va|0)):0)c[N>>2]=qa+(~(((0-va+(qa+-7)|0)>>>0)/7|0)*7|0)}else Ib(f,j-xa|0);if(!((k|0)==0&(l|0)!=0)){c[n>>2]=l;c[D>>2]=k;c[E>>2]=k;E=k+l|0;c[F>>2]=E;c[h>>2]=0;c[g>>2]=0;B=t;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if((l|0)>0){l=k+1|0;c[D>>2]=l;za=l;Aa=d[k>>0]|0}else{za=k;Aa=0}c[h>>2]=Aa;c[g>>2]=8;k=Aa>>>1;c[h>>2]=k;c[g>>2]=7;c:do if(!(Aa&1)){l=Aa>>>2;c[h>>2]=l;c[g>>2]=6;if(!(k&1)){c[h>>2]=Aa>>>3;c[g>>2]=5;if(l&1){if(!j){X=271;break}else Ba=0;d:while(1){xa=0;do{qa=c[g>>2]|0;while(1){if(qa>>>0>=8){Ca=qa;break}va=c[D>>2]|0;if(va>>>0<(c[F>>2]|0)>>>0){c[D>>2]=va+1;Da=d[va>>0]|0}else Da=0;c[h>>2]=c[h>>2]|Da<<qa;qa=qa+8|0;c[g>>2]=qa;if(qa>>>0>=33){X=235;break d}}qa=c[h>>2]|0;c[h>>2]=qa>>>8;c[g>>2]=Ca+-8;da=c[f>>2]|0;ca=3-(xa>>>3)|0;va=da+(Ba*7|0)+ca|0;N=d[645165+(qa&3)>>0]|0;ya=~(1<<xa);a[va>>0]=(d[va>>0]|0)&ya|(N&1)<<xa;va=ca+-2+(da+(Ba*7|0))|0;a[va>>0]=(d[va>>0]|0)&ya|N>>>1<<xa;N=c[f>>2]|0;if(xa>>>0>=4){X=236;break d}ya=xa+4|0;va=3-(ya>>>3)|0;da=N+(Ba*7|0)+va|0;ca=d[645165+(qa>>>2&3)>>0]|0;wa=~(1<<ya);a[da>>0]=(d[da>>0]|0)&wa|(ca&1)<<ya;da=va+-2+(N+(Ba*7|0))|0;a[da>>0]=(d[da>>0]|0)&wa|ca>>>1<<ya;ya=c[f>>2]|0;ca=xa+8|0;wa=3-(ca>>>3)|0;da=ya+(Ba*7|0)+wa|0;N=ca&7;ca=d[645165+(qa>>>4&3)>>0]|0;va=~(1<<N);a[da>>0]=(d[da>>0]|0)&va|(ca&1)<<N;da=wa+-2+(ya+(Ba*7|0))|0;a[da>>0]=(d[da>>0]|0)&va|ca>>>1<<N;N=c[f>>2]|0;ca=xa+12|0;va=3-(ca>>>3)|0;da=N+(Ba*7|0)+va|0;ya=ca&7;ca=d[645165+(qa>>>6&3)>>0]|0;qa=~(1<<ya);a[da>>0]=(d[da>>0]|0)&qa|(ca&1)<<ya;da=va+-2+(N+(Ba*7|0))|0;a[da>>0]=(d[da>>0]|0)&qa|ca>>>1<<ya;xa=xa+1|0}while(xa>>>0<4);eb((c[f>>2]|0)+(Ba*7|0)|0);Ba=Ba+1|0;if(Ba>>>0>=j>>>0){X=271;break c}}if((X|0)==235)ma(644972,644895,282,644962);else if((X|0)==236)ma(645169,644895,684,645187)}if(!(cb(n,t)|0)){Ea=0;break}if(j>>>0<=1){c[A>>2]=0;if(!j){X=271;break}}else{if((c[t+4>>2]|0)==(c[t>>2]|0)){Ea=0;break}c[A>>2]=0}xa=t+4|0;ya=t+12|0;ca=t+24|0;qa=0;e:while(1){if(!qa){da=0;do{N=c[g>>2]|0;while(1){if(N>>>0>=8){Fa=N;break}va=c[D>>2]|0;if(va>>>0<(c[F>>2]|0)>>>0){c[D>>2]=va+1;Ga=d[va>>0]|0}else Ga=0;c[h>>2]=c[h>>2]|Ga<<N;N=N+8|0;c[g>>2]=N;if(N>>>0>=33){X=251;break e}}N=c[h>>2]|0;c[h>>2]=N>>>8;c[g>>2]=Fa+-8;a[A+da>>0]=N;va=c[f>>2]|0;wa=3-(da>>>3)|0;G=va+wa|0;ua=d[645165+(N&3)>>0]|0;ta=~(1<<da);a[G>>0]=(d[G>>0]|0)&ta|(ua&1)<<da;G=va+(wa+-2)|0;a[G>>0]=(d[G>>0]|0)&ta|ua>>>1<<da;ua=c[f>>2]|0;if(da>>>0>=4){X=252;break e}ta=da+4|0;G=3-(ta>>>3)|0;wa=ua+G|0;va=d[645165+(N>>>2&3)>>0]|0;ra=~(1<<ta);a[wa>>0]=(d[wa>>0]|0)&ra|(va&1)<<ta;wa=ua+(G+-2)|0;a[wa>>0]=(d[wa>>0]|0)&ra|va>>>1<<ta;ta=c[f>>2]|0;va=da+8|0;ra=3-(va>>>3)|0;wa=ta+ra|0;G=va&7;va=d[645165+(N>>>4&3)>>0]|0;ua=~(1<<G);a[wa>>0]=(d[wa>>0]|0)&ua|(va&1)<<G;wa=ta+(ra+-2)|0;a[wa>>0]=(d[wa>>0]|0)&ua|va>>>1<<G;G=c[f>>2]|0;va=da+12|0;ua=3-(va>>>3)|0;wa=G+ua|0;ra=va&7;va=d[645165+(N>>>6&3)>>0]|0;N=~(1<<ra);a[wa>>0]=(d[wa>>0]|0)&N|(va&1)<<ra;wa=G+(ua+-2)|0;a[wa>>0]=(d[wa>>0]|0)&N|va>>>1<<ra;da=da+1|0}while(da>>>0<4);eb(c[f>>2]|0)}else{da=0;do{if((c[xa>>2]|0)==(c[t>>2]|0)){X=257;break e}ra=c[g>>2]|0;while(1){if(ra>>>0>=16){Ha=ra;break}va=c[D>>2]|0;if(va>>>0<(c[F>>2]|0)>>>0){c[D>>2]=va+1;Ia=d[va>>0]|0}else Ia=0;c[h>>2]=c[h>>2]|Ia<<ra;ra=ra+8|0;c[g>>2]=ra;if(ra>>>0>=33){X=262;break e}}ra=c[h>>2]|0;va=c[(c[ya>>2]|0)+((ra&1023)<<2)>>2]|0;if((va|0)>-1){Ja=va>>16;Ka=va&65535}else{N=c[ca>>2]|0;wa=10;ua=va;while(1){va=wa+1|0;G=b[N+((ra>>>wa&1)+~ua<<1)>>1]|0;ta=G<<16>>16;if(G<<16>>16<0){wa=va;ua=ta}else{Ja=va;Ka=ta;break}}}c[h>>2]=ra>>>Ja;c[g>>2]=Ha-Ja;ua=A+da|0;wa=(d[ua>>0]|0)^Ka;a[ua>>0]=wa;ua=c[f>>2]|0;N=3-(da>>>3)|0;ta=ua+(qa*7|0)+N|0;va=d[645165+(wa&3)>>0]|0;G=~(1<<da);a[ta>>0]=(d[ta>>0]|0)&G|(va&1)<<da;ta=N+-2+(ua+(qa*7|0))|0;a[ta>>0]=(d[ta>>0]|0)&G|va>>>1<<da;va=c[f>>2]|0;if(da>>>0>=4){X=267;break e}G=da+4|0;ta=3-(G>>>3)|0;ua=va+(qa*7|0)+ta|0;N=d[645165+(wa>>>2&3)>>0]|0;sa=~(1<<G);a[ua>>0]=(d[ua>>0]|0)&sa|(N&1)<<G;ua=ta+-2+(va+(qa*7|0))|0;a[ua>>0]=(d[ua>>0]|0)&sa|N>>>1<<G;G=c[f>>2]|0;N=da+8|0;sa=3-(N>>>3)|0;ua=G+(qa*7|0)+sa|0;va=N&7;N=d[645165+(wa>>>4&3)>>0]|0;ta=~(1<<va);a[ua>>0]=(d[ua>>0]|0)&ta|(N&1)<<va;ua=sa+-2+(G+(qa*7|0))|0;a[ua>>0]=(d[ua>>0]|0)&ta|N>>>1<<va;va=c[f>>2]|0;N=da+12|0;ta=3-(N>>>3)|0;ua=va+(qa*7|0)+ta|0;G=N&7;N=d[645165+(wa>>>6&3)>>0]|0;wa=~(1<<G);a[ua>>0]=(d[ua>>0]|0)&wa|(N&1)<<G;ua=ta+-2+(va+(qa*7|0))|0;a[ua>>0]=(d[ua>>0]|0)&wa|N>>>1<<G;da=da+1|0}while(da>>>0<4);eb((c[f>>2]|0)+(qa*7|0)|0)}qa=qa+1|0;if(qa>>>0>=j>>>0){X=271;break c}}if((X|0)==251)ma(644972,644895,282,644962);else if((X|0)==252)ma(645169,644895,684,645187);else if((X|0)==257)ma(644993,644895,395,645016);else if((X|0)==262)ma(644972,644895,405,645016);else if((X|0)==267)ma(645169,644895,684,645187)}qa=l&15;ca=l>>>4;c[h>>2]=ca;ya=6+-4|0;c[g>>2]=ya;xa=ya;ya=za;da=ca;while(1){if(xa>>>0>=4){La=da;Ma=xa;break}if(ya>>>0<E>>>0){ca=ya+1|0;c[D>>2]=ca;Na=ca;Oa=d[ya>>0]|0}else{Na=ya;Oa=0}da=da|Oa<<xa;c[h>>2]=da;xa=xa+8|0;c[g>>2]=xa;if(xa>>>0>=33){X=144;break}else ya=Na}if((X|0)==144)ma(644972,644895,282,644962);ya=La&15;c[h>>2]=La>>>4;c[g>>2]=Ma+-4;B=u;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));do if(cb(n,u)|0){xa=u+4|0;if((c[xa>>2]|0)==(c[u>>2]|0)){Pa=1;break}B=x;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));da=(ya|0)!=0;do if(da){if(!(cb(n,x)|0)){Qa=1;break}if((c[x+4>>2]|0)==(c[x>>2]|0))Qa=1;else X=150}else X=150;while(0);f:do if((X|0)==150){if(!j){Qa=0;break}l=u+12|0;ca=u+24|0;G=(qa|0)==0;N=x+4|0;wa=x+12|0;ua=x+24|0;va=e+24|0;ta=z+12|0;sa=z+6|0;I=z+5|0;ka=z+4|0;ja=z+2|0;ha=z+3|0;ia=z+1|0;H=z+7|0;s=z+8|0;ba=z+9|0;aa=z+10|0;Z=z+11|0;$=0;J=0;M=0;g:while(1){if(!M){if((c[xa>>2]|0)==(c[u>>2]|0)){X=155;break}V=c[g>>2]|0;while(1){if(V>>>0>=16){Ra=V;break}Q=c[D>>2]|0;if(Q>>>0<(c[F>>2]|0)>>>0){c[D>>2]=Q+1;Sa=d[Q>>0]|0}else Sa=0;c[h>>2]=c[h>>2]|Sa<<V;V=V+8|0;c[g>>2]=V;if(V>>>0>=33){X=160;break g}}V=c[h>>2]|0;pa=c[(c[l>>2]|0)+((V&1023)<<2)>>2]|0;if((pa|0)>-1){Ta=pa>>16;Ua=pa&65535}else{Q=c[ca>>2]|0;K=10;L=pa;while(1){pa=K+1|0;T=b[Q+((V>>>K&1)+~L<<1)>>1]|0;S=T<<16>>16;if(T<<16>>16<0){K=pa;L=S}else{Ta=pa;Ua=S;break}}}c[h>>2]=V>>>Ta;c[g>>2]=Ra-Ta;Va=Ua;Wa=8}else{Va=$;Wa=M}M=Wa+-1|0;$=Va>>>1;if(!(Va&1)){L=0;do{K=c[g>>2]|0;while(1){if(K>>>0>=8){Xa=K;break}Q=c[D>>2]|0;if(Q>>>0<(c[F>>2]|0)>>>0){c[D>>2]=Q+1;Ya=d[Q>>0]|0}else Ya=0;c[h>>2]=c[h>>2]|Ya<<K;K=K+8|0;c[g>>2]=K;if(K>>>0>=33){X=197;break g}}K=c[h>>2]|0;c[h>>2]=K>>>8;c[g>>2]=Xa+-8;Q=c[f>>2]|0;S=3-(L>>>3)|0;pa=Q+(J*7|0)+S|0;T=d[645165+(K&3)>>0]|0;R=~(1<<L);a[pa>>0]=(d[pa>>0]|0)&R|(T&1)<<L;pa=S+-2+(Q+(J*7|0))|0;a[pa>>0]=(d[pa>>0]|0)&R|T>>>1<<L;T=c[f>>2]|0;if(L>>>0>=4){X=198;break g}R=L+4|0;pa=3-(R>>>3)|0;Q=T+(J*7|0)+pa|0;S=d[645165+(K>>>2&3)>>0]|0;O=~(1<<R);a[Q>>0]=(d[Q>>0]|0)&O|(S&1)<<R;Q=pa+-2+(T+(J*7|0))|0;a[Q>>0]=(d[Q>>0]|0)&O|S>>>1<<R;R=c[f>>2]|0;S=L+8|0;O=3-(S>>>3)|0;Q=R+(J*7|0)+O|0;T=S&7;S=d[645165+(K>>>4&3)>>0]|0;pa=~(1<<T);a[Q>>0]=(d[Q>>0]|0)&pa|(S&1)<<T;Q=O+-2+(R+(J*7|0))|0;a[Q>>0]=(d[Q>>0]|0)&pa|S>>>1<<T;T=c[f>>2]|0;S=L+12|0;pa=3-(S>>>3)|0;Q=T+(J*7|0)+pa|0;R=S&7;S=d[645165+(K>>>6&3)>>0]|0;K=~(1<<R);a[Q>>0]=(d[Q>>0]|0)&K|(S&1)<<R;Q=pa+-2+(T+(J*7|0))|0;a[Q>>0]=(d[Q>>0]|0)&K|S>>>1<<R;L=L+1|0}while(L>>>0<4)}else{if(G)Za=0;else Za=db(n,qa)|0;if(da){if((c[N>>2]|0)==(c[x>>2]|0)){X=172;break}L=c[g>>2]|0;while(1){if(L>>>0>=16){_a=L;break}V=c[D>>2]|0;if(V>>>0<(c[F>>2]|0)>>>0){c[D>>2]=V+1;$a=d[V>>0]|0}else $a=0;c[h>>2]=c[h>>2]|$a<<L;L=L+8|0;c[g>>2]=L;if(L>>>0>=33){X=177;break g}}L=c[h>>2]|0;V=c[(c[wa>>2]|0)+((L&1023)<<2)>>2]|0;if((V|0)>-1){ab=V>>16;bb=V&65535}else{R=c[ua>>2]|0;S=10;K=V;while(1){V=S+1|0;Q=b[R+((L>>>S&1)+~K<<1)>>1]|0;T=Q<<16>>16;if(Q<<16>>16<0){S=V;K=T}else{ab=V;bb=T;break}}}c[h>>2]=L>>>ab;c[g>>2]=_a-ab;fb=bb}else fb=0;K=c[va>>2]|0;S=c[K>>2]|0;if(Za>>>0>=(c[K+4>>2]|0)-S>>4>>>0){Qa=1;break f}if(fb>>>0>=32768){X=185;break}a[ta>>0]=fb&3;a[sa>>0]=fb>>>2&1;a[I>>0]=fb>>>3&1;a[z>>0]=fb>>>4&3;a[ka>>0]=fb>>>6&1;a[ja>>0]=fb>>>7&1;a[ha>>0]=fb>>>8&1;a[ia>>0]=fb>>>9&1;a[H>>0]=fb>>>10&1;a[s>>0]=fb>>>11&1;a[ba>>0]=fb>>>12&1;a[aa>>0]=fb>>>13&1;a[Z>>0]=fb>>>14&1;xb(y,S+(Za<<4)|0,z);S=0;do{K=S<<2;R=0;do{T=c[f>>2]|0;V=d[y+(R+K)>>0]|0;if((R|S|V)>>>0>=4){X=189;break g}Q=(R<<2)+S|0;pa=3-(Q>>>3)|0;O=T+(J*7|0)+pa|0;W=Q&7;Q=d[645165+V>>0]|0;V=~(1<<W);a[O>>0]=(d[O>>0]|0)&V|(Q&1)<<W;O=pa+-2+(T+(J*7|0))|0;a[O>>0]=(d[O>>0]|0)&V|Q>>>1<<W;R=R+1|0}while(R>>>0<4);S=S+1|0}while(S>>>0<4)}eb((c[f>>2]|0)+(J*7|0)|0);J=J+1|0;if(J>>>0>=j>>>0){Qa=0;break f}}if((X|0)==155)ma(644993,644895,395,645016);else if((X|0)==160)ma(644972,644895,405,645016);else if((X|0)==172)ma(644993,644895,395,645016);else if((X|0)==177)ma(644972,644895,405,645016);else if((X|0)==185)ma(645134,644812,48,645155);else if((X|0)==189)ma(645169,644895,684,645187);else if((X|0)==197)ma(644972,644895,282,644962);else if((X|0)==198)ma(645169,644895,684,645187)}while(0);da=c[x+24>>2]|0;xa=da;if(da){J=x+28|0;Z=c[J>>2]|0;if((Z|0)!=(da|0))c[J>>2]=Z+(~((Z+-2-xa|0)>>>1)<<1);$b(da)}da=c[x+12>>2]|0;xa=da;if(da){Z=x+16|0;J=c[Z>>2]|0;if((J|0)!=(da|0))c[Z>>2]=J+(~((J+-4-xa|0)>>>2)<<2);$b(da)}da=c[x>>2]|0;if(da){xa=x+4|0;if((c[xa>>2]|0)!=(da|0))c[xa>>2]=da;$b(da)}Pa=Qa}else Pa=1;while(0);qa=c[u+24>>2]|0;ya=qa;if(qa){da=u+28|0;xa=c[da>>2]|0;if((xa|0)!=(qa|0))c[da>>2]=xa+(~((xa+-2-ya|0)>>>1)<<1);$b(qa)}qa=c[u+12>>2]|0;ya=qa;if(qa){xa=u+16|0;da=c[xa>>2]|0;if((da|0)!=(qa|0))c[xa>>2]=da+(~((da+-4-ya|0)>>>2)<<2);$b(qa)}qa=c[u>>2]|0;if(qa){ya=u+4|0;if((c[ya>>2]|0)!=(qa|0))c[ya>>2]=qa;$b(qa)}if(!Pa)X=271;else Ea=0}else{qa=k&15;ya=k>>>4;c[h>>2]=ya;da=7+-4|0;c[g>>2]=da;xa=da;da=za;J=ya;while(1){if(xa>>>0>=4){gb=J;hb=xa;break}if(da>>>0<E>>>0){ya=da+1|0;c[D>>2]=ya;ib=ya;jb=d[da>>0]|0}else{ib=da;jb=0}J=J|jb<<xa;c[h>>2]=J;xa=xa+8|0;c[g>>2]=xa;if(xa>>>0>=33){X=93;break}else da=ib}if((X|0)==93)ma(644972,644895,282,644962);da=gb&15;c[h>>2]=gb>>>4;c[g>>2]=hb+-4;B=u;C=B+36|0;do{c[B>>2]=0;B=B+4|0}while((B|0)<(C|0));xa=(da|0)!=0;do if(xa){if(!(cb(n,u)|0)){kb=1;break}if((c[u+4>>2]|0)==(c[u>>2]|0))kb=1;else X=97}else X=97;while(0);h:do if((X|0)==97){if(!j){kb=0;break}da=(qa|0)==0;J=u+4|0;ya=u+12|0;Z=u+24|0;aa=e+24|0;ba=w+12|0;s=w+6|0;H=w+5|0;ia=w+4|0;ha=w+2|0;ja=w+3|0;ka=w+1|0;I=w+7|0;sa=w+8|0;ta=w+9|0;va=w+10|0;ua=w+11|0;wa=0;i:while(1){if(da)lb=0;else lb=db(n,qa)|0;if(xa){if((c[J>>2]|0)==(c[u>>2]|0)){X=104;break}N=c[g>>2]|0;while(1){if(N>>>0>=16){mb=N;break}G=c[D>>2]|0;if(G>>>0<(c[F>>2]|0)>>>0){c[D>>2]=G+1;nb=d[G>>0]|0}else nb=0;c[h>>2]=c[h>>2]|nb<<N;N=N+8|0;c[g>>2]=N;if(N>>>0>=33){X=109;break i}}N=c[h>>2]|0;G=c[(c[ya>>2]|0)+((N&1023)<<2)>>2]|0;if((G|0)>-1){ob=G>>16;pb=G&65535}else{$=c[Z>>2]|0;M=10;ca=G;while(1){G=M+1|0;l=b[$+((N>>>M&1)+~ca<<1)>>1]|0;ra=l<<16>>16;if(l<<16>>16<0){M=G;ca=ra}else{ob=G;pb=ra;break}}}c[h>>2]=N>>>ob;c[g>>2]=mb-ob;qb=pb}else qb=0;ca=c[aa>>2]|0;M=c[ca>>2]|0;if(lb>>>0>=(c[ca+4>>2]|0)-M>>4>>>0){kb=1;break h}if(qb>>>0>=32768){X=117;break}a[ba>>0]=qb&3;a[s>>0]=qb>>>2&1;a[H>>0]=qb>>>3&1;a[w>>0]=qb>>>4&3;a[ia>>0]=qb>>>6&1;a[ha>>0]=qb>>>7&1;a[ja>>0]=qb>>>8&1;a[ka>>0]=qb>>>9&1;a[I>>0]=qb>>>10&1;a[sa>>0]=qb>>>11&1;a[ta>>0]=qb>>>12&1;a[va>>0]=qb>>>13&1;a[ua>>0]=qb>>>14&1;xb(v,M+(lb<<4)|0,w);M=0;do{ca=M<<2;$=0;do{ra=c[f>>2]|0;G=d[v+($+ca)>>0]|0;if(($|M|G)>>>0>=4){X=121;break i}l=($<<2)+M|0;S=3-(l>>>3)|0;L=ra+(wa*7|0)+S|0;R=l&7;l=d[645165+G>>0]|0;G=~(1<<R);a[L>>0]=(d[L>>0]|0)&G|(l&1)<<R;L=S+-2+(ra+(wa*7|0))|0;a[L>>0]=(d[L>>0]|0)&G|l>>>1<<R;$=$+1|0}while($>>>0<4);M=M+1|0}while(M>>>0<4);eb((c[f>>2]|0)+(wa*7|0)|0);wa=wa+1|0;if(wa>>>0>=j>>>0){kb=0;break h}}if((X|0)==104)ma(644993,644895,395,645016);else if((X|0)==109)ma(644972,644895,405,645016);else if((X|0)==117)ma(645134,644812,48,645155);else if((X|0)==121)ma(645169,644895,684,645187)}while(0);xa=c[u+24>>2]|0;qa=xa;if(xa){wa=u+28|0;ua=c[wa>>2]|0;if((ua|0)!=(xa|0))c[wa>>2]=ua+(~((ua+-2-qa|0)>>>1)<<1);$b(xa)}xa=c[u+12>>2]|0;qa=xa;if(xa){ua=u+16|0;wa=c[ua>>2]|0;if((wa|0)!=(xa|0))c[ua>>2]=wa+(~((wa+-4-qa|0)>>>2)<<2);$b(xa)}xa=c[u>>2]|0;if(xa){qa=u+4|0;if((c[qa>>2]|0)!=(xa|0))c[qa>>2]=xa;$b(xa)}if(!kb)X=271;else Ea=0}while(0);if((X|0)==271)Ea=1;X=c[t+24>>2]|0;kb=X;if(X){u=t+28|0;j=c[u>>2]|0;if((j|0)!=(X|0))c[u>>2]=j+(~((j+-2-kb|0)>>>1)<<1);$b(X)}X=c[t+12>>2]|0;kb=X;if(X){j=t+16|0;u=c[j>>2]|0;if((u|0)!=(X|0))c[j>>2]=u+(~((u+-4-kb|0)>>>2)<<2);$b(X)}X=c[t>>2]|0;if(X){kb=t+4|0;if((c[kb>>2]|0)!=(X|0))c[kb>>2]=X;$b(X)}rb=Ea}else rb=0}else rb=0;Ea=c[r+24>>2]|0;X=Ea;if(Ea){kb=r+28|0;t=c[kb>>2]|0;if((t|0)!=(Ea|0))c[kb>>2]=t+(~((t+-2-X|0)>>>1)<<1);$b(Ea)}Ea=c[r+12>>2]|0;X=Ea;if(Ea){t=r+16|0;kb=c[t>>2]|0;if((kb|0)!=(Ea|0))c[t>>2]=kb+(~((kb+-4-X|0)>>>2)<<2);$b(Ea)}Ea=c[r>>2]|0;if(Ea){X=r+4|0;if((c[X>>2]|0)!=(Ea|0))c[X>>2]=Ea;$b(Ea)}Ea=c[q+24>>2]|0;X=Ea;if(Ea){r=q+28|0;kb=c[r>>2]|0;if((kb|0)!=(Ea|0))c[r>>2]=kb+(~((kb+-2-X|0)>>>1)<<1);$b(Ea)}Ea=c[q+12>>2]|0;X=Ea;if(Ea){kb=q+16|0;r=c[kb>>2]|0;if((r|0)!=(Ea|0))c[kb>>2]=r+(~((r+-4-X|0)>>>2)<<2);$b(Ea)}Ea=c[q>>2]|0;if(Ea){X=q+4|0;if((c[X>>2]|0)!=(Ea|0))c[X>>2]=Ea;$b(Ea)}Ea=c[p+24>>2]|0;X=Ea;if(Ea){q=p+28|0;r=c[q>>2]|0;if((r|0)!=(Ea|0))c[q>>2]=r+(~((r+-2-X|0)>>>1)<<1);$b(Ea)}Ea=c[p+12>>2]|0;X=Ea;if(Ea){r=p+16|0;q=c[r>>2]|0;if((q|0)!=(Ea|0))c[r>>2]=q+(~((q+-4-X|0)>>>2)<<2);$b(Ea)}Ea=c[p>>2]|0;if(Ea){X=p+4|0;if((c[X>>2]|0)!=(Ea|0))c[X>>2]=Ea;$b(Ea)}Ea=c[o+24>>2]|0;X=Ea;if(Ea){p=o+28|0;q=c[p>>2]|0;if((q|0)!=(Ea|0))c[p>>2]=q+(~((q+-2-X|0)>>>1)<<1);$b(Ea)}Ea=c[o+12>>2]|0;X=Ea;if(Ea){q=o+16|0;p=c[q>>2]|0;if((p|0)!=(Ea|0))c[q>>2]=p+(~((p+-4-X|0)>>>2)<<2);$b(Ea)}Ea=c[o>>2]|0;if(!Ea){i=m;return rb|0}X=o+4|0;if((c[X>>2]|0)!=(Ea|0))c[X>>2]=Ea;$b(Ea);i=m;return rb|0}function cb(e,f){e=e|0;f=f|0;var g=0,h=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;g=i;i=i+64|0;h=g+36|0;j=g;k=c[f>>2]|0;l=f+4|0;if((c[l>>2]|0)!=(k|0))c[l>>2]=k;k=c[f+12>>2]|0;l=f+16|0;m=c[l>>2]|0;if((k|0)!=(m|0))c[l>>2]=m+(~((m+-4-k|0)>>>2)<<2);k=c[f+24>>2]|0;m=f+28|0;l=c[m>>2]|0;if((k|0)!=(l|0))c[m>>2]=l+(~((l+-2-k|0)>>>1)<<1);k=e+20|0;l=e+4|0;m=e+12|0;n=e+16|0;e=c[k>>2]|0;while(1){if(e>>>0>=14){o=e;break}p=c[l>>2]|0;if(p>>>0<(c[m>>2]|0)>>>0){c[l>>2]=p+1;q=d[p>>0]|0}else q=0;c[n>>2]=c[n>>2]|q<<e;e=e+8|0;c[k>>2]=e;if(e>>>0>=33){r=12;break}}if((r|0)==12)ma(644972,644895,282,644962);e=c[n>>2]|0;q=e&16383;p=e>>>14;c[n>>2]=p;s=o+-14|0;c[k>>2]=s;if(!q){t=1;i=g;return t|0}o=h;u=o+21|0;do{a[o>>0]=0;o=o+1|0}while((o|0)<(u|0));v=s;s=p;while(1){if(v>>>0>=5){w=s;x=v;break}p=c[l>>2]|0;if(p>>>0<(c[m>>2]|0)>>>0){c[l>>2]=p+1;y=d[p>>0]|0}else y=0;s=s|y<<v;c[n>>2]=s;v=v+8|0;c[k>>2]=v;if(v>>>0>=33){r=19;break}}if((r|0)==19)ma(644972,644895,282,644962);v=w&31;s=w>>>5;c[n>>2]=s;w=x+-5|0;c[k>>2]=w;if((v+-1|0)>>>0>20){t=0;i=g;return t|0}a:do if(v){x=w;y=s;p=0;b:while(1){z=x;A=y;while(1){if(z>>>0>=3){B=A;C=z;break}D=c[l>>2]|0;if(D>>>0<(c[m>>2]|0)>>>0){c[l>>2]=D+1;E=d[D>>0]|0}else E=0;A=A|E<<z;c[n>>2]=A;z=z+8|0;c[k>>2]=z;if(z>>>0>=33)break b}y=B>>>3;c[n>>2]=y;x=C+-3|0;c[k>>2]=x;a[h+(d[644859+p>>0]|0)>>0]=B&7;p=p+1|0;if(p>>>0>=v>>>0)break a}ma(644972,644895,282,644962)}while(0);o=j;u=o+36|0;do{c[o>>2]=0;o=o+4|0}while((o|0)<(u|0));if(tb(j,21,h)|0?(c[j+4>>2]|0)!=(c[j>>2]|0):0){h=_b(q)|0;Pc(h|0,0,e&16383|0)|0;e=j+12|0;o=j+24|0;u=0;c:while(1){v=c[k>>2]|0;while(1){if(v>>>0>=16){F=v;break}B=c[l>>2]|0;if(B>>>0<(c[m>>2]|0)>>>0){c[l>>2]=B+1;G=d[B>>0]|0}else G=0;c[n>>2]=c[n>>2]|G<<v;v=v+8|0;c[k>>2]=v;if(v>>>0>=33){r=37;break c}}v=c[n>>2]|0;B=c[(c[e>>2]|0)+((v&1023)<<2)>>2]|0;if((B|0)>-1){H=B>>16;I=B&65535}else{C=c[o>>2]|0;E=10;s=B;while(1){B=E+1|0;w=b[C+((v>>>E&1)+~s<<1)>>1]|0;p=w<<16>>16;if(w<<16>>16<0){E=B;s=p}else{H=B;I=p;break}}}s=v>>>H;c[n>>2]=s;E=F-H|0;c[k>>2]=E;d:do if((I|0)<17){a[h+u>>0]=I;J=u+1|0}else switch(I|0){case 17:{C=E;p=s;while(1){if(C>>>0>=3){K=p;L=C;break}B=c[l>>2]|0;if(B>>>0<(c[m>>2]|0)>>>0){c[l>>2]=B+1;M=d[B>>0]|0}else M=0;p=p|M<<C;c[n>>2]=p;C=C+8|0;c[k>>2]=C;if(C>>>0>=33){r=49;break c}}c[n>>2]=K>>>3;c[k>>2]=L+-3;J=u+3+(K&7)|0;break d;break}case 18:{C=E;p=s;while(1){if(C>>>0>=7){N=p;O=C;break}B=c[l>>2]|0;if(B>>>0<(c[m>>2]|0)>>>0){c[l>>2]=B+1;P=d[B>>0]|0}else P=0;p=p|P<<C;c[n>>2]=p;C=C+8|0;c[k>>2]=C;if(C>>>0>=33){r=56;break c}}c[n>>2]=N>>>7;c[k>>2]=O+-7;J=u+11+(N&127)|0;break d;break}default:{if(!u){Q=0;break c}if((I|0)==19){C=E;p=s;while(1){if(C>>>0>=2){R=p;S=C;break}B=c[l>>2]|0;if(B>>>0<(c[m>>2]|0)>>>0){c[l>>2]=B+1;T=d[B>>0]|0}else T=0;p=p|T<<C;c[n>>2]=p;C=C+8|0;c[k>>2]=C;if(C>>>0>=33){r=64;break c}}c[n>>2]=R>>>2;c[k>>2]=S+-2;U=(R&3)+3|0}else{C=E;p=s;while(1){if(C>>>0>=7){V=p;W=C;break}B=c[l>>2]|0;if(B>>>0<(c[m>>2]|0)>>>0){c[l>>2]=B+1;X=d[B>>0]|0}else X=0;p=p|X<<C;c[n>>2]=p;C=C+8|0;c[k>>2]=C;if(C>>>0>=33){r=70;break c}}c[n>>2]=V>>>7;c[k>>2]=W+-7;U=(V&127)+7|0}C=a[h+(u+-1)>>0]|0;if(!(C<<24>>24)){Q=0;break c}else{Y=u;Z=U}while(1){if(Y>>>0>=q>>>0){Q=0;break c}p=Y+1|0;a[h+Y>>0]=C;Z=Z+-1|0;if(!Z){J=p;break}else Y=p}}}while(0);if(J>>>0<q>>>0)u=J;else{_=J;r=75;break}}if((r|0)==37)ma(644972,644895,405,645016);else if((r|0)==49)ma(644972,644895,282,644962);else if((r|0)==56)ma(644972,644895,282,644962);else if((r|0)==64)ma(644972,644895,282,644962);else if((r|0)==70)ma(644972,644895,282,644962);else if((r|0)==75)if((_|0)==(q|0))Q=tb(f,q,h)|0;else Q=0;$b(h);$=Q}else $=0;Q=c[j+24>>2]|0;h=Q;if(Q){q=j+28|0;f=c[q>>2]|0;if((f|0)!=(Q|0))c[q>>2]=f+(~((f+-2-h|0)>>>1)<<1);$b(Q)}Q=c[j+12>>2]|0;h=Q;if(Q){f=j+16|0;q=c[f>>2]|0;if((q|0)!=(Q|0))c[f>>2]=q+(~((q+-4-h|0)>>>2)<<2);$b(Q)}Q=c[j>>2]|0;if(Q){h=j+4|0;if((c[h>>2]|0)!=(Q|0))c[h>>2]=Q;$b(Q)}t=$;i=g;return t|0}function db(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;if(b>>>0<=25){do if(b){e=a+20|0;f=a+4|0;g=a+12|0;h=a+16|0;i=c[e>>2]|0;while(1){if(i>>>0>=b>>>0){j=i;k=28;break}l=c[f>>2]|0;if(l>>>0<(c[g>>2]|0)>>>0){c[f>>2]=l+1;m=d[l>>0]|0}else m=0;c[h>>2]=c[h>>2]|m<<i;i=i+8|0;c[e>>2]=i;if(i>>>0>=33){k=27;break}}if((k|0)==27)ma(644972,644895,282,644962);else if((k|0)==28){i=c[h>>2]|0;n=i&(1<<b)+-1;o=e;p=h;q=i;r=j;break}}else{i=a+16|0;f=a+20|0;n=0;o=f;p=i;q=c[i>>2]|0;r=c[f>>2]|0}while(0);c[p>>2]=q>>>b;c[o>>2]=r-b;s=n;return s|0}if(b>>>0>=33)ma(644880,644895,300,644938);n=a+20|0;r=a+4|0;o=a+12|0;q=a+16|0;a=c[n>>2]|0;while(1){if(a>>>0>=25){t=a;break}p=c[r>>2]|0;if(p>>>0<(c[o>>2]|0)>>>0){c[r>>2]=p+1;u=d[p>>0]|0}else u=0;c[q>>2]=c[q>>2]|u<<a;a=a+8|0;c[n>>2]=a;if(a>>>0>=33){k=9;break}}if((k|0)==9)ma(644972,644895,282,644962);a=c[q>>2]|0;u=a&33554431;p=a>>>25;c[q>>2]=p;a=t+-25|0;c[n>>2]=a;t=b+-25|0;do if(t){if(t>>>0<26){v=a;w=p}else ma(644947,644895,272,644962);while(1){if(v>>>0>=t>>>0){x=w;y=v;k=18;break}b=c[r>>2]|0;if(b>>>0<(c[o>>2]|0)>>>0){c[r>>2]=b+1;z=d[b>>0]|0}else z=0;w=w|z<<v;c[q>>2]=w;v=v+8|0;c[n>>2]=v;if(v>>>0>=33){k=17;break}}if((k|0)==17)ma(644972,644895,282,644962);else if((k|0)==18){A=(x&(1<<t)+127)<<25;B=x;C=y;break}}else{A=0;B=p;C=a}while(0);c[q>>2]=B>>>t;c[n>>2]=C-t;s=A|u;return s|0}function eb(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=i;i=i+16|0;f=e;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g=0;do{h=3-(g>>>3)|0;j=f+((d[645200+((d[b+(h+-2)>>0]|0)>>>g<<1&2|(d[b+h>>0]|0)>>>g&1)>>0]|0)<<2)|0;c[j>>2]=(c[j>>2]|0)+1;if(g>>>0>=4){k=2;break}j=g+4|0;h=3-(j>>>3)|0;l=f+((d[645200+((d[b+(h+-2)>>0]|0)>>>j<<1&2|(d[b+h>>0]|0)>>>j&1)>>0]|0)<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=g+8|0;j=l&7;h=3-(l>>>3)|0;l=f+((d[645200+((d[b+(h+-2)>>0]|0)>>>j<<1&2|(d[b+h>>0]|0)>>>j&1)>>0]|0)<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=g+12|0;j=l&7;h=3-(l>>>3)|0;l=f+((d[645200+((d[b+(h+-2)>>0]|0)>>>j<<1&2|(d[b+h>>0]|0)>>>j&1)>>0]|0)<<2)|0;c[l>>2]=(c[l>>2]|0)+1;g=g+1|0}while(g>>>0<4);if((k|0)==2)ma(645204,644895,661,645216);k=b+4|0;a[k>>0]=3;g=b+5|0;a[g>>0]=0;l=b+6|0;a[l>>0]=0;if(!(c[f>>2]|0)){m=0;n=3}else{a[l>>0]=1;a[k>>0]=0;m=1;n=0}if(!(c[f+4>>2]|0)){o=m;p=n}else{b=m+1<<24>>24;a[l>>0]=b;if((n&255)>1){a[k>>0]=1;q=1}else q=n;a[g>>0]=1;o=b;p=q}if(!(c[f+8>>2]|0))r=o;else{q=o+1<<24>>24;a[l>>0]=q;if((p&255)>2)a[k>>0]=2;a[g>>0]=2;r=q}if(!(c[f+12>>2]|0)){i=e;return}a[l>>0]=r+1<<24>>24;a[g>>0]=3;i=e;return}function fb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;i=i+32|0;g=f;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;if((b|0)==0&(e|0)!=0){h=0;i=f;return h|0}c[g>>2]=e;j=g+4|0;c[j>>2]=b;c[g+8>>2]=b;k=g+12|0;c[k>>2]=b+e;e=g+16|0;c[e>>2]=0;b=g+20|0;c[b>>2]=0;l=a+28|0;if(!(cb(g,l)|0)){h=0;i=f;return h|0}if((c[a+32>>2]|0)==(c[l>>2]|0)){h=0;i=f;return h|0}l=a+64|0;if(!(cb(g,l)|0)){h=0;i=f;return h|0}if((c[a+68>>2]|0)==(c[l>>2]|0)){h=0;i=f;return h|0}l=a+100|0;if(!(cb(g,l)|0)){h=0;i=f;return h|0}if((c[a+104>>2]|0)==(c[l>>2]|0)){h=0;i=f;return h|0}l=a+136|0;if(!(cb(g,l)|0)){h=0;i=f;return h|0}if((c[a+140>>2]|0)==(c[l>>2]|0)){h=0;i=f;return h|0}l=c[b>>2]|0;while(1){if(l>>>0>=13){m=l;break}g=c[j>>2]|0;if(g>>>0<(c[k>>2]|0)>>>0){c[j>>2]=g+1;n=d[g>>0]|0}else n=0;c[e>>2]=c[e>>2]|n<<l;l=l+8|0;c[b>>2]=l;if(l>>>0>=33){o=15;break}}if((o|0)==15)ma(644972,644895,282,644962);o=c[e>>2]|0;c[e>>2]=o>>>13;c[b>>2]=m+-13;c[a+172>>2]=o&8191;h=1;i=f;return h|0}function gb(f,g,h,j,k,l,m,n,o,p,q,r,s,t){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;var u=0,v=0,w=0,x=0,y=0,z=0,A=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,_=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,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,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,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Gb=0,Hb=0,Ib=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,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,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=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;u=i;i=i+192|0;v=u+120|0;w=u+56|0;x=u+24|0;y=u+8|0;z=u+40|0;A=u;C=(t|0)==0?f+176|0:t;t=(a[q+23>>0]|0)==3;q=Z(j,h)|0;D=(s|0)==0?h:s;if(t){s=a[r+3>>0]|0;if((s&255)>15){E=0;i=u;return E|0}F=s&255;s=d[r+4>>0]&1;r=C+24+(s*192|0)+(F*12|0)|0;G=(c[C+24+(s*192|0)+(F*12|0)+4>>2]|0)-(c[r>>2]|0)>>2;if(q>>>0>G>>>0){Jb(r,q-G|0);H=r}else H=r}else H=0;if((k|0)==0&(l|0)!=0){E=0;i=u;return E|0}r=k+l|0;l=f+172|0;G=c[l>>2]|0;c[z>>2]=0;F=z+4|0;c[F>>2]=0;c[z+8>>2]=0;if(!G)I=0;else{vb(z,G);I=c[l>>2]|0}s=z+12|0;c[s>>2]=G>>>1;G=f+16|0;J=f+12|0;K=I+(((c[G>>2]|0)-(c[J>>2]|0)|0)/7|0)|0;I=A;c[I>>2]=0;c[I+4>>2]=0;I=A+3|0;a[I>>0]=3;L=(m|0)==3;if(L){M=Gc(q*12|0)|0;if(!M)N=0;else{O=M+(q<<3)|0;P=M;Q=11}}else{O=0;P=0;Q=11}a:do if((Q|0)==11){M=(c[C+4>>2]|0)-(c[C>>2]|0)>>2;do if(M>>>0<h>>>0){Kb(C,h-M|0);R=C+12|0;S=C+16|0;T=c[S>>2]|0;U=c[R>>2]|0;V=T-U>>2;if(V>>>0<h>>>0){Kb(R,h-V|0);break}if(V>>>0>h>>>0?(V=U+(h<<2)|0,(T|0)!=(V|0)):0)c[S>>2]=T+(~((T+-4-V|0)>>>2)<<2)}while(0);b:do if(j){M=(h|0)==0;V=f+32|0;T=f+28|0;S=f+40|0;U=f+52|0;R=f+68|0;W=f+64|0;X=f+76|0;Y=f+4|0;_=f+88|0;$=t^1;aa=f+104|0;ba=f+100|0;ca=f+112|0;da=f+140|0;ea=f+136|0;fa=f+148|0;ga=f+160|0;ha=f+124|0;ia=m>>>0<2;ja=A+1|0;ka=A+2|0;la=A+4|0;na=A+5|0;oa=A+6|0;pa=A+7|0;qa=v+1|0;ra=v+2|0;sa=v+3|0;ta=v+1|0;ua=v+2|0;va=v+3|0;wa=v+1|0;xa=v+2|0;ya=v+3|0;za=k;Aa=0;Ba=0;Ca=0;Da=0;Ea=0;Fa=0;Ga=0;Ha=0;c:while(1){Ia=Ca&1;d:do if(M){Ja=Ba;Ka=Aa;La=za;Ma=Da;Na=Ea;Oa=Fa;Pa=Ga;Qa=Ha}else{Ra=(Ia|0)==0;Sa=C+((Ia^1)*12|0)|0;Ta=C+(Ia*12|0)|0;Ua=Z(Ca,h)|0;Va=Z(Ca,D)|0;Wa=(Ca|0)==0;Xa=(Ca|0)!=0;Ya=za;Za=Aa;_a=Ba;$a=0;ab=Da;bb=Ea;cb=Fa;db=Ga;eb=Ha;while(1){do if(!($a&1)){if(!Ra){fb=_a;gb=Za;ib=Ya;jb=d[(c[Ta>>2]|0)+($a<<2)+2>>0]|0;kb=cb;lb=eb;break}if(!cb){if((c[V>>2]|0)==(c[T>>2]|0)){Q=26;break c}else{mb=_a;nb=Ya;ob=Za}while(1){if(mb>>>0>=16){pb=ob;qb=nb;rb=mb;break}if(nb>>>0<r>>>0){sb=nb+1|0;tb=d[nb>>0]|0}else{sb=nb;tb=0}ob=tb<<mb|ob;mb=mb+8|0;if(mb>>>0>=33){Q=31;break c}else nb=sb}ub=c[(c[S>>2]|0)+((pb&1023)<<2)>>2]|0;if((ub|0)>-1){wb=ub>>16;xb=ub&65535}else{yb=c[U>>2]|0;zb=10;Ab=ub;while(1){ub=zb+1|0;Bb=b[yb+((pb>>>zb&1)+~Ab<<1)>>1]|0;Cb=Bb<<16>>16;if(Bb<<16>>16<0){zb=ub;Ab=Cb}else{wb=ub;xb=Cb;break}}}Ab=pb>>>wb;zb=rb-wb|0;if((xb|0)==256){yb=zb;Cb=Ab;ub=qb;Bb=0;Db=0;while(1){Eb=yb;Gb=ub;Hb=Cb;while(1){if(Eb>>>0>=5){Ib=Hb;Lb=Gb;Mb=Eb;break}if(Gb>>>0<r>>>0){Nb=Gb+1|0;Ob=d[Gb>>0]|0}else{Nb=Gb;Ob=0}Hb=Ob<<Eb|Hb;Eb=Eb+8|0;if(Eb>>>0>=33){Q=42;break c}else Gb=Nb}Gb=Ib>>>5;Eb=Mb+-5|0;Hb=(Ib&15)<<Bb|Db;Pb=Bb+4|0;if(!(Ib&16)){Qb=Lb;Rb=Gb;Sb=Eb;Tb=Hb;break}if(Pb>>>0>31){Q=45;break c}else{yb=Eb;Cb=Gb;ub=Lb;Bb=Pb;Db=Hb}}Ub=Sb;Vb=Rb;Wb=Qb;Xb=Tb+2|0;Yb=eb}else{Ub=zb;Vb=Ab;Wb=qb;Xb=0;Yb=xb}}else{Ub=_a;Vb=Za;Wb=Ya;Xb=cb+-1|0;Yb=eb}a[(c[Sa>>2]|0)+($a<<2)+2>>0]=Yb>>>4;fb=Ub;gb=Vb;ib=Wb;jb=Yb;kb=Xb;lb=Yb}else{fb=_a;gb=Za;ib=Ya;jb=ab;kb=cb;lb=eb}while(0);Db=jb&3;Bb=jb>>>2;e:do switch(Db|0){case 0:{if(!$a){Q=51;break c}else{Zb=db;Q=75}break}case 1:{if(Wa){Q=54;break c}Zb=e[(c[Sa>>2]|0)+($a<<2)>>1]|0;Q=75;break}case 2:{if(t){ub=c[(c[H>>2]|0)+($a+Ua<<2)>>2]|0;_b=fb;ac=gb;bc=ib;cc=ub&65535;dc=ub>>>16;Q=76;break e}if(!(Xa&($a|0)!=0)){Q=60;break c}_b=fb;ac=gb;bc=ib;cc=e[(c[Sa>>2]|0)+($a+-1<<2)>>1]|0;dc=0;Q=76;break}default:{if((c[R>>2]|0)==(c[W>>2]|0)){Q=64;break c}else{ec=fb;fc=ib;gc=gb}while(1){if(ec>>>0>=16){hc=gc;ic=fc;jc=ec;break}if(fc>>>0<r>>>0){kc=fc+1|0;lc=d[fc>>0]|0}else{kc=fc;lc=0}gc=lc<<ec|gc;ec=ec+8|0;if(ec>>>0>=33){Q=69;break c}else fc=kc}Ab=c[(c[X>>2]|0)+((hc&1023)<<2)>>2]|0;if((Ab|0)>-1){mc=Ab>>16;nc=Ab&65535}else{zb=c[_>>2]|0;ub=10;Cb=Ab;while(1){Ab=ub+1|0;yb=b[zb+((hc>>>ub&1)+~Cb<<1)>>1]|0;Hb=yb<<16>>16;if(yb<<16>>16<0){ub=Ab;Cb=Hb}else{mc=Ab;nc=Hb;break}}}Cb=nc+db|0;ub=(c[Y>>2]|0)-(c[f>>2]|0)>>3;_b=jc-mc|0;ac=hc>>>mc;bc=ic;cc=Cb-(Cb>>>0<ub>>>0?0:ub)|0;dc=0;Q=76}}while(0);if((Q|0)==75){Q=0;b[(c[Ta>>2]|0)+($a<<2)>>1]=Zb;oc=ib;pc=gb;qc=fb;rc=Zb;Q=77}else if((Q|0)==76){Q=0;b[(c[Ta>>2]|0)+($a<<2)>>1]=cc;if((Db|0)!=2|$){oc=bc;pc=ac;qc=_b;rc=cc;Q=77}else{sc=_b;tc=ac;uc=bc;vc=bb;wc=cc;xc=dc}}do if((Q|0)==77){Q=0;if(!bb){if((c[aa>>2]|0)==(c[ba>>2]|0)){Q=80;break c}else{yc=qc;zc=oc;Ac=pc}while(1){if(yc>>>0>=16){Bc=Ac;Cc=zc;Dc=yc;break}if(zc>>>0<r>>>0){Ec=zc+1|0;Fc=d[zc>>0]|0}else{Ec=zc;Fc=0}Ac=Fc<<yc|Ac;yc=yc+8|0;if(yc>>>0>=33){Q=85;break c}else zc=Ec}ub=c[(c[ca>>2]|0)+((Bc&1023)<<2)>>2]|0;if((ub|0)>-1){Ic=ub>>16;Jc=ub&65535}else{Cb=c[ha>>2]|0;zb=10;Hb=ub;while(1){ub=zb+1|0;Ab=b[Cb+((Bc>>>zb&1)+~Hb<<1)>>1]|0;yb=Ab<<16>>16;if(Ab<<16>>16<0){zb=ub;Hb=yb}else{Ic=ub;Jc=yb;break}}}Hb=Bc>>>Ic;zb=Dc-Ic|0;if((Jc|0)==(K|0)){if((c[da>>2]|0)==(c[ea>>2]|0)){Q=92;break c}else{Kc=zb;Lc=Cc;Mc=Hb}while(1){if(Kc>>>0>=16){Nc=Mc;Oc=Lc;Pc=Kc;break}if(Lc>>>0<r>>>0){Sc=Lc+1|0;Tc=d[Lc>>0]|0}else{Sc=Lc;Tc=0}Mc=Tc<<Kc|Mc;Kc=Kc+8|0;if(Kc>>>0>=33){Q=97;break c}else Lc=Sc}Cb=c[(c[fa>>2]|0)+((Nc&1023)<<2)>>2]|0;if((Cb|0)>-1){Uc=Cb>>16;Vc=Cb&65535}else{yb=c[ga>>2]|0;ub=10;Ab=Cb;while(1){Cb=ub+1|0;Pb=b[yb+((Nc>>>ub&1)+~Ab<<1)>>1]|0;Gb=Pb<<16>>16;if(Pb<<16>>16<0){ub=Cb;Ab=Gb}else{Uc=Cb;Vc=Gb;break}}}Ab=Nc>>>Uc;ub=Pc-Uc|0;do if((Vc|0)==63){yb=ub;Gb=Oc;Cb=Ab;while(1){if(yb>>>0>=8){Wc=Cb;Xc=Gb;Yc=yb;break}if(Gb>>>0<r>>>0){Zc=Gb+1|0;_c=d[Gb>>0]|0}else{Zc=Gb;_c=0}Cb=_c<<yb|Cb;yb=yb+8|0;if(yb>>>0>=33){Q=107;break c}else Gb=Zc}Gb=Wc>>>8;yb=Yc+-8|0;Cb=Wc&127;if(!(Wc&128)){$c=yb;ad=Gb;bd=Xc;cd=Cb;break}else{dd=yb;ed=Xc;fd=Gb}while(1){if(dd>>>0>=8){gd=fd;hd=ed;id=dd;break}if(ed>>>0<r>>>0){jd=ed+1|0;kd=d[ed>>0]|0}else{jd=ed;kd=0}fd=kd<<dd|fd;dd=dd+8|0;if(dd>>>0>=33){Q=107;break c}else ed=jd}Gb=gd>>>8;yb=id+-8|0;Pb=gd<<7&16256|Cb;if(!(gd&128)){$c=yb;ad=Gb;bd=hd;cd=Pb;break}else{ld=yb;md=hd;nd=Gb}while(1){if(ld>>>0>=8){od=nd;pd=md;qd=ld;break}if(md>>>0<r>>>0){rd=md+1|0;sd=d[md>>0]|0}else{rd=md;sd=0}nd=sd<<ld|nd;ld=ld+8|0;if(ld>>>0>=33){Q=107;break c}else md=rd}Cb=od>>>8;Gb=qd+-8|0;yb=od<<14&2080768|Pb;if(!(od&128)){$c=Gb;ad=Cb;bd=pd;cd=yb;break}else{td=Gb;ud=pd;vd=Cb}while(1){if(td>>>0>=8){wd=vd;xd=ud;yd=td;break}if(ud>>>0<r>>>0){zd=ud+1|0;Ad=d[ud>>0]|0}else{zd=ud;Ad=0}vd=Ad<<td|vd;td=td+8|0;if(td>>>0>=33){Q=107;break c}else ud=zd}Pb=wd>>>8;Cb=yd+-8|0;Gb=wd<<21&266338304|yb;if(!(wd&128)){$c=Cb;ad=Pb;bd=xd;cd=Gb;break}else{Bd=Cb;Cd=xd;Dd=Pb}while(1){if(Bd>>>0>=8){Ed=Dd;Fd=Cd;Gd=Bd;break}if(Cd>>>0<r>>>0){Hd=Cd+1|0;Id=d[Cd>>0]|0}else{Hd=Cd;Id=0}Dd=Id<<Bd|Dd;Bd=Bd+8|0;if(Bd>>>0>=33){Q=107;break c}else Cd=Hd}if(!(Ed&128)){$c=Gd+-8|0;ad=Ed>>>8;bd=Fd;cd=Ed<<28|Gb}else{Q=309;break c}}else{$c=ub;ad=Ab;bd=Oc;cd=Vc}while(0);if((cd+3|0)>>>0>q>>>0){Q=110;break c}Jd=$c;Kd=ad;Ld=bd;Md=cd+2|0;Nd=((c[G>>2]|0)-(c[J>>2]|0)|0)/7|0}else{Jd=zb;Kd=Hb;Ld=Cc;Md=0;Nd=Jc}}else{Jd=qc;Kd=pc;Ld=oc;Md=bb+-1|0;Nd=((c[G>>2]|0)-(c[J>>2]|0)|0)/7|0}Ab=((c[G>>2]|0)-(c[J>>2]|0)|0)/7|0;ub=(c[l>>2]|0)==0;if((Nd|0)<(Ab|0)){if(ub){sc=Jd;tc=Kd;uc=Ld;vc=Md;wc=rc;xc=Nd;break}yb=c[s>>2]|0;c[s>>2]=yb+1;Pb=c[z>>2]|0;c[Pb+(yb<<2)>>2]=Nd;yb=c[s>>2]|0;if((yb|0)!=((c[F>>2]|0)-Pb>>2|0)){sc=Jd;tc=Kd;uc=Ld;vc=Md;wc=rc;xc=Nd;break}c[s>>2]=yb>>>1;sc=Jd;tc=Kd;uc=Ld;vc=Md;wc=rc;xc=Nd;break}if(ub){Q=115;break c}ub=Nd-Ab|0;yb=c[z>>2]|0;if((ub|0)>=((c[F>>2]|0)-yb>>2|0)){Q=117;break c}Pb=yb+(ub<<2)|0;Cb=c[Pb>>2]|0;if((Nd|0)==(Ab|0)){sc=Jd;tc=Kd;uc=Ld;vc=Md;wc=rc;xc=Cb}else{Ab=yb+(ub>>>1<<2)|0;ub=c[Ab>>2]|0;c[Ab>>2]=Cb;c[Pb>>2]=ub;sc=Jd;tc=Kd;uc=Ld;vc=Md;wc=rc;xc=Cb}}while(0);Cb=c[f>>2]|0;if(wc>>>0>=(c[Y>>2]|0)-Cb>>3>>>0){Q=126;break c}ub=c[J>>2]|0;if(xc>>>0>=(((c[G>>2]|0)-ub|0)/7|0)>>>0){Q=126;break c}if(t)c[(c[H>>2]|0)+($a+Ua<<2)>>2]=xc<<16|wc;Pb=c[123158]|0;f:do if(t&(Db|0)==2&(ia&(Pb&1|0)!=0)){Ab=g+(Z($a+Va|0,n)|0)|0;c[Ab>>2]=-1;c[Ab+4>>2]=-1}else{Ab=Cb+(wc<<3)|0;yb=a[Ab>>0]|0;Eb=a[Ab+1>>0]|0;Od=d[Ab+2>>0]|0;Ab=(Eb&255)<31?(Eb&255)<<5:992;Eb=(Od>>>0<31?Od:31)|Ab;Od=c[A>>2]|0;Pd=((Ab|((yb&255)<31?(yb&255)<<10:31744))>>>7&248|Od&7)&255;a[A>>0]=Pd;yb=(Eb>>>2&248|Od>>>8&7)&255;a[ja>>0]=yb;Ab=(Od>>>16&7|Eb<<3)&255;a[ka>>0]=Ab;Eb=Cb+(wc<<3)+4|0;Qd=a[Eb>>0]|0;if((Qd&255)>=8){Q=133;break c}Rd=Od>>>24&31|(Qd&255)<<5;a[I>>0]=Rd;Qd=a[Eb>>0]|0;if((Qd&255)>=8){Q=135;break c}Eb=Rd&227|(Qd&255)<<2;a[I>>0]=Eb;Qd=ub+(xc*7|0)|0;switch(m|0){case 0:{Rd=Z($a+Va|0,n)|0;c[g+Rd>>2]=c[A>>2];Od=a[ub+(xc*7|0)+1>>0]|0;Sd=a[ub+(xc*7|0)+2>>0]|0;Td=a[ub+(xc*7|0)+3>>0]|0;a[g+(Rd+4)>>0]=a[Qd>>0]|0;a[g+(Rd+5)>>0]=Od;a[g+(Rd+6)>>0]=Sd;a[g+(Rd+7)>>0]=Td;break f;break}case 1:{Td=a[ub+(xc*7|0)+1>>0]|0;Rd=a[ub+(xc*7|0)+2>>0]|0;Sd=a[ub+(xc*7|0)+3>>0]|0;a[la>>0]=a[Qd>>0]|0;a[na>>0]=Td;a[oa>>0]=Rd;a[pa>>0]=Sd;Sd=Z($a+Va|0,n)|0;Rd=g+Sd|0;hb(Rd,A,Qd,p);if(!(Pb&6))break f;Td=c[123158]|0;if(Td&2){a[Rd>>0]=-1;a[g+(Sd+1)>>0]=-1;a[g+(Sd+2)>>0]=0;a[g+(Sd+3)>>0]=0;break f}if(!(Td&4))break f;a[g+(Sd+4)>>0]=0;a[g+(Sd+5)>>0]=0;a[g+(Sd+6)>>0]=85;a[g+(Sd+7)>>0]=85;break f;break}case 2:{Sd=a[ub+(xc*7|0)+1>>0]|0;Td=a[ub+(xc*7|0)+2>>0]|0;Rd=a[ub+(xc*7|0)+3>>0]|0;a[la>>0]=a[Qd>>0]|0;a[na>>0]=Sd;a[oa>>0]=Td;a[pa>>0]=Rd;Rd=Z($a+Va|0,n)|0;Td=g+Rd|0;Sd=a[ub+(xc*7|0)+4>>0]|0;Od=a[ub+(xc*7|0)+5>>0]|0;Ud=a[ub+(xc*7|0)+6>>0]|0;Vd=Sd&255;Wd=Od&255;Xd=(Pd&255)>>>3;a[v>>0]=Xd;a[qa>>0]=(yb&255)>>>3;a[ra>>0]=(Ab&255)>>>3;a[sa>>0]=-1;Yd=Eb>>>5&7;g:do if(Sd<<24>>24==Od<<24>>24){Fb(x,v,Yd);Zd=a[x+(Vd<<2)>>0]|0;a[Td>>0]=Zd;a[g+(Rd+1)>>0]=Zd;Zd=g+(Rd+2)|0;a[Zd>>0]=0;a[Zd+1>>0]=0;a[Zd+2>>0]=0;a[Zd+3>>0]=0;a[Zd+4>>0]=0;a[Zd+5>>0]=0}else{if(Ud<<24>>24==2){Fb(w,v,Yd);Zd=a[w+(Wd<<2)>>0]|0;a[Td>>0]=a[w+(Vd<<2)>>0]|0;a[g+(Rd+1)>>0]=Zd;Zd=0;while(1){_d=Zd<<2;$d=0;do{if(($d|Zd)>>>0>=4){Q=149;break c}ae=($d<<2)+Zd|0;be=ae&7;ce=7-(ae>>>3)|0;ae=($d+_d|0)*3|0;de=ae>>>3;ee=ae&7;fe=Td+2+de|0;ge=d[fe>>0]|0;he=ae>>>0<40;if(he)ie=d[de+1+(Td+2)>>0]<<8|ge;else ie=ge;ge=ie&~(7<<ee)|((a[646325+((d[A+(ce+-2)>>0]|0)>>>be<<1&2|(d[A+ce>>0]|0)>>>be&1)>>0]|0)==Od<<24>>24&1)<<ee;a[fe>>0]=ge;if(he)a[de+1+(Td+2)>>0]=ge>>>8;$d=$d+1|0}while($d>>>0<4);Zd=Zd+1|0;if(Zd>>>0>=4)break g}}h:do switch(Sd<<24>>24){case 0:{if(Od<<24>>24==3){je=0;break h}if(Od<<24>>24==2)je=2;else Q=170;break}case 1:{if(Od<<24>>24==3){je=1;break h}if(Od<<24>>24==2)je=3;else Q=170;break}default:Q=170}while(0);if((Q|0)==170){Q=0;je=4}Zd=je>>>0>3?0:je;Gb=Yd<<5|Xd&255;a[Td>>0]=a[633056+(Gb<<4)+(Zd<<2)>>0]|0;a[g+(Rd+1)>>0]=a[633056+(Gb<<4)+(Zd<<2)+1>>0]|0;$d=633056+(Gb<<4)+(Zd<<2)+2|0;Zd=0;do{Gb=Zd<<2;_d=0;do{if((_d|Zd)>>>0>=4){Q=160;break c}ge=(_d<<2)+Zd|0;de=ge&7;he=7-(ge>>>3)|0;ge=(_d+Gb|0)*3|0;fe=ge>>>3;ee=ge&7;be=Td+2+fe|0;ce=d[be>>0]|0;ae=ge>>>0<40;if(ae)ke=d[fe+1+(Td+2)>>0]<<8|ce;else ke=ce;ce=ke&~(7<<ee)|((e[$d>>1]|0)>>>((d[646325+((d[A+(he+-2)>>0]|0)>>>de<<1&2|(d[A+he>>0]|0)>>>de&1)>>0]|0)*3|0)&7)<<ee;a[be>>0]=ce;if(ae)a[fe+1+(Td+2)>>0]=ce>>>8;_d=_d+1|0}while(_d>>>0<4);Zd=Zd+1|0}while(Zd>>>0<4)}while(0);break f;break}case 3:{Td=a[ub+(xc*7|0)+1>>0]|0;Rd=a[ub+(xc*7|0)+2>>0]|0;Xd=a[ub+(xc*7|0)+3>>0]|0;a[la>>0]=a[Qd>>0]|0;a[na>>0]=Td;a[oa>>0]=Rd;a[pa>>0]=Xd;Xd=$a+Ua|0;Rd=A;Td=c[Rd>>2]|0;Yd=c[Rd+4>>2]|0;Rd=P+(Xd<<3)|0;c[Rd>>2]=Td;c[Rd+4>>2]=Yd;Yd=Td>>>3&31;Rd=Eb>>>5&7;Od=d[ub+(xc*7|0)+5>>0]|0;Sd=Td>>>21&7;Vd=Td>>>13&7;Wd=Td>>>8;Ud=Td>>>16;Td=Yd<<3|Yd>>>2;Yd=c[509152+(Rd<<4)+(d[ub+(xc*7|0)+4>>0]<<2)>>2]|0;Hb=Yd+Td|0;if(Hb>>>0>255)if((Hb|0)<0){le=0;Q=174}else me=255;else{le=Hb;Q=174}if((Q|0)==174){Q=0;me=le}Hb=Wd&248|Vd;Vd=Yd+Hb|0;if(Vd>>>0>255)if((Vd|0)<0){ne=0;Q=177}else oe=255;else{ne=Vd;Q=177}if((Q|0)==177){Q=0;oe=ne}Vd=Ud&248|Sd;Sd=Yd+Vd|0;if(Sd>>>0>255)if((Sd|0)<0){pe=0;Q=180}else qe=255;else{pe=Sd;Q=180}if((Q|0)==180){Q=0;qe=pe}Sd=me&255;Yd=oe&255;Ud=qe&255;Wd=c[509152+(Rd<<4)+(Od<<2)>>2]|0;Od=Wd+Td|0;if(Od>>>0>255)if((Od|0)<0){re=0;Q=183}else se=255;else{re=Od;Q=183}if((Q|0)==183){Q=0;se=re}Od=Wd+Hb|0;if(Od>>>0>255)if((Od|0)<0){te=0;Q=186}else ue=255;else{te=Od;Q=186}if((Q|0)==186){Q=0;ue=te}Od=Wd+Vd|0;if(Od>>>0>255)if((Od|0)<0){ve=0;Q=189}else we=255;else{ve=Od;Q=189}if((Q|0)==189){Q=0;we=ve}if((Sd&255)>(se&255)){Q=191;break c}if((Yd&255)>(ue&255)){Q=193;break c}if((Ud&255)>(we&255)){Q=195;break c}Yd=(((me&255)*31|0)>>>0)/255|0;Sd=(((oe&255)*31|0)>>>0)/255|0;if((Sd|Yd)&32){Q=197;break c}Od=Yd<<10|Sd<<5|(((Ud&255)/17|0)&255)<<1|32768;if(Od>>>0>=65536){Q=199;break c}Ud=((((se&255)*31|0)+254|0)>>>0)/255|0;Sd=((((ue&255)*31|0)+254|0)>>>0)/255|0;Yd=((we&255)*31|0)+254|0;if(!(Yd>>>0<8160&((Sd|Ud)&96|0)==0)){Q=201;break c}Vd=Ud<<10|Sd<<5|((Yd>>>0)/255|0)|32768;if(Vd>>>0>=65536){Q=203;break c}c[O+(Xd<<2)>>2]=Vd<<16|Od&65534;break f;break}case 4:{Od=a[ub+(xc*7|0)+1>>0]|0;Vd=a[ub+(xc*7|0)+2>>0]|0;Xd=a[ub+(xc*7|0)+3>>0]|0;a[la>>0]=a[Qd>>0]|0;a[na>>0]=Od;a[oa>>0]=Vd;a[pa>>0]=Xd;Xd=Z($a+Va|0,n)|0;Vd=g+Xd|0;Od=a[ub+(xc*7|0)+4>>0]|0;Yd=Od&255;Sd=d[ub+(xc*7|0)+5>>0]|0;Ud=c[A>>2]|0;Wd=Ud>>>29;Hb=Ud>>>3&31;Td=Ud>>>11&31;Rd=Ud>>>19&31;if((d[ub+(xc*7|0)+6>>0]|0)<3){Ud=Vd;zb=c[Ud+4>>2]&-2147352577|2147352576;Zd=Vd;c[Zd>>2]=c[Ud>>2]&-128|64;c[Zd+4>>2]=zb;a[v>>0]=Hb;a[ta>>0]=Td;a[ua>>0]=Rd;a[va>>0]=-1;Fb(x,v,Wd);zb=c[x+(Yd<<2)>>2]|0;Zd=((zb>>>8&1)+(zb&1)+(zb>>>16&1)|0)>>>0>1;Ud=c[x+(Sd<<2)>>2]|0;$d=((Ud>>>8&1)+(Ud&1)+(Ud>>>16&1)|0)>>>0>1;_d=zb>>>1&127;Gb=Vd;ce=c[Gb>>2]|0;fe=c[Gb+4>>2]|0;Gb=Rc(_d|0,0,7)|0;ae=B;be=zb>>>9&127;ee=Rc(be|0,0,21)|0;de=B;he=zb>>>17&127;zb=Rc(he|0,0,35)|0;ge=B;xe=Rc(Zd&1|0,0,63)|0;ye=B;ze=Ud>>>1&127;Ae=Rc(ze|0,0,14)|0;Be=B;Ce=Ud>>>9&127;De=Rc(Ce|0,0,28)|0;Ee=B;Fe=Ud>>>17&127;Ud=Rc(Fe|0,0,42)|0;Ge=Gb|ce&127|ee|zb|Ae|De|Ud|xe;xe=ae|fe&2147352576|de|ge|Be|Ee|B|ye;ye=Vd;c[ye>>2]=Ge;c[ye+4>>2]=xe;ye=Rc(ze|0,0,7)|0;ze=B;Ee=Rc(Ce|0,0,21)|0;Ce=B;Be=Rc(Fe|0,0,35)|0;Fe=B;ge=Rc(_d|0,0,14)|0;_d=B;de=Rc(be|0,0,28)|0;be=B;fe=Rc(he|0,0,42)|0;he=de|ge|fe|ye|Ee|Be;Be=be|_d|B|ze|Ce|Fe;Fe=Ge;Ge=xe;xe=$d&1;Ce=0;ze=$d&1;$d=Zd&1;Zd=1;_d=0;be=0;while(1){Ee=Ce;ye=Fe;fe=Ge;ge=ze;de=xe;ae=$d;Ud=Zd;De=_d;Ae=0;while(1){zb=Ae|be;if(zb>>>0>=4){Q=209;break c}ee=(Ae<<2)+be|0;ce=ee&7;Gb=7-(ee>>>3)|0;ee=(a[646325+((d[A+(Gb+-2)>>0]|0)>>>ce<<1&2|(d[A+Gb>>0]|0)>>>ce&1)>>0]|0)==Od<<24>>24?De:De^15;do if(!zb){if(!(ee&8)){He=ye;Ie=fe;Je=ae;Ke=ge;Le=de;Me=Ee;Ne=3;Oe=ee;Pe=De;break}ce=Rc(ge|0,0,63)|0;Gb=he|ye&127|ce;ce=Be|fe&2147352576|B;Qe=Vd;c[Qe>>2]=Gb;c[Qe+4>>2]=ce;He=Gb;Ie=ce;Je=ge;Ke=ae;Le=ae|de&-2;Me=Ee;Ne=3;Oe=0;Pe=15}else{He=ye;Ie=fe;Je=ae;Ke=ge;Le=de;Me=Ee;Ne=4;Oe=ee;Pe=De}while(0);ee=Rc(Oe|0,0,Ud|0)|0;zb=ee|Le;ee=B|Me;ce=Ne+Ud|0;Ae=Ae+1|0;if(Ae>>>0>=4){Re=Je;Se=Ke;Te=ce;Ue=zb;Ve=ee;We=He;Xe=Ie;Ye=Pe;break}else{Ee=ee;ye=He;fe=Ie;ge=Ke;de=zb;ae=Je;Ud=ce;De=Pe}}De=be+1|0;if(De>>>0<4){Fe=We;Ge=Xe;xe=Ue;Ce=Ve;ze=Se;$d=Re;Zd=Te;_d=Ye;be=De}else{Ze=Se;_e=Ue;$e=Ve;break}}be=g+(Xd+8)|0;c[be>>2]=_e;c[be+4>>2]=$e;if((_e&1|0)!=(Ze|0)){Q=216;break c}}else{be=Wd<<5;_d=c[491608+((Hb|be)<<2)>>2]|0;Zd=(c[509088+(Yd<<4)+(Sd<<2)>>2]|0)*48|0;$d=c[491608+((Td|be)<<2)>>2]|0;ze=c[491608+((Rd|be)<<2)>>2]|0;be=(c[$d+(Zd<<2)>>2]|0)+(c[_d+(Zd<<2)>>2]|0)+(c[ze+(Zd<<2)>>2]|0)<<14;Ce=Zd|1;xe=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|1;Ce=Zd|2;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|2;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd|3;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|3;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd|4;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|4;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd|5;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|5;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd|6;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|6;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd|7;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|7;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd|8;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|8;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd|9;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|9;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd|10;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|10;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd|11;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|11;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd|12;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|12;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd|13;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|13;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd|14;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|14;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd|15;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|15;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+16|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|16;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+17|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|17;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd+18|0;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|18;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+19|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|19;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+20|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|20;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd+21|0;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|21;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+22|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|22;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+23|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|23;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd+24|0;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|24;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+25|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|25;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+26|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|26;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd+27|0;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|27;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+28|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|28;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+29|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|29;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd+30|0;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|30;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+31|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|31;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+32|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|32;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd+33|0;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|33;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+34|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|34;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+35|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|35;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd+36|0;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|36;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+37|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|37;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+38|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|38;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd+39|0;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|39;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+40|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|40;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+41|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|41;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd+42|0;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|42;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+43|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|43;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+44|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|44;Ce=Ge>>>0<be>>>0?Ge:be;be=Zd+45|0;Ge=(c[$d+(be<<2)>>2]|0)+(c[_d+(be<<2)>>2]|0)+(c[ze+(be<<2)>>2]|0)<<14|45;be=Ge>>>0<xe>>>0?Ge:xe;xe=Zd+46|0;Ge=(c[$d+(xe<<2)>>2]|0)+(c[_d+(xe<<2)>>2]|0)+(c[ze+(xe<<2)>>2]|0)<<14|46;xe=Ge>>>0<Ce>>>0?Ge:Ce;Ce=Zd+47|0;Ge=(c[$d+(Ce<<2)>>2]|0)+(c[_d+(Ce<<2)>>2]|0)+(c[ze+(Ce<<2)>>2]|0)<<14|47;Ce=Ge>>>0<be>>>0?Ge:be;be=(xe>>>0<Ce>>>0?xe:Ce)&255;Ce=Vd;xe=c[Ce>>2]&-128|64;Ge=c[Ce+4>>2]&-2147352577|2147352576;Ce=Vd;c[Ce>>2]=xe;c[Ce+4>>2]=Ge;Ce=d[pa>>0]|0;Fe=d[na>>0]|0;Be=be+Zd|0;Zd=_d+(Be<<2)|0;_d=(c[Zd>>2]|0)>>>18&127;if(!(a[(d[646325+(Fe<<1&2|Ce&1)>>0]|0)+(643943+(be<<2))>>0]&8)){he=Rc(_d|0,0,7)|0;Od=he|xe&-16320;he=B|Ge;De=Vd;c[De>>2]=Od;c[De+4>>2]=he;De=$d+(Be<<2)|0;Ud=Rc((c[De>>2]|0)>>>18|0,0,21)|0;ae=Ud&266338304|Od&-266338368;Od=Vd;c[Od>>2]=ae;c[Od+4>>2]=he;Od=ze+(Be<<2)|0;Rc((c[Od>>2]|0)>>>18|0,0,35)|0;Ud=he&-1017|B&1016;he=Vd;c[he>>2]=ae;c[he+4>>2]=Ud;he=Rc((c[Zd>>2]|0)>>>25|0,0,14)|0;de=ae&-2080832|he;he=Ud|B;Ud=Vd;c[Ud>>2]=de;c[Ud+4>>2]=he;Ud=Rc((c[De>>2]|0)>>>25|0,0,28)|0;De=de&268435392|Ud;Ud=he&-8|B;he=Vd;c[he>>2]=De;c[he+4>>2]=Ud;he=Rc((c[Od>>2]|0)>>>25|0,0,42)|0;Od=Vd;c[Od>>2]=De&-64|he;c[Od+4>>2]=Ud&2147353599|B;Ud=g+(Xd+8)|0;Od=Ud;he=c[Od+4>>2]|0;De=Ud;c[De>>2]=c[Od>>2]|1;c[De+4>>2]=he;af=Ud;bf=1;cf=0;df=644135}else{Ud=Rc(_d|0,0,14)|0;_d=Ud|xe&-2080832;xe=B|Ge;Ge=Vd;c[Ge>>2]=_d;c[Ge+4>>2]=xe;Ge=$d+(Be<<2)|0;$d=Rc((c[Ge>>2]|0)>>>18|0,0,28)|0;Ud=$d&-268435456|_d&268435392;_d=B&7|xe&-8;xe=Vd;c[xe>>2]=Ud;c[xe+4>>2]=_d;xe=ze+(Be<<2)|0;Rc((c[xe>>2]|0)>>>18|0,0,42)|0;Be=_d&-130049|B&130048;_d=Vd;c[_d>>2]=Ud;c[_d+4>>2]=Be;_d=Rc((c[Zd>>2]|0)>>>25|0,0,7)|0;Zd=Ud&-16320|_d;_d=Be|B;Be=Vd;c[Be>>2]=Zd;c[Be+4>>2]=_d;Be=Rc((c[Ge>>2]|0)>>>25|0,0,21)|0;Ge=Zd&-266338368|Be;Be=_d|B;_d=Vd;c[_d>>2]=Ge;c[_d+4>>2]=Be;_d=Rc((c[xe>>2]|0)>>>25|0,0,35)|0;xe=Vd;c[xe>>2]=_d|Ge&-64;c[xe+4>>2]=B|Be&2147482631|-2147483648;Be=g+(Xd+8)|0;xe=Be;Ge=c[xe+4>>2]|0;_d=Be;c[_d>>2]=c[xe>>2]&-2;c[_d+4>>2]=Ge;af=Be;bf=0;cf=0;df=644327}Be=Fe<<4&240|Ce&15;Ge=Rc(d[(d[645301+Be>>0]|0)+(df+(be<<2))>>0]|0,0,1)|0;_d=B;xe=Rc(d[(d[645557+Be>>0]|0)+(df+(be<<2))>>0]|0,0,16)|0;Zd=B;Ud=d[(d[645813+Be>>0]|0)+(df+(be<<2))>>0]|0;ze=Rc(d[(d[646069+Be>>0]|0)+(df+(be<<2))>>0]|0,0,48)|0;Be=B;$d=Fe&240|Ce>>>4;Ce=Rc(d[(d[645301+$d>>0]|0)+(df+(be<<2))>>0]|0,0,4)|0;Fe=B;he=Rc(d[(d[645557+$d>>0]|0)+(df+(be<<2))>>0]|0,0,20)|0;De=B;Od=Rc(d[(d[645813+$d>>0]|0)+(df+(be<<2))>>0]|0,0,36)|0;de=B;ae=Rc(d[(d[646069+$d>>0]|0)+(df+(be<<2))>>0]|0,0,52)|0;$d=B;ge=d[oa>>0]|0;fe=d[la>>0]|0;ye=fe<<4&240|ge&15;Ee=Rc(d[(d[645301+ye>>0]|0)+(df+(be<<2))>>0]|0,0,8)|0;Ae=B;ce=Rc(d[(d[645557+ye>>0]|0)+(df+(be<<2))>>0]|0,0,24)|0;zb=B;ee=Rc(d[(d[645813+ye>>0]|0)+(df+(be<<2))>>0]|0,0,40)|0;Gb=B;Qe=Rc(d[(d[646069+ye>>0]|0)+(df+(be<<2))>>0]|0,0,56)|0;ye=B;ef=fe&240|ge>>>4;ge=Rc(d[(d[645301+ef>>0]|0)+(df+(be<<2))>>0]|0,0,12)|0;fe=B;ff=Rc(d[(d[645557+ef>>0]|0)+(df+(be<<2))>>0]|0,0,28)|0;gf=B;hf=Rc(d[(d[645813+ef>>0]|0)+(df+(be<<2))>>0]|0,0,44)|0;jf=B;kf=Rc(d[(d[646069+ef>>0]|0)+(df+(be<<2))>>0]|0,0,60)|0;be=af;c[be>>2]=Ge|bf|xe|ze|Ce|he|Od|ae|Ee|ce|ee|Qe|ge|ff|hf|kf;c[be+4>>2]=_d|cf|Zd|Ud|Be|Fe|De|de|$d|Ae|zb|Gb|ye|fe|gf|jf|B}break f;break}case 5:{jf=a[ub+(xc*7|0)+1>>0]|0;gf=a[ub+(xc*7|0)+2>>0]|0;fe=a[ub+(xc*7|0)+3>>0]|0;a[la>>0]=a[Qd>>0]|0;a[na>>0]=jf;a[oa>>0]=gf;a[pa>>0]=fe;fe=Z($a+Va|0,n)|0;gf=g+fe|0;jf=a[ub+(xc*7|0)+4>>0]|0;ye=a[ub+(xc*7|0)+5>>0]|0;Gb=(Pd&255)>>>3;a[v>>0]=Gb;a[wa>>0]=(yb&255)>>>3;a[xa>>0]=(Ab&255)>>>3;a[ya>>0]=-1;zb=Eb>>>5&7;if(jf<<24>>24==ye<<24>>24){Fb(x,v,zb);b[gf>>1]=d[x+((jf&255)<<2)>>0]|7424;Ae=g+(fe+2)|0;a[Ae>>0]=a[641760]|0;a[Ae+1>>0]=a[641761]|0;a[Ae+2>>0]=a[641762]|0;a[Ae+3>>0]=a[641763]|0;a[Ae+4>>0]=a[641764]|0;a[Ae+5>>0]=a[641765]|0}else{i:do switch(jf<<24>>24){case 0:{if(ye<<24>>24==3){lf=0;break i}if(ye<<24>>24==2)lf=2;else Q=232;break}case 1:{if(ye<<24>>24==3){lf=1;break i}if(ye<<24>>24==2)lf=3;else Q=232;break}default:Q=232}while(0);if((Q|0)==232){Q=0;lf=4}ye=lf>>>0>3?0:lf;jf=zb<<5|Gb&255;Eb=a[637152+(jf<<4)+(ye<<2)+1>>0]|0;b[gf>>1]=(Eb&255)<<12&65535|d[637152+(jf<<4)+(ye<<2)>>0]|((Eb&255)>>>4&255)<<8&65535;Eb=e[637152+(jf<<4)+(ye<<2)+2>>1]|0;ye=0;jf=0;Ab=0;while(1){yb=7-(Ab>>>3)|0;Pd=Ab+4|0;Qd=7-(Pd>>>3)|0;Xd=Ab+8|0;Vd=Xd&7;Rd=7-(Xd>>>3)|0;Td=Rc(Eb>>>((d[646325+((d[A+(Rd+-2)>>0]|0)>>>Vd<<1&2|(d[A+Rd>>0]|0)>>>Vd&1)>>0]|0)*3|0)&7|0,0,(Z(Xd,-3)|0)+45|0)|0;Xd=B;Vd=Rc(Eb>>>((d[646325+((d[A+(Qd+-2)>>0]|0)>>>Pd<<1&2|(d[A+Qd>>0]|0)>>>Pd&1)>>0]|0)*3|0)&7|0,0,(Z(Pd,-3)|0)+45|0)|0;Pd=B;Qd=Rc(Eb>>>((d[646325+((d[A+(yb+-2)>>0]|0)>>>Ab<<1&2|(d[A+yb>>0]|0)>>>Ab&1)>>0]|0)*3|0)&7|0,0,(Z(Ab,-3)|0)+45|0)|0;yb=B;Rd=Ab+12|0;Sd=Rd&7;Yd=7-(Rd>>>3)|0;Hb=Rc(Eb>>>((d[646325+((d[A+(Yd+-2)>>0]|0)>>>Sd<<1&2|(d[A+Yd>>0]|0)>>>Sd&1)>>0]|0)*3|0)&7|0,0,(Z(Rd,-3)|0)+45|0)|0;Rd=Td|ye|Vd|Qd|Hb;Hb=Xd|jf|Pd|yb|B;Ab=Ab+1|0;if(Ab>>>0>=4){mf=Rd;nf=Hb;break}else{ye=Rd;jf=Hb}}jf=Qc(mf|0,nf|0,40)|0;a[g+(fe+2)>>0]=jf;a[g+(fe+3)>>0]=nf;jf=Qc(mf|0,nf|0,24)|0;a[g+(fe+4)>>0]=jf;jf=Qc(mf|0,nf|0,16)|0;a[g+(fe+5)>>0]=jf;jf=Qc(mf|0,nf|0,8)|0;a[g+(fe+6)>>0]=jf;a[g+(fe+7)>>0]=mf}break f;break}default:{Q=234;break c}}}while(0);$a=$a+1|0;if($a>>>0>=h>>>0){Ja=sc;Ka=tc;La=uc;Ma=Bb;Na=vc;Oa=kb;Pa=wc;Qa=lb;break d}else{Ya=uc;Za=tc;_a=sc;ab=Bb;bb=vc;cb=kb;db=wc;eb=lb}}}while(0);Ca=Ca+1|0;if(Ca>>>0>=j>>>0){of=Oa;Q=237;break}else{za=La;Aa=Ka;Ba=Ja;Da=Ma;Ea=Na;Fa=Oa;Ga=Pa;Ha=Qa}}switch(Q|0){case 26:{ma(644993,644895,395,645016);break}case 31:{ma(644972,644895,405,645016);break}case 42:{ma(644972,644895,282,644962);break}case 45:{ma(644726,644895,385,645233);break}case 51:{if(!P){N=0;break a}Hc(P);N=0;break a;break}case 54:{if(!P){N=0;break a}Hc(P);N=0;break a;break}case 60:{if(!P){N=0;break a}Hc(P);N=0;break a;break}case 64:{ma(644993,644895,395,645016);break}case 69:{ma(644972,644895,405,645016);break}case 80:{ma(644993,644895,395,645016);break}case 85:{ma(644972,644895,405,645016);break}case 92:{ma(644993,644895,395,645016);break}case 97:{ma(644972,644895,405,645016);break}case 107:{ma(644972,644895,282,644962);break}case 110:{if(!P){N=0;break a}Hc(P);N=0;break a;break}case 115:{ma(644571,644519,3949,644555);break}case 117:{if(!P){N=0;break a}Hc(P);N=0;break a;break}case 126:{if(!P){N=0;break a}Hc(P);N=0;break a;break}case 133:{ma(645260,644519,281,645244);break}case 135:{ma(645260,644519,281,645244);break}case 149:{ma(645204,644519,314,645216);break}case 160:{ma(645204,644519,314,645216);break}case 191:{ma(644603,644519,4064,644555);break}case 193:{ma(644644,644519,4065,644555);break}case 195:{ma(644685,644519,4066,644555);break}case 197:{ma(646342,644519,2720,646329);break}case 199:{ma(646387,644519,2745,646329);break}case 201:{ma(646342,644519,2720,646329);break}case 203:{ma(646387,644519,2745,646329);break}case 209:{ma(645204,644519,314,645216);break}case 216:{ma(646404,644519,3178,646432);break}case 234:{ma(644726,644519,4107,644555);break}case 237:{if(!of)break b;else{N=0;break a}break}case 309:{ma(644726,644895,385,645233);break}}}while(0);if(L){Ha=h+-1|0;Ga=j+-1|0;if(!Ha)pf=0;else{Fa=Ha;Ea=0;while(1){Fa=Fa>>>1;Da=Ea+1|0;if(!Fa){pf=Da;break}else Ea=Da}}if(!Ga)qf=0;else{Ea=Ga;Fa=0;while(1){Ea=Ea>>>1;Da=Fa+1|0;if(!Ea){qf=Da;break}else Fa=Da}}Fa=pf>>>0<qf>>>0?pf:qf;Ea=Fa<<1;Da=(1<<Ea)+-1|0;j:do if((j|0)>0){Ba=(h|0)>0;Aa=(h|0)==(j|0);za=y+4|0;Ca=y+8|0;ya=y+12|0;xa=v+32|0;wa=w+32|0;pa=x+4|0;oa=v+36|0;na=w+36|0;la=x+8|0;va=v+40|0;ua=w+40|0;ta=v+16|0;sa=v+4|0;ra=v+20|0;qa=w+16|0;ka=w+4|0;ja=w+20|0;ia=v+8|0;Y=v+24|0;ga=w+8|0;fa=w+24|0;ea=h>>>0>j>>>0;da=Ha&1;ha=(Ha|0)<0?Ha:0;ca=((Ha|0)<1?Ha:1)&Ha;ba=0;aa=0;k:while(1){$=0;do{_=$+aa|0;X=_+-1|0;if(o){W=Z(X&Ga,h)|0;R=O+(W<<2)|0;c[x+($<<2)>>2]=R;U=c[O+(W+Ha<<2)>>2]|0;if(!(U&32768)){Q=250;break k}S=U&30;c[v+($<<2)>>2]=((((U>>>10&31)+(U>>>5&31)+(S>>>4|S)|0)*255|0)>>>0)/31|0;S=U>>>16;if(!(S&32768)){Q=252;break k}c[w+($<<2)>>2]=((((U>>>26&31)+(U>>>21&31)+(S&31)|0)*255|0)>>>0)/31|0;S=c[R>>2]|0;if(!(S&32768)){Q=250;break k}R=S&30;c[v+16+($<<2)>>2]=((((S>>>10&31)+(S>>>5&31)+(R>>>4|R)|0)*255|0)>>>0)/31|0;R=S>>>16;if(!(R&32768)){Q=252;break k}c[w+16+($<<2)>>2]=((((S>>>26&31)+(S>>>21&31)+(R&31)|0)*255|0)>>>0)/31|0;R=c[O+(W+da<<2)>>2]|0;if(!(R&32768)){Q=250;break k}W=R&30;c[v+32+($<<2)>>2]=((((R>>>10&31)+(R>>>5&31)+(W>>>4|W)|0)*255|0)>>>0)/31|0;W=R>>>16;if(!(W&32768)){Q=252;break k}c[w+32+($<<2)>>2]=((((R>>>26&31)+(R>>>21&31)+(W&31)|0)*255|0)>>>0)/31|0}else{W=Z(((_|0)<1?0:(X|0)>(Ga|0)?Ga:X)&Ga,h)|0;X=O+(W<<2)|0;c[x+($<<2)>>2]=X;_=c[X>>2]|0;if(!(_&32768)){Q=250;break k}X=_&30;c[v+($<<2)>>2]=((((_>>>10&31)+(_>>>5&31)+(X>>>4|X)|0)*255|0)>>>0)/31|0;X=_>>>16;if(!(X&32768)){Q=252;break k}c[w+($<<2)>>2]=((((_>>>26&31)+(_>>>21&31)+(X&31)|0)*255|0)>>>0)/31|0;X=c[O+(W+ha<<2)>>2]|0;if(!(X&32768)){Q=250;break k}_=X&30;c[v+16+($<<2)>>2]=((((X>>>10&31)+(X>>>5&31)+(_>>>4|_)|0)*255|0)>>>0)/31|0;_=X>>>16;if(!(_&32768)){Q=252;break k}c[w+16+($<<2)>>2]=((((X>>>26&31)+(X>>>21&31)+(_&31)|0)*255|0)>>>0)/31|0;_=c[O+(W+ca<<2)>>2]|0;if(!(_&32768)){Q=250;break k}W=_&30;c[v+32+($<<2)>>2]=((((_>>>10&31)+(_>>>5&31)+(W>>>4|W)|0)*255|0)>>>0)/31|0;W=_>>>16;if(!(W&32768)){Q=252;break k}c[w+32+($<<2)>>2]=((((_>>>26&31)+(_>>>21&31)+(W&31)|0)*255|0)>>>0)/31|0}$=$+1|0}while(($|0)<3);if(Ba){$=e[641248+(aa>>8<<1)>>1]<<16|e[641248+((aa&255)<<1)>>1];W=c[x>>2]|0;_=c[pa>>2]|0;X=c[la>>2]|0;R=aa>>Fa<<Ea;S=ba;U=0;while(1){T=$|e[641248+(U>>8<<1)>>1]<<17|e[641248+((U&255)<<1)>>1]<<1;do if(!Aa){V=T&Da;if(ea){rf=V|U>>Fa<<Ea;break}else{rf=V|R;break}}else rf=T;while(0);c[g+(rf<<3)+4>>2]=c[O+(S<<2)>>2];T=P+(S<<3)|0;V=c[T>>2]|0;M=V>>>29;Ia=(d[646456+(V>>>11&31)>>0]|0)+(d[646456+(V>>>3&31)>>0]|0)+(d[646456+(V>>>19&31)>>0]|0)<<4;c[y>>2]=Ia+(c[509280+(M<<4)+8>>2]|0);c[za>>2]=Ia+(c[509280+(M<<4)+12>>2]|0);c[Ca>>2]=Ia+(c[509280+(M<<4)+4>>2]|0);c[ya>>2]=(c[509280+(M<<4)>>2]|0)+Ia;U=U+1|0;Ia=(o?U:(U|0)>(Ha|0)?Ha:U)&Ha;M=c[W+(Ia<<2)>>2]|0;if(!(M&32768)){Q=261;break k}V=M&30;c[xa>>2]=((((M>>>10&31)+(M>>>5&31)+(V>>>4|V)|0)*255|0)>>>0)/31|0;V=M>>>16;if(!(V&32768)){Q=263;break k}c[wa>>2]=((((M>>>26&31)+(M>>>21&31)+(V&31)|0)*255|0)>>>0)/31|0;V=c[_+(Ia<<2)>>2]|0;if(!(V&32768)){Q=265;break k}M=V&30;c[oa>>2]=((((V>>>10&31)+(V>>>5&31)+(M>>>4|M)|0)*255|0)>>>0)/31|0;M=V>>>16;if(!(M&32768)){Q=267;break k}c[na>>2]=((((V>>>26&31)+(V>>>21&31)+(M&31)|0)*255|0)>>>0)/31|0;M=c[X+(Ia<<2)>>2]|0;if(!(M&32768)){Q=269;break k}Ia=M&30;c[va>>2]=((((M>>>10&31)+(M>>>5&31)+(Ia>>>4|Ia)|0)*255|0)>>>0)/31|0;Ia=M>>>16;if(!(Ia&32768)){Q=271;break k}V=((((M>>>26&31)+(M>>>21&31)+(Ia&31)|0)*255|0)>>>0)/31|0;c[ua>>2]=V;Ia=d[T+7>>0]|0;M=d[T+5>>0]|0;eb=M<<4&240|Ia&15;db=M&240|Ia>>>4;Ia=d[T+6>>0]|0;M=d[T+4>>0]|0;T=M<<4&240|Ia&15;cb=M&240|Ia>>>4;Ia=c[v>>2]|0;M=c[ta>>2]|0;bb=c[sa>>2]|0;ab=c[ra>>2]|0;_a=c[w>>2]|0;Za=c[qa>>2]|0;Ya=c[ka>>2]|0;$a=c[ja>>2]|0;Va=M+Ia+bb+ab<<2;Ua=Za+_a+Ya+$a<<2;Ta=Ua-Va|0;Sa=(c[y+(d[645301+eb>>0]<<2)>>2]|0)-Va<<4;Xa=(Ua|0)<(Va|0);Va=Xa?0-Sa|0:Sa;Sa=Xa?0-Ta|0:Ta;Ta=Ia<<1;Xa=M*6|0;Ua=ab*6|0;Wa=Xa+Ta+(bb<<1)+Ua|0;Ra=_a<<1;ub=Za*6|0;Pb=$a*6|0;Cb=ub+Ra+(Ya<<1)+Pb|0;Db=Cb-Wa|0;jf=(c[y+(d[645301+db>>0]<<2)>>2]|0)-Wa<<4;ye=(Cb|0)<(Wa|0);Wa=ye?0-jf|0:jf;jf=ye?0-Db|0:Db;Db=(M<<1)+Ta+(bb*6|0)+Ua|0;Ta=(Za<<1)+Ra+(Ya*6|0)+Pb|0;Ra=Ta-Db|0;ye=(c[y+(d[645557+eb>>0]<<2)>>2]|0)-Db<<4;Cb=(Ta|0)<(Db|0);Db=Cb?0-ye|0:ye;ye=Cb?0-Ra|0:Ra;Ra=M*3|0;Cb=bb*3|0;Ta=ab*9|0;Ab=Ra+Ia+Cb+Ta|0;Ia=Za*3|0;Eb=Ya*3|0;gf=$a*9|0;Gb=Ia+_a+Eb+gf|0;_a=Gb-Ab|0;zb=(c[y+(d[645557+db>>0]<<2)>>2]|0)-Ab<<4;Hb=(Gb|0)<(Ab|0);Ab=Hb?0-zb|0:zb;zb=Hb?0-_a|0:_a;_a=c[xa>>2]|0;Hb=c[oa>>2]|0;Gb=c[wa>>2]|0;Rd=c[na>>2]|0;yb=ab+M<<3;Pd=$a+Za<<3;Xd=Pd-yb|0;Qd=(c[y+(d[645301+T>>0]<<2)>>2]|0)-yb<<4;Vd=(Pd|0)<(yb|0);yb=Vd?0-Qd|0:Qd;Qd=Vd?0-Xd|0:Xd;Xd=Ua+Xa+(_a<<1)+(Hb<<1)|0;Xa=Pb+ub+(Gb<<1)+(Rd<<1)|0;ub=Xa-Xd|0;Pb=(c[y+(d[645301+cb>>0]<<2)>>2]|0)-Xd<<4;Ua=(Xa|0)<(Xd|0);Xd=Ua?0-Pb|0:Pb;Pb=Ua?0-ub|0:ub;ub=ab*12|0;Ua=ub+(M<<2)|0;M=$a*12|0;Xa=M+(Za<<2)|0;Za=Xa-Ua|0;Vd=(c[y+(d[645557+T>>0]<<2)>>2]|0)-Ua<<4;Pd=(Xa|0)<(Ua|0);Ua=Pd?0-Vd|0:Vd;Vd=Pd?0-Za|0:Za;Za=Hb*3|0;Pd=Ta+Ra+_a+Za|0;_a=Rd*3|0;Ra=gf+Ia+Gb+_a|0;Gb=Ra-Pd|0;Ia=(c[y+(d[645557+cb>>0]<<2)>>2]|0)-Pd<<4;Xa=(Ra|0)<(Pd|0);Pd=Xa?0-Ia|0:Ia;Ia=Xa?0-Gb|0:Gb;Gb=c[ia>>2]|0;Xa=c[Y>>2]|0;Ra=c[ga>>2]|0;Td=c[fa>>2]|0;Sd=ab+bb|0;Yd=Sd<<3;Wd=$a+Ya|0;Ae=Wd<<3;$d=Ae-Yd|0;de=(c[y+(d[645813+eb>>0]<<2)>>2]|0)-Yd<<4;De=(Ae|0)<(Yd|0);Yd=De?0-de|0:de;de=De?0-$d|0:$d;$d=ub+(bb<<2)|0;bb=M+(Ya<<2)|0;Ya=bb-$d|0;De=(c[y+(d[645813+db>>0]<<2)>>2]|0)-$d<<4;Ae=(bb|0)<($d|0);$d=Ae?0-De|0:De;De=Ae?0-Ya|0:Ya;Ya=(Gb<<1)+(Sd*6|0)+(Xa<<1)|0;Sd=(Ra<<1)+(Wd*6|0)+(Td<<1)|0;Wd=Sd-Ya|0;Ae=(c[y+(d[646069+eb>>0]<<2)>>2]|0)-Ya<<4;eb=(Sd|0)<(Ya|0);Ya=eb?0-Ae|0:Ae;Ae=eb?0-Wd|0:Wd;Wd=Xa*3|0;eb=Ta+Cb+Gb+Wd|0;Gb=Td*3|0;Cb=gf+Eb+Ra+Gb|0;Ra=Cb-eb|0;Eb=(c[y+(d[646069+db>>0]<<2)>>2]|0)-eb<<4;db=(Cb|0)<(eb|0);eb=db?0-Ra|0:Ra;Ra=db?0-Eb|0:Eb;Eb=ab<<4;ab=$a<<4;$a=ab-Eb|0;db=(c[y+(d[645813+T>>0]<<2)>>2]|0)-Eb<<4;Cb=(ab|0)<(Eb|0);Eb=Cb?0-$a|0:$a;$a=Cb?0-db|0:db;db=(Hb<<2)+ub|0;Hb=(Rd<<2)+M|0;Rd=Hb-db|0;Cb=(c[y+(d[645813+cb>>0]<<2)>>2]|0)-db<<4;ab=(Hb|0)<(db|0);db=ab?0-Rd|0:Rd;Rd=ab?0-Cb|0:Cb;Cb=(Xa<<2)+ub|0;ub=(Td<<2)+M|0;M=ub-Cb|0;Td=(c[y+(d[646069+T>>0]<<2)>>2]|0)-Cb<<4;T=(ub|0)<(Cb|0);Cb=T?0-M|0:M;M=T?0-Td|0:Td;Td=Za+Ta+Wd+(c[va>>2]|0)|0;Wd=gf+V+_a+Gb|0;Gb=Wd-Td|0;_a=(c[y+(d[646069+cb>>0]<<2)>>2]|0)-Td<<4;cb=(Wd|0)<(Td|0);Td=cb?0-Gb|0:Gb;Gb=cb?0-_a|0:_a;c[g+(rf<<3)>>2]=((Wa|0)>(jf*13|0)?12:(Wa|0)>(jf<<3|0)?8:(Wa|0)>(jf*3|0)?4:0)|((Va|0)>(Sa*13|0)?3:(Va|0)>(Sa<<3|0)?2:(Va|0)>(Sa*3|0)&1)|((Db|0)>(ye*13|0)?768:(Db|0)>(ye<<3|0)?512:(Db|0)>(ye*3|0)?256:0)|((Ab|0)>(zb*13|0)?3072:(Ab|0)>(zb<<3|0)?2048:(Ab|0)>(zb*3|0)?1024:0)|((yb|0)>(Qd*13|0)?48:(yb|0)>(Qd<<3|0)?32:(yb|0)>(Qd*3|0)?16:0)|((Xd|0)>(Pb*13|0)?192:(Xd|0)>(Pb<<3|0)?128:(Xd|0)>(Pb*3|0)?64:0)|((Ua|0)>(Vd*13|0)?12288:(Ua|0)>(Vd<<3|0)?8192:(Ua|0)>(Vd*3|0)?4096:0)|((Pd|0)>(Ia*13|0)?49152:(Pd|0)>(Ia<<3|0)?32768:(Pd|0)>(Ia*3|0)?16384:0)|((Yd|0)>(de*13|0)?196608:(Yd|0)>(de<<3|0)?131072:(Yd|0)>(de*3|0)?65536:0)|(($d|0)>(De*13|0)?786432:($d|0)>(De<<3|0)?524288:($d|0)>(De*3|0)?262144:0)|((Ya|0)>(Ae*13|0)?50331648:(Ya|0)>(Ae<<3|0)?33554432:(Ya|0)>(Ae*3|0)?16777216:0)|((Ra|0)>(eb*13|0)?201326592:(Ra|0)>(eb<<3|0)?134217728:(Ra|0)>(eb*3|0)?67108864:0)|(($a|0)>(Eb*13|0)?3145728:($a|0)>(Eb<<3|0)?2097152:($a|0)>(Eb*3|0)?1048576:0)|((Rd|0)>(db*13|0)?12582912:(Rd|0)>(db<<3|0)?8388608:(Rd|0)>(db*3|0)?4194304:0)|((M|0)>(Cb*13|0)?805306368:(M|0)>(Cb<<3|0)?536870912:(M|0)>(Cb*3|0)?268435456:0)|((Gb|0)>(Td*13|0)?-1073741824:(Gb|0)>(Td<<3|0)?-2147483648:(Gb|0)>(Td*3|0)?1073741824:0);c[v>>2]=c[ta>>2];c[ta>>2]=c[xa>>2];c[sa>>2]=c[ra>>2];c[ra>>2]=c[oa>>2];c[ia>>2]=c[Y>>2];c[Y>>2]=c[va>>2];c[w>>2]=c[qa>>2];c[qa>>2]=c[wa>>2];c[ka>>2]=c[ja>>2];c[ja>>2]=c[na>>2];c[ga>>2]=c[fa>>2];c[fa>>2]=c[ua>>2];Td=S+1|0;if((U|0)>=(h|0)){sf=Td;break}else S=Td}}else sf=ba;aa=aa+1|0;if((aa|0)>=(j|0))break j;else ba=sf}if((Q|0)==250)ma(646488,644519,2836,646504);else if((Q|0)==252)ma(646488,644519,2852,646527);else if((Q|0)==261)ma(646488,644519,2836,646504);else if((Q|0)==263)ma(646488,644519,2852,646527);else if((Q|0)==265)ma(646488,644519,2836,646504);else if((Q|0)==267)ma(646488,644519,2852,646527);else if((Q|0)==269)ma(646488,644519,2836,646504);else if((Q|0)==271)ma(646488,644519,2852,646527)}while(0)}if(!P)N=1;else{Hc(P);N=1}}while(0);P=c[z>>2]|0;if(!P){E=N;i=u;return E|0}z=c[F>>2]|0;if((z|0)!=(P|0))c[F>>2]=z+(~((z+-4-P|0)>>>2)<<2);$b(P);E=N;i=u;return E|0}function hb(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|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;j=i;i=i+48|0;k=j+32|0;l=j+16|0;m=j;n=a[g+4>>0]|0;o=n&255;p=a[g+5>>0]|0;q=p&255;r=c[f>>2]|0;s=r>>>3&31;t=r>>>11&31;u=r>>>19&31;a[k>>0]=s;a[k+1>>0]=t;a[k+2>>0]=u;a[k+3>>0]=-1;r=(d[f+3>>0]|0)>>>5;if(n<<24>>24==p<<24>>24){Fb(l,k,r);v=c[l+(o<<2)>>2]|0;l=v&255;w=v>>>8&255;x=v>>>16&255;v=d[642791+(w<<1)>>0]<<5|d[641767+(l<<1)>>0]<<11|d[641767+(x<<1)>>0];y=d[642791+(w<<1)+1>>0]<<5|d[641767+(l<<1)+1>>0]<<11|d[641767+(x<<1)+1>>0];if((y|0)==(v|0)&(h^1))if(!v){z=1;A=0;B=0;C=0;D=85}else{E=v+-1|0;F=0;G=5}else{E=y;F=170;G=5}if((G|0)==5){y=v>>>0<E>>>0;x=y?E:v;l=y?v:E;z=x&255;A=l&255;B=(x&65535)>>>8&255;C=(l&65535)>>>8&255;D=(y?F|85:F)&255}a[b>>0]=z;a[b+1>>0]=B;a[b+2>>0]=A;a[b+3>>0]=C;Pc(b+4|0,D|0,4)|0;i=j;return}if((r|0)==7?(a[g+6>>0]|0)==2&n<<24>>24==0&p<<24>>24==3:0){Fb(m,k,7);k=c[m>>2]|0;p=c[m+12>>2]|0;m=d[643303+((k>>>8&255)<<1)>>0]<<5|d[642279+((k&255)<<1)>>0]<<11|d[642279+((k>>>16&255)<<1)>>0];k=d[643303+((p>>>8&255)<<1)>>0]<<5|d[642279+((p&255)<<1)>>0]<<11|d[642279+((p>>>16&255)<<1)>>0];if((k|0)==(m|0))if(!m){H=1;I=0;J=0;K=0;L=1;M=1}else{N=m+-1|0;O=0;G=12}else{N=k;O=1;G=12}if((G|0)==12){k=m>>>0<N>>>0;p=k?N:m;n=k?m:N;H=p&255;I=n&255;J=(p&65535)>>>8&255;K=(n&65535)>>>8&255;L=k?0:O;M=k&1}a[b>>0]=H;a[b+1>>0]=J;a[b+2>>0]=I;a[b+3>>0]=K;K=0;while(1){I=b+4+K|0;J=7-(K>>>3)|0;H=((d[f+(J+-2)>>0]|0)>>>K<<1&2|(d[f+J>>0]|0)>>>K&1|0)==1?L:M;if((H|K)>>>0>=4){G=16;break}J=d[I>>0]&252|H;a[I>>0]=J;H=K+4|0;k=7-(H>>>3)|0;O=((d[f+(k+-2)>>0]|0)>>>H<<1&2|(d[f+k>>0]|0)>>>H&1|0)==1?L:M;if((O|K)>>>0>=4){G=16;break}H=J&243|O<<2;a[I>>0]=H;O=K+8|0;J=O&7;k=7-(O>>>3)|0;O=((d[f+(k+-2)>>0]|0)>>>J<<1&2|(d[f+k>>0]|0)>>>J&1|0)==1?L:M;if((O|K)>>>0>=4){G=16;break}J=H&207|O<<4;a[I>>0]=J;if((K|3|0)!=3){G=14;break}O=K+12|0;H=O&7;k=7-(O>>>3)|0;O=((d[f+(k+-2)>>0]|0)>>>H<<1&2|(d[f+k>>0]|0)>>>H&1|0)==1?L:M;if((O|K)>>>0>=4){G=16;break}a[I>>0]=J&63|O<<6;K=K+1|0;if(K>>>0>=4){G=22;break}}if((G|0)==14)ma(645204,644519,314,645216);else if((G|0)==16)ma(645266,644519,681,645187);else if((G|0)==22){i=j;return}}G=r<<5;r=(c[509024+(o<<4)+(q<<2)>>2]|0)*10|0;q=((s|G)*60|0)+r|0;s=((t|G)*60|0)+r|0;t=((u|G)*60|0)+r|0;r=(e[571616+(s<<2)+2>>1]|0)+(e[510176+(q<<2)+2>>1]|0)+(e[510176+(t<<2)+2>>1]|0)|0;G=(e[571616+((s|1)<<2)+2>>1]|0)+(e[510176+((q|1)<<2)+2>>1]|0)+(e[510176+((t|1)<<2)+2>>1]|0)|0;u=G>>>0<r>>>0;o=u?G:r;r=(e[571616+(s+2<<2)+2>>1]|0)+(e[510176+(q+2<<2)+2>>1]|0)+(e[510176+(t+2<<2)+2>>1]|0)|0;G=r>>>0<o>>>0;K=G?r:o;o=(e[571616+(s+3<<2)+2>>1]|0)+(e[510176+(q+3<<2)+2>>1]|0)+(e[510176+(t+3<<2)+2>>1]|0)|0;r=o>>>0<K>>>0;M=r?o:K;K=(e[571616+(s+4<<2)+2>>1]|0)+(e[510176+(q+4<<2)+2>>1]|0)+(e[510176+(t+4<<2)+2>>1]|0)|0;o=K>>>0<M>>>0;L=o?K:M;M=(e[571616+(s+5<<2)+2>>1]|0)+(e[510176+(q+5<<2)+2>>1]|0)+(e[510176+(t+5<<2)+2>>1]|0)|0;K=M>>>0<L>>>0;O=K?M:L;L=(e[571616+(s+6<<2)+2>>1]|0)+(e[510176+(q+6<<2)+2>>1]|0)+(e[510176+(t+6<<2)+2>>1]|0)|0;M=L>>>0<O>>>0;J=M?L:O;O=(e[571616+(s+7<<2)+2>>1]|0)+(e[510176+(q+7<<2)+2>>1]|0)+(e[510176+(t+7<<2)+2>>1]|0)|0;L=O>>>0<J>>>0;I=L?O:J;J=(e[571616+(s+8<<2)+2>>1]|0)+(e[510176+(q+8<<2)+2>>1]|0)+(e[510176+(t+8<<2)+2>>1]|0)|0;O=J>>>0<I>>>0;H=((e[571616+(s+9<<2)+2>>1]|0)+(e[510176+(q+9<<2)+2>>1]|0)+(e[510176+(t+9<<2)+2>>1]|0)|0)>>>0<(O?J:I)>>>0?9:O?8:L?7:M?6:K?5:o?4:r?3:G?2:u&1;u=H+q|0;q=H+s|0;s=H+t|0;t=d[510176+(u<<2)>>0]<<11&63488|d[510176+(s<<2)>>0]|d[571616+(q<<2)>>0]<<5;G=d[510176+(u<<2)+1>>0]<<11&63488|d[510176+(s<<2)+1>>0]|d[571616+(q<<2)+1>>0]<<5;q=t>>>0<G>>>0;s=q?G:t;u=q?t:G;G=q?643903:643863;a[b>>0]=s;q=b+1|0;a[q>>0]=(s&65535)>>>8;t=b+2|0;a[t>>0]=u;r=b+3|0;a[r>>0]=(u&65535)>>>8;if((s|0)!=(u|0)){u=d[f+7>>0]|0;o=d[f+5>>0]|0;K=o<<4&240|u&15;M=o&240|u>>>4;u=d[f+6>>0]|0;o=d[f+4>>0]|0;f=o<<4&240|u&15;L=o&240|u>>>4;u=d[(d[645557+M>>0]|0)+(G+(H<<2))>>0]<<2|d[(d[645557+K>>0]|0)+(G+(H<<2))>>0]|d[(d[645557+f>>0]|0)+(G+(H<<2))>>0]<<4|d[(d[645557+L>>0]|0)+(G+(H<<2))>>0]<<6;o=d[(d[645813+M>>0]|0)+(G+(H<<2))>>0]<<2|d[(d[645813+K>>0]|0)+(G+(H<<2))>>0]|d[(d[645813+f>>0]|0)+(G+(H<<2))>>0]<<4|d[(d[645813+L>>0]|0)+(G+(H<<2))>>0]<<6;O=d[(d[646069+M>>0]|0)+(G+(H<<2))>>0]<<2|d[(d[646069+K>>0]|0)+(G+(H<<2))>>0]|d[(d[646069+f>>0]|0)+(G+(H<<2))>>0]<<4|d[(d[646069+L>>0]|0)+(G+(H<<2))>>0]<<6;a[b+4>>0]=d[(d[645301+M>>0]|0)+(G+(H<<2))>>0]<<2|d[(d[645301+K>>0]|0)+(G+(H<<2))>>0]|d[(d[645301+f>>0]|0)+(G+(H<<2))>>0]<<4|d[(d[645301+L>>0]|0)+(G+(H<<2))>>0]<<6;a[b+5>>0]=u;a[b+6>>0]=o;a[b+7>>0]=O;i=j;return}if(h)P=0;else{h=(s|0)==0;O=h?0:s+-1|0;o=h?1:s;a[b>>0]=o;a[q>>0]=(o&65535)>>>8;a[t>>0]=O;a[r>>0]=(O&65535)>>>8;P=h?85:0}Pc(b+4|0,P|0,4)|0;i=j;return}function ib(a,b){a=a|0;b=b|0;$a(a,b);return}function jb(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0;if(e>>>0<78)return 0;if(((d[c+1>>0]|0)<<8|(d[c>>0]|0)|0)!=17011)return 0;if(((d[c+3>>0]|0)<<8|(d[c+2>>0]|0)|0)!=19)return 0;if(((d[c+5>>0]|0)<<8|(d[c+4>>0]|0)|0)!=77)return 0;if((((d[c+10>>0]|0)<<16|(d[c+11>>0]|0)<<24|(d[c+9>>0]|0)<<8|(d[c+8>>0]|0))+77|0)>>>0>e>>>0)return 0;b=(d[c+18>>0]|0)<<8|(d[c+19>>0]|0)<<16|(d[c+17>>0]|0);if(!b)return 0;f=d[c+14>>0]|0;g=(d[c+15>>0]|0)<<8|(d[c+16>>0]|0)<<16|f;if((g|0)==0|b>>>0>g>>>0)return 0;b=a[c+21>>0]|0;if((b&4)!=0&(f&1|0)!=0|(b&1)==0)return 0;b=(d[c+67>>0]|0)<<16|(d[c+68>>0]|0)<<24|(d[c+66>>0]|0)<<8|(d[c+65>>0]|0);if(b>>>0<e>>>0)return (e-b|0)>>>0>=(g*23|0)>>>0|0;else return 0;return 0}function kb(a,b,c){a=a|0;b=b|0;c=c|0;var e=0;if(c>>>0<78)return 0;if(((d[b+1>>0]|0)<<8|(d[b>>0]|0)|0)!=17011)return 0;if(((d[b+3>>0]|0)<<8|(d[b+2>>0]|0)|0)!=19)return 0;if(((d[b+5>>0]|0)<<8|(d[b+4>>0]|0)|0)!=77)return 0;if((((d[b+10>>0]|0)<<16|(d[b+11>>0]|0)<<24|(d[b+9>>0]|0)<<8|(d[b+8>>0]|0))+77|0)>>>0>c>>>0)return 0;a=(d[b+15>>0]|0)<<8|(d[b+16>>0]|0)<<16|(d[b+14>>0]|0);if(!a)return 0;if(!((d[b+18>>0]|0)<<8|(d[b+19>>0]|0)<<16|(d[b+17>>0]|0)))return 0;e=(d[b+67>>0]|0)<<16|(d[b+68>>0]|0)<<24|(d[b+66>>0]|0)<<8|(d[b+65>>0]|0);if(e>>>0<c>>>0)return (c-e|0)>>>0>=(a*23|0)>>>0|0;else return 0;return 0}function lb(a,b,c){a=a|0;b=b|0;c=c|0;var e=0;if(!(kb(0,b,c)|0)){e=0;return e|0}e=(d[b+18>>0]|0)<<8|(d[b+19>>0]|0)<<16|(d[b+17>>0]|0);return e|0}function mb(b,e,f,g,h){b=b|0;e=e|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;if(!(kb(0,e,f)|0)){i=0;return i|0}f=d[e+15>>0]<<8|d[e+16>>0]<<16|d[e+14>>0];if(!f){i=0;return i|0}b=e+(d[e+67>>0]<<16|d[e+68>>0]<<24|d[e+66>>0]<<8|d[e+65>>0])|0;j=0;while(1){if((d[b+(j*23|0)+1>>0]<<8|d[b+(j*23|0)+2>>0]<<16|d[b+(j*23|0)>>0]|0)==(h|0)?(a[b+(j*23|0)+3>>0]|0)==0:0){k=j;break}j=j+1|0;if(j>>>0>=f>>>0){i=0;l=14;break}}if((l|0)==14)return i|0;if((k|0)<0){i=0;return i|0}if((d[e+18>>0]<<8|d[e+19>>0]<<16|d[e+17>>0])>>>0<=h>>>0){i=0;return i|0}l=k+1|0;if(l>>>0<f>>>0){j=l;l=1;while(1){if((d[b+(j*23|0)+1>>0]<<8|d[b+(j*23|0)+2>>0]<<16|d[b+(j*23|0)>>0]|0)!=(h|0)){m=l;break}n=(d[b+(j*23|0)+3>>0]|0)+1|0;o=l>>>0>n>>>0?l:n;j=j+1|0;if(j>>>0>=f>>>0){m=o;break}else l=o}if(m>>>0>16){i=0;return i|0}else p=m}else p=1;c[g>>2]=h;c[g+4>>2]=p;a[g+40>>0]=(d[e+21>>0]|0)>>>2&1;a[g+41>>0]=(d[b+(k*23|0)+4>>0]|0)>>>1&1;e=b+(k*23|0)+10|0;p=b+(k*23|0)+9|0;c[g+16>>2]=(d[e>>0]<<8|d[p>>0])<<2;h=b+(k*23|0)+12|0;m=b+(k*23|0)+11|0;c[g+20>>2]=(d[h>>0]<<8|d[m>>0])<<2;c[g+8>>2]=d[b+(k*23|0)+6>>0]<<8|d[b+(k*23|0)+5>>0];c[g+12>>2]=d[b+(k*23|0)+8>>0]<<8|d[b+(k*23|0)+7>>0];b=d[e>>0]<<8|d[p>>0];c[g+24>>2]=b;p=d[h>>0]<<8|d[m>>0];c[g+28>>2]=p;c[g+32>>2]=Z(p,b)|0;c[g+36>>2]=k;i=1;return i|0}function nb(a,b,e,f,g,h,i,j){a=a|0;b=b|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;if(!(kb(0,b,e)|0)){k=0;return k|0}e=(d[b+15>>0]|0)<<8|(d[b+16>>0]|0)<<16|(d[b+14>>0]|0);if(!e){k=0;return k|0}a=b+((d[b+67>>0]|0)<<16|(d[b+68>>0]|0)<<24|(d[b+66>>0]|0)<<8|(d[b+65>>0]|0))|0;l=0;while(1){if(((d[a+(l*23|0)+1>>0]|0)<<8|(d[a+(l*23|0)+2>>0]|0)<<16|(d[a+(l*23|0)>>0]|0)|0)==(f|0)?(d[a+(l*23|0)+3>>0]|0|0)==(g|0):0){m=l;break}l=l+1|0;if(l>>>0>=e>>>0){k=0;n=10;break}}if((n|0)==10)return k|0;if((m|0)<0){k=0;return k|0}if(((d[b+18>>0]|0)<<8|(d[b+19>>0]|0)<<16|(d[b+17>>0]|0))>>>0<=f>>>0){k=0;return k|0}c[h>>2]=(d[a+(m*23|0)+6>>0]|0)<<8|(d[a+(m*23|0)+5>>0]|0);c[i>>2]=(d[a+(m*23|0)+8>>0]|0)<<8|(d[a+(m*23|0)+7>>0]|0);c[j>>2]=Z((d[a+(m*23|0)+12>>0]|0)<<8|(d[a+(m*23|0)+11>>0]|0),(d[a+(m*23|0)+10>>0]|0)<<8|(d[a+(m*23|0)+9>>0]|0))|0;k=1;return k|0}function ob(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;if(!(kb(0,e,f)|0)){j=0;return j|0}f=(d[e+15>>0]|0)<<8|(d[e+16>>0]|0)<<16|(d[e+14>>0]|0);if(!f){j=0;return j|0}b=e+((d[e+67>>0]|0)<<16|(d[e+68>>0]|0)<<24|(d[e+66>>0]|0)<<8|(d[e+65>>0]|0))|0;k=0;while(1){if(((d[b+(k*23|0)+1>>0]|0)<<8|(d[b+(k*23|0)+2>>0]|0)<<16|(d[b+(k*23|0)>>0]|0)|0)==(h|0)?(d[b+(k*23|0)+3>>0]|0|0)==(i|0):0){l=k;break}k=k+1|0;if(k>>>0>=f>>>0){j=0;m=10;break}}if((m|0)==10)return j|0;if((l|0)<0){j=0;return j|0}if(((d[e+18>>0]|0)<<8|(d[e+19>>0]|0)<<16|(d[e+17>>0]|0))>>>0<=h>>>0){j=0;return j|0}c[g>>2]=h;c[g+4>>2]=i;a[g+40>>0]=(d[e+21>>0]|0)>>>2&1;a[g+41>>0]=(d[b+(l*23|0)+4>>0]|0)>>>1&1;e=b+(l*23|0)+10|0;i=b+(l*23|0)+9|0;c[g+16>>2]=((d[e>>0]|0)<<8|(d[i>>0]|0))<<2;h=b+(l*23|0)+12|0;m=b+(l*23|0)+11|0;c[g+20>>2]=((d[h>>0]|0)<<8|(d[m>>0]|0))<<2;c[g+8>>2]=(d[b+(l*23|0)+6>>0]|0)<<8|(d[b+(l*23|0)+5>>0]|0);c[g+12>>2]=(d[b+(l*23|0)+8>>0]|0)<<8|(d[b+(l*23|0)+7>>0]|0);b=(d[e>>0]|0)<<8|(d[i>>0]|0);c[g+24>>2]=b;i=(d[h>>0]|0)<<8|(d[m>>0]|0);c[g+28>>2]=i;c[g+32>>2]=Z(i,b)|0;c[g+36>>2]=l;j=1;return j|0}function pb(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;if((c[a+4>>2]|0)!=(c[a>>2]|0)){f=1;return f|0}if(!(kb(0,b,e)|0)){f=0;return f|0}g=(d[b+43>>0]|0)<<16|(d[b+44>>0]|0)<<24|(d[b+42>>0]|0)<<8|(d[b+41>>0]|0);if(g>>>0>e>>>0){f=0;return f|0}h=(d[b+52>>0]|0)<<16|(d[b+53>>0]|0)<<24|(d[b+51>>0]|0)<<8|(d[b+50>>0]|0);if(h>>>0>e>>>0){f=0;return f|0}i=b+57|0;j=b+60|0;k=b+59|0;l=b+58|0;m=(d[k>>0]|0)<<16|(d[j>>0]|0)<<24|(d[l>>0]|0)<<8|(d[i>>0]|0);if(m>>>0>e>>>0){f=0;return f|0}n=(d[b+46>>0]|0)<<8|(d[b+47>>0]|0)<<16|(d[b+45>>0]|0);if(n>>>0>(e-g|0)>>>0){f=0;return f|0}o=(d[b+55>>0]|0)<<8|(d[b+56>>0]|0)<<16|(d[b+54>>0]|0);if(o>>>0>(e-h|0)>>>0){f=0;return f|0}p=b+61|0;q=b+64|0;r=b+63|0;s=b+62|0;if(((d[r>>0]|0)<<16|(d[q>>0]|0)<<24|(d[s>>0]|0)<<8|(d[p>>0]|0))>>>0>(e-m|0)>>>0){f=0;return f|0}if(!(bb(a,(d[b+40>>0]|0)<<8|(d[b+39>>0]|0),b+g|0,n,(d[b+49>>0]|0)<<8|(d[b+48>>0]|0),b+h|0,o)|0)){f=0;return f|0}f=fb(a,b+((d[k>>0]|0)<<16|(d[j>>0]|0)<<24|(d[l>>0]|0)<<8|(d[i>>0]|0))|0,(d[r>>0]|0)<<16|(d[q>>0]|0)<<24|(d[s>>0]|0)<<8|(d[p>>0]|0))|0;return f|0}function qb(a,b,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0;if(!((k&2|0)==0?(c[a+4>>2]|0)!=(c[a>>2]|0):0)){n=0;return n|0}if(!(kb(0,b,e)|0)){n=0;return n|0}if(((d[b+15>>0]|0)<<8|(d[b+16>>0]|0)<<16|(d[b+14>>0]|0))>>>0<=f>>>0){n=0;return n|0}o=b+((d[b+67>>0]|0)<<16|(d[b+68>>0]|0)<<24|(d[b+66>>0]|0)<<8|(d[b+65>>0]|0))|0;p=o+(f*23|0)|0;q=(d[o+(f*23|0)+10>>0]|0)<<8|(d[o+(f*23|0)+9>>0]|0);r=(d[o+(f*23|0)+12>>0]|0)<<8|(d[o+(f*23|0)+11>>0]|0);if((Z(r,q)|0)>>>0>h>>>0){n=0;return n|0}if((i|0)==3){h=q<<2;if(!q){n=0;return n|0}if(h+262143&h){n=0;return n|0}h=r<<2;if(!r){n=0;return n|0}if(h+262143&h){n=0;return n|0}}h=(d[o+(f*23|0)+15>>0]|0)<<16|(d[o+(f*23|0)+16>>0]|0)<<24|(d[o+(f*23|0)+14>>0]|0)<<8|(d[o+(f*23|0)+13>>0]|0);if(h>>>0>e>>>0){n=0;return n|0}s=(d[o+(f*23|0)+19>>0]|0)<<16|(d[o+(f*23|0)+20>>0]|0)<<24|(d[o+(f*23|0)+18>>0]|0)<<8|(d[o+(f*23|0)+17>>0]|0);if((e-h|0)>>>0<s>>>0){n=0;return n|0}n=gb(a,g,q,r,b+h|0,s,i,j,(k&1|0)!=0,(k&8|0)==0,b,p,l,m)|0;return n|0}function rb(b,e,f,g,h,j,k,l,m,n,o){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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;p=i;i=i+16|0;q=p;if((c[b+4>>2]|0)==(c[b>>2]|0)){r=0;i=p;return r|0}s=m>>>2;if(m&2){r=0;i=p;return r|0}if(!(kb(0,e,f)|0)){r=0;i=p;return r|0}t=e+((d[e+67>>0]|0)<<16|(d[e+68>>0]|0)<<24|(d[e+66>>0]|0)<<8|(d[e+65>>0]|0))|0;u=(a[e+21>>0]&4)!=0;v=(d[e+15>>0]|0)<<8|(d[e+16>>0]|0)<<16|(d[e+14>>0]|0);if(!v){r=0;i=p;return r|0}else w=0;while(1){if(((d[t+(w*23|0)+1>>0]|0)<<8|(d[t+(w*23|0)+2>>0]|0)<<16|(d[t+(w*23|0)>>0]|0)|0)==(g|0)?(d[t+(w*23|0)+3>>0]|0|0)==(h|0):0){x=w;break}w=w+1|0;if(w>>>0>=v>>>0){r=0;y=70;break}}if((y|0)==70){i=p;return r|0}if((x|0)<0){r=0;i=p;return r|0}y=(l+-5|0)>>>0<3;if(a[t+(x*23|0)+4>>0]&1){r=0;i=p;return r|0}if(u){w=x+1|0;if(w>>>0>=v>>>0){r=0;i=p;return r|0}if(!(a[t+(w*23|0)+4>>0]&1)){r=0;i=p;return r|0}v=t+(x*23|0)+10|0;h=a[v>>0]|0;g=t+(x*23|0)+9|0;z=a[g>>0]|0;if(((h&255)<<8|z&255|0)!=((d[t+(w*23|0)+10>>0]|0)<<8|(d[t+(w*23|0)+9>>0]|0)|0)){r=0;i=p;return r|0}A=t+(x*23|0)+12|0;B=a[A>>0]|0;C=t+(x*23|0)+11|0;D=a[C>>0]|0;if(((B&255)<<8|D&255|0)==((d[t+(w*23|0)+12>>0]|0)<<8|(d[t+(w*23|0)+11>>0]|0)|0)){E=g;F=A;G=C;H=v;I=h;J=z;K=B;L=D}else{r=0;i=p;return r|0}}else{D=t+(x*23|0)+10|0;B=t+(x*23|0)+9|0;z=t+(x*23|0)+12|0;h=t+(x*23|0)+11|0;E=B;F=z;G=h;H=D;I=a[D>>0]|0;J=a[B>>0]|0;K=a[z>>0]|0;L=a[h>>0]|0}h=(l&-4|0)==4?16:8;z=Z((K&255)<<8|L&255,(I&255)<<8|J&255)|0;if((l|0)==3&z>>>0<k>>>0)Pc(j+(Z(z,h)|0)|0,0,Z(k-z|0,h)|0)|0;switch(l|0){case 0:{if(y)ma(644728,644519,4943,644746);r=qb(b,e,f,x+(((s&1|0)==0|u^1)&1^1)|0,j,k,0,h,m,n,o)|0;i=p;return r|0}case 1:{if(y)ma(644728,644519,4962,644746);r=qb(b,e,f,x+(((s&1|0)==0|u^1)&1^1)|0,j,k,1,h,m,n,o)|0;i=p;return r|0}case 2:{if(y)ma(644728,644519,4981,644746);r=qb(b,e,f,x+(((s&1|0)==0|u^1)&1^1)|0,j,k,2,h,m,n,o)|0;i=p;return r|0}case 3:{if(y)ma(644728,644519,5e3,644746);r=qb(b,e,f,x+(((s&1|0)==0|u^1)&1^1)|0,j,k,3,h,m,n,o)|0;i=p;return r|0}case 4:{if(y)ma(644728,644519,5020,644746);r=qb(b,e,f,x+(((s&1|0)==0|u^1)&1^1)|0,j,k,4,h,m,n,o)|0;i=p;return r|0}case 5:{if(!y)ma(644768,644519,5039,644746);if(u){if(!(qb(b,e,f,x+1|0,j,k,5,16,m,n,o)|0)){r=0;i=p;return r|0}}else{h=(d[H>>0]|0)<<8|(d[E>>0]|0);s=(d[F>>0]|0)<<8|(d[G>>0]|0);if(s){l=((n|0)==0?h:n)<<4;z=(h|0)==0;J=0;do{if(!z){I=Z(l,J)|0;L=0;while(1){K=j+I|0;a[K>>0]=255;a[K+1>>0]=29;K=j+(I|2)|0;a[K>>0]=a[641760]|0;a[K+1>>0]=a[641761]|0;a[K+2>>0]=a[641762]|0;a[K+3>>0]=a[641763]|0;a[K+4>>0]=a[641764]|0;a[K+5>>0]=a[641765]|0;L=L+1|0;if((L|0)==(h|0))break;else I=I+16|0}}J=J+1|0}while((J|0)!=(s|0))}}r=qb(b,e,f,x,j+8|0,k,0,16,m,n,o)|0;i=p;return r|0}case 6:{if(!y)ma(644768,644519,5075,644746);if(u){if(!(qb(b,e,f,x+1|0,j,k,2,16,m,n,o)|0)){r=0;i=p;return r|0}}else{s=(d[H>>0]|0)<<8|(d[E>>0]|0);J=(d[F>>0]|0)<<8|(d[G>>0]|0);a[q>>0]=0;a[q+1>>0]=0;a[q+2>>0]=0;a[q+3>>0]=0;a[q+4>>0]=0;a[q+5>>0]=0;if(J){h=((n|0)==0?s:n)<<4;l=(s|0)==0;z=0;do{if(!l){I=Z(h,z)|0;L=0;while(1){a[j+I>>0]=-1;a[j+(I|1)>>0]=-1;K=j+(I|2)|0;a[K>>0]=a[q>>0]|0;a[K+1>>0]=a[q+1>>0]|0;a[K+2>>0]=a[q+2>>0]|0;a[K+3>>0]=a[q+3>>0]|0;a[K+4>>0]=a[q+4>>0]|0;a[K+5>>0]=a[q+5>>0]|0;L=L+1|0;if((L|0)==(s|0))break;else I=I+16|0}}z=z+1|0}while((z|0)!=(J|0))}}r=qb(b,e,f,x,j+8|0,k,1,16,m|8,n,o)|0;i=p;return r|0}case 7:{if(!y)ma(644768,644519,5109,644746);if(!(qb(b,e,f,x,j,k,2,16,m,n,o)|0)){r=0;i=p;return r|0}if(u){r=qb(b,e,f,x+1|0,j+8|0,k,2,16,m,n,o)|0;i=p;return r|0}o=(d[H>>0]|0)<<8|(d[E>>0]|0);E=(d[F>>0]|0)<<8|(d[G>>0]|0);a[q>>0]=0;a[q+1>>0]=0;a[q+2>>0]=0;a[q+3>>0]=0;a[q+4>>0]=0;a[q+5>>0]=0;if(E){G=((n|0)==0?o:n)<<4;n=(o|0)==0;F=0;do{if(!n){H=Z(G,F)|0;m=0;while(1){a[j+(H+8)>>0]=-1;a[j+((H|1)+8)>>0]=-1;k=j+((H|2)+8)|0;a[k>>0]=a[q>>0]|0;a[k+1>>0]=a[q+1>>0]|0;a[k+2>>0]=a[q+2>>0]|0;a[k+3>>0]=a[q+3>>0]|0;a[k+4>>0]=a[q+4>>0]|0;a[k+5>>0]=a[q+5>>0]|0;m=m+1|0;if((m|0)==(o|0))break;else H=H+16|0}}F=F+1|0}while((F|0)!=(E|0))}r=1;i=p;return r|0}default:ma(644726,644519,5137,644746)}return 0}function sb(a){a=a|0;var b=0;switch(a|0){case 7:case 6:case 5:case 4:{b=16;return b|0}case 3:case 2:case 1:case 0:{b=8;return b|0}default:ma(644726,644519,5161,644786)}return 0}function tb(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=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;g=i;i=i+256|0;h=g+128|0;j=g;if(!e){k=c[d>>2]|0;l=d+4|0;if((c[l>>2]|0)!=(k|0))c[l>>2]=k;k=c[d+12>>2]|0;l=d+16|0;m=c[l>>2]|0;if((k|0)!=(m|0))c[l>>2]=m+(~((m+-4-k|0)>>>2)<<2);k=c[d+24>>2]|0;m=d+28|0;l=c[m>>2]|0;if((k|0)==(l|0)){n=1;i=g;return n|0}c[m>>2]=l+(~((l+-2-k|0)>>>1)<<1);n=1;i=g;return n|0}k=d+4|0;l=c[k>>2]|0;m=c[d>>2]|0;o=l-m|0;if(o>>>0>=e>>>0)if(o>>>0>e>>>0?(p=m+e|0,(l|0)!=(p|0)):0){c[k>>2]=p;q=m}else q=m;else{ub(d,e-o|0);q=c[d>>2]|0}Sc(q|0,f|0,e|0)|0;q=d+12|0;o=d+16|0;m=c[o>>2]|0;p=c[q>>2]|0;k=p;if((m|0)==(p|0))r=m;else{l=m+(~((m+-4-k|0)>>>2)<<2)|0;c[o>>2]=l;r=l}l=r-k>>2;if(l>>>0>=1024){if(l>>>0>1024?(k=p+4096|0,(r|0)!=(k|0)):0)c[o>>2]=r+(~((r+-4-k|0)>>>2)<<2)}else vb(q,1024-l|0);l=d+24|0;k=d+28|0;d=c[k>>2]|0;r=c[l>>2]|0;o=r;if((d|0)==(r|0))s=d;else{p=d+(~((d+-2-o|0)>>>1)<<1)|0;c[k>>2]=p;s=p}p=e<<1;d=s-o>>1;if(p>>>0<=d>>>0){if(p>>>0<d>>>0?(o=r+(p<<1)|0,(s|0)!=(o|0)):0)c[k>>2]=s+(~((s+-2-o|0)>>>1)<<1)}else wb(l,p-d|0);d=h;p=d+128|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(p|0));d=0;while(1){p=a[f+d>>0]|0;if((p&255)>31){t=0;break}o=h+((p&255)<<2)|0;c[o>>2]=(c[o>>2]|0)+1;d=d+1|0;if(d>>>0>=e>>>0){u=30;break}}if((u|0)==30){c[j+4>>2]=0;c[j>>2]=0;u=1;d=0;o=0;while(1){p=c[h+(u<<2)>>2]|0;s=p+o|0;r=p+d<<1;u=u+1|0;c[j+(u<<2)>>2]=r;if((u|0)==31){v=s;w=r;break}else{d=r;o=s}}a:do if(!((w|0)!=-2147483648&v>>>0>1))if((e|0)>0){o=0;d=-1;while(1){u=a[f+o>>0]|0;h=u&255;b:do if(!(u<<24>>24))x=d;else{s=j+(h<<2)|0;r=c[s>>2]|0;c[s>>2]=r+1;s=r;r=h;p=0;while(1){m=s&1|p<<1;r=r+-1|0;if(!r){y=m;z=p;break}else{s=s>>>1;p=m}}if((u&255)<11){p=h<<16|o;if(y>>>0>=1024){x=d;break}s=c[q>>2]|0;r=1<<h;m=y;while(1){A=s+(m<<2)|0;if(c[A>>2]|0){B=0;break a}c[A>>2]=p;m=m+r|0;if(m>>>0>=1024){x=d;break b}}}m=(c[q>>2]|0)+((y&1023)<<2)|0;r=c[m>>2]|0;if(!r){c[m>>2]=d;C=d;D=d+-2|0}else{C=r;D=d}if((C|0)>-1){B=0;break a}r=z>>>9;m=(r&1)-C|0;p=m+-1|0;s=(m|0)<1;if((u&255)>11){A=m;E=p;F=r&4194303;r=s;G=h;H=D;while(1){if(r){B=0;break a}I=c[k>>2]|0;J=c[l>>2]|0;K=I-J>>1;do if((A|0)>(K|0)){if(A>>>0>K>>>0){wb(l,A-K|0);L=c[l>>2]|0;break}if(A>>>0>=K>>>0){L=J;break}M=J+(A<<1)|0;if((I|0)==(M|0)){L=J;break}c[k>>2]=I+(~((I+-2-M|0)>>>1)<<1);L=J}else L=J;while(0);J=L+(E<<1)|0;I=b[J>>1]|0;if(I<<16>>16)if(I<<16>>16>-1){B=0;break a}else{N=I<<16>>16;O=H}else{b[J>>1]=H;N=H;O=H+-2|0}G=G+-1|0;F=F>>>1;J=(F&1)-N|0;I=J+-1|0;K=(J|0)<1;if((G|0)<=11){P=J;Q=I;R=K;S=O;break}else{A=J;E=I;r=K;H=O}}}else{P=m;Q=p;R=s;S=D}if(R){B=0;break a}H=c[k>>2]|0;r=c[l>>2]|0;E=H-r>>1;do if((P|0)>(E|0)){if(P>>>0>E>>>0){wb(l,P-E|0);T=c[l>>2]|0;break}if(P>>>0>=E>>>0){T=r;break}A=r+(P<<1)|0;if((H|0)==(A|0)){T=r;break}c[k>>2]=H+(~((H+-2-A|0)>>>1)<<1);T=r}else T=r;while(0);r=T+(Q<<1)|0;if(b[r>>1]|0){B=0;break a}b[r>>1]=o;x=S}while(0);o=o+1|0;if((o|0)>=(e|0)){B=1;break}else d=x}}else B=1;else B=0;while(0);t=B}n=t;i=g;return n|0}function ub(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=b+8|0;f=c[e>>2]|0;g=b+4|0;h=c[g>>2]|0;i=h;if((f-i|0)>>>0>=d>>>0){j=d;k=h;do{a[k>>0]=0;k=(c[g>>2]|0)+1|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[b>>2]|0;k=i-j+d|0;if((k|0)<0)Zb(b);i=j;j=f-i|0;if(j>>>0<1073741823){f=j<<1;j=f>>>0<k>>>0?k:f;f=(c[g>>2]|0)-i|0;if(!j){l=0;m=0;n=f}else{o=j;p=f;q=8}}else{o=2147483647;p=(c[g>>2]|0)-i|0;q=8}if((q|0)==8){l=o;m=_b(o)|0;n=p}p=m+n|0;o=m+l|0;l=d;d=p;q=p;while(1){a[d>>0]=0;d=q+1|0;p=d;l=l+-1|0;if(!l){r=p;break}else q=p}q=c[b>>2]|0;l=(c[g>>2]|0)-q|0;d=m+(n-l)|0;Sc(d|0,q|0,l|0)|0;c[b>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;$b(q);return}function vb(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;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>2>>>0>=b>>>0){Pc(g|0,0,b<<2|0)|0;c[f>>2]=g+(b<<2);return}g=c[a>>2]|0;i=g;j=(h-i>>2)+b|0;if(j>>>0>1073741823)Zb(a);h=g;k=e-h|0;if(k>>2>>>0<536870911){e=k>>1;k=e>>>0<j>>>0?j:e;e=(c[f>>2]|0)-h|0;j=e>>2;if(!k){l=0;m=0;n=j;o=e}else{p=k;q=j;r=e;s=8}}else{e=(c[f>>2]|0)-h|0;p=1073741823;q=e>>2;r=e;s=8}if((s|0)==8){l=p;m=_b(p<<2)|0;n=q;o=r}Pc(m+(n<<2)|0,0,b<<2|0)|0;Sc(m|0,g|0,o|0)|0;c[a>>2]=m;c[f>>2]=m+(n+b<<2);c[d>>2]=m+(l<<2);if(!i)return;$b(i);return}function wb(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;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>1>>>0>=b>>>0){Pc(g|0,0,b<<1|0)|0;c[f>>2]=g+(b<<1);return}i=c[a>>2]|0;j=i;k=(h-j>>1)+b|0;if((k|0)<0)Zb(a);h=i;l=e-h|0;e=l>>1>>>0<1073741823?(l>>>0<k>>>0?k:l):2147483647;l=g-h|0;h=l>>1;if(!e)m=0;else m=_b(e<<1)|0;Pc(m+(h<<1)|0,0,b<<1|0)|0;Sc(m|0,i|0,l|0)|0;c[a>>2]=m;c[f>>2]=m+(h+b<<1);c[d>>2]=m+(e<<1);if(!j)return;$b(j);return}function xb(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=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;f=i;i=i+160|0;g=f+144|0;h=f+128|0;j=f+112|0;k=f+96|0;l=f+80|0;m=f+64|0;n=f+48|0;o=f+32|0;p=f+16|0;q=f;r=b;s=c;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0));if(a[e+8>>0]|0){r=g;c=r+15|0;do{a[r>>0]=0;r=r+1|0}while((r|0)<(c|0));t=a[b>>0]|0;a[g>>0]=t;a[g+1>>0]=t;a[g+2>>0]=a[b+1>>0]|0;a[g+3>>0]=a[b+2>>0]|0;t=a[b+4>>0]|0;a[g+4>>0]=t;a[g+5>>0]=t;a[g+6>>0]=a[b+5>>0]|0;a[g+7>>0]=a[b+6>>0]|0;t=a[b+8>>0]|0;a[g+8>>0]=t;a[g+9>>0]=t;a[g+10>>0]=a[b+9>>0]|0;a[g+11>>0]=a[b+10>>0]|0;t=a[b+12>>0]|0;a[g+12>>0]=t;a[g+13>>0]=t;a[g+14>>0]=a[b+13>>0]|0;a[g+15>>0]=a[b+14>>0]|0;r=b;s=g;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0))}if(a[e+9>>0]|0){r=h;c=r+15|0;do{a[r>>0]=0;r=r+1|0}while((r|0)<(c|0));a[h>>0]=a[b+12>>0]|0;a[h+1>>0]=a[b+13>>0]|0;a[h+2>>0]=a[b+14>>0]|0;a[h+3>>0]=a[b+15>>0]|0;a[h+4>>0]=a[b>>0]|0;a[h+5>>0]=a[b+1>>0]|0;a[h+6>>0]=a[b+2>>0]|0;a[h+7>>0]=a[b+3>>0]|0;a[h+8>>0]=a[b+4>>0]|0;a[h+9>>0]=a[b+5>>0]|0;a[h+10>>0]=a[b+6>>0]|0;a[h+11>>0]=a[b+7>>0]|0;a[h+12>>0]=a[b+8>>0]|0;a[h+13>>0]=a[b+9>>0]|0;a[h+14>>0]=a[b+10>>0]|0;a[h+15>>0]=a[b+11>>0]|0;r=b;s=h;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0))}yb(j,b,(a[e+6>>0]|0)!=0,d[e+12>>0]|0);r=b;s=j;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0));if(a[e+7>>0]|0){zb(k,b);r=b;s=k;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0))}if(a[e+10>>0]|0){Ab(l,b);r=b;s=l;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0))}if(a[e+11>>0]|0){Bb(m,b);r=b;s=m;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0))}if(a[e+1>>0]|0){Cb(n,b);r=b;s=n;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0))}if(a[e+3>>0]|0){n=b+1|0;m=a[645085+(d[n>>0]|0)>>0]|0;l=b+2|0;k=a[645085+(d[l>>0]|0)>>0]|0;j=b+3|0;h=a[645085+(d[j>>0]|0)>>0]|0;g=b+4|0;t=a[645085+(d[g>>0]|0)>>0]|0;u=b+5|0;v=a[645085+(d[u>>0]|0)>>0]|0;w=b+6|0;x=a[645085+(d[w>>0]|0)>>0]|0;y=b+7|0;z=a[645085+(d[y>>0]|0)>>0]|0;A=b+8|0;B=a[645085+(d[A>>0]|0)>>0]|0;C=b+9|0;D=a[645085+(d[C>>0]|0)>>0]|0;E=b+10|0;F=a[645085+(d[E>>0]|0)>>0]|0;G=b+11|0;H=a[645085+(d[G>>0]|0)>>0]|0;I=b+12|0;J=a[645085+(d[I>>0]|0)>>0]|0;K=b+13|0;L=a[645085+(d[K>>0]|0)>>0]|0;M=b+14|0;N=a[645085+(d[M>>0]|0)>>0]|0;O=b+15|0;P=a[645085+(d[O>>0]|0)>>0]|0;a[b>>0]=a[645085+(d[b>>0]|0)>>0]|0;a[n>>0]=m;a[l>>0]=k;a[j>>0]=h;a[g>>0]=t;a[u>>0]=v;a[w>>0]=x;a[y>>0]=z;a[A>>0]=B;a[C>>0]=D;a[E>>0]=F;a[G>>0]=H;a[I>>0]=J;a[K>>0]=L;a[M>>0]=N;a[O>>0]=P}if(a[e+4>>0]|0){r=o;c=r+16|0;do{a[r>>0]=0;r=r+1|0}while((r|0)<(c|0));P=0;do{O=(d[b+P>>0]|0)+1|0;a[o+P>>0]=O>>>0>3?3:O&255;P=P+1|0}while((P|0)!=16);r=b;s=o;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0))}o=a[e>>0]|0;if(o<<24>>24){Db(p,b,o&255);r=b;s=p;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0))}if(a[e+5>>0]|0){p=b+1|0;o=3-(d[p>>0]|0)&255;P=b+2|0;O=3-(d[P>>0]|0)&255;N=b+3|0;M=3-(d[N>>0]|0)&255;L=b+4|0;K=3-(d[L>>0]|0)&255;J=b+5|0;I=3-(d[J>>0]|0)&255;H=b+6|0;G=3-(d[H>>0]|0)&255;F=b+7|0;E=3-(d[F>>0]|0)&255;D=b+8|0;C=3-(d[D>>0]|0)&255;B=b+9|0;A=3-(d[B>>0]|0)&255;z=b+10|0;y=3-(d[z>>0]|0)&255;x=b+11|0;w=3-(d[x>>0]|0)&255;v=b+12|0;u=3-(d[v>>0]|0)&255;t=b+13|0;g=3-(d[t>>0]|0)&255;h=b+14|0;j=3-(d[h>>0]|0)&255;k=b+15|0;l=3-(d[k>>0]|0)&255;a[b>>0]=3-(d[b>>0]|0);a[p>>0]=o;a[P>>0]=O;a[N>>0]=M;a[L>>0]=K;a[J>>0]=I;a[H>>0]=G;a[F>>0]=E;a[D>>0]=C;a[B>>0]=A;a[z>>0]=y;a[x>>0]=w;a[v>>0]=u;a[t>>0]=g;a[h>>0]=j;a[k>>0]=l}if(!(a[e+2>>0]|0)){i=f;return}Eb(q,b);r=b;s=q;c=r+16|0;do{a[r>>0]=a[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(c|0));i=f;return}
function yb(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;g=f;h=g;j=h+16|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(j|0));if(d){a[g>>0]=a[c+12>>0]|0;a[g+1>>0]=a[c+13>>0]|0;a[g+2>>0]=a[c+14>>0]|0;a[g+3>>0]=a[c+15>>0]|0;a[g+4>>0]=a[c+8>>0]|0;a[g+5>>0]=a[c+9>>0]|0;a[g+6>>0]=a[c+10>>0]|0;a[g+7>>0]=a[c+11>>0]|0;a[g+8>>0]=a[c+4>>0]|0;a[g+9>>0]=a[c+5>>0]|0;a[g+10>>0]=a[c+6>>0]|0;a[g+11>>0]=a[c+7>>0]|0;a[g+12>>0]=a[c>>0]|0;a[g+13>>0]=a[c+1>>0]|0;a[g+14>>0]=a[c+2>>0]|0;a[g+15>>0]=a[c+3>>0]|0}else{h=g;k=c;j=h+16|0;do{a[h>>0]=a[k>>0]|0;h=h+1|0;k=k+1|0}while((h|0)<(j|0))}h=b;j=h+16|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(j|0));switch(e|0){case 0:{h=b;k=g;j=h+16|0;do{a[h>>0]=a[k>>0]|0;h=h+1|0;k=k+1|0}while((h|0)<(j|0));i=f;return}case 1:{a[b>>0]=a[g+12>>0]|0;a[b+1>>0]=a[g+8>>0]|0;a[b+2>>0]=a[g+4>>0]|0;a[b+3>>0]=a[g>>0]|0;a[b+4>>0]=a[g+13>>0]|0;a[b+5>>0]=a[g+9>>0]|0;a[b+6>>0]=a[g+5>>0]|0;a[b+7>>0]=a[g+1>>0]|0;a[b+8>>0]=a[g+14>>0]|0;a[b+9>>0]=a[g+10>>0]|0;a[b+10>>0]=a[g+6>>0]|0;a[b+11>>0]=a[g+2>>0]|0;a[b+12>>0]=a[g+15>>0]|0;a[b+13>>0]=a[g+11>>0]|0;a[b+14>>0]=a[g+7>>0]|0;a[b+15>>0]=a[g+3>>0]|0;i=f;return}case 2:{a[b>>0]=a[g+15>>0]|0;a[b+1>>0]=a[g+14>>0]|0;a[b+2>>0]=a[g+13>>0]|0;a[b+3>>0]=a[g+12>>0]|0;a[b+4>>0]=a[g+11>>0]|0;a[b+5>>0]=a[g+10>>0]|0;a[b+6>>0]=a[g+9>>0]|0;a[b+7>>0]=a[g+8>>0]|0;a[b+8>>0]=a[g+7>>0]|0;a[b+9>>0]=a[g+6>>0]|0;a[b+10>>0]=a[g+5>>0]|0;a[b+11>>0]=a[g+4>>0]|0;a[b+12>>0]=a[g+3>>0]|0;a[b+13>>0]=a[g+2>>0]|0;a[b+14>>0]=a[g+1>>0]|0;a[b+15>>0]=a[g>>0]|0;i=f;return}case 3:{a[b>>0]=a[g+3>>0]|0;a[b+1>>0]=a[g+7>>0]|0;a[b+2>>0]=a[g+11>>0]|0;a[b+3>>0]=a[g+15>>0]|0;a[b+4>>0]=a[g+2>>0]|0;a[b+5>>0]=a[g+6>>0]|0;a[b+6>>0]=a[g+10>>0]|0;a[b+7>>0]=a[g+14>>0]|0;a[b+8>>0]=a[g+1>>0]|0;a[b+9>>0]=a[g+5>>0]|0;a[b+10>>0]=a[g+9>>0]|0;a[b+11>>0]=a[g+13>>0]|0;a[b+12>>0]=a[g>>0]|0;a[b+13>>0]=a[g+4>>0]|0;a[b+14>>0]=a[g+8>>0]|0;a[b+15>>0]=a[g+12>>0]|0;i=f;return}default:ma(644726,644812,487,645061)}}function zb(b,c){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;e=b;f=e+16|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=0;a:while(1){f=e<<2;g=e+-1|0;h=g>>>0>3;i=e;e=e+1|0;j=e>>>0>3;k=e<<2;l=g<<2;m=0;do{if(!h){n=m+-1|0;if(n>>>0>3)o=0;else{if((n|g)>>>0>=4){p=6;break a}o=d[c+(n+l)>>0]|0}if((m|g)>>>0>=4){p=6;break a}n=d[c+(m+l)>>0]|0;q=o>>>0>n>>>0?o:n;n=m+1|0;if(n>>>0>3)r=q;else{if((n|g)>>>0>=4){p=6;break a}s=d[c+(n+l)>>0]|0;r=q>>>0>s>>>0?q:s}}else r=0;s=m+-1|0;if(s>>>0>3)t=r;else{if((s|i)>>>0>=4){p=6;break a}q=d[c+(s+f)>>0]|0;t=r>>>0>q>>>0?r:q}if((m|i)>>>0>=4){p=6;break a}q=d[c+(m+f)>>0]|0;s=t>>>0>q>>>0?t:q;q=m+1|0;if(q>>>0>3)u=s;else{if((q|i)>>>0>=4){p=6;break a}n=d[c+(q+f)>>0]|0;u=s>>>0>n>>>0?s:n}if(!j){n=m+-1|0;if(n>>>0>3)v=u;else{if((n|e)>>>0>=4){p=6;break a}s=d[c+(n+k)>>0]|0;v=u>>>0>s>>>0?u:s}if((m|e)>>>0>=4){p=6;break a}s=d[c+(m+k)>>0]|0;n=v>>>0>s>>>0?v:s;s=m+1|0;if(s>>>0>3)w=n;else{if((s|e)>>>0>=4){p=6;break a}q=d[c+(s+k)>>0]|0;w=n>>>0>q>>>0?n:q}}else w=u;if((m|i)>>>0>=4){p=8;break a}a[b+(m+f)>>0]=w;m=m+1|0}while(m>>>0<4);if(e>>>0>=4){p=11;break}}if((p|0)==6)ma(645031,644812,151,645050);else if((p|0)==8)ma(645031,644812,152,645050);else if((p|0)==11)return}function Ab(b,c){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;e=b;f=e+16|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=0;a:while(1){f=e<<2;g=e+-1|0;h=g>>>0>3;i=e;e=e+1|0;j=e>>>0>3;k=e<<2;l=g<<2;m=0;do{if(!h){n=m+-1|0;if(n>>>0>3)o=99;else{if((n|g)>>>0>=4){p=6;break a}q=d[c+(n+l)>>0]|0;o=q>>>0>99?99:q}if((m|g)>>>0>=4){p=6;break a}q=d[c+(m+l)>>0]|0;n=o>>>0<q>>>0?o:q;q=m+1|0;if(q>>>0>3)r=n;else{if((q|g)>>>0>=4){p=6;break a}s=d[c+(q+l)>>0]|0;r=n>>>0<s>>>0?n:s}}else r=99;s=m+-1|0;if(s>>>0>3)t=r;else{if((s|i)>>>0>=4){p=6;break a}n=d[c+(s+f)>>0]|0;t=r>>>0<n>>>0?r:n}if((m|i)>>>0>=4){p=6;break a}n=d[c+(m+f)>>0]|0;s=t>>>0<n>>>0?t:n;n=m+1|0;if(n>>>0>3)u=s;else{if((n|i)>>>0>=4){p=6;break a}q=d[c+(n+f)>>0]|0;u=s>>>0<q>>>0?s:q}if(!j){q=m+-1|0;if(q>>>0>3)v=u;else{if((q|e)>>>0>=4){p=6;break a}s=d[c+(q+k)>>0]|0;v=u>>>0<s>>>0?u:s}if((m|e)>>>0>=4){p=6;break a}s=d[c+(m+k)>>0]|0;q=v>>>0<s>>>0?v:s;s=m+1|0;if(s>>>0>3)w=q;else{if((s|e)>>>0>=4){p=6;break a}n=d[c+(s+k)>>0]|0;w=q>>>0<n>>>0?q:n}}else w=u;if((m|i)>>>0>=4){p=8;break a}a[b+(m+f)>>0]=w;m=m+1|0}while(m>>>0<4);if(e>>>0>=4){p=11;break}}if((p|0)==6)ma(645031,644812,151,645050);else if((p|0)==8)ma(645031,644812,152,645050);else if((p|0)==11)return}function Bb(b,c){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;e=b;f=e+16|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=0;a:while(1){f=e<<2;g=-1+e|0;h=(g|0)<0?0:(g|0)>3?3:g;g=h<<2;i=(e|0)<0?0:(e|0)>3?3:e;j=i<<2;k=1+e|0;l=(k|0)<0?0:(k|0)>3?3:k;k=l<<2;m=0;do{n=m+-1|0;o=(n|0)<0?0:n;n=m;m=m+1|0;p=(m|0)>3?3:m;if((p|(o|(n|h)))>>>0>=4){q=4;break a}r=Z(d[c+(n+g)>>0]|0,-1)|0;if((p|(o|(n|i)))>>>0>=4){q=4;break a}s=((d[c+(n+j)>>0]|0)<<3)+((Z(d[c+(o+j)>>0]|0,-1)|0)+r)|0;r=(Z(d[c+(p+j)>>0]|0,-1)|0)+s|0;if((p|(o|(n|l)))>>>0>=4){q=4;break a}o=(Z(d[c+(n+k)>>0]|0,-1)|0)+r|0;if((n|e)>>>0>=4){q=5;break a}a[b+(n+f)>>0]=(o|0)<-3?0:(o|0)>15?3:((o|0)/4|0)&255}while(m>>>0<4);e=e+1|0;if(e>>>0>=4){q=8;break}}if((q|0)==4)ma(645031,644812,151,645050);else if((q|0)==5)ma(645031,644812,152,645050);else if((q|0)==8)return}function Cb(b,c){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;e=(d[c+1>>0]|0)<<2|(d[c>>0]|0)|(d[c+2>>0]|0)<<4|(d[c+3>>0]|0)<<6|((d[c+5>>0]|0)<<2|(d[c+4>>0]|0)|(d[c+6>>0]|0)<<4|(d[c+7>>0]|0)<<6)<<8|((d[c+9>>0]|0)<<2|(d[c+8>>0]|0)|(d[c+10>>0]|0)<<4|(d[c+11>>0]|0)<<6)<<16|((d[c+13>>0]|0)<<2|(d[c+12>>0]|0)|(d[c+14>>0]|0)<<4|(d[c+15>>0]|0)<<6)<<24;f=b;g=f+16|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(g|0));f=e;e=0;a:while(1){g=e<<2;h=f;i=0;while(1){if((i|e)>>>0>=4){j=4;break a}k=i+g|0;l=d[c+k>>0]|0;m=((h|0)==0&1)+h|0;n=((m&65535)*36969|0)+(m>>>16)|0;m=((n|0)==0&1)+n|0;o=((m&65535)*36969|0)+(m>>>16)|0;m=(((o&65535^o>>>16)*6|0)>>>16)+(((n&65535^n>>>16)*6|0)>>>16)|0;b:do switch(m|0){case 0:{p=l+-2|0;break}case 10:{p=l+2|0;break}default:if(m>>>0<3){p=l+-1|0;break b}else{p=l+(m>>>0>7&1)|0;break b}}while(0);a[b+k>>0]=(p|0)<0?0:(p|0)>3?3:p&255;i=i+1|0;if(i>>>0>=4){q=o;break}else h=o}h=e+1|0;if(h>>>0<4){f=q;e=h}else{j=13;break}}if((j|0)==4)ma(645031,644812,151,645050);else if((j|0)==13)return}function Db(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0;if((e|0)<4){f=b;g=f+16|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(g|0));a[b>>0]=a[(d[c>>0]|0)+(645118+(e<<2))>>0]|0;a[b+1>>0]=a[(d[c+1>>0]|0)+(645118+(e<<2))>>0]|0;a[b+2>>0]=a[(d[c+2>>0]|0)+(645118+(e<<2))>>0]|0;a[b+3>>0]=a[(d[c+3>>0]|0)+(645118+(e<<2))>>0]|0;a[b+4>>0]=a[(d[c+4>>0]|0)+(645118+(e<<2))>>0]|0;a[b+5>>0]=a[(d[c+5>>0]|0)+(645118+(e<<2))>>0]|0;a[b+6>>0]=a[(d[c+6>>0]|0)+(645118+(e<<2))>>0]|0;a[b+7>>0]=a[(d[c+7>>0]|0)+(645118+(e<<2))>>0]|0;a[b+8>>0]=a[(d[c+8>>0]|0)+(645118+(e<<2))>>0]|0;a[b+9>>0]=a[(d[c+9>>0]|0)+(645118+(e<<2))>>0]|0;a[b+10>>0]=a[(d[c+10>>0]|0)+(645118+(e<<2))>>0]|0;a[b+11>>0]=a[(d[c+11>>0]|0)+(645118+(e<<2))>>0]|0;a[b+12>>0]=a[(d[c+12>>0]|0)+(645118+(e<<2))>>0]|0;a[b+13>>0]=a[(d[c+13>>0]|0)+(645118+(e<<2))>>0]|0;a[b+14>>0]=a[(d[c+14>>0]|0)+(645118+(e<<2))>>0]|0;a[b+15>>0]=a[(d[c+15>>0]|0)+(645118+(e<<2))>>0]|0;return}else ma(645089,644812,239,645105)}function Eb(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=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;d=i;i=i+16|0;e=d;f=d+8|0;g=b;h=g+16|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));g=0;a:while(1){h=g<<2;j=-1+g|0;k=j>>>0>3;l=g>>>0>3;m=1+g|0;n=m>>>0>3;o=m<<2;p=g<<2;q=j<<2;r=0;do{s=r+-1|0;t=s>>>0>3;u=r+1|0;v=u>>>0>3;if(!k){if(t)w=0;else{if((s|j)>>>0>=4){x=6;break a}a[f>>0]=a[c+(s+q)>>0]|0;w=1}if((r|j)>>>0>=4){x=6;break a}y=w+1|0;a[f+w>>0]=a[c+(r+q)>>0]|0;if(v)z=y;else{if((u|j)>>>0>=4){x=6;break a}a[f+y>>0]=a[c+(u+q)>>0]|0;z=y+1|0}}else z=0;if(!l){if(t)A=z;else{if((s|g)>>>0>=4){x=6;break a}a[f+z>>0]=a[c+(s+p)>>0]|0;A=z+1|0}if(v)B=A;else{if((u|g)>>>0>=4){x=6;break a}a[f+A>>0]=a[c+(u+p)>>0]|0;B=A+1|0}}else B=z;if(!n){if(t)C=B;else{if((s|m)>>>0>=4){x=6;break a}a[f+B>>0]=a[c+(s+o)>>0]|0;C=B+1|0}if((r|m)>>>0>=4){x=6;break a}s=C+1|0;a[f+C>>0]=a[c+(r+o)>>0]|0;if(v)D=s;else{if((u|m)>>>0>=4){x=6;break a}a[f+s>>0]=a[c+(u+o)>>0]|0;D=s+1|0}}else D=B;Ic(f,f+D|0,e);if((r|g)>>>0>=4){x=9;break a}a[b+(r+h)>>0]=a[f+(D>>>1)>>0]|0;r=r+1|0}while(r>>>0<4);g=g+1|0;if(g>>>0>=4){x=12;break}}if((x|0)==6)ma(645031,644812,151,645050);else if((x|0)==9)ma(645031,644812,152,645050);else if((x|0)==12){i=d;return}}function Fb(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,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;f=c[d>>2]|0;d=f&255;g=f>>>5;h=f>>>10&63;i=f>>>13;j=f>>>18&63;f=d<<3&248|d>>>2;d=c[509152+(e<<4)>>2]|0;k=f+d|0;if(k>>>0>255)if((k|0)<0){l=0;m=3}else n=255;else{l=k;m=3}if((m|0)==3)n=l;l=g&248|h;h=d+l|0;if(h>>>0>255)if((h|0)<0){o=0;m=6}else p=255;else{o=h;m=6}if((m|0)==6)p=o;o=i&248|j;j=d+o|0;if(j>>>0>255)if((j|0)<0){q=0;m=9}else r=255;else{q=j;m=9}if((m|0)==9)r=q;a[b>>0]=n;a[b+1>>0]=p;a[b+2>>0]=r;a[b+3>>0]=-1;r=b+4|0;p=c[509152+(e<<4)+4>>2]|0;n=p+f|0;if(n>>>0>255)if((n|0)<0){s=0;m=12}else t=255;else{s=n;m=12}if((m|0)==12)t=s;s=p+l|0;if(s>>>0>255)if((s|0)<0){u=0;m=15}else v=255;else{u=s;m=15}if((m|0)==15)v=u;u=p+o|0;if(u>>>0>255)if((u|0)<0){w=0;m=18}else x=255;else{w=u;m=18}if((m|0)==18)x=w;a[r>>0]=t;a[r+1>>0]=v;a[r+2>>0]=x;a[r+3>>0]=-1;r=b+8|0;x=c[509152+(e<<4)+8>>2]|0;v=x+f|0;if(v>>>0>255)if((v|0)<0){y=0;m=21}else z=255;else{y=v;m=21}if((m|0)==21)z=y;y=x+l|0;if(y>>>0>255)if((y|0)<0){A=0;m=24}else B=255;else{A=y;m=24}if((m|0)==24)B=A;A=x+o|0;if(A>>>0>255)if((A|0)<0){C=0;m=27}else D=255;else{C=A;m=27}if((m|0)==27)D=C;a[r>>0]=z;a[r+1>>0]=B;a[r+2>>0]=D;a[r+3>>0]=-1;r=b+12|0;b=c[509152+(e<<4)+12>>2]|0;e=b+f|0;if(e>>>0>255)if((e|0)<0){E=0;m=30}else F=255;else{E=e;m=30}if((m|0)==30)F=E;E=b+l|0;if(E>>>0>255)if((E|0)<0){G=0;m=33}else H=255;else{G=E;m=33}if((m|0)==33)H=G;G=b+o|0;if(G>>>0>255)if((G|0)<0)I=0;else{J=255;K=F&255;a[r>>0]=K;L=H&255;M=r+1|0;a[M>>0]=L;N=J&255;O=r+2|0;a[O>>0]=N;P=r+3|0;a[P>>0]=-1;return}else I=G;J=I;K=F&255;a[r>>0]=K;L=H&255;M=r+1|0;a[M>>0]=L;N=J&255;O=r+2|0;a[O>>0]=N;P=r+3|0;a[P>>0]=-1;return}function Gb(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,s=0,t=0;e=b+8|0;f=c[e>>2]|0;g=b+4|0;h=c[g>>2]|0;i=h;if(f-i>>4>>>0>=d>>>0){j=d;k=h;do{l=k;m=l+16|0;do{a[l>>0]=0;l=l+1|0}while((l|0)<(m|0));k=(c[g>>2]|0)+16|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[b>>2]|0;k=(i-j>>4)+d|0;if(k>>>0>268435455)Zb(b);i=j;j=f-i|0;if(j>>4>>>0<134217727){f=j>>3;j=f>>>0<k>>>0?k:f;f=(c[g>>2]|0)-i>>4;if(!j){n=0;o=0;p=f}else{q=j;r=f;s=8}}else{q=268435455;r=(c[g>>2]|0)-i>>4;s=8}if((s|0)==8){n=q;o=_b(q<<4)|0;p=r}r=o+(p<<4)|0;q=o+(n<<4)|0;n=d;d=r;s=r;while(1){l=d;m=l+16|0;do{a[l>>0]=0;l=l+1|0}while((l|0)<(m|0));d=s+16|0;r=d;n=n+-1|0;if(!n){t=r;break}else s=r}s=c[b>>2]|0;n=(c[g>>2]|0)-s|0;d=o+(p-(n>>4)<<4)|0;Sc(d|0,s|0,n|0)|0;c[b>>2]=d;c[g>>2]=t;c[e>>2]=q;if(!s)return;$b(s);return}function Hb(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;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>3>>>0>=b>>>0){i=b;j=g;do{g=j;c[g>>2]=0;c[g+4>>2]=0;j=(c[f>>2]|0)+8|0;c[f>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=c[a>>2]|0;j=(h-i>>3)+b|0;if(j>>>0>536870911)Zb(a);h=i;i=e-h|0;if(i>>3>>>0<268435455){e=i>>2;i=e>>>0<j>>>0?j:e;e=(c[f>>2]|0)-h>>3;if(!i){k=0;l=0;m=e}else{n=i;o=e;p=8}}else{n=536870911;o=(c[f>>2]|0)-h>>3;p=8}if((p|0)==8){k=n;l=_b(n<<3)|0;m=o}o=l+(m<<3)|0;n=l+(k<<3)|0;k=b;b=o;p=o;while(1){o=b;c[o>>2]=0;c[o+4>>2]=0;b=p+8|0;o=b;k=k+-1|0;if(!k){q=o;break}else p=o}p=c[a>>2]|0;k=(c[f>>2]|0)-p|0;b=l+(m-(k>>3)<<3)|0;Sc(b|0,p|0,k|0)|0;c[a>>2]=b;c[f>>2]=q;c[d>>2]=n;if(!p)return;$b(p);return}function Ib(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=b+8|0;f=c[e>>2]|0;g=b+4|0;h=c[g>>2]|0;i=h;if(((f-i|0)/7|0)>>>0>=d>>>0){j=d;k=h;do{a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=0;a[k+4>>0]=0;a[k+5>>0]=0;a[k+6>>0]=0;k=(c[g>>2]|0)+7|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[b>>2]|0;k=((i-j|0)/7|0)+d|0;if(k>>>0>613566756)Zb(b);i=j;j=(f-i|0)/7|0;if(j>>>0<306783378){f=j<<1;j=f>>>0<k>>>0?k:f;f=((c[g>>2]|0)-i|0)/7|0;if(!j){l=0;m=0;n=f}else{o=j;p=f;q=8}}else{o=613566756;p=((c[g>>2]|0)-i|0)/7|0;q=8}if((q|0)==8){l=o;m=_b(o*7|0)|0;n=p}p=m+(n*7|0)|0;o=m+(l*7|0)|0;l=d;d=p;q=p;while(1){a[d>>0]=0;a[d+1>>0]=0;a[d+2>>0]=0;a[d+3>>0]=0;a[d+4>>0]=0;a[d+5>>0]=0;a[d+6>>0]=0;d=q+7|0;p=d;l=l+-1|0;if(!l){r=p;break}else q=p}q=c[b>>2]|0;l=(c[g>>2]|0)-q|0;d=m+((((l|0)/-7|0)+n|0)*7|0)|0;Sc(d|0,q|0,l|0)|0;c[b>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;$b(q);return}function Jb(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;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;h=g;if(e-h>>2>>>0>=b>>>0){Pc(g|0,0,b<<2|0)|0;c[f>>2]=g+(b<<2);return}g=c[a>>2]|0;i=g;j=(h-i>>2)+b|0;if(j>>>0>1073741823)Zb(a);h=g;k=e-h|0;if(k>>2>>>0<536870911){e=k>>1;k=e>>>0<j>>>0?j:e;e=(c[f>>2]|0)-h|0;j=e>>2;if(!k){l=0;m=0;n=j;o=e}else{p=k;q=j;r=e;s=8}}else{e=(c[f>>2]|0)-h|0;p=1073741823;q=e>>2;r=e;s=8}if((s|0)==8){l=p;m=_b(p<<2)|0;n=q;o=r}Pc(m+(n<<2)|0,0,b<<2|0)|0;Sc(m|0,g|0,o|0)|0;c[a>>2]=m;c[f>>2]=m+(n+b<<2);c[d>>2]=m+(l<<2);if(!i)return;$b(i);return}function Kb(a,d){a=a|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=a+8|0;f=c[e>>2]|0;g=a+4|0;h=c[g>>2]|0;i=h;if(f-i>>2>>>0>=d>>>0){j=d;k=h;do{b[k>>1]=0;b[k+2>>1]=0>>>16;k=(c[g>>2]|0)+4|0;c[g>>2]=k;j=j+-1|0}while((j|0)!=0);return}j=c[a>>2]|0;k=(i-j>>2)+d|0;if(k>>>0>1073741823)Zb(a);i=j;j=f-i|0;if(j>>2>>>0<536870911){f=j>>1;j=f>>>0<k>>>0?k:f;f=(c[g>>2]|0)-i>>2;if(!j){l=0;m=0;n=f}else{o=j;p=f;q=8}}else{o=1073741823;p=(c[g>>2]|0)-i>>2;q=8}if((q|0)==8){l=o;m=_b(o<<2)|0;n=p}p=m+(n<<2)|0;o=m+(l<<2)|0;l=d;d=p;q=p;while(1){b[d>>1]=0;b[d+2>>1]=0>>>16;d=q+4|0;p=d;l=l+-1|0;if(!l){r=p;break}else q=p}q=c[a>>2]|0;l=(c[g>>2]|0)-q|0;d=m+(n-(l>>2)<<2)|0;Sc(d|0,q|0,l|0)|0;c[a>>2]=d;c[g>>2]=r;c[e>>2]=o;if(!q)return;$b(q);return}function Lb(a){a=a|0;Ya(a);return}function Mb(){return Xa()|0}function Nb(){var a=0,b=0;_a();if(c[127352]|0)return;a=_b(12)|0;b=c[127255]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;Za(a,b,492636);c[127352]=a;return}function Ob(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if(!((a|0)!=0&(b|0)!=0)){d=0;return d|0}e=_b(596)|0;f=e+4|0;ib(f,c[127352]|0);c[e+588>>2]=a;c[e+592>>2]=b;if(jb(f,a,b)|0){c[e>>2]=-559038751;d=e;return d|0}else{Yb(f);$b(e);d=0;return d|0}return 0}function Pb(a){a=a|0;if(!a)return;if((c[a>>2]|0)!=-559038751)ma(646550,646570,85,646589);Yb(a+4|0);$b(a);return}function Qb(a){a=a|0;var b=0,e=0,f=0,g=0;b=i;i=i+48|0;e=b;if(!a){f=0;i=b;return f|0}if((c[a>>2]|0)!=-559038751)ma(646550,646570,98,646601);g=ob(a+4|0,c[a+588>>2]|0,c[a+592>>2]|0,e,0,0)|0;f=g?d[e+40>>0]|0:0;i=b;return f|0}function Rb(a){a=a|0;var b=0;if(!a){b=0;return b|0}if((c[a>>2]|0)!=-559038751)ma(646550,646570,116,646621);b=lb(a+4|0,c[a+588>>2]|0,c[a+592>>2]|0)|0;return b|0}function Sb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+48|0;e=d;if(!a){f=0;i=d;return f|0}if((c[a>>2]|0)!=-559038751)ma(646550,646570,129,646642);g=mb(a+4|0,c[a+588>>2]|0,c[a+592>>2]|0,e,b)|0;f=g?c[e+4>>2]|0:0;i=d;return f|0}function Tb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;if(!a){i=e;return 0}if((c[a>>2]|0)==-559038751){g=nb(a+4|0,c[a+588>>2]|0,c[a+592>>2]|0,b,d,f,e+4|0,e)|0;i=e;return (g?c[f>>2]|0:0)|0}else ma(646550,646570,147,646663);return 0}function Ub(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;if(!a){i=e;return 0}if((c[a>>2]|0)==-559038751){g=nb(a+4|0,c[a+588>>2]|0,c[a+592>>2]|0,b,d,e+8|0,f,e)|0;i=e;return (g?c[f>>2]|0:0)|0}else ma(646550,646570,164,646685);return 0}function Vb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f;if(!a){h=0;i=f;return h|0}if((c[a>>2]|0)!=-559038751)ma(646550,646570,181,646708);if(e>>>0>7){h=0;i=f;return h|0}j=sb(e)|0;if(!(nb(a+4|0,c[a+588>>2]|0,c[a+592>>2]|0,b,d,f+8|0,f+4|0,g)|0)){h=0;i=f;return h|0}h=Z(c[g>>2]|0,j)|0;i=f;return h|0}function Wb(a){a=a|0;var b=0;if(!a){b=0;return b|0}if((c[a>>2]|0)!=-559038751)ma(646550,646570,203,646749);b=(pb(a+4|0,c[a+588>>2]|0,c[a+592>>2]|0)|0)&1;return b|0}function Xb(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;if(!a){j=0;return j|0}if((c[a>>2]|0)!=-559038751)ma(646550,646570,218,646773);if(g>>>0>7){j=0;return j|0}k=sb(g)|0;j=(rb(a+4|0,c[a+588>>2]|0,c[a+592>>2]|0,e,f,b,(d>>>0)/(k>>>0)|0,g,((i|0)!=0?4:0)|(h|0)!=0,0,0)|0)&1;return j|0}function Yb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+200|0;d=a+584|0;do{e=d;d=d+-12|0;f=c[d>>2]|0;g=f;if(f){h=e+-8|0;e=c[h>>2]|0;if((e|0)!=(f|0))c[h>>2]=e+(~((e+-4-g|0)>>>2)<<2);$b(f)}}while((d|0)!=(b|0));b=c[a+188>>2]|0;d=b;if(b){f=a+192|0;g=c[f>>2]|0;if((g|0)!=(b|0))c[f>>2]=g+(~((g+-4-d|0)>>>2)<<2);$b(b)}b=c[a+176>>2]|0;d=b;if(b){g=a+180|0;f=c[g>>2]|0;if((f|0)!=(b|0))c[g>>2]=f+(~((f+-4-d|0)>>>2)<<2);$b(b)}b=c[a+160>>2]|0;d=b;if(b){f=a+164|0;g=c[f>>2]|0;if((g|0)!=(b|0))c[f>>2]=g+(~((g+-2-d|0)>>>1)<<1);$b(b)}b=c[a+148>>2]|0;d=b;if(b){g=a+152|0;f=c[g>>2]|0;if((f|0)!=(b|0))c[g>>2]=f+(~((f+-4-d|0)>>>2)<<2);$b(b)}b=c[a+136>>2]|0;if(b){d=a+140|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;$b(b)}b=c[a+124>>2]|0;d=b;if(b){f=a+128|0;g=c[f>>2]|0;if((g|0)!=(b|0))c[f>>2]=g+(~((g+-2-d|0)>>>1)<<1);$b(b)}b=c[a+112>>2]|0;d=b;if(b){g=a+116|0;f=c[g>>2]|0;if((f|0)!=(b|0))c[g>>2]=f+(~((f+-4-d|0)>>>2)<<2);$b(b)}b=c[a+100>>2]|0;if(b){d=a+104|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;$b(b)}b=c[a+88>>2]|0;d=b;if(b){f=a+92|0;g=c[f>>2]|0;if((g|0)!=(b|0))c[f>>2]=g+(~((g+-2-d|0)>>>1)<<1);$b(b)}b=c[a+76>>2]|0;d=b;if(b){g=a+80|0;f=c[g>>2]|0;if((f|0)!=(b|0))c[g>>2]=f+(~((f+-4-d|0)>>>2)<<2);$b(b)}b=c[a+64>>2]|0;if(b){d=a+68|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;$b(b)}b=c[a+52>>2]|0;d=b;if(b){f=a+56|0;g=c[f>>2]|0;if((g|0)!=(b|0))c[f>>2]=g+(~((g+-2-d|0)>>>1)<<1);$b(b)}b=c[a+40>>2]|0;d=b;if(b){g=a+44|0;f=c[g>>2]|0;if((f|0)!=(b|0))c[g>>2]=f+(~((f+-4-d|0)>>>2)<<2);$b(b)}b=c[a+28>>2]|0;if(b){d=a+32|0;if((c[d>>2]|0)!=(b|0))c[d>>2]=b;$b(b)}b=c[a+12>>2]|0;if(b){d=a+16|0;f=c[d>>2]|0;if((f|0)!=(b|0))c[d>>2]=f+(~(((0-b+(f+-7)|0)>>>0)/7|0)*7|0);$b(b)}b=c[a>>2]|0;if(!b)return;f=a+4|0;a=c[f>>2]|0;if((a|0)!=(b|0))c[f>>2]=a+(~((a+-8-b|0)>>>3)<<3);$b(b);return}function Zb(a){a=a|0;ma(646938,646961,303,647036)}function _b(a){a=a|0;var b=0,d=0,e=0;b=(a|0)==0?1:a;a=Gc(b)|0;a:do if(!a){while(1){d=dc()|0;if(!d)break;La[d&0]();d=Gc(b)|0;if(d){e=d;break a}}d=na(4)|0;c[d>>2]=509420;za(d|0,8,1)}else e=a;while(0);return e|0}function $b(a){a=a|0;Hc(a);return}function ac(a){a=a|0;return}function bc(a){a=a|0;$b(a);return}function cc(a){a=a|0;return 647057}function dc(){var a=0;a=c[127358]|0;c[127358]=a+0;return a|0}function ec(a){a=a|0;return}function fc(a){a=a|0;return}function gc(a){a=a|0;return}function hc(a){a=a|0;return}function ic(a){a=a|0;return}function jc(a){a=a|0;$b(a);return}function kc(a){a=a|0;$b(a);return}function lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+64|0;f=e;if((a|0)!=(b|0))if((b|0)!=0?(g=pc(b,40,56,0)|0,(g|0)!=0):0){b=f;h=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(h|0));c[f>>2]=g;c[f+8>>2]=a;c[f+12>>2]=-1;c[f+48>>2]=1;Na[c[(c[g>>2]|0)+28>>2]&3](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];j=1}else j=0;k=j}else k=0;else k=1;i=e;return k|0}function mc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}h=d+24|0;if((c[h>>2]|0)==2)c[h>>2]=f}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function nc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))mc(0,b,d,e);return}function oc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((a|0)==(c[b+8>>2]|0))mc(0,b,d,e);else{f=c[a+8>>2]|0;Na[c[(c[f>>2]|0)+28>>2]&3](f,b,d,e)}return}function pc(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+64|0;j=h;k=c[d>>2]|0;l=d+(c[k+-8>>2]|0)|0;m=c[k+-4>>2]|0;c[j>>2]=f;c[j+4>>2]=d;c[j+8>>2]=e;c[j+12>>2]=g;g=j+16|0;e=j+20|0;d=j+24|0;k=j+28|0;n=j+32|0;o=j+40|0;p=(m|0)==(f|0);q=g;r=q+36|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(r|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(p){c[j+48>>2]=1;Ma[c[(c[f>>2]|0)+20>>2]&3](f,j,l,l,1,0);s=(c[d>>2]|0)==1?l:0}else{Ia[c[(c[m>>2]|0)+24>>2]&3](m,j,l,1,0);switch(c[j+36>>2]|0){case 0:{s=(c[o>>2]|0)==1&(c[k>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break}case 1:break;default:{s=0;break a}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[k>>2]|0)==1&(c[n>>2]|0)==1):0){s=0;break}s=c[g>>2]|0}while(0);i=h;return s|0}function qc(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;if(!h){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;a[d+54>>0]=1;break}h=d+24|0;b=c[h>>2]|0;if((b|0)==2){c[h>>2]=g;i=g}else i=b;if((i|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function rc(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){h=c[b+8>>2]|0;Ia[c[(c[h>>2]|0)+24>>2]&3](h,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;i=d+44|0;if((c[i>>2]|0)==4)break;j=d+52|0;a[j>>0]=0;k=d+53|0;a[k>>0]=0;l=c[b+8>>2]|0;Ma[c[(c[l>>2]|0)+20>>2]&3](l,d,e,e,1,g);if(a[k>>0]|0){if(!(a[j>>0]|0)){m=1;n=13}}else{m=0;n=13}do if((n|0)==13){c[h>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(m)break}else n=16;if((n|0)==16?m:0)break;c[i>>2]=4;break a}while(0);c[i>>2]=3;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function sc(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(g=d+28|0,(c[g>>2]|0)!=1):0)c[g>>2]=f}else if((b|0)==(c[d>>2]|0)){if((c[d+16>>2]|0)!=(e|0)?(g=d+20|0,(c[g>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[g>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function tc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;if((a|0)==(c[b+8>>2]|0))qc(0,b,d,e,f);else{h=c[a+8>>2]|0;Ma[c[(c[h>>2]|0)+20>>2]&3](h,b,d,e,f,g)}return}function uc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))qc(0,b,d,e,f);return}function vc(){var a=0;if(!(c[127379]|0))a=509564;else a=c[(va()|0)+60>>2]|0;return a|0}function wc(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(vc()|0)>>2]=0-a;b=-1}else b=a;return b|0}function xc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Ec(a)|0;break}d=(yc(a)|0)==0;e=Ec(a)|0;if(d)b=e;else{zc(a);b=e}}else{if(!(c[127390]|0))f=0;else f=xc(c[127390]|0)|0;Aa(509544);e=c[127385]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=yc(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=Ec(d)|0|e;else i=e;if(h)zc(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}xa(509544);b=g}while(0);return b|0}function yc(a){a=a|0;return 0}function zc(a){a=a|0;return}function Ac(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=wc(ka(6,d|0)|0)|0;i=b;return a|0}function Bc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((wc(Ea(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;i=e;return h|0}function Cc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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;e=i;i=i+48|0;f=e+16|0;g=e;h=e+32|0;j=a+28|0;k=c[j>>2]|0;c[h>>2]=k;l=a+20|0;m=(c[l>>2]|0)-k|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=a+60|0;k=a+44|0;n=h;h=2;o=m+d|0;while(1){if(!(c[127379]|0)){c[f>>2]=c[b>>2];c[f+4>>2]=n;c[f+8>>2]=h;p=wc(Fa(146,f|0)|0)|0}else{Ca(8,a|0);c[g>>2]=c[b>>2];c[g+4>>2]=n;c[g+8>>2]=h;m=wc(Fa(146,g|0)|0)|0;ja(0);p=m}if((o|0)==(p|0)){q=6;break}if((p|0)<0){r=n;s=h;q=8;break}m=o-p|0;t=c[n+4>>2]|0;if(p>>>0<=t>>>0)if((h|0)==2){c[j>>2]=(c[j>>2]|0)+p;u=t;v=p;w=n;x=2}else{u=t;v=p;w=n;x=h}else{y=c[k>>2]|0;c[j>>2]=y;c[l>>2]=y;u=c[n+12>>2]|0;v=p-t|0;w=n+8|0;x=h+-1|0}c[w>>2]=(c[w>>2]|0)+v;c[w+4>>2]=u-v;n=w;h=x;o=m}if((q|0)==6){o=c[k>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);k=o;c[j>>2]=k;c[l>>2]=k;z=d}else if((q|0)==8){c[a+16>>2]=0;c[j>>2]=0;c[l>>2]=0;c[a>>2]=c[a>>2]|32;if((s|0)==2)z=0;else z=d-(c[r+4>>2]|0)|0}i=e;return z|0}function Dc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+80|0;g=f;c[b+36>>2]=4;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21505,c[g+8>>2]=f+12,(wa(54,g|0)|0)!=0):0)a[b+75>>0]=-1;g=Cc(b,d,e)|0;i=f;return g|0}function Ec(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(Ha[c[a+36>>2]&7](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0<i>>>0)Ha[c[a+40>>2]&7](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function Fc(a){a=a|0;if(!(c[a+68>>2]|0))zc(a);return}function Gc(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,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,ra=0,sa=0,ta=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ca=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;do if(a>>>0<245){b=a>>>0<11?16:a+11&-8;d=b>>>3;e=c[127420]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=509720+(h<<2)|0;j=509720+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do if((i|0)!=(l|0)){if(l>>>0<(c[127424]|0)>>>0)Ba();m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else Ba()}else c[127420]=e&~(1<<g);while(0);l=g<<3;c[h+4>>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}j=c[127422]|0;if(b>>>0>j>>>0){if(f){l=2<<d;i=f<<d&(l|0-l);l=(i&0-i)+-1|0;i=l>>>12&16;m=l>>>i;l=m>>>5&8;o=m>>>l;m=o>>>2&4;p=o>>>m;o=p>>>1&2;q=p>>>o;p=q>>>1&1;r=(l|i|m|o|p)+(q>>>p)|0;p=r<<1;q=509720+(p<<2)|0;o=509720+(p+2<<2)|0;p=c[o>>2]|0;m=p+8|0;i=c[m>>2]|0;do if((q|0)!=(i|0)){if(i>>>0<(c[127424]|0)>>>0)Ba();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[127422]|0;break}else Ba()}else{c[127420]=e&~(1<<r);s=j}while(0);j=r<<3;e=j-b|0;c[p+4>>2]=b|3;i=p+b|0;c[p+(b|4)>>2]=e|1;c[p+j>>2]=e;if(s){j=c[127425]|0;o=s>>>3;q=o<<1;d=509720+(q<<2)|0;f=c[127420]|0;k=1<<o;if(f&k){o=509720+(q+2<<2)|0;h=c[o>>2]|0;if(h>>>0<(c[127424]|0)>>>0)Ba();else{t=o;u=h}}else{c[127420]=f|k;t=509720+(q+2<<2)|0;u=d}c[t>>2]=j;c[u+12>>2]=j;c[j+8>>2]=u;c[j+12>>2]=d}c[127422]=e;c[127425]=i;n=m;return n|0}i=c[127421]|0;if(i){e=(i&0-i)+-1|0;i=e>>>12&16;d=e>>>i;e=d>>>5&8;j=d>>>e;d=j>>>2&4;q=j>>>d;j=q>>>1&2;k=q>>>j;q=k>>>1&1;f=c[509984+((e|i|d|j|q)+(k>>>q)<<2)>>2]|0;q=(c[f+4>>2]&-8)-b|0;k=f;j=f;while(1){f=c[k+16>>2]|0;if(!f){d=c[k+20>>2]|0;if(!d){v=q;w=j;break}else x=d}else x=f;f=(c[x+4>>2]&-8)-b|0;d=f>>>0<q>>>0;q=d?f:q;k=x;j=d?x:j}j=c[127424]|0;if(w>>>0<j>>>0)Ba();k=w+b|0;if(w>>>0>=k>>>0)Ba();q=c[w+24>>2]|0;m=c[w+12>>2]|0;do if((m|0)==(w|0)){p=w+20|0;r=c[p>>2]|0;if(!r){d=w+16|0;f=c[d>>2]|0;if(!f){y=0;break}else{z=f;A=d}}else{z=r;A=p}while(1){p=z+20|0;r=c[p>>2]|0;if(r){z=r;A=p;continue}p=z+16|0;r=c[p>>2]|0;if(!r){B=z;C=A;break}else{z=r;A=p}}if(C>>>0<j>>>0)Ba();else{c[C>>2]=0;y=B;break}}else{p=c[w+8>>2]|0;if(p>>>0<j>>>0)Ba();r=p+12|0;if((c[r>>2]|0)!=(w|0))Ba();d=m+8|0;if((c[d>>2]|0)==(w|0)){c[r>>2]=m;c[d>>2]=p;y=m;break}else Ba()}while(0);do if(q){m=c[w+28>>2]|0;j=509984+(m<<2)|0;if((w|0)==(c[j>>2]|0)){c[j>>2]=y;if(!y){c[127421]=c[127421]&~(1<<m);break}}else{if(q>>>0<(c[127424]|0)>>>0)Ba();m=q+16|0;if((c[m>>2]|0)==(w|0))c[m>>2]=y;else c[q+20>>2]=y;if(!y)break}m=c[127424]|0;if(y>>>0<m>>>0)Ba();c[y+24>>2]=q;j=c[w+16>>2]|0;do if(j)if(j>>>0<m>>>0)Ba();else{c[y+16>>2]=j;c[j+24>>2]=y;break}while(0);j=c[w+20>>2]|0;if(j)if(j>>>0<(c[127424]|0)>>>0)Ba();else{c[y+20>>2]=j;c[j+24>>2]=y;break}}while(0);if(v>>>0<16){q=v+b|0;c[w+4>>2]=q|3;j=w+(q+4)|0;c[j>>2]=c[j>>2]|1}else{c[w+4>>2]=b|3;c[w+(b|4)>>2]=v|1;c[w+(v+b)>>2]=v;j=c[127422]|0;if(j){q=c[127425]|0;m=j>>>3;j=m<<1;p=509720+(j<<2)|0;d=c[127420]|0;r=1<<m;if(d&r){m=509720+(j+2<<2)|0;f=c[m>>2]|0;if(f>>>0<(c[127424]|0)>>>0)Ba();else{D=m;E=f}}else{c[127420]=d|r;D=509720+(j+2<<2)|0;E=p}c[D>>2]=q;c[E+12>>2]=q;c[q+8>>2]=E;c[q+12>>2]=p}c[127422]=v;c[127425]=k}n=w+8|0;return n|0}else F=b}else F=b}else if(a>>>0<=4294967231){p=a+11|0;q=p&-8;j=c[127421]|0;if(j){r=0-q|0;d=p>>>8;if(d)if(q>>>0>16777215)G=31;else{p=(d+1048320|0)>>>16&8;f=d<<p;d=(f+520192|0)>>>16&4;m=f<<d;f=(m+245760|0)>>>16&2;i=14-(d|p|f)+(m<<f>>>15)|0;G=q>>>(i+7|0)&1|i<<1}else G=0;i=c[509984+(G<<2)>>2]|0;a:do if(!i){H=r;I=0;J=0;K=86}else{f=r;m=0;p=q<<((G|0)==31?0:25-(G>>>1)|0);d=i;e=0;while(1){h=c[d+4>>2]&-8;o=h-q|0;if(o>>>0<f>>>0)if((h|0)==(q|0)){L=o;M=d;N=d;K=90;break a}else{O=o;P=d}else{O=f;P=e}o=c[d+20>>2]|0;d=c[d+16+(p>>>31<<2)>>2]|0;h=(o|0)==0|(o|0)==(d|0)?m:o;if(!d){H=O;I=h;J=P;K=86;break}else{f=O;m=h;p=p<<1;e=P}}}while(0);if((K|0)==86){if((I|0)==0&(J|0)==0){i=2<<G;r=j&(i|0-i);if(!r){F=q;break}i=(r&0-r)+-1|0;r=i>>>12&16;b=i>>>r;i=b>>>5&8;k=b>>>i;b=k>>>2&4;e=k>>>b;k=e>>>1&2;p=e>>>k;e=p>>>1&1;Q=c[509984+((i|r|b|k|e)+(p>>>e)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=90}}if((K|0)==90)while(1){K=0;e=(c[M+4>>2]&-8)-q|0;p=e>>>0<L>>>0;k=p?e:L;e=p?M:N;p=c[M+16>>2]|0;if(p){L=k;M=p;N=e;K=90;continue}M=c[M+20>>2]|0;if(!M){S=k;T=e;break}else{L=k;N=e;K=90}}if((T|0)!=0?S>>>0<((c[127422]|0)-q|0)>>>0:0){j=c[127424]|0;if(T>>>0<j>>>0)Ba();e=T+q|0;if(T>>>0>=e>>>0)Ba();k=c[T+24>>2]|0;p=c[T+12>>2]|0;do if((p|0)==(T|0)){b=T+20|0;r=c[b>>2]|0;if(!r){i=T+16|0;m=c[i>>2]|0;if(!m){U=0;break}else{V=m;W=i}}else{V=r;W=b}while(1){b=V+20|0;r=c[b>>2]|0;if(r){V=r;W=b;continue}b=V+16|0;r=c[b>>2]|0;if(!r){X=V;Y=W;break}else{V=r;W=b}}if(Y>>>0<j>>>0)Ba();else{c[Y>>2]=0;U=X;break}}else{b=c[T+8>>2]|0;if(b>>>0<j>>>0)Ba();r=b+12|0;if((c[r>>2]|0)!=(T|0))Ba();i=p+8|0;if((c[i>>2]|0)==(T|0)){c[r>>2]=p;c[i>>2]=b;U=p;break}else Ba()}while(0);do if(k){p=c[T+28>>2]|0;j=509984+(p<<2)|0;if((T|0)==(c[j>>2]|0)){c[j>>2]=U;if(!U){c[127421]=c[127421]&~(1<<p);break}}else{if(k>>>0<(c[127424]|0)>>>0)Ba();p=k+16|0;if((c[p>>2]|0)==(T|0))c[p>>2]=U;else c[k+20>>2]=U;if(!U)break}p=c[127424]|0;if(U>>>0<p>>>0)Ba();c[U+24>>2]=k;j=c[T+16>>2]|0;do if(j)if(j>>>0<p>>>0)Ba();else{c[U+16>>2]=j;c[j+24>>2]=U;break}while(0);j=c[T+20>>2]|0;if(j)if(j>>>0<(c[127424]|0)>>>0)Ba();else{c[U+20>>2]=j;c[j+24>>2]=U;break}}while(0);b:do if(S>>>0>=16){c[T+4>>2]=q|3;c[T+(q|4)>>2]=S|1;c[T+(S+q)>>2]=S;k=S>>>3;if(S>>>0<256){j=k<<1;p=509720+(j<<2)|0;b=c[127420]|0;i=1<<k;if(b&i){k=509720+(j+2<<2)|0;r=c[k>>2]|0;if(r>>>0<(c[127424]|0)>>>0)Ba();else{Z=k;_=r}}else{c[127420]=b|i;Z=509720+(j+2<<2)|0;_=p}c[Z>>2]=e;c[_+12>>2]=e;c[T+(q+8)>>2]=_;c[T+(q+12)>>2]=p;break}p=S>>>8;if(p)if(S>>>0>16777215)$=31;else{j=(p+1048320|0)>>>16&8;i=p<<j;p=(i+520192|0)>>>16&4;b=i<<p;i=(b+245760|0)>>>16&2;r=14-(p|j|i)+(b<<i>>>15)|0;$=S>>>(r+7|0)&1|r<<1}else $=0;r=509984+($<<2)|0;c[T+(q+28)>>2]=$;c[T+(q+20)>>2]=0;c[T+(q+16)>>2]=0;i=c[127421]|0;b=1<<$;if(!(i&b)){c[127421]=i|b;c[r>>2]=e;c[T+(q+24)>>2]=r;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break}b=c[r>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(S|0)){r=S<<(($|0)==31?0:25-($>>>1)|0);i=b;while(1){j=i+16+(r>>>31<<2)|0;p=c[j>>2]|0;if(!p){aa=j;ba=i;break}if((c[p+4>>2]&-8|0)==(S|0)){ca=p;break c}else{r=r<<1;i=p}}if(aa>>>0<(c[127424]|0)>>>0)Ba();else{c[aa>>2]=e;c[T+(q+24)>>2]=ba;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break b}}else ca=b;while(0);b=ca+8|0;i=c[b>>2]|0;r=c[127424]|0;if(i>>>0>=r>>>0&ca>>>0>=r>>>0){c[i+12>>2]=e;c[b>>2]=e;c[T+(q+8)>>2]=i;c[T+(q+12)>>2]=ca;c[T+(q+24)>>2]=0;break}else Ba()}else{i=S+q|0;c[T+4>>2]=i|3;b=T+(i+4)|0;c[b>>2]=c[b>>2]|1}while(0);n=T+8|0;return n|0}else F=q}else F=q}else F=-1;while(0);T=c[127422]|0;if(T>>>0>=F>>>0){S=T-F|0;ca=c[127425]|0;if(S>>>0>15){c[127425]=ca+F;c[127422]=S;c[ca+(F+4)>>2]=S|1;c[ca+T>>2]=S;c[ca+4>>2]=F|3}else{c[127422]=0;c[127425]=0;c[ca+4>>2]=T|3;S=ca+(T+4)|0;c[S>>2]=c[S>>2]|1}n=ca+8|0;return n|0}ca=c[127423]|0;if(ca>>>0>F>>>0){S=ca-F|0;c[127423]=S;ca=c[127426]|0;c[127426]=ca+F;c[ca+(F+4)>>2]=S|1;c[ca+4>>2]=F|3;n=ca+8|0;return n|0}do if(!(c[127538]|0)){ca=ua(30)|0;if(!(ca+-1&ca)){c[127540]=ca;c[127539]=ca;c[127541]=-1;c[127542]=-1;c[127543]=0;c[127531]=0;c[127538]=(Da(0)|0)&-16^1431655768;break}else Ba()}while(0);ca=F+48|0;S=c[127540]|0;T=F+47|0;ba=S+T|0;aa=0-S|0;S=ba&aa;if(S>>>0<=F>>>0){n=0;return n|0}$=c[127530]|0;if(($|0)!=0?(_=c[127528]|0,Z=_+S|0,Z>>>0<=_>>>0|Z>>>0>$>>>0):0){n=0;return n|0}d:do if(!(c[127531]&4)){$=c[127426]|0;e:do if($){Z=510128;while(1){_=c[Z>>2]|0;if(_>>>0<=$>>>0?(U=Z+4|0,(_+(c[U>>2]|0)|0)>>>0>$>>>0):0){da=Z;ea=U;break}Z=c[Z+8>>2]|0;if(!Z){K=174;break e}}Z=ba-(c[127423]|0)&aa;if(Z>>>0<2147483647){U=qa(Z|0)|0;_=(U|0)==((c[da>>2]|0)+(c[ea>>2]|0)|0);X=_?Z:0;if(_)if((U|0)==(-1|0))fa=X;else{ga=U;ha=X;K=194;break d}else{ia=U;ja=Z;ka=X;K=184}}else fa=0}else K=174;while(0);do if((K|0)==174){$=qa(0)|0;if(($|0)!=(-1|0)){q=$;X=c[127539]|0;Z=X+-1|0;if(!(Z&q))la=S;else la=S-q+(Z+q&0-X)|0;X=c[127528]|0;q=X+la|0;if(la>>>0>F>>>0&la>>>0<2147483647){Z=c[127530]|0;if((Z|0)!=0?q>>>0<=X>>>0|q>>>0>Z>>>0:0){fa=0;break}Z=qa(la|0)|0;q=(Z|0)==($|0);X=q?la:0;if(q){ga=$;ha=X;K=194;break d}else{ia=Z;ja=la;ka=X;K=184}}else fa=0}else fa=0}while(0);f:do if((K|0)==184){X=0-ja|0;do if(ca>>>0>ja>>>0&(ja>>>0<2147483647&(ia|0)!=(-1|0))?(Z=c[127540]|0,$=T-ja+Z&0-Z,$>>>0<2147483647):0)if((qa($|0)|0)==(-1|0)){qa(X|0)|0;fa=ka;break f}else{ma=$+ja|0;break}else ma=ja;while(0);if((ia|0)==(-1|0))fa=ka;else{ga=ia;ha=ma;K=194;break d}}while(0);c[127531]=c[127531]|4;na=fa;K=191}else{na=0;K=191}while(0);if((((K|0)==191?S>>>0<2147483647:0)?(fa=qa(S|0)|0,S=qa(0)|0,fa>>>0<S>>>0&((fa|0)!=(-1|0)&(S|0)!=(-1|0))):0)?(ma=S-fa|0,S=ma>>>0>(F+40|0)>>>0,S):0){ga=fa;ha=S?ma:na;K=194}if((K|0)==194){na=(c[127528]|0)+ha|0;c[127528]=na;if(na>>>0>(c[127529]|0)>>>0)c[127529]=na;na=c[127426]|0;g:do if(na){ma=510128;do{S=c[ma>>2]|0;fa=ma+4|0;ia=c[fa>>2]|0;if((ga|0)==(S+ia|0)){oa=S;pa=fa;ra=ia;sa=ma;K=204;break}ma=c[ma+8>>2]|0}while((ma|0)!=0);if(((K|0)==204?(c[sa+12>>2]&8|0)==0:0)?na>>>0<ga>>>0&na>>>0>=oa>>>0:0){c[pa>>2]=ra+ha;ma=(c[127423]|0)+ha|0;ia=na+8|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ma-fa|0;c[127426]=na+fa;c[127423]=ia;c[na+(fa+4)>>2]=ia|1;c[na+(ma+4)>>2]=40;c[127427]=c[127542];break}ma=c[127424]|0;if(ga>>>0<ma>>>0){c[127424]=ga;ta=ga}else ta=ma;ma=ga+ha|0;ia=510128;while(1){if((c[ia>>2]|0)==(ma|0)){va=ia;wa=ia;K=212;break}ia=c[ia+8>>2]|0;if(!ia){xa=510128;break}}if((K|0)==212)if(!(c[wa+12>>2]&8)){c[va>>2]=ga;ia=wa+4|0;c[ia>>2]=(c[ia>>2]|0)+ha;ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ga+(ha+8)|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ga+(fa+ha)|0;S=ma+F|0;ka=ga+S|0;ja=ia-(ga+ma)-F|0;c[ga+(ma+4)>>2]=F|3;h:do if((ia|0)!=(na|0)){if((ia|0)==(c[127425]|0)){T=(c[127422]|0)+ja|0;c[127422]=T;c[127425]=ka;c[ga+(S+4)>>2]=T|1;c[ga+(T+S)>>2]=T;break}T=ha+4|0;ca=c[ga+(T+fa)>>2]|0;if((ca&3|0)==1){la=ca&-8;ea=ca>>>3;i:do if(ca>>>0>=256){da=c[ga+((fa|24)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;do if((aa|0)==(ia|0)){ba=fa|16;X=ga+(T+ba)|0;$=c[X>>2]|0;if(!$){Z=ga+(ba+ha)|0;ba=c[Z>>2]|0;if(!ba){ya=0;break}else{za=ba;Aa=Z}}else{za=$;Aa=X}while(1){X=za+20|0;$=c[X>>2]|0;if($){za=$;Aa=X;continue}X=za+16|0;$=c[X>>2]|0;if(!$){Ca=za;Ea=Aa;break}else{za=$;Aa=X}}if(Ea>>>0<ta>>>0)Ba();else{c[Ea>>2]=0;ya=Ca;break}}else{X=c[ga+((fa|8)+ha)>>2]|0;if(X>>>0<ta>>>0)Ba();$=X+12|0;if((c[$>>2]|0)!=(ia|0))Ba();Z=aa+8|0;if((c[Z>>2]|0)==(ia|0)){c[$>>2]=aa;c[Z>>2]=X;ya=aa;break}else Ba()}while(0);if(!da)break;aa=c[ga+(ha+28+fa)>>2]|0;X=509984+(aa<<2)|0;do if((ia|0)!=(c[X>>2]|0)){if(da>>>0<(c[127424]|0)>>>0)Ba();Z=da+16|0;if((c[Z>>2]|0)==(ia|0))c[Z>>2]=ya;else c[da+20>>2]=ya;if(!ya)break i}else{c[X>>2]=ya;if(ya)break;c[127421]=c[127421]&~(1<<aa);break i}while(0);aa=c[127424]|0;if(ya>>>0<aa>>>0)Ba();c[ya+24>>2]=da;X=fa|16;Z=c[ga+(X+ha)>>2]|0;do if(Z)if(Z>>>0<aa>>>0)Ba();else{c[ya+16>>2]=Z;c[Z+24>>2]=ya;break}while(0);Z=c[ga+(T+X)>>2]|0;if(!Z)break;if(Z>>>0<(c[127424]|0)>>>0)Ba();else{c[ya+20>>2]=Z;c[Z+24>>2]=ya;break}}else{Z=c[ga+((fa|8)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;da=509720+(ea<<1<<2)|0;do if((Z|0)!=(da|0)){if(Z>>>0<ta>>>0)Ba();if((c[Z+12>>2]|0)==(ia|0))break;Ba()}while(0);if((aa|0)==(Z|0)){c[127420]=c[127420]&~(1<<ea);break}do if((aa|0)==(da|0))Fa=aa+8|0;else{if(aa>>>0<ta>>>0)Ba();X=aa+8|0;if((c[X>>2]|0)==(ia|0)){Fa=X;break}Ba()}while(0);c[Z+12>>2]=aa;c[Fa>>2]=Z}while(0);Ga=ga+((la|fa)+ha)|0;Ha=la+ja|0}else{Ga=ia;Ha=ja}ea=Ga+4|0;c[ea>>2]=c[ea>>2]&-2;c[ga+(S+4)>>2]=Ha|1;c[ga+(Ha+S)>>2]=Ha;ea=Ha>>>3;if(Ha>>>0<256){T=ea<<1;ca=509720+(T<<2)|0;da=c[127420]|0;X=1<<ea;do if(!(da&X)){c[127420]=da|X;Ia=509720+(T+2<<2)|0;Ja=ca}else{ea=509720+(T+2<<2)|0;$=c[ea>>2]|0;if($>>>0>=(c[127424]|0)>>>0){Ia=ea;Ja=$;break}Ba()}while(0);c[Ia>>2]=ka;c[Ja+12>>2]=ka;c[ga+(S+8)>>2]=Ja;c[ga+(S+12)>>2]=ca;break}T=Ha>>>8;do if(!T)Ka=0;else{if(Ha>>>0>16777215){Ka=31;break}X=(T+1048320|0)>>>16&8;da=T<<X;la=(da+520192|0)>>>16&4;$=da<<la;da=($+245760|0)>>>16&2;ea=14-(la|X|da)+($<<da>>>15)|0;Ka=Ha>>>(ea+7|0)&1|ea<<1}while(0);T=509984+(Ka<<2)|0;c[ga+(S+28)>>2]=Ka;c[ga+(S+20)>>2]=0;c[ga+(S+16)>>2]=0;ca=c[127421]|0;ea=1<<Ka;if(!(ca&ea)){c[127421]=ca|ea;c[T>>2]=ka;c[ga+(S+24)>>2]=T;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break}ea=c[T>>2]|0;j:do if((c[ea+4>>2]&-8|0)!=(Ha|0)){T=Ha<<((Ka|0)==31?0:25-(Ka>>>1)|0);ca=ea;while(1){da=ca+16+(T>>>31<<2)|0;$=c[da>>2]|0;if(!$){La=da;Ma=ca;break}if((c[$+4>>2]&-8|0)==(Ha|0)){Na=$;break j}else{T=T<<1;ca=$}}if(La>>>0<(c[127424]|0)>>>0)Ba();else{c[La>>2]=ka;c[ga+(S+24)>>2]=Ma;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break h}}else Na=ea;while(0);ea=Na+8|0;ca=c[ea>>2]|0;T=c[127424]|0;if(ca>>>0>=T>>>0&Na>>>0>=T>>>0){c[ca+12>>2]=ka;c[ea>>2]=ka;c[ga+(S+8)>>2]=ca;c[ga+(S+12)>>2]=Na;c[ga+(S+24)>>2]=0;break}else Ba()}else{ca=(c[127423]|0)+ja|0;c[127423]=ca;c[127426]=ka;c[ga+(S+4)>>2]=ca|1}while(0);n=ga+(ma|8)|0;return n|0}else xa=510128;while(1){S=c[xa>>2]|0;if(S>>>0<=na>>>0?(ka=c[xa+4>>2]|0,ja=S+ka|0,ja>>>0>na>>>0):0){Oa=S;Pa=ka;Qa=ja;break}xa=c[xa+8>>2]|0}ma=Oa+(Pa+-39)|0;ja=Oa+(Pa+-47+((ma&7|0)==0?0:0-ma&7))|0;ma=na+16|0;ka=ja>>>0<ma>>>0?na:ja;ja=ka+8|0;S=ga+8|0;ia=(S&7|0)==0?0:0-S&7;S=ha+-40-ia|0;c[127426]=ga+ia;c[127423]=S;c[ga+(ia+4)>>2]=S|1;c[ga+(ha+-36)>>2]=40;c[127427]=c[127542];S=ka+4|0;c[S>>2]=27;c[ja>>2]=c[127532];c[ja+4>>2]=c[127533];c[ja+8>>2]=c[127534];c[ja+12>>2]=c[127535];c[127532]=ga;c[127533]=ha;c[127535]=0;c[127534]=ja;ja=ka+28|0;c[ja>>2]=7;if((ka+32|0)>>>0<Qa>>>0){ia=ja;do{ja=ia;ia=ia+4|0;c[ia>>2]=7}while((ja+8|0)>>>0<Qa>>>0)}if((ka|0)!=(na|0)){ia=ka-na|0;c[S>>2]=c[S>>2]&-2;c[na+4>>2]=ia|1;c[ka>>2]=ia;ja=ia>>>3;if(ia>>>0<256){fa=ja<<1;ca=509720+(fa<<2)|0;ea=c[127420]|0;T=1<<ja;if(ea&T){ja=509720+(fa+2<<2)|0;Z=c[ja>>2]|0;if(Z>>>0<(c[127424]|0)>>>0)Ba();else{Ra=ja;Sa=Z}}else{c[127420]=ea|T;Ra=509720+(fa+2<<2)|0;Sa=ca}c[Ra>>2]=na;c[Sa+12>>2]=na;c[na+8>>2]=Sa;c[na+12>>2]=ca;break}ca=ia>>>8;if(ca)if(ia>>>0>16777215)Ta=31;else{fa=(ca+1048320|0)>>>16&8;T=ca<<fa;ca=(T+520192|0)>>>16&4;ea=T<<ca;T=(ea+245760|0)>>>16&2;Z=14-(ca|fa|T)+(ea<<T>>>15)|0;Ta=ia>>>(Z+7|0)&1|Z<<1}else Ta=0;Z=509984+(Ta<<2)|0;c[na+28>>2]=Ta;c[na+20>>2]=0;c[ma>>2]=0;T=c[127421]|0;ea=1<<Ta;if(!(T&ea)){c[127421]=T|ea;c[Z>>2]=na;c[na+24>>2]=Z;c[na+12>>2]=na;c[na+8>>2]=na;break}ea=c[Z>>2]|0;k:do if((c[ea+4>>2]&-8|0)!=(ia|0)){Z=ia<<((Ta|0)==31?0:25-(Ta>>>1)|0);T=ea;while(1){fa=T+16+(Z>>>31<<2)|0;ca=c[fa>>2]|0;if(!ca){Ua=fa;Va=T;break}if((c[ca+4>>2]&-8|0)==(ia|0)){Wa=ca;break k}else{Z=Z<<1;T=ca}}if(Ua>>>0<(c[127424]|0)>>>0)Ba();else{c[Ua>>2]=na;c[na+24>>2]=Va;c[na+12>>2]=na;c[na+8>>2]=na;break g}}else Wa=ea;while(0);ea=Wa+8|0;ia=c[ea>>2]|0;ma=c[127424]|0;if(ia>>>0>=ma>>>0&Wa>>>0>=ma>>>0){c[ia+12>>2]=na;c[ea>>2]=na;c[na+8>>2]=ia;c[na+12>>2]=Wa;c[na+24>>2]=0;break}else Ba()}}else{ia=c[127424]|0;if((ia|0)==0|ga>>>0<ia>>>0)c[127424]=ga;c[127532]=ga;c[127533]=ha;c[127535]=0;c[127429]=c[127538];c[127428]=-1;ia=0;do{ea=ia<<1;ma=509720+(ea<<2)|0;c[509720+(ea+3<<2)>>2]=ma;c[509720+(ea+2<<2)>>2]=ma;ia=ia+1|0}while((ia|0)!=32);ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ha+-40-ma|0;c[127426]=ga+ma;c[127423]=ia;c[ga+(ma+4)>>2]=ia|1;c[ga+(ha+-36)>>2]=40;c[127427]=c[127542]}while(0);ha=c[127423]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[127423]=ga;ha=c[127426]|0;c[127426]=ha+F;c[ha+(F+4)>>2]=ga|1;c[ha+4>>2]=F|3;n=ha+8|0;return n|0}}c[(vc()|0)>>2]=12;n=0;return n|0}function Hc(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,J=0,K=0,L=0,M=0;if(!a)return;b=a+-8|0;d=c[127424]|0;if(b>>>0<d>>>0)Ba();e=c[a+-4>>2]|0;f=e&3;if((f|0)==1)Ba();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){i=c[b>>2]|0;if(!f)return;j=-8-i|0;k=a+j|0;l=i+g|0;if(k>>>0<d>>>0)Ba();if((k|0)==(c[127425]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[127422]=l;c[m>>2]=n&-2;c[a+(j+4)>>2]=l|1;c[h>>2]=l;return}n=i>>>3;if(i>>>0<256){i=c[a+(j+8)>>2]|0;m=c[a+(j+12)>>2]|0;q=509720+(n<<1<<2)|0;if((i|0)!=(q|0)){if(i>>>0<d>>>0)Ba();if((c[i+12>>2]|0)!=(k|0))Ba()}if((m|0)==(i|0)){c[127420]=c[127420]&~(1<<n);o=k;p=l;break}if((m|0)!=(q|0)){if(m>>>0<d>>>0)Ba();q=m+8|0;if((c[q>>2]|0)==(k|0))r=q;else Ba()}else r=m+8|0;c[i+12>>2]=m;c[r>>2]=i;o=k;p=l;break}i=c[a+(j+24)>>2]|0;m=c[a+(j+12)>>2]|0;do if((m|0)==(k|0)){q=a+(j+20)|0;n=c[q>>2]|0;if(!n){s=a+(j+16)|0;t=c[s>>2]|0;if(!t){u=0;break}else{v=t;w=s}}else{v=n;w=q}while(1){q=v+20|0;n=c[q>>2]|0;if(n){v=n;w=q;continue}q=v+16|0;n=c[q>>2]|0;if(!n){x=v;y=w;break}else{v=n;w=q}}if(y>>>0<d>>>0)Ba();else{c[y>>2]=0;u=x;break}}else{q=c[a+(j+8)>>2]|0;if(q>>>0<d>>>0)Ba();n=q+12|0;if((c[n>>2]|0)!=(k|0))Ba();s=m+8|0;if((c[s>>2]|0)==(k|0)){c[n>>2]=m;c[s>>2]=q;u=m;break}else Ba()}while(0);if(i){m=c[a+(j+28)>>2]|0;q=509984+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[127421]=c[127421]&~(1<<m);o=k;p=l;break}}else{if(i>>>0<(c[127424]|0)>>>0)Ba();m=i+16|0;if((c[m>>2]|0)==(k|0))c[m>>2]=u;else c[i+20>>2]=u;if(!u){o=k;p=l;break}}m=c[127424]|0;if(u>>>0<m>>>0)Ba();c[u+24>>2]=i;q=c[a+(j+16)>>2]|0;do if(q)if(q>>>0<m>>>0)Ba();else{c[u+16>>2]=q;c[q+24>>2]=u;break}while(0);q=c[a+(j+20)>>2]|0;if(q)if(q>>>0<(c[127424]|0)>>>0)Ba();else{c[u+20>>2]=q;c[q+24>>2]=u;o=k;p=l;break}else{o=k;p=l}}else{o=k;p=l}}else{o=b;p=g}while(0);if(o>>>0>=h>>>0)Ba();b=a+(g+-4)|0;u=c[b>>2]|0;if(!(u&1))Ba();if(!(u&2)){if((h|0)==(c[127426]|0)){d=(c[127423]|0)+p|0;c[127423]=d;c[127426]=o;c[o+4>>2]=d|1;if((o|0)!=(c[127425]|0))return;c[127425]=0;c[127422]=0;return}if((h|0)==(c[127425]|0)){d=(c[127422]|0)+p|0;c[127422]=d;c[127425]=o;c[o+4>>2]=d|1;c[o+d>>2]=d;return}d=(u&-8)+p|0;x=u>>>3;do if(u>>>0>=256){y=c[a+(g+16)>>2]|0;w=c[a+(g|4)>>2]|0;do if((w|0)==(h|0)){v=a+(g+12)|0;r=c[v>>2]|0;if(!r){f=a+(g+8)|0;e=c[f>>2]|0;if(!e){z=0;break}else{A=e;B=f}}else{A=r;B=v}while(1){v=A+20|0;r=c[v>>2]|0;if(r){A=r;B=v;continue}v=A+16|0;r=c[v>>2]|0;if(!r){C=A;D=B;break}else{A=r;B=v}}if(D>>>0<(c[127424]|0)>>>0)Ba();else{c[D>>2]=0;z=C;break}}else{v=c[a+g>>2]|0;if(v>>>0<(c[127424]|0)>>>0)Ba();r=v+12|0;if((c[r>>2]|0)!=(h|0))Ba();f=w+8|0;if((c[f>>2]|0)==(h|0)){c[r>>2]=w;c[f>>2]=v;z=w;break}else Ba()}while(0);if(y){w=c[a+(g+20)>>2]|0;l=509984+(w<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=z;if(!z){c[127421]=c[127421]&~(1<<w);break}}else{if(y>>>0<(c[127424]|0)>>>0)Ba();w=y+16|0;if((c[w>>2]|0)==(h|0))c[w>>2]=z;else c[y+20>>2]=z;if(!z)break}w=c[127424]|0;if(z>>>0<w>>>0)Ba();c[z+24>>2]=y;l=c[a+(g+8)>>2]|0;do if(l)if(l>>>0<w>>>0)Ba();else{c[z+16>>2]=l;c[l+24>>2]=z;break}while(0);l=c[a+(g+12)>>2]|0;if(l)if(l>>>0<(c[127424]|0)>>>0)Ba();else{c[z+20>>2]=l;c[l+24>>2]=z;break}}}else{l=c[a+g>>2]|0;w=c[a+(g|4)>>2]|0;y=509720+(x<<1<<2)|0;if((l|0)!=(y|0)){if(l>>>0<(c[127424]|0)>>>0)Ba();if((c[l+12>>2]|0)!=(h|0))Ba()}if((w|0)==(l|0)){c[127420]=c[127420]&~(1<<x);break}if((w|0)!=(y|0)){if(w>>>0<(c[127424]|0)>>>0)Ba();y=w+8|0;if((c[y>>2]|0)==(h|0))E=y;else Ba()}else E=w+8|0;c[l+12>>2]=w;c[E>>2]=l}while(0);c[o+4>>2]=d|1;c[o+d>>2]=d;if((o|0)==(c[127425]|0)){c[127422]=d;return}else F=d}else{c[b>>2]=u&-2;c[o+4>>2]=p|1;c[o+p>>2]=p;F=p}p=F>>>3;if(F>>>0<256){u=p<<1;b=509720+(u<<2)|0;d=c[127420]|0;E=1<<p;if(d&E){p=509720+(u+2<<2)|0;h=c[p>>2]|0;if(h>>>0<(c[127424]|0)>>>0)Ba();else{G=p;H=h}}else{c[127420]=d|E;G=509720+(u+2<<2)|0;H=b}c[G>>2]=o;c[H+12>>2]=o;c[o+8>>2]=H;c[o+12>>2]=b;return}b=F>>>8;if(b)if(F>>>0>16777215)I=31;else{H=(b+1048320|0)>>>16&8;G=b<<H;b=(G+520192|0)>>>16&4;u=G<<b;G=(u+245760|0)>>>16&2;E=14-(b|H|G)+(u<<G>>>15)|0;I=F>>>(E+7|0)&1|E<<1}else I=0;E=509984+(I<<2)|0;c[o+28>>2]=I;c[o+20>>2]=0;c[o+16>>2]=0;G=c[127421]|0;u=1<<I;a:do if(G&u){H=c[E>>2]|0;b:do if((c[H+4>>2]&-8|0)!=(F|0)){b=F<<((I|0)==31?0:25-(I>>>1)|0);d=H;while(1){h=d+16+(b>>>31<<2)|0;p=c[h>>2]|0;if(!p){J=h;K=d;break}if((c[p+4>>2]&-8|0)==(F|0)){L=p;break b}else{b=b<<1;d=p}}if(J>>>0<(c[127424]|0)>>>0)Ba();else{c[J>>2]=o;c[o+24>>2]=K;c[o+12>>2]=o;c[o+8>>2]=o;break a}}else L=H;while(0);H=L+8|0;d=c[H>>2]|0;b=c[127424]|0;if(d>>>0>=b>>>0&L>>>0>=b>>>0){c[d+12>>2]=o;c[H>>2]=o;c[o+8>>2]=d;c[o+12>>2]=L;c[o+24>>2]=0;break}else Ba()}else{c[127421]=G|u;c[E>>2]=o;c[o+24>>2]=E;c[o+12>>2]=o;c[o+8>>2]=o}while(0);o=(c[127428]|0)+-1|0;c[127428]=o;if(!o)M=510136;else return;while(1){o=c[M>>2]|0;if(!o)break;else M=o+8|0}c[127428]=-1;return}function Ic(b,c,d){b=b|0;c=c|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,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;e=b;b=c;a:while(1){c=b;f=b+-1|0;g=e;b:while(1){h=g;i=c-h|0;switch(i|0){case 1:case 0:{break a;break}case 2:{j=g;k=f;l=4;break a;break}case 3:{m=g;n=f;l=6;break a;break}case 4:{o=g;p=f;l=7;break a;break}case 5:{q=g;r=f;l=8;break a;break}default:{}}if((i|0)<31){s=g;t=b;l=10;break a}u=(i|0)/2|0;v=g+u|0;if((i|0)>999){w=(i|0)/4|0;x=Mc(g,g+w|0,v,g+(w+u)|0,f,d)|0}else x=Kc(g,v,f,d)|0;u=a[g>>0]|0;w=a[v>>0]|0;do if((u&255)<(w&255)){y=f;z=x}else{i=f;while(1){A=i+-1|0;if((g|0)==(A|0))break;B=a[A>>0]|0;if((B&255)<(w&255)){C=B;D=A;l=29;break}else i=A}if((l|0)==29){l=0;a[g>>0]=C;a[D>>0]=u;y=D;z=x+1|0;break}i=g+1|0;A=a[f>>0]|0;if((u&255)<(A&255))E=i;else{if((i|0)==(f|0))break a;else{F=g;G=i}while(1){i=a[G>>0]|0;if((u&255)<(i&255)){H=F;I=i;J=G;break}i=G+1|0;if((i|0)==(f|0))break a;else{B=G;G=i;F=B}}a[J>>0]=A;a[f>>0]=I;E=H+2|0}if((E|0)==(f|0))break a;else{K=E;L=f}while(1){B=a[g>>0]|0;i=K;while(1){M=a[i>>0]|0;N=i+1|0;if((B&255)<(M&255)){O=M;P=N;Q=i;break}else i=N}i=L;while(1){N=i+-1|0;M=a[N>>0]|0;if((B&255)<(M&255))i=N;else{R=N;S=M;break}}if(Q>>>0>=R>>>0){g=Q;continue b}a[Q>>0]=S;a[R>>0]=O;K=P;L=R}}while(0);u=g+1|0;c:do if(u>>>0<y>>>0){w=u;A=y;i=v;B=z;while(1){M=a[i>>0]|0;N=w;while(1){T=a[N>>0]|0;U=N+1|0;if((T&255)<(M&255))N=U;else{V=T;W=U;X=N;break}}N=A;while(1){U=N+-1|0;T=a[U>>0]|0;if((T&255)<(M&255)){Y=U;Z=T;break}else N=U}if(X>>>0>Y>>>0){_=X;$=i;aa=B;break c}a[X>>0]=Z;a[Y>>0]=V;w=W;A=Y;i=(i|0)==(X|0)?Y:i;B=B+1|0}}else{_=u;$=v;aa=z}while(0);if((_|0)!=($|0)?(v=a[$>>0]|0,u=a[_>>0]|0,(v&255)<(u&255)):0){a[_>>0]=v;a[$>>0]=u;ba=aa+1|0}else ba=aa;if(!ba){ca=Jc(g,_,d)|0;u=_+1|0;if(Jc(u,b,d)|0){l=42;break}if(ca){g=u;continue}}u=_;if((u-h|0)>=(c-u|0)){da=g;ea=_;l=46;break}Ic(g,_,d);g=_+1|0}if((l|0)==42){l=0;if(ca)break;else{e=g;b=_;continue}}else if((l|0)==46){l=0;Ic(ea+1|0,b,d);e=da;b=ea;continue}}if((l|0)==4){ea=a[k>>0]|0;b=a[j>>0]|0;if((ea&255)<(b&255)){a[j>>0]=ea;a[k>>0]=b}}else if((l|0)==6)Kc(m,m+1|0,n,d)|0;else if((l|0)==7)Lc(o,o+1|0,o+2|0,p,d)|0;else if((l|0)==8)Mc(q,q+1|0,q+2|0,q+3|0,r,d)|0;else if((l|0)==10)Nc(s,t,d);return}function Jc(b,c,d){b=b|0;c=c|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;a:do switch(c-b|0){case 1:case 0:{e=1;break}case 2:{f=c+-1|0;g=a[f>>0]|0;h=a[b>>0]|0;if((g&255)<(h&255)){a[b>>0]=g;a[f>>0]=h;e=1}else e=1;break}case 3:{Kc(b,b+1|0,c+-1|0,d)|0;e=1;break}case 4:{Lc(b,b+1|0,b+2|0,c+-1|0,d)|0;e=1;break}case 5:{Mc(b,b+1|0,b+2|0,b+3|0,c+-1|0,d)|0;e=1;break}default:{h=b+2|0;Kc(b,b+1|0,h,d)|0;f=b+3|0;if((f|0)==(c|0))e=1;else{g=0;i=f;f=h;while(1){h=a[i>>0]|0;j=a[f>>0]|0;if((h&255)<(j&255)){k=j;j=i;l=f;while(1){a[j>>0]=k;if((l|0)==(b|0)){m=b;break}n=l+-1|0;k=a[n>>0]|0;if((h&255)>=(k&255)){m=l;break}else{o=l;l=n;j=o}}a[m>>0]=h;j=g+1|0;if((j|0)==8){p=i;break}else q=j}else q=g;j=i+1|0;if((j|0)==(c|0)){e=1;break a}else{l=i;g=q;i=j;f=l}}e=(p+1|0)==(c|0)}}}while(0);return e|0}function Kc(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;e=a[c>>0]|0;f=a[b>>0]|0;g=a[d>>0]|0;h=(g&255)<(e&255);do if((e&255)<(f&255)){if(h){a[b>>0]=g;a[d>>0]=f;i=1;break}a[b>>0]=e;a[c>>0]=f;j=a[d>>0]|0;if((j&255)<(f&255)){a[c>>0]=j;a[d>>0]=f;i=2}else i=1}else if(h){a[c>>0]=g;a[d>>0]=e;j=a[c>>0]|0;k=a[b>>0]|0;if((j&255)<(k&255)){a[b>>0]=j;a[c>>0]=k;i=2}else i=1}else i=0;while(0);return i|0}function Lc(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=Kc(b,c,d,f)|0;f=a[e>>0]|0;h=a[d>>0]|0;if((f&255)<(h&255)){a[d>>0]=f;a[e>>0]=h;h=g+1|0;e=a[d>>0]|0;f=a[c>>0]|0;if((e&255)<(f&255)){a[c>>0]=e;a[d>>0]=f;f=a[c>>0]|0;d=a[b>>0]|0;if((f&255)<(d&255)){a[b>>0]=f;a[c>>0]=d;i=g+3|0}else i=g+2|0}else i=h}else i=g;return i|0}function Mc(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Lc(b,c,d,e,g)|0;g=a[f>>0]|0;i=a[e>>0]|0;if((g&255)<(i&255)){a[e>>0]=g;a[f>>0]=i;i=h+1|0;f=a[e>>0]|0;g=a[d>>0]|0;if((f&255)<(g&255)){a[d>>0]=f;a[e>>0]=g;g=h+2|0;e=a[d>>0]|0;f=a[c>>0]|0;if((e&255)<(f&255)){a[c>>0]=e;a[d>>0]=f;f=a[c>>0]|0;d=a[b>>0]|0;if((f&255)<(d&255)){a[b>>0]=f;a[c>>0]=d;j=h+4|0}else j=h+3|0}else j=g}else j=i}else j=h;return j|0}function Nc(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=b+2|0;Kc(b,b+1|0,e,d)|0;d=b+3|0;if((d|0)!=(c|0)){f=d;d=e;while(1){e=a[f>>0]|0;g=a[d>>0]|0;if((e&255)<(g&255)){h=g;g=f;i=d;while(1){a[g>>0]=h;if((i|0)==(b|0)){j=b;break}k=i+-1|0;h=a[k>>0]|0;if((e&255)>=(h&255)){j=i;break}else{l=i;i=k;g=l}}a[j>>0]=e}g=f+1|0;if((g|0)==(c|0))break;else{i=f;f=g;d=i}}}return}function Oc(){}function Pc(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;if((e|0)>=20){d=d&255;g=b&3;h=d|d<<8|d<<16|d<<24;i=f&~3;if(g){g=b+4-g|0;while((b|0)<(g|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(i|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Qc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){B=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}B=0;return b>>>c-32|0}function Rc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){B=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}B=a<<c-32;return 0}function Sc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ra(b|0,d|0,e|0)|0;f=b|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}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Tc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ha[a&7](b|0,c|0,d|0)|0}function Uc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Ia[a&3](b|0,c|0,d|0,e|0,f|0)}function Vc(a,b){a=a|0;b=b|0;Ja[a&15](b|0)}function Wc(a,b){a=a|0;b=b|0;return Ka[a&3](b|0)|0}function Xc(a){a=a|0;La[a&0]()}function Yc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Ma[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Zc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Na[a&3](b|0,c|0,d|0,e|0)}function _c(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function $c(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(1)}function ad(a){a=a|0;aa(2)}function bd(a){a=a|0;aa(3);return 0}function cd(){aa(4)}function dd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(5)}function ed(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(6)}

// EMSCRIPTEN_END_FUNCS
var Ha=[_c,lc,Dc,Bc,Cc,_c,_c,_c];var Ia=[$c,sc,rc,$c];var Ja=[ad,ac,bc,gc,jc,hc,ic,kc,Fc,ad,ad,ad,ad,ad,ad,ad];var Ka=[bd,cc,Ac,bd];var La=[cd];var Ma=[dd,uc,tc,dd];var Na=[ed,nc,oc,ed];return{_basis_open:Ob,_basis_get_num_levels:Sb,_basis_transcode_image:Xb,_fflush:xc,_memset:Pc,_basis_init:Nb,_basis_get_debug_flags:Mb,_basis_start_transcoding:Wb,_basis_set_debug_flags:Lb,_basis_get_num_images:Rb,_basis_get_has_alpha:Qb,_basis_get_image_width:Tb,_malloc:Gc,_basis_close:Pb,_memcpy:Sc,_basis_get_image_height:Ub,_bitshift64Lshr:Qc,_free:Hc,_bitshift64Shl:Rc,___errno_location:vc,_basis_get_image_transcoded_size_in_bytes:Vb,runPostSets:Oc,stackAlloc:Oa,stackSave:Pa,stackRestore:Qa,establishStackSpace:Ra,setThrew:Sa,setTempRet0:Va,getTempRet0:Wa,dynCall_iiii:Tc,dynCall_viiiii:Uc,dynCall_vi:Vc,dynCall_ii:Wc,dynCall_v:Xc,dynCall_viiiiii:Yc,dynCall_viiii:Zc}})


// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _basis_start_transcoding=Module["_basis_start_transcoding"]=asm["_basis_start_transcoding"];var _basis_close=Module["_basis_close"]=asm["_basis_close"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _fflush=Module["_fflush"]=asm["_fflush"];var _basis_get_debug_flags=Module["_basis_get_debug_flags"]=asm["_basis_get_debug_flags"];var _basis_transcode_image=Module["_basis_transcode_image"]=asm["_basis_transcode_image"];var _memset=Module["_memset"]=asm["_memset"];var _basis_get_has_alpha=Module["_basis_get_has_alpha"]=asm["_basis_get_has_alpha"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _basis_get_num_levels=Module["_basis_get_num_levels"]=asm["_basis_get_num_levels"];var _basis_init=Module["_basis_init"]=asm["_basis_init"];var _basis_set_debug_flags=Module["_basis_set_debug_flags"]=asm["_basis_set_debug_flags"];var _basis_get_image_width=Module["_basis_get_image_width"]=asm["_basis_get_image_width"];var _basis_get_image_height=Module["_basis_get_image_height"]=asm["_basis_get_image_height"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _basis_get_image_transcoded_size_in_bytes=Module["_basis_get_image_transcoded_size_in_bytes"]=asm["_basis_get_image_transcoded_size_in_bytes"];var _basis_open=Module["_basis_open"]=asm["_basis_open"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _basis_get_num_images=Module["_basis_get_num_images"]=asm["_basis_get_num_images"];var _malloc=Module["_malloc"]=asm["_malloc"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,Runtime.GLOBAL_BASE);removeRunDependency("memory initializer")});function doBrowserLoad(){Browser.asyncLoad(memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var request=Module["memoryInitializerRequest"];if(request){function useRequest(){if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(request.response){setTimeout(useRequest,0)}else{request.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;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();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"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run()




