Skip to content

Instantly share code, notes, and snippets.

@evanw
Created July 2, 2015 21:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save evanw/bb945599bfe974955299 to your computer and use it in GitHub Desktop.
Save evanw/bb945599bfe974955299 to your computer and use it in GitHub Desktop.
Test case for flatbuffers issue #226
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_NODE=typeof process==="object"&&typeof require==="function";var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";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){return Module["read"](filename,true)};Module["load"]=function load(f){globalEval(read(f))};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}}))}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}this["Module"]=Module}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_WEB){window["Module"]=Module}else{Module["load"]=importScripts}}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,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}),getAsmConst:(function(code,numArgs){if(!Runtime.asmConstCache)Runtime.asmConstCache={};var func=Runtime.asmConstCache[code];if(func)return func;var args=[];for(var i=0;i<numArgs;i++){args.push(String.fromCharCode(36)+i)}var source=Pointer_stringify(code);if(source[0]==='"'){if(source.indexOf('"',1)===source.length-1){source=source.substr(1,source.length-2)}else{abort("invalid EM_ASM input |"+source+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)")}}try{var evalled=eval("(function(Module, FS) { return function("+args.join(",")+"){ "+source+" } })")(Module,typeof FS!=="undefined"?FS:null)}catch(e){Module.printErr("error in executing inline EM_ASM code: "+e+" on: \n\n"+source+"\n\nwith args |"+args+"| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)");throw e}return Runtime.asmConstCache[code]=evalled}),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]}),UTF8Processor:(function(){var buffer=[];var needed=0;this.processCChar=(function(code){code=code&255;if(buffer.length==0){if((code&128)==0){return String.fromCharCode(code)}buffer.push(code);if((code&224)==192){needed=1}else if((code&240)==224){needed=2}else{needed=3}return""}if(needed){buffer.push(code);needed--;if(needed>0)return""}var c1=buffer[0];var c2=buffer[1];var c3=buffer[2];var c4=buffer[3];var ret;if(buffer.length==2){ret=String.fromCharCode((c1&31)<<6|c2&63)}else if(buffer.length==3){ret=String.fromCharCode((c1&15)<<12|(c2&63)<<6|c3&63)}else{var codePoint=(c1&7)<<18|(c2&63)<<12|(c3&63)<<6|c4&63;ret=String.fromCharCode(((codePoint-65536)/1024|0)+55296,(codePoint-65536)%1024+56320)}buffer.length=0;return ret});this.processJSString=function processJSString(string){string=unescape(encodeURIComponent(string));var ret=[];for(var i=0;i<string.length;i++){ret.push(string.charCodeAt(i))}return ret}}),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)enlargeMemory();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;function getSafeHeapType(bytes,isFloat){switch(bytes){case 1:return"i8";case 2:return"i16";case 4:return isFloat?"float":"i32";case 8:return"double";default:assert(0)}}function SAFE_HEAP_STORE(dest,value,bytes,isFloat){if(dest<=0)abort("segmentation fault storing "+bytes+" bytes to address "+dest);if(dest%bytes!==0)abort("alignment error storing to address "+dest+", which was expected to be aligned to a multiple of "+bytes);if(dest+bytes>Math.max(DYNAMICTOP,STATICTOP))abort("segmentation fault, exceeded the top of the available heap when storing "+bytes+" bytes to address "+dest+". STATICTOP="+STATICTOP+", DYNAMICTOP="+DYNAMICTOP);assert(DYNAMICTOP<=TOTAL_MEMORY);setValue(dest,value,getSafeHeapType(bytes,isFloat),1)}function SAFE_HEAP_LOAD(dest,bytes,isFloat,unsigned){if(dest<=0)abort("segmentation fault loading "+bytes+" bytes from address "+dest);if(dest%bytes!==0)abort("alignment error loading from address "+dest+", which was expected to be aligned to a multiple of "+bytes);if(dest+bytes>Math.max(DYNAMICTOP,STATICTOP))abort("segmentation fault, exceeded the top of the available heap when loading "+bytes+" bytes from address "+dest+". STATICTOP="+STATICTOP+", DYNAMICTOP="+DYNAMICTOP);assert(DYNAMICTOP<=TOTAL_MEMORY);var type=getSafeHeapType(bytes,isFloat);var ret=getValue(dest,type,1);if(unsigned)ret=unSign(ret,parseInt(type.substr(1)),1);return ret}function SAFE_FT_MASK(value,mask){var ret=value&mask;if(ret!==value){abort("Function table mask error: function pointer is "+value+" which is masked by "+mask+", the likely cause of this is that the function pointer is being called by the wrong type.")}return ret}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){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)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["cwrap"]=cwrap;Module["ccall"]=ccall;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";if(noSafe){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)}}else{switch(type){case"i1":SAFE_HEAP_STORE(ptr|0,value|0,1,0)|0;break;case"i8":SAFE_HEAP_STORE(ptr|0,value|0,1,0)|0;break;case"i16":SAFE_HEAP_STORE(ptr|0,value|0,2,0)|0;break;case"i32":SAFE_HEAP_STORE(ptr|0,value|0,4,0)|0;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)],SAFE_HEAP_STORE(ptr|0,tempI64[0]|0,4,0)|0,SAFE_HEAP_STORE(ptr+4|0,tempI64[1]|0,4,0)|0;break;case"float":+SAFE_HEAP_STORE(ptr|0,+value,4,1);break;case"double":+SAFE_HEAP_STORE(ptr|0,+value,8,1);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";if(noSafe){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)}}else{switch(type){case"i1":return SAFE_HEAP_LOAD(ptr|0,1,0,0)|0;case"i8":return SAFE_HEAP_LOAD(ptr|0,1,0,0)|0;case"i16":return SAFE_HEAP_LOAD(ptr|0,2,0,0)|0;case"i32":return SAFE_HEAP_LOAD(ptr|0,4,0,0)|0;case"i64":return SAFE_HEAP_LOAD(ptr|0,8,0,0)|0;case"float":return+SAFE_HEAP_LOAD(ptr|0,4,1,0);case"double":return+SAFE_HEAP_LOAD(ptr|0,8,1,0);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 Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=false;var t;var i=0;while(1){t=SAFE_HEAP_LOAD(ptr+i|0,1,0,1)|0;if(t>=128)hasUtf=true;else if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(!hasUtf){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}var utf8=new Runtime.UTF8Processor;for(i=0;i<length;i++){t=SAFE_HEAP_LOAD(ptr+i|0,1,0,1)|0;ret+=utf8.processCChar(t)}return ret}Module["Pointer_stringify"]=Pointer_stringify;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=SAFE_HEAP_LOAD(ptr+i*2|0,2,0,0)|0;if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr){for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);SAFE_HEAP_STORE(outPtr+i*2|0,codeUnit|0,2,0)|0}SAFE_HEAP_STORE(outPtr+str.length*2|0,0|0,2,0)|0}Module["stringToUTF16"]=stringToUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=SAFE_HEAP_LOAD(ptr+i*4|0,4,0,0)|0;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){var iChar=0;for(var iCodeUnit=0;iCodeUnit<str.length;++iCodeUnit){var codeUnit=str.charCodeAt(iCodeUnit);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++iCodeUnit);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}SAFE_HEAP_STORE(outPtr+iChar*4|0,codeUnit|0,4,0)|0;++iChar}SAFE_HEAP_STORE(outPtr+iChar*4|0,0|0,4,0)|0}Module["stringToUTF32"]=stringToUTF32;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){return x+4095&-4096}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 enlargeMemory(){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 ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var FAST_MEMORY=Module["FAST_MEMORY"]||2097152;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){Module.printErr("increasing TOTAL_MEMORY to "+totalMemory+" to be compliant with the asm.js spec");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=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"]=Module.addOnPreRun=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=Module.addOnInit=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=Module.addOnPreMain=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=Module.addOnExit=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=Module.addOnPostRun=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var ret=(new Runtime.UTF8Processor).processJSString(stringy);if(length){ret.length=length}if(!dontAddNull){ret.push(0)}return ret}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];SAFE_HEAP_STORE(buffer+i|0,chr|0,1,0)|0;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i<array.length;i++){SAFE_HEAP_STORE(buffer+i|0,array[i]|0,1,0)|0}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;i++){SAFE_HEAP_STORE(buffer+i|0,str.charCodeAt(i)|0,1,0)|0}if(!dontAddNull)SAFE_HEAP_STORE(buffer+str.length|0,0|0,1,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"];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 runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;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;STATIC_BASE=8;STATICTOP=STATIC_BASE+15920;__ATINIT__.push({func:(function(){__GLOBAL__I_a()})});allocate([115,117,99,99,101,115,115,0,99,104,101,99,107,105,110,103,32,115,116,114,105,110,103,32,111,102,32,108,101,110,103,116,104,32,0,0,0,0,0,0,86,101,114,105,102,105,101,114,40,98,117,102,102,101,114,44,32,115,105,122,101,41,46,86,101,114,105,102,121,66,117,102,102,101,114,60,84,101,115,116,62,40,41,0,0,0,0,0,116,101,115,116,46,99,112,112,0,0,0,0,0,0,0,0,116,101,115,116,0,0,0,0,99,117,114,95,32,33,61,32,110,117,108,108,112,116,114,32,38,38,32,98,117,102,95,32,33,61,32,110,117,108,108,112,116,114,0,0,0,0,0,0,46,47,102,108,97,116,98,117,102,102,101,114,115,47,102,108,97,116,98,117,102,102,101,114,115,46,104,0,0,0,0,0,115,105,122,101,0,0,0,0,99,117,114,95,32,33,61,32,110,117,108,108,112,116,114,0,100,97,116,97,0,0,0,0,116,97,98,108,101,95,111,98,106,101,99,116,95,115,105,122,101,32,60,32,48,120,49,48,48,48,48,0,0,0,0,0,69,110,100,84,97,98,108,101,0,0,0,0,0,0,0,0,33,82,101,97,100,83,99,97,108,97,114,60,118,111,102,102,115,101,116,95,116,62,40,98,117,102,95,46,100,97,116,97,40,41,32,43,32,102,105,101,108,100,95,108,111,99,97,116,105,111,110,45,62,105,100,41,0,0,0,0,0,0,0,0,115,105,122,101,40,41,32,60,32,40,49,85,76,32,60,60,32,40,115,105,122,101,111,102,40,115,111,102,102,115,101,116,95,116,41,32,42,32,56,32,45,32,49,41,41,32,45,32,49,0,0,0,0,0,0,0,109,97,107,101,95,115,112,97,99,101,0,0,0,0,0,0,111,102,102,32,60,61,32,71,101,116,83,105,122,101,40,41,0,0,0,0,0,0,0,0,82,101,102,101,114,84,111,0,33,111,102,102,115,101,116,98,117,102,95,46,115,105,122,101,40,41,0,0,0,0,0,0,78,111,116,78,101,115,116,101,100,0,0,0,0,0,0,0,40,105,110,105,116,105,97,108,95,115,105,122,101,32,38,32,40,115,105,122,101,111,102,40,108,97,114,103,101,115,116,95,115,99,97,108,97,114,95,116,41,32,45,32,49,41,41,32,61,61,32,48,0,0,0,0,118,101,99,116,111,114,95,100,111,119,110,119,97,114,100,0,0,0,0,0,104,2,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,78,49,49,102,108,97,116,98,117,102,102,101,114,115,49,54,115,105,109,112,108,101,95,97,108,108,111,99,97,116,111,114,69,0,0,0,0,0,0,0,88,55,0,0,64,2],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([248,6,0,0,3,0,0,0,4,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,119,69,69,0,0,0,0,0,0,0,0,128,55,0,0,216,6,0,0,112,12,0,0,0,0,0,0,0,0,0,0,96,7,0,0,3,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,6,0,0,0,7,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,119,69,69,0,128,55,0,0,72,7,0,0,112,12,0,0,0,0,0,0,117,110,115,117,112,112,111,114,116,101,100,32,108,111,99,97,108,101,32,102,111,114,32,115,116,97,110,100,97,114,100,32,105,110,112,117,116,0,0,0,0,0,0,0,248,7,0,0,6,0,0,0,7,0,0,0,4,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,8,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,11,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,99,69,69,0,0,0,0,0,0,0,0,128,55,0,0,216,7,0,0,48,12,0,0,0,0,0,0,0,0,0,0,96,8,0,0,6,0,0,0,8,0,0,0,5,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,12,0,0,0,9,0,0,0,6,0,0,0,13,0,0,0,14,0,0,0,8,0,0,0,8,0,0,0,9,0,0,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,99,69,69,0,128,55,0,0,72,8,0,0,48,12,0,0,0,0,0,0,78,83,116,51,95,95,49,49,52,95,95,115,104,97,114,101,100,95,99,111,117,110,116,69,0,0,0,0,0,0,0,0,88,55,0,0,112,8,0,0,58,32,0,0,0,0,0,0,0,0,0,0,208,8,0,0,9,0,0,0,10,0,0,0,15,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,50,115,121,115,116,101,109,95,101,114,114,111,114,69,0,0,128,55,0,0,184,8,0,0,0,54,0,0,0,0,0,0,78,83,116,51,95,95,49,49,52,101,114,114,111,114,95,99,97,116,101,103,111,114,121,69,0,0,0,0,0,0,0,0,88,55,0,0,224,8,0,0,78,83,116,51,95,95,49,49,50,95,95,100,111,95,109,101,115,115,97,103,101,69,0,0,128,55,0,0,8,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,97,115,105,99,95,115,116,114,105,110,103,0,0,0,0,0,0,0,0,48,12,0,0,11,0,0,0,12,0,0,0,6,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,12,0,0,0,9,0,0,0,6,0,0,0,10,0,0,0,11,0,0,0,6,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,112,12,0,0,13,0,0,0,14,0,0,0,7,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,5,0,0,0,8,0,0,0,0,0,0,0,168,12,0,0,15,0,0,0,16,0,0,0,248,255,255,255,248,255,255,255,168,12,0,0,17,0,0,0,18,0,0,0,8,0,0,0,0,0,0,0,240,12,0,0,19,0,0,0,20,0,0,0,248,255,255,255,248,255,255,255,240,12,0,0,21,0,0,0,22,0,0,0,4,0,0,0,0,0,0,0,56,13,0,0,23,0,0,0,24,0,0,0,252,255,255,255,252,255,255,255,56,13,0,0,25,0,0,0,26,0,0,0,4,0,0,0,0,0,0,0,128,13,0,0,27,0,0,0,28,0,0,0,252,255,255,255,252,255,255,255,128,13,0,0,29,0,0,0,30,0,0,0,105,111,115,116,114,101,97,109,0,0,0,0,0,0,0,0,117,110,115,112,101,99,105,102,105,101,100,32,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,32,101,114,114,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,11,0,0,31,0,0,0,32,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,112,11,0,0,33,0,0,0,34,0,0,0,105,111,115,95,98,97,115,101,58,58,99,108,101,97,114,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,55,102,97,105,108,117,114,101,69,0,0,0,0,0,0,0,128,55,0,0,40,11,0,0,208,8,0,0,0,0,0,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,69,0,0,0,0,0,0,0,88,55,0,0,88,11,0,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,0,0,0,0,0,0,128,55,0,0,120,11,0,0,112,11,0,0,0,0,0,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,0,0,0,0,0,0,128,55,0,0,184,11,0,0,112,11,0,0,0,0,0,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,0,0,0,0,0,0,0,88,55,0,0,248,11,0,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,0,0,0,0,0,0,0,88,55,0,0,56,12,0,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,0,224,55,0,0,120,12,0,0,0,0,0,0,1,0,0,0,168,11,0,0,3,244,255,255,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,0,224,55,0,0,192,12,0,0,0,0,0,0,1,0,0,0,232,11,0,0,3,244,255,255,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,0,224,55,0,0,8,13,0,0,0,0,0,0,1,0,0,0,168,11,0,0,3,244,255,255,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,0,224,55,0,0,80,13,0,0,0,0,0,0,1,0,0,0,232,11,0,0,3,244,255,255,0,0,0,0,224,13,0,0,35,0,0,0,36,0,0,0,16,0,0,0,1,0,0,0,9,0,0,0,10,0,0,0,2,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,57,95,95,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,69,0,0,0,128,55,0,0,192,13,0,0,32,9,0,0,0,0,0,0,0,0,0,0,40,28,0,0,37,0,0,0,38,0,0,0,39,0,0,0,1,0,0,0,3,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,28,0,0,40,0,0,0,41,0,0,0,39,0,0,0,2,0,0,0,4,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,0,0,42,0,0,0,43,0,0,0,39,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,65,66,67,68,69,70,120,88,43,45,112,80,105,73,110,78,0,0,0,0,0,0,0,0,37,112,0,0,0,0,0,0,0,0,0,0,152,33,0,0,44,0,0,0,45,0,0,0,39,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,34,0,0,46,0,0,0,47,0,0,0,39,0,0,0,3,0,0,0,4,0,0,0,23,0,0,0,5,0,0,0,24,0,0,0,1,0,0,0,2,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,0,0,0,0,0,0,0,108,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0,0,0,0,0,0,0,0,0,0,240,34,0,0,48,0,0,0,49,0,0,0,39,0,0,0,7,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,26,0,0,0,3,0,0,0,4,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,37,112,0,0,0,0,0,0,0,0,0,0,24,30,0,0,50,0,0,0,51,0,0,0,39,0,0,0,17,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,1,0,0,0,248,255,255,255,24,30,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,72,58,37,77,58,37,83,37,109,47,37,100,47,37,121,37,89,45,37,109,45,37,100,37,73,58,37,77,58,37,83,32,37,112,0,0,0,0,0,37,72,58,37,77,0,0,0,37,72,58,37,77,58,37,83,0,0,0,0,184,30,0,0,52,0,0,0,53,0,0,0,39,0,0,0,25,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,2,0,0,0,248,255,255,255,184,30,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,37,0,0,0,89,0,0,0,45,0,0,0,37,0,0,0,109,0,0,0,45,0,0,0,37,0,0,0,100,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,72,31,0,0,54,0,0,0,55,0,0,0,39,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,31,0,0,56,0,0,0,57,0,0,0,39,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,28,0,0,58,0,0,0,59,0,0,0,39,0,0,0,33,0,0,0,34,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,35,0,0,0,12,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,28,0,0,60,0,0,0,61,0,0,0,39,0,0,0,36,0,0,0,37,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,38,0,0,0,18,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,29,0,0,62,0,0,0,63,0,0,0,39,0,0,0,39,0,0,0,40,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,41,0,0,0,24,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,29,0,0,64,0,0,0,65,0,0,0,39,0,0,0,42,0,0,0,43,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,44,0,0,0,30,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,35,0,0,66,0,0,0,67,0,0,0,39,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,49,50,51,52,53,54,55,56,57,0,0,0,0,0,0,37,76,102,0,0,0,0,0,109,111,110,101,121,95,103,101,116,32,101,114,114,111,114,0,0,0,0,0,16,36,0,0,68,0,0,0,69,0,0,0,39,0,0,0,5,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,49,50,51,52,53,54,55,56,57,0,0,0,0,0,0,0,0,0,0,160,36,0,0,70,0,0,0,71,0,0,0,39,0,0,0,1,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,46,48,76,102,0,0,0,0,0,0,0,48,37,0,0,72,0,0,0,73,0,0,0,39,0,0,0,2,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,32,0,0,74,0,0,0,75,0,0,0,39,0,0,0,13,0,0,0,11,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,32,0,0,76,0,0,0,77,0,0,0,39,0,0,0,14,0,0,0,12,0,0,0,33,0,0,0,0,0,0,0,0,0,0,0,118,101,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,78,0,0,0,79,0,0,0,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,24,0,0,80,0,0,0,81,0,0,0,39,0,0,0,10,0,0,0,15,0,0,0,11,0,0,0,16,0,0,0,12,0,0,0,1,0,0,0,17,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,25,0,0,82,0,0,0,83,0,0,0,39,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,45,0,0,0,46,0,0,0,5,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,27,0,0,84,0,0,0,85,0,0,0,39,0,0,0,48,0,0,0,49,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,0,0,0,0,216,27,0,0,86,0,0,0,87,0,0,0,39,0,0,0,50,0,0,0,51,0,0,0,37,0,0,0,38,0,0,0,39,0,0,0,116,114,117,101,0,0,0,0,116,0,0,0,114,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,102,97,108,115,101,0,0,0,102,0,0,0,97,0,0,0,108,0,0,0,115,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,109,47,37,100,47,37,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,72,58,37,77,58,37,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,97,32,37,98,32,37,100,32,37,72,58,37,77,58,37,83,32,37,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,97,0,0,0,32,0,0,0,37,0,0,0,98,0,0,0,32,0,0,0,37,0,0,0,100,0,0,0,32,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,73,58,37,77,58,37,83,32,37,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,108,111,99,97,108,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,0,0,0,0,0,0,0,16,24,0,0,88,0,0,0,89,0,0,0,39,0,0,0,0,0,0,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,102,97,99,101,116,69,0,0,0,128,55,0,0,248,23,0,0,144,8,0,0,0,0,0,0,0,0,0,0,160,24,0,0,88,0,0,0,90,0,0,0,39,0,0,0,18,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,13,0,0,0,19,0,0,0,14,0,0,0,20,0,0,0,15,0,0,0,5,0,0,0,21,0,0,0,6,0,0,0,0,0,0,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,119,69,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,48,99,116,121,112,101,95,98,97,115,101,69,0,0,0,0,88,55,0,0,128,24,0,0,224,55,0,0,104,24,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,152,24,0,0,2,0,0,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,99,69,69,0,0,0,0,0,0,0,224,55,0,0,192,24,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,152,24,0,0,2,0,0,0,0,0,0,0,112,25,0,0,88,0,0,0,91,0,0,0,39,0,0,0,3,0,0,0,4,0,0,0,7,0,0,0,52,0,0,0,53,0,0,0,8,0,0,0,54,0,0,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,99,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,50,99,111,100,101,99,118,116,95,98,97,115,101,69,0,0,88,55,0,0,80,25,0,0,224,55,0,0,40,25,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,104,25,0,0,2,0,0,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,119,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,0,0,0,0,0,0,224,55,0,0,144,25,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,104,25,0,0,2,0,0,0,0,0,0,0,48,26,0,0,88,0,0,0,92,0,0,0,39,0,0,0,5,0,0,0,6,0,0,0,9,0,0,0,55,0,0,0,56,0,0,0,10,0,0,0,57,0,0,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,115,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,0,0,0,0,0,224,55,0,0,8,26,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,104,25,0,0,2,0,0,0,0,0,0,0,168,26,0,0,88,0,0,0,93,0,0,0,39,0,0,0,7,0,0,0,8,0,0,0,11,0,0,0,58,0,0,0,59,0,0,0,12,0,0,0,60,0,0,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,105,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,0,0,0,0,0,224,55,0,0,128,26,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,104,25,0,0,2,0,0,0,0,0,0,0,32,27,0,0,88,0,0,0,94,0,0,0,39,0,0,0,7,0,0,0,8,0,0,0,11,0,0,0,58,0,0,0,59,0,0,0,12,0,0,0,60,0,0,0,78,83,116,51,95,95,49,49,54,95,95,110,97,114,114,111,119,95,116,111,95,117,116,102,56,73,76,106,51,50,69,69,69,0,0,0,0,0,0,0,128,55,0,0,248,26,0,0,168,26,0,0,0,0,0,0,0,0,0,0,136,27,0,0,88,0,0,0,95,0,0,0,39,0,0,0,7,0,0,0,8,0,0,0,11,0,0,0,58,0,0,0,59,0,0,0,12,0,0,0,60,0,0,0,78,83,116,51,95,95,49,49,55,95,95,119,105,100,101,110,95,102,114,111,109,95,117,116,102,56,73,76,106,51,50,69,69,69,0,0,0,0,0,0,128,55,0,0,96,27,0,0,168,26,0,0,0,0,0,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,99,69,69,0,0,0,0,128,55,0,0,152,27,0,0,16,24,0,0,0,0,0,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,119,69,69,0,0,0,0,128,55,0,0,192,27,0,0,16,24,0,0,0,0,0,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,95,95,105,109,112,69,0,0,0,128,55,0,0,232,27,0,0,16,24,0,0,0,0,0,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,99,69,69,0,0,0,0,0,128,55,0,0,16,28,0,0,16,24,0,0,0,0,0,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,119,69,69,0,0,0,0,0,128,55,0,0,56,28,0,0,16,24,0,0,0,0,0,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,48,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,95,98,97,115,101,69,0,0,0,0,88,55,0,0,128,28,0,0,224,55,0,0,96,28,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,152,28,0,0,2,0,0,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,49,69,69,69,0,0,0,0,0,224,55,0,0,192,28,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,152,28,0,0,2,0,0,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,48,69,69,69,0,0,0,0,0,224,55,0,0,0,29,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,152,28,0,0,2,0,0,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,49,69,69,69,0,0,0,0,0,224,55,0,0,64,29,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,152,28,0,0,2,0,0,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,0,78,83,116,51,95,95,49,57,116,105,109,101,95,98,97,115,101,69,0,0,0,0,0,0,88,55,0,0,200,29,0,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,99,69,69,0,0,0,0,0,0,0,88,55,0,0,232,29,0,0,224,55,0,0,128,29,0,0,0,0,0,0,3,0,0,0,16,24,0,0,2,0,0,0,224,29,0,0,2,0,0,0,16,30,0,0,0,8,0,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,119,69,69,0,0,0,0,0,0,0,88,55,0,0,136,30,0,0,224,55,0,0,64,30,0,0,0,0,0,0,3,0,0,0,16,24,0,0,2,0,0,0,224,29,0,0,2,0,0,0,176,30,0,0,0,8,0,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,0,78,83,116,51,95,95,49,49,48,95,95,116,105,109,101,95,112,117,116,69,0,0,0,0,88,55,0,0,40,31,0,0,224,55,0,0,224,30,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,64,31,0,0,0,8,0,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,0,224,55,0,0,104,31,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,64,31,0,0,0,8,0,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,99,69,69,0,0,0,0,78,83,116,51,95,95,49,49,51,109,101,115,115,97,103,101,115,95,98,97,115,101,69,0,88,55,0,0,232,31,0,0,224,55,0,0,208,31,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,0,32,0,0,2,0,0,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,119,69,69,0,0,0,0,224,55,0,0,40,32,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,0,32,0,0,2,0,0,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,99,69,69,0,0,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,103,101,116,95,98,97,115,101,69,0,0,0,0,0,0,0,0,88,55,0,0,192,32,0,0,224,55,0,0,168,32,0,0,0,0,0,0,1,0,0,0,224,32,0,0,0,0,0,0,224,55,0,0,96,32,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,232,32,0,0,0,0,0,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,119,69,69,0,0,0,224,55,0,0,104,33,0,0,0,0,0,0,1,0,0,0,224,32,0,0,0,0,0,0,224,55,0,0,32,33,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,128,33,0,0,0,0,0,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,99,69,69,0,0,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,112,117,116,95,98,97,115,101,69,0,0,0,0,0,0,0,0,88,55,0,0,24,34,0,0,224,55,0,0,0,34,0,0,0,0,0,0,1,0,0,0,56,34,0,0,0,0,0,0,224,55,0,0,184,33,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,64,34,0,0,0,0,0,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,119,69,69,0,0,0,224,55,0,0,192,34,0,0,0,0,0,0,1,0,0,0,56,34,0,0,0,0,0,0,224,55,0,0,120,34,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,216,34,0,0,0,0,0,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,99,69,69,0,0,0,0,0,0,0,0,88,55,0,0,88,35,0,0,224,55,0,0,16,35,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,120,35,0,0,0,0,0,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,119,69,69,0,0,0,0,0,0,0,0,88,55,0,0,232,35,0,0,224,55,0,0,160,35,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,8,36,0,0,0,0,0,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,99,69,69,0,0,0,0,0,0,0,0,88,55,0,0,120,36,0,0,224,55,0,0,48,36,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,152,36,0,0,0,0,0,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,119,69,69,0,0,0,0,0,0,0,0,88,55,0,0,8,37,0,0,224,55,0,0,192,36,0,0,0,0,0,0,2,0,0,0,16,24,0,0,2,0,0,0,40,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,80,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,77,0,0,0,0,0,0,80,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,114,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,99,0,0,0,104,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,105,0,0,0,108,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,117,0,0,0,115,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,116,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,111,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,0,0,0,0,77,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,0,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,0,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,97,110,117,97,114,121,0,70,101,98,114,117,97,114,121,0,0,0,0,0,0,0,0,77,97,114,99,104,0,0,0,65,112,114,105,108,0,0,0,77,97,121,0,0,0,0,0,74,117,110,101,0,0,0,0,74,117,108,121,0,0,0,0,65,117,103,117,115,116,0,0,83,101,112,116,101,109,98,101,114,0,0,0,0,0,0,0,79,99,116,111,98,101,114,0,78,111,118,101,109,98,101,114,0,0,0,0,0,0,0,0,68,101,99,101,109,98,101,114,0,0,0,0,0,0,0,0,74,97,110],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+1684);allocate([70,101,98,0,0,0,0,0,77,97,114,0,0,0,0,0,65,112,114,0,0,0,0,0,74,117,110,0,0,0,0,0,74,117,108,0,0,0,0,0,65,117,103,0,0,0,0,0,83,101,112,0,0,0,0,0,79,99,116,0,0,0,0,0,78,111,118,0,0,0,0,0,68,101,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,110,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,114,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,117,0,0,0,114,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,117,110,100,97,121,0,0,77,111,110,100,97,121,0,0,84,117,101,115,100,97,121,0,87,101,100,110,101,115,100,97,121,0,0,0,0,0,0,0,84,104,117,114,115,100,97,121,0,0,0,0,0,0,0,0,70,114,105,100,97,121,0,0,83,97,116,117,114,100,97,121,0,0,0,0,0,0,0,0,83,117,110,0,0,0,0,0,77,111,110,0,0,0,0,0,84,117,101,0,0,0,0,0,87,101,100,0,0,0,0,0,84,104,117,0,0,0,0,0,70,114,105,0,0,0,0,0,83,97,116,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,48,51,0,0,0,0,0,0,117,110,99,97,117,103,104,116,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,0,0,116,101,114,109,105,110,97,116,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,0,0,0,0,0,0,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,0,200,52,0,0,96,0,0,0,97,0,0,0,61,0,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,128,55,0,0,184,52,0,0,80,53,0,0,0,0,0,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,88,55,0,0,64,53,0,0,0,0,0,0,152,53,0,0,98,0,0,0,99,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0,100,0,0,0,101,0,0,0,15,0,0,0,0,0,0,0,83,116,49,49,108,111,103,105,99,95,101,114,114,111,114,0,128,55,0,0,136,53,0,0,80,53,0,0,0,0,0,0,0,0,0,0,216,53,0,0,98,0,0,0,102,0,0,0,62,0,0,0,0,0,0,0,83,116,49,50,108,101,110,103,116,104,95,101,114,114,111,114,0,0,0,0,0,0,0,0,128,55,0,0,192,53,0,0,152,53,0,0,0,0,0,0,83,116,49,51,114,117,110,116,105,109,101,95,101,114,114,111,114,0,0,0,0,0,0,0,128,55,0,0,232,53,0,0,80,53,0,0,0,0,0,0,0,0,0,0,96,54,0,0,103,0,0,0,104,0,0,0,63,0,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,99,97,115,116,0,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,88,55,0,0,56,54,0,0,83,116,56,98,97,100,95,99,97,115,116,0,0,0,0,0,128,55,0,0,80,54,0,0,80,53,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,128,55,0,0,112,54,0,0,72,54,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,55,0,0,168,54,0,0,152,54,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,55,0,0,8,55,0,0,152,54,0,0,0,0,0,0,128,55,0,0,224,54,0,0,48,55,0,0,0,0,0,0,0,0,0,0,208,54,0,0,105,0,0,0,106,0,0,0,107,0,0,0,108,0,0,0,22,0,0,0,13,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,200,55,0,0,105,0,0,0,109,0,0,0,107,0,0,0,108,0,0,0,22,0,0,0,14,0,0,0,2,0,0,0,6,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,128,55,0,0,160,55,0,0,208,54,0,0,0,0,0,0,0,0,0,0,40,56,0,0,105,0,0,0,110,0,0,0,107,0,0,0,108,0,0,0,22,0,0,0,15,0,0,0,3,0,0,0,7,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,128,55,0,0,0,56,0,0,208,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,2,4,7,3,6,5,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,0,0,0,0,0,0,40,110,117,108,108,41,0,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,0,0,0,0,0,105,110,102,0,0,0,0,0,73,78,70,0,0,0,0,0,110,97,110,0,0,0,0,0,78,65,78,0,0,0,0,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+11928);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 _atexit(func,arg){__ATEXIT__.unshift({func:func,arg:arg})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}Module["_i64Subtract"]=_i64Subtract;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 __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);SAFE_HEAP_STORE(___cxa_find_matching_catch.buffer|0,thrown|0,4,0)|0;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=SAFE_HEAP_LOAD(thrown|0,4,0,0)|0;info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=SAFE_HEAP_LOAD(thrown|0,4,0,0)|0;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;var _BDtoILow=true;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var 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 ___errno_state=0;function ___setErrNo(value){SAFE_HEAP_STORE(___errno_state|0,value|0,4,0)|0;return value}function _strerror_r(errnum,strerrbuf,buflen){if(errnum in ERRNO_MESSAGES){if(ERRNO_MESSAGES[errnum].length>buflen-1){return ___setErrNo(ERRNO_CODES.ERANGE)}else{var msg=ERRNO_MESSAGES[errnum];writeAsciiToMemory(msg,strerrbuf);return 0}}else{return ___setErrNo(ERRNO_CODES.EINVAL)}}function _strerror(errnum){if(!_strerror.buffer)_strerror.buffer=_malloc(256);_strerror_r(errnum,_strerror.buffer,256);return _strerror.buffer}function _pthread_mutex_lock(){}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=SAFE_HEAP_LOAD(tm+40|0,4,0,0)|0;var date={tm_sec:SAFE_HEAP_LOAD(tm|0,4,0,0)|0,tm_min:SAFE_HEAP_LOAD(tm+4|0,4,0,0)|0,tm_hour:SAFE_HEAP_LOAD(tm+8|0,4,0,0)|0,tm_mday:SAFE_HEAP_LOAD(tm+12|0,4,0,0)|0,tm_mon:SAFE_HEAP_LOAD(tm+16|0,4,0,0)|0,tm_year:SAFE_HEAP_LOAD(tm+20|0,4,0,0)|0,tm_wday:SAFE_HEAP_LOAD(tm+24|0,4,0,0)|0,tm_yday:SAFE_HEAP_LOAD(tm+28|0,4,0,0)|0,tm_isdst:SAFE_HEAP_LOAD(tm+32|0,4,0,0)|0,tm_gmtoff:SAFE_HEAP_LOAD(tm+36|0,4,0,0)|0,tm_zone:tm_zone?Pointer_stringify(tm_zone):""};var pattern=Pointer_stringify(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,"0")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":(function(date){return WEEKDAYS[date.tm_wday].substring(0,3)}),"%A":(function(date){return WEEKDAYS[date.tm_wday]}),"%b":(function(date){return MONTHS[date.tm_mon].substring(0,3)}),"%B":(function(date){return MONTHS[date.tm_mon]}),"%C":(function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)}),"%d":(function(date){return leadingNulls(date.tm_mday,2)}),"%e":(function(date){return leadingSomething(date.tm_mday,2," ")}),"%g":(function(date){return getWeekBasedYear(date).toString().substring(2)}),"%G":(function(date){return getWeekBasedYear(date)}),"%H":(function(date){return leadingNulls(date.tm_hour,2)}),"%I":(function(date){return leadingNulls(date.tm_hour<13?date.tm_hour:date.tm_hour-12,2)}),"%j":(function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)}),"%m":(function(date){return leadingNulls(date.tm_mon+1,2)}),"%M":(function(date){return leadingNulls(date.tm_min,2)}),"%n":(function(){return"\n"}),"%p":(function(date){if(date.tm_hour>0&&date.tm_hour<13){return"AM"}else{return"PM"}}),"%S":(function(date){return leadingNulls(date.tm_sec,2)}),"%t":(function(){return"\t"}),"%u":(function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()||7}),"%U":(function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"}),"%V":(function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)}),"%w":(function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()}),"%W":(function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?"01":"00"}),"%y":(function(date){return(date.tm_year+1900).toString().substring(2)}),"%Y":(function(date){return date.tm_year+1900}),"%z":(function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)}),"%Z":(function(date){return date.tm_zone}),"%%":(function(){return"%"})};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _abort(){Module["abort"]()}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}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){result=process["stdin"]["read"]();if(!result){if(process["stdin"]["_readableState"]&&process["stdin"]["_readableState"]["ended"]){return null}return undefined}}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()}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](tty.output.join(""));tty.output=[]}}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](tty.output.join(""));tty.output=[]}else{tty.output.push(TTY.utf8.processCChar(val))}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](tty.output.join(""));tty.output=[]}else{tty.output.push(TTY.utf8.processCChar(val))}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](tty.output.join(""));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}},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}})}};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)}fileStore.createIndex("timestamp","timestamp",{unique:false})});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(){callback(this.error)})}),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(){callback(this.error)});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(){callback(this.error)})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(){callback(this.error)})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(){callback(this.error)})}),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(){done(this.error)});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){if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{return flags}}),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{return fs.readlinkSync(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 _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:{},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 accmode=flag&2097155;var perms=["r","w","rw"][accmode];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}),getStreamFromPtr:(function(ptr){return FS.streams[ptr-1]}),getPtrForStream:(function(stream){return stream?stream.fd+1:0}),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 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(!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){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)}),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="";var utf8=new Runtime.UTF8Processor;for(var i=0;i<length;i++){ret+=utf8.processCChar(buf[i])}}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 utf8=new Runtime.UTF8Processor;var buf=new Uint8Array(utf8.processJSString(data));FS.write(stream,buf,0,buf.length,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(){return 0})});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")}),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");SAFE_HEAP_STORE(_stdin|0,FS.getPtrForStream(stdin)|0,4,0)|0;assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");SAFE_HEAP_STORE(_stdout|0,FS.getPtrForStream(stdout)|0,4,0)|0;assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");SAFE_HEAP_STORE(_stderr|0,FS.getPtrForStream(stderr)|0,4,0)|0;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()}),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;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){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;function processData(byteArray){function finish(byteArray){if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency("cp "+fullname)}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("cp "+fullname)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency("cp "+fullname);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})};function _fflush(stream){}Module["_strlen"]=_strlen;function _mkport(){throw"TODO"}var SOCKFS={mount:(function(mount){Module["websocket"]=Module["websocket"]&&"object"===typeof Module["websocket"]?Module["websocket"]:{};Module["websocket"]._callbacks={};Module["websocket"]["on"]=(function(event,callback){if("function"===typeof callback){this._callbacks[event]=callback}return this});Module["websocket"].emit=(function(event,param){if("function"===typeof this._callbacks[event]){this._callbacks[event].call(this,param)}});return FS.createNode(null,"/",16384|511,0)}),createSocket:(function(family,type,protocol){var streaming=type==1;if(protocol){assert(streaming==(protocol==6))}var sock={family:family,type:type,protocol:protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node:node,flags:FS.modeStringToFlags("r+"),seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock}),getSocket:(function(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock}),stream_ops:{poll:(function(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)}),ioctl:(function(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)}),read:(function(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length}),write:(function(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)}),close:(function(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)})},nextname:(function(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return"socket["+SOCKFS.nextname.current++ +"]"}),websocket_sock_ops:{createPeer:(function(sock,addr,port){var ws;if(typeof addr==="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var runtimeConfig=Module["websocket"]&&"object"===typeof Module["websocket"];var url="ws:#".replace("#","//");if(runtimeConfig){if("string"===typeof Module["websocket"]["url"]){url=Module["websocket"]["url"]}}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}var subProtocols="binary";if(runtimeConfig){if("string"===typeof Module["websocket"]["subprotocol"]){subProtocols=Module["websocket"]["subprotocol"]}}subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);var opts=ENVIRONMENT_IS_NODE?{"protocol":subProtocols.toString()}:subProtocols;var WebSocket=ENVIRONMENT_IS_NODE?require("ws"):window["WebSocket"];ws=new WebSocket(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH)}}var peer={addr:addr,port:port,socket:ws,dgram_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!=="undefined"){peer.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer}),getPeer:(function(sock,addr,port){return sock.peers[addr+":"+port]}),addPeer:(function(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer}),removePeer:(function(sock,peer){delete sock.peers[peer.addr+":"+peer.port]}),handlePeerEvents:(function(sock,peer){var first=true;var handleOpen=(function(){Module["websocket"].emit("open",sock.stream.fd);try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}});function handleMessage(data){assert(typeof data!=="string"&&data.byteLength!==undefined);data=new Uint8Array(data);var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data});Module["websocket"].emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",(function(data,flags){if(!flags.binary){return}handleMessage((new Uint8Array(data)).buffer)}));peer.socket.on("close",(function(){Module["websocket"].emit("close",sock.stream.fd)}));peer.socket.on("error",(function(error){sock.error=ERRNO_CODES.ECONNREFUSED;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}))}else{peer.socket.onopen=handleOpen;peer.socket.onclose=(function(){Module["websocket"].emit("close",sock.stream.fd)});peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=(function(error){sock.error=ERRNO_CODES.ECONNREFUSED;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}}),poll:(function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask}),ioctl:(function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}SAFE_HEAP_STORE(arg|0,bytes|0,4,0)|0;return 0;default:return ERRNO_CODES.EINVAL}}),close:(function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i<peers.length;i++){var peer=sock.peers[peers[i]];try{peer.socket.close()}catch(e){}SOCKFS.websocket_sock_ops.removePeer(sock,peer)}return 0}),bind:(function(sock,addr,port){if(typeof sock.saddr!=="undefined"||typeof sock.sport!=="undefined"){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}sock.saddr=addr;sock.sport=port||_mkport();if(sock.type===2){if(sock.server){sock.server.close();sock.server=null}try{sock.sock_ops.listen(sock,0)}catch(e){if(!(e instanceof FS.ErrnoError))throw e;if(e.errno!==ERRNO_CODES.EOPNOTSUPP)throw e}}}),connect:(function(sock,addr,port){if(sock.server){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}if(typeof sock.daddr!=="undefined"&&typeof sock.dport!=="undefined"){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(dest){if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(ERRNO_CODES.EALREADY)}else{throw new FS.ErrnoError(ERRNO_CODES.EISCONN)}}}var peer=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);sock.daddr=peer.addr;sock.dport=peer.port;throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS)}),listen:(function(sock,backlog){if(!ENVIRONMENT_IS_NODE){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}if(sock.server){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var WebSocketServer=require("ws").Server;var host=sock.saddr;sock.server=new WebSocketServer({host:host,port:sock.sport});Module["websocket"].emit("listen",sock.stream.fd);sock.server.on("connection",(function(ws){if(sock.type===1){var newsock=SOCKFS.createSocket(sock.family,sock.type,sock.protocol);var peer=SOCKFS.websocket_sock_ops.createPeer(newsock,ws);newsock.daddr=peer.addr;newsock.dport=peer.port;sock.pending.push(newsock);Module["websocket"].emit("connection",newsock.stream.fd)}else{SOCKFS.websocket_sock_ops.createPeer(sock,ws);Module["websocket"].emit("connection",sock.stream.fd)}}));sock.server.on("closed",(function(){Module["websocket"].emit("close",sock.stream.fd);sock.server=null}));sock.server.on("error",(function(error){sock.error=ERRNO_CODES.EHOSTUNREACH;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"EHOSTUNREACH: Host is unreachable"])}))}),accept:(function(listensock){if(!listensock.server){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var newsock=listensock.pending.shift();newsock.stream.flags=listensock.stream.flags;return newsock}),getname:(function(sock,peer){var addr,port;if(peer){if(sock.daddr===undefined||sock.dport===undefined){throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN)}addr=sock.daddr;port=sock.dport}else{addr=sock.saddr||0;port=sock.sport||0}return{addr:addr,port:port}}),sendmsg:(function(sock,buffer,offset,length,addr,port){if(sock.type===2){if(addr===undefined||port===undefined){addr=sock.daddr;port=sock.dport}if(addr===undefined||port===undefined){throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ)}}else{addr=sock.daddr;port=sock.dport}var dest=SOCKFS.websocket_sock_ops.getPeer(sock,addr,port);if(sock.type===1){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN)}else if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}}var data;if(buffer instanceof Array||buffer instanceof ArrayBuffer){data=buffer.slice(offset,offset+length)}else{data=buffer.buffer.slice(buffer.byteOffset+offset,buffer.byteOffset+offset+length)}if(sock.type===2){if(!dest||dest.socket.readyState!==dest.socket.OPEN){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){dest=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port)}dest.dgram_send_queue.push(data);return length}}try{dest.socket.send(data);return length}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),recvmsg:(function(sock,length){if(sock.type===1&&sock.server){throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN)}var queued=sock.recv_queue.shift();if(!queued){if(sock.type===1){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(!dest){throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN)}else if(dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){return null}else{throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}}else{throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}}var queuedLength=queued.data.byteLength||queued.data.length;var queuedOffset=queued.data.byteOffset||0;var queuedBuffer=queued.data.buffer||queued.data;var bytesRead=Math.min(length,queuedLength);var res={buffer:new Uint8Array(queuedBuffer,queuedOffset,bytesRead),addr:queued.addr,port:queued.port};if(sock.type===1&&bytesRead<queuedLength){var bytesRemaining=queuedLength-bytesRead;queued.data=new Uint8Array(queuedBuffer,queuedOffset+bytesRead,bytesRemaining);sock.recv_queue.unshift(queued)}return res})}};function _send(fd,buf,len,flags){var sock=SOCKFS.getSocket(fd);if(!sock){___setErrNo(ERRNO_CODES.EBADF);return-1}return _write(fd,buf,len)}function _pwrite(fildes,buf,nbyte,offset){var stream=FS.getStream(fildes);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}try{var slab=HEAP8;return FS.write(stream,slab,buf,nbyte,offset)}catch(e){FS.handleFSError(e);return-1}}function _write(fildes,buf,nbyte){var stream=FS.getStream(fildes);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}try{var slab=HEAP8;return FS.write(stream,slab,buf,nbyte)}catch(e){FS.handleFSError(e);return-1}}function _fileno(stream){stream=FS.getStreamFromPtr(stream);if(!stream)return-1;return stream.fd}function _fputc(c,stream){var chr=unSign(c&255);SAFE_HEAP_STORE(_fputc.ret|0,chr|0,1,0)|0;var fd=_fileno(stream);var ret=_write(fd,_fputc.ret,1);if(ret==-1){var streamObj=FS.getStreamFromPtr(stream);if(streamObj)streamObj.error=true;return-1}else{return chr}}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function _sysconf(name){switch(name){case 30:return 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 79: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 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}var _fabs=Math_abs;function _fwrite(ptr,size,nitems,stream){var bytesToWrite=nitems*size;if(bytesToWrite==0)return 0;var fd=_fileno(stream);var bytesWritten=_write(fd,ptr,bytesToWrite);if(bytesWritten==-1){var streamObj=FS.getStreamFromPtr(stream);if(streamObj)streamObj.error=true;return 0}else{return bytesWritten/size|0}}function _recv(fd,buf,len,flags){var sock=SOCKFS.getSocket(fd);if(!sock){___setErrNo(ERRNO_CODES.EBADF);return-1}return _read(fd,buf,len)}function _pread(fildes,buf,nbyte,offset){var stream=FS.getStream(fildes);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}try{var slab=HEAP8;return FS.read(stream,slab,buf,nbyte,offset)}catch(e){FS.handleFSError(e);return-1}}function _read(fildes,buf,nbyte){var stream=FS.getStream(fildes);if(!stream){___setErrNo(ERRNO_CODES.EBADF);return-1}try{var slab=HEAP8;return FS.read(stream,slab,buf,nbyte)}catch(e){FS.handleFSError(e);return-1}}function _fread(ptr,size,nitems,stream){var bytesToRead=nitems*size;if(bytesToRead==0){return 0}var bytesRead=0;var streamObj=FS.getStreamFromPtr(stream);if(!streamObj){___setErrNo(ERRNO_CODES.EBADF);return 0}while(streamObj.ungotten.length&&bytesToRead>0){SAFE_HEAP_STORE(ptr++|0,streamObj.ungotten.pop()|0,1,0)|0;bytesToRead--;bytesRead++}var err=_read(streamObj.fd,ptr,bytesToRead);if(err==-1){if(streamObj)streamObj.error=true;return 0}bytesRead+=err;if(bytesRead<bytesToRead)streamObj.eof=true;return bytesRead/size|0}function _fgetc(stream){var streamObj=FS.getStreamFromPtr(stream);if(!streamObj)return-1;if(streamObj.eof||streamObj.error)return-1;var ret=_fread(_fgetc.ret,1,1,stream);if(ret==0){return-1}else if(ret==-1){streamObj.error=true;return-1}else{return SAFE_HEAP_LOAD(_fgetc.ret|0,1,0,1)|0}}function _getc(){return _fgetc.apply(null,arguments)}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(Browser.mainLoop.runner,value)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg){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(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);_emscripten_set_main_loop_timing(timingMode,timingValue)}),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){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;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);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)})}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(!ABORT)func()}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(!ABORT)func()}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(!ABORT)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"){Browser.lastTouches[touch.identifier]=Browser.touches[touch.identifier];Browser.touches[touch.identifier]={x:adjustedX,y:adjustedY}}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=SAFE_HEAP_LOAD(SDL.screen+Runtime.QUANTUM_SIZE*0|0,4,0,1)|0;flags=flags|8388608;SAFE_HEAP_STORE(SDL.screen+Runtime.QUANTUM_SIZE*0|0,flags|0,4,0)|0}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=SAFE_HEAP_LOAD(SDL.screen+Runtime.QUANTUM_SIZE*0|0,4,0,1)|0;flags=flags&~8388608;SAFE_HEAP_STORE(SDL.screen+Runtime.QUANTUM_SIZE*0|0,flags|0,4,0)|0}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 _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___ctype_b_loc(){var me=___ctype_b_loc;if(!me.ret){var values=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,8195,8194,8194,8194,8194,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,24577,49156,49156,49156,49156,49156,49156,49156,49156,49156,49156,49156,49156,49156,49156,49156,55304,55304,55304,55304,55304,55304,55304,55304,55304,55304,49156,49156,49156,49156,49156,49156,49156,54536,54536,54536,54536,54536,54536,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,49156,49156,49156,49156,49156,49156,54792,54792,54792,54792,54792,54792,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,49156,49156,49156,49156,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var i16size=2;var arr=_malloc(values.length*i16size);for(var i=0;i<values.length;i++){SAFE_HEAP_STORE(arr+i*i16size|0,values[i]|0,2,0)|0}me.ret=allocate([arr+128*i16size],"i16*",ALLOC_NORMAL)}return me.ret}var LOCALE={curr:0,check:(function(locale){if(locale)locale=Pointer_stringify(locale);return locale==="C"||locale==="POSIX"||!locale})};function _free(){}Module["_free"]=_free;function _freelocale(locale){_free(locale)}function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function ___cxa_allocate_exception(size){return _malloc(size)}Module["_i64Add"]=_i64Add;Module["_bitshift64Lshr"]=_bitshift64Lshr;function _catopen(name,oflag){return-1}function _catgets(catd,set_id,msg_id,s){return s}function _pthread_cond_wait(){return 0}var _BDtoIHigh=true;function _pthread_cond_broadcast(){return 0}function ___ctype_toupper_loc(){var me=___ctype_toupper_loc;if(!me.ret){var values=[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255];var i32size=4;var arr=_malloc(values.length*i32size);for(var i=0;i<values.length;i++){SAFE_HEAP_STORE(arr+i*i32size|0,values[i]|0,4,0)|0}me.ret=allocate([arr+128*i32size],"i32*",ALLOC_NORMAL)}return me.ret}function ___cxa_guard_acquire(variable){if(!HEAP8[variable>>0]){SAFE_HEAP_STORE(variable|0,1|0,1,0)|0;return 1}return 0}function ___cxa_guard_release(){}function __reallyNegative(x){return x<0||x===0&&1/x===-Infinity}function __formatString(format,varargs){var textIndex=format;var argIndex=0;function getNextArg(type){var ret;if(type==="double"){ret=(HEAP32[tempDoublePtr>>2]=HEAP32[varargs+argIndex>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[varargs+(argIndex+4)>>2],+HEAPF64[tempDoublePtr>>3])}else if(type=="i64"){ret=[HEAP32[varargs+argIndex>>2],HEAP32[varargs+(argIndex+4)>>2]]}else{type="i32";ret=HEAP32[varargs+argIndex>>2]}argIndex+=Runtime.getNativeFieldSize(type);return ret}var ret=[];var curr,next,currArg;while(1){var startTextIndex=textIndex;curr=SAFE_HEAP_LOAD(textIndex|0,1,0,0)|0;if(curr===0)break;next=SAFE_HEAP_LOAD(textIndex+1|0,1,0,0)|0;if(curr==37){var flagAlwaysSigned=false;var flagLeftAlign=false;var flagAlternative=false;var flagZeroPad=false;var flagPadSign=false;flagsLoop:while(1){switch(next){case 43:flagAlwaysSigned=true;break;case 45:flagLeftAlign=true;break;case 35:flagAlternative=true;break;case 48:if(flagZeroPad){break flagsLoop}else{flagZeroPad=true;break};case 32:flagPadSign=true;break;default:break flagsLoop}textIndex++;next=SAFE_HEAP_LOAD(textIndex+1|0,1,0,0)|0}var width=0;if(next==42){width=getNextArg("i32");textIndex++;next=SAFE_HEAP_LOAD(textIndex+1|0,1,0,0)|0}else{while(next>=48&&next<=57){width=width*10+(next-48);textIndex++;next=SAFE_HEAP_LOAD(textIndex+1|0,1,0,0)|0}}var precisionSet=false,precision=-1;if(next==46){precision=0;precisionSet=true;textIndex++;next=SAFE_HEAP_LOAD(textIndex+1|0,1,0,0)|0;if(next==42){precision=getNextArg("i32");textIndex++}else{while(1){var precisionChr=SAFE_HEAP_LOAD(textIndex+1|0,1,0,0)|0;if(precisionChr<48||precisionChr>57)break;precision=precision*10+(precisionChr-48);textIndex++}}next=SAFE_HEAP_LOAD(textIndex+1|0,1,0,0)|0}if(precision<0){precision=6;precisionSet=false}var argSize;switch(String.fromCharCode(next)){case"h":var nextNext=SAFE_HEAP_LOAD(textIndex+2|0,1,0,0)|0;if(nextNext==104){textIndex++;argSize=1}else{argSize=2}break;case"l":var nextNext=SAFE_HEAP_LOAD(textIndex+2|0,1,0,0)|0;if(nextNext==108){textIndex++;argSize=8}else{argSize=4}break;case"L":case"q":case"j":argSize=8;break;case"z":case"t":case"I":argSize=4;break;default:argSize=null}if(argSize)textIndex++;next=SAFE_HEAP_LOAD(textIndex+1|0,1,0,0)|0;switch(String.fromCharCode(next)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":{var signed=next==100||next==105;argSize=argSize||4;var currArg=getNextArg("i"+argSize*8);var origArg=currArg;var argText;if(argSize==8){currArg=Runtime.makeBigInt(currArg[0],currArg[1],next==117)}if(argSize<=4){var limit=Math.pow(256,argSize)-1;currArg=(signed?reSign:unSign)(currArg&limit,argSize*8)}var currAbsArg=Math.abs(currArg);var prefix="";if(next==100||next==105){if(argSize==8&&i64Math)argText=i64Math.stringify(origArg[0],origArg[1],null);else argText=reSign(currArg,8*argSize,1).toString(10)}else if(next==117){if(argSize==8&&i64Math)argText=i64Math.stringify(origArg[0],origArg[1],true);else argText=unSign(currArg,8*argSize,1).toString(10);currArg=Math.abs(currArg)}else if(next==111){argText=(flagAlternative?"0":"")+currAbsArg.toString(8)}else if(next==120||next==88){prefix=flagAlternative&&currArg!=0?"0x":"";if(argSize==8&&i64Math){if(origArg[1]){argText=(origArg[1]>>>0).toString(16);var lower=(origArg[0]>>>0).toString(16);while(lower.length<8)lower="0"+lower;argText+=lower}else{argText=(origArg[0]>>>0).toString(16)}}else if(currArg<0){currArg=-currArg;argText=(currAbsArg-1).toString(16);var buffer=[];for(var i=0;i<argText.length;i++){buffer.push((15-parseInt(argText[i],16)).toString(16))}argText=buffer.join("");while(argText.length<argSize*2)argText="f"+argText}else{argText=currAbsArg.toString(16)}if(next==88){prefix=prefix.toUpperCase();argText=argText.toUpperCase()}}else if(next==112){if(currAbsArg===0){argText="(nil)"}else{prefix="0x";argText=currAbsArg.toString(16)}}if(precisionSet){while(argText.length<precision){argText="0"+argText}}if(currArg>=0){if(flagAlwaysSigned){prefix="+"+prefix}else if(flagPadSign){prefix=" "+prefix}}if(argText.charAt(0)=="-"){prefix="-"+prefix;argText=argText.substr(1)}while(prefix.length+argText.length<width){if(flagLeftAlign){argText+=" "}else{if(flagZeroPad){argText="0"+argText}else{prefix=" "+prefix}}}argText=prefix+argText;argText.split("").forEach((function(chr){ret.push(chr.charCodeAt(0))}));break};case"f":case"F":case"e":case"E":case"g":case"G":{var currArg=getNextArg("double");var argText;if(isNaN(currArg)){argText="nan";flagZeroPad=false}else if(!isFinite(currArg)){argText=(currArg<0?"-":"")+"inf";flagZeroPad=false}else{var isGeneral=false;var effectivePrecision=Math.min(precision,20);if(next==103||next==71){isGeneral=true;precision=precision||1;var exponent=parseInt(currArg.toExponential(effectivePrecision).split("e")[1],10);if(precision>exponent&&exponent>=-4){next=(next==103?"f":"F").charCodeAt(0);precision-=exponent+1}else{next=(next==103?"e":"E").charCodeAt(0);precision--}effectivePrecision=Math.min(precision,20)}if(next==101||next==69){argText=currArg.toExponential(effectivePrecision);if(/[eE][-+]\d$/.test(argText)){argText=argText.slice(0,-1)+"0"+argText.slice(-1)}}else if(next==102||next==70){argText=currArg.toFixed(effectivePrecision);if(currArg===0&&__reallyNegative(currArg)){argText="-"+argText}}var parts=argText.split("e");if(isGeneral&&!flagAlternative){while(parts[0].length>1&&parts[0].indexOf(".")!=-1&&(parts[0].slice(-1)=="0"||parts[0].slice(-1)==".")){parts[0]=parts[0].slice(0,-1)}}else{if(flagAlternative&&argText.indexOf(".")==-1)parts[0]+=".";while(precision>effectivePrecision++)parts[0]+="0"}argText=parts[0]+(parts.length>1?"e"+parts[1]:"");if(next==69)argText=argText.toUpperCase();if(currArg>=0){if(flagAlwaysSigned){argText="+"+argText}else if(flagPadSign){argText=" "+argText}}}while(argText.length<width){if(flagLeftAlign){argText+=" "}else{if(flagZeroPad&&(argText[0]=="-"||argText[0]=="+")){argText=argText[0]+"0"+argText.slice(1)}else{argText=(flagZeroPad?"0":" ")+argText}}}if(next<97)argText=argText.toUpperCase();argText.split("").forEach((function(chr){ret.push(chr.charCodeAt(0))}));break};case"s":{var arg=getNextArg("i8*");var argLength=arg?_strlen(arg):"(null)".length;if(precisionSet)argLength=Math.min(argLength,precision);if(!flagLeftAlign){while(argLength<width--){ret.push(32)}}if(arg){for(var i=0;i<argLength;i++){ret.push(SAFE_HEAP_LOAD(arg++|0,1,0,1)|0)}}else{ret=ret.concat(intArrayFromString("(null)".substr(0,argLength),true))}if(flagLeftAlign){while(argLength<width--){ret.push(32)}}break};case"c":{if(flagLeftAlign)ret.push(getNextArg("i8"));while(--width>0){ret.push(32)}if(!flagLeftAlign)ret.push(getNextArg("i8"));break};case"n":{var ptr=getNextArg("i32*");SAFE_HEAP_STORE(ptr|0,ret.length|0,4,0)|0;break};case"%":{ret.push(curr);break};default:{for(var i=startTextIndex;i<textIndex+2;i++){ret.push(SAFE_HEAP_LOAD(i|0,1,0,0)|0)}}}textIndex+=2}else{ret.push(curr);textIndex+=1}}return ret}function _fprintf(stream,format,varargs){var result=__formatString(format,varargs);var stack=Runtime.stackSave();var ret=_fwrite(allocate(result,"i8",ALLOC_STACK),1,result.length,stream);Runtime.stackRestore(stack);return ret}function _vfprintf(s,f,va_arg){return _fprintf(s,f,SAFE_HEAP_LOAD(va_arg|0,4,0,0)|0)}function ___ctype_tolower_loc(){var me=___ctype_tolower_loc;if(!me.ret){var values=[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255];var i32size=4;var arr=_malloc(values.length*i32size);for(var i=0;i<values.length;i++){SAFE_HEAP_STORE(arr+i*i32size|0,values[i]|0,4,0)|0}me.ret=allocate([arr+128*i32size],"i32*",ALLOC_NORMAL)}return me.ret}function _pthread_mutex_unlock(){}Module["_bitshift64Shl"]=_bitshift64Shl;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}SAFE_HEAP_STORE(key|0,PTHREAD_SPECIFIC_NEXT_KEY|0,4,0)|0;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}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)self.alloc(bytes);return ret}Module["_memmove"]=_memmove;function _calloc(n,s){var ret=_malloc(n*s);_memset(ret,0,n*s);return ret}Module["_calloc"]=_calloc;function _newlocale(mask,locale,base){if(!LOCALE.check(locale)){___setErrNo(ERRNO_CODES.ENOENT);return 0}if(!base)base=_calloc(1,4);return base}function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___errno_location(){return ___errno_state}var _BItoD=true;function _catclose(catd){return 0}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){if(___cxa_end_catch.rethrown){___cxa_end_catch.rethrown=false;return}asm["setThrew"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_rethrow(){___cxa_end_catch.rethrown=true;var ptr=EXCEPTIONS.caught.pop();EXCEPTIONS.last=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 _time(ptr){var ret=Date.now()/1e3|0;if(ptr){SAFE_HEAP_STORE(ptr|0,ret|0,4,0)|0}return ret}function _ungetc(c,stream){stream=FS.getStreamFromPtr(stream);if(!stream){return-1}if(c===-1){return c}c=unSign(c&255);stream.ungotten.push(c);stream.eof=false;return c}function _uselocale(locale){var old=LOCALE.curr;if(locale)LOCALE.curr=locale;return old}var ___dso_handle=allocate(1,"i32*",ALLOC_STATIC);___errno_state=Runtime.staticAlloc(4);SAFE_HEAP_STORE(___errno_state|0,0|0,4,0)|0;FS.staticInit();__ATINIT__.unshift({func:(function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()})});__ATMAIN__.push({func:(function(){FS.ignorePermissions=false})});__ATEXIT__.push({func:(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;__ATINIT__.unshift({func:(function(){TTY.init()})});__ATEXIT__.push({func:(function(){TTY.shutdown()})});TTY.utf8=new Runtime.UTF8Processor;if(ENVIRONMENT_IS_NODE){var fs=require("fs");NODEFS.staticInit()}_fputc.ret=allocate([0],"i8",ALLOC_STATIC);__ATINIT__.push({func:(function(){SOCKFS.root=FS.mount(SOCKFS,{},null)})});_fgetc.ret=allocate([0],"i8",ALLOC_STATIC);Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas){Browser.requestFullScreen(lockPointer,resizeCanvas)};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()};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");var ctlz_i8=allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",ALLOC_DYNAMIC);var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);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_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}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_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){try{Module["dynCall_viiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}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_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiiid"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiid(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiid"](index,a1,a2,a3,a4,a5,a6)}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_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){try{return Module["dynCall_iiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){try{Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8)}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_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}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};Module.asmLibraryArg={"abort":abort,"assert":assert,"min":Math_min,"SAFE_HEAP_LOAD":SAFE_HEAP_LOAD,"SAFE_HEAP_STORE":SAFE_HEAP_STORE,"SAFE_FT_MASK":SAFE_FT_MASK,"invoke_iiii":invoke_iiii,"invoke_viiiiiii":invoke_viiiiiii,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_viiiiiiiii":invoke_viiiiiiiii,"invoke_ii":invoke_ii,"invoke_viiiiiid":invoke_viiiiiid,"invoke_viii":invoke_viii,"invoke_viiiiid":invoke_viiiiid,"invoke_v":invoke_v,"invoke_iiiiiiiii":invoke_iiiiiiiii,"invoke_iiiii":invoke_iiiii,"invoke_viiiiiiii":invoke_viiiiiiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_viiii":invoke_viiii,"_fabs":_fabs,"_strftime":_strftime,"_pthread_cond_wait":_pthread_cond_wait,"_send":_send,"_pthread_key_create":_pthread_key_create,"_fread":_fread,"___ctype_b_loc":___ctype_b_loc,"___cxa_guard_acquire":___cxa_guard_acquire,"_emscripten_set_main_loop_timing":_emscripten_set_main_loop_timing,"_vfprintf":_vfprintf,"_ungetc":_ungetc,"___assert_fail":___assert_fail,"___cxa_free_exception":___cxa_free_exception,"___cxa_allocate_exception":___cxa_allocate_exception,"___cxa_find_matching_catch":___cxa_find_matching_catch,"___ctype_toupper_loc":___ctype_toupper_loc,"_fflush":_fflush,"___cxa_guard_release":___cxa_guard_release,"__addDays":__addDays,"_pwrite":_pwrite,"_strerror_r":_strerror_r,"_strftime_l":_strftime_l,"_pthread_mutex_lock":_pthread_mutex_lock,"___setErrNo":___setErrNo,"_sbrk":_sbrk,"_uselocale":_uselocale,"_catgets":_catgets,"_newlocale":_newlocale,"_calloc":_calloc,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_fileno":_fileno,"___resumeException":___resumeException,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"_sysconf":_sysconf,"___cxa_begin_catch":___cxa_begin_catch,"_pthread_getspecific":_pthread_getspecific,"__arraySum":__arraySum,"___ctype_tolower_loc":___ctype_tolower_loc,"___cxa_end_catch":___cxa_end_catch,"_pthread_mutex_unlock":_pthread_mutex_unlock,"_pthread_once":_pthread_once,"_pread":_pread,"_mkport":_mkport,"__reallyNegative":__reallyNegative,"_getc":_getc,"_write":_write,"__isLeapYear":__isLeapYear,"_emscripten_set_main_loop":_emscripten_set_main_loop,"___errno_location":___errno_location,"_recv":_recv,"_pthread_setspecific":_pthread_setspecific,"___cxa_atexit":___cxa_atexit,"_fgetc":_fgetc,"_fputc":_fputc,"___cxa_throw":___cxa_throw,"_freelocale":_freelocale,"_pthread_cond_broadcast":_pthread_cond_broadcast,"___cxa_rethrow":___cxa_rethrow,"_abort":_abort,"_catclose":_catclose,"_fwrite":_fwrite,"_time":_time,"_fprintf":_fprintf,"_strerror":_strerror,"__formatString":__formatString,"_atexit":_atexit,"_catopen":_catopen,"_read":_read,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"cttz_i8":cttz_i8,"ctlz_i8":ctlz_i8,"NaN":NaN,"Infinity":Infinity,"___dso_handle":___dso_handle,"_stderr":_stderr,"_stdin":_stdin,"_stdout":_stdout};// 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=env.cttz_i8|0;var n=env.ctlz_i8|0;var o=env.___dso_handle|0;var p=env._stderr|0;var q=env._stdin|0;var r=env._stdout|0;var s=0;var t=0;var u=0;var v=0;var w=+env.NaN,x=+env.Infinity;var y=0,z=0,A=0,B=0,C=0.0,D=0,E=0,F=0,G=0.0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=0;var N=0;var O=0;var P=0;var Q=0;var R=global.Math.floor;var S=global.Math.abs;var T=global.Math.sqrt;var U=global.Math.pow;var V=global.Math.cos;var W=global.Math.sin;var X=global.Math.tan;var Y=global.Math.acos;var Z=global.Math.asin;var _=global.Math.atan;var $=global.Math.atan2;var aa=global.Math.exp;var ba=global.Math.log;var ca=global.Math.ceil;var da=global.Math.imul;var ea=env.abort;var fa=env.assert;var ga=env.min;var ha=env.SAFE_HEAP_LOAD;var ia=env.SAFE_HEAP_STORE;var ja=env.SAFE_FT_MASK;var ka=env.invoke_iiii;var la=env.invoke_viiiiiii;var ma=env.invoke_viiiii;var na=env.invoke_vi;var oa=env.invoke_vii;var pa=env.invoke_viiiiiiiii;var qa=env.invoke_ii;var ra=env.invoke_viiiiiid;var sa=env.invoke_viii;var ta=env.invoke_viiiiid;var ua=env.invoke_v;var va=env.invoke_iiiiiiiii;var wa=env.invoke_iiiii;var xa=env.invoke_viiiiiiii;var ya=env.invoke_viiiiii;var za=env.invoke_iii;var Aa=env.invoke_iiiiii;var Ba=env.invoke_viiii;var Ca=env._fabs;var Da=env._strftime;var Ea=env._pthread_cond_wait;var Fa=env._send;var Ga=env._pthread_key_create;var Ha=env._fread;var Ia=env.___ctype_b_loc;var Ja=env.___cxa_guard_acquire;var Ka=env._emscripten_set_main_loop_timing;var La=env._vfprintf;var Ma=env._ungetc;var Na=env.___assert_fail;var Oa=env.___cxa_free_exception;var Pa=env.___cxa_allocate_exception;var Qa=env.___cxa_find_matching_catch;var Ra=env.___ctype_toupper_loc;var Sa=env._fflush;var Ta=env.___cxa_guard_release;var Ua=env.__addDays;var Va=env._pwrite;var Wa=env._strerror_r;var Xa=env._strftime_l;var Ya=env._pthread_mutex_lock;var Za=env.___setErrNo;var _a=env._sbrk;var $a=env._uselocale;var ab=env._catgets;var bb=env._newlocale;var cb=env._calloc;var db=env._emscripten_memcpy_big;var eb=env._fileno;var fb=env.___resumeException;var gb=env.__ZSt18uncaught_exceptionv;var hb=env._sysconf;var ib=env.___cxa_begin_catch;var jb=env._pthread_getspecific;var kb=env.__arraySum;var lb=env.___ctype_tolower_loc;var mb=env.___cxa_end_catch;var nb=env._pthread_mutex_unlock;var ob=env._pthread_once;var pb=env._pread;var qb=env._mkport;var rb=env.__reallyNegative;var sb=env._getc;var tb=env._write;var ub=env.__isLeapYear;var vb=env._emscripten_set_main_loop;var wb=env.___errno_location;var xb=env._recv;var yb=env._pthread_setspecific;var zb=env.___cxa_atexit;var Ab=env._fgetc;var Bb=env._fputc;var Cb=env.___cxa_throw;var Db=env._freelocale;var Eb=env._pthread_cond_broadcast;var Fb=env.___cxa_rethrow;var Gb=env._abort;var Hb=env._catclose;var Ib=env._fwrite;var Jb=env._time;var Kb=env._fprintf;var Lb=env._strerror;var Mb=env.__formatString;var Nb=env._atexit;var Ob=env._catopen;var Pb=env._read;var Qb=0.0;
// EMSCRIPTEN_START_FUNCS
function hc(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function ic(){return i|0}function jc(a){a=a|0;i=a}function kc(a,b){a=a|0;b=b|0;if(!s){s=a;t=b}}function lc(a){a=a|0;ia(k>>0|0,ha(a>>0|0,1,0,0)|0|0,1,0);ia(k+1>>0|0,ha(a+1>>0|0,1,0,0)|0|0,1,0);ia(k+2>>0|0,ha(a+2>>0|0,1,0,0)|0|0,1,0);ia(k+3>>0|0,ha(a+3>>0|0,1,0,0)|0|0,1,0)}function mc(a){a=a|0;ia(k>>0|0,ha(a>>0|0,1,0,0)|0|0,1,0);ia(k+1>>0|0,ha(a+1>>0|0,1,0,0)|0|0,1,0);ia(k+2>>0|0,ha(a+2>>0|0,1,0,0)|0|0,1,0);ia(k+3>>0|0,ha(a+3>>0|0,1,0,0)|0|0,1,0);ia(k+4>>0|0,ha(a+4>>0|0,1,0,0)|0|0,1,0);ia(k+5>>0|0,ha(a+5>>0|0,1,0,0)|0|0,1,0);ia(k+6>>0|0,ha(a+6>>0|0,1,0,0)|0|0,1,0);ia(k+7>>0|0,ha(a+7>>0|0,1,0,0)|0|0,1,0)}function nc(a){a=a|0;H=a}function oc(){return H|0}function pc(){var a=0,b=0,c=0,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,E=0,F=0,G=0,H=0,I=0,J=0;a=i;i=i+96|0;b=a+44|0;c=a;d=a+32|0;e=a+8|0;f=d+1|0;g=b+24|0;h=b+20|0;j=b+12|0;k=b+8|0;l=b+4|0;m=b+44|0;n=b+4|0;o=e+4|0;p=e+8|0;q=e+12|0;r=e+16|0;s=e+20|0;t=b+32|0;u=b+16|0;v=b+36|0;w=b+48|0;x=c+4|0;y=b+28|0;z=b+20|0;A=d+8|0;B=0;while(1){ia(d+0|0,0|0,4,0);ia(d+4|0,0|0,4,0);ia(d+8|0,0|0,4,0);C=De(qc(712,16,26)|0,B)|0;Dd(b,C+(ha((ha(C|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)|0);D=cj(b,5208)|0;E=ec[(ja(ha((ha(D|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](D,10)|0;aj(b);Ee(C,E)|0;oe(C)|0;if((B|0)>0){C=0;do{ld(d,120);C=C+1|0}while((C|0)<(B|0))}tc(b,1024,0);C=((ha(d>>0|0,1,0,0)|0)&1)==0?f:ha(A|0,4,0,0)|0|0;E=Ec(b,C,pp(C|0)|0)|0;if((ha(g|0,4,0,0)|0|0)!=(ha(h|0,4,0,0)|0|0)){F=5;break}C=ha(j|0,4,0,0)|0|0;if(!C){F=8;break}D=ha(k|0,4,0,0)|0|0;if(!D){F=8;break}G=D-C+(ha(l|0,4,0,0)|0|0)|0;do if((E|0)!=0?(C=Cc(b,E)|0,!((C|0)==0&(ha(w>>0|0,1,0,0)|0|0)==0)):0){ia(c|0,Bc(b,C)|0|0,4,0);ia(x|0,4|0,2,0);C=ha(g|0,4,0,0)|0|0;if((C|0)==(ha(y|0,4,0,0)|0|0)){Dc(z,c);break}if(!C)H=0;else{D=c;I=ha(D+4|0,4,0,0)|0|0;J=C;ia(J|0,ha(D|0,4,0,0)|0|0,4,0);ia(J+4|0,I|0,4,0);H=ha(g|0,4,0,0)|0|0}ia(g|0,H+8|0,4,0)}while(0);E=wc(b,G,1)|0;I=ha(j|0,4,0,0)|0|0;if(!I){F=18;break}J=ha(k|0,4,0,0)|0|0;if(!J){F=18;break}D=I+-4-J-(ha(l|0,4,0,0)|0|0)&(ha(m|0,4,0,0)|0|0)+-1;J=Ac(n,D)|0;if(D)op(J|0,0,D|0)|0;Bc(b,Cc(b,E)|0)|0;E=ha(j|0,4,0,0)|0|0;if(!E){F=22;break}D=ha(k|0,4,0,0)|0|0;if(!D){F=24;break}J=(ha(l|0,4,0,0)|0|0)+(D-E)|0;ia(e|0,E|0,4,0);ia(o|0,E+J|0,4,0);ia(p|0,0|0,4,0);ia(q|0,64|0,4,0);ia(r|0,0|0,4,0);ia(s|0,1e6|0,4,0);if((J+-4|0)<0){F=27;break}if(!(vc(E+(ha(E|0,4,0,0)|0|0)|0,e)|0)){F=27;break}E=ha(t|0,4,0,0)|0|0;if(E){J=ha(v|0,4,0,0)|0|0;if((J|0)!=(E|0))ia(v|0,J+(~((J+-4-E|0)>>>2)<<2)|0,4,0);Gn(E)}E=ha(h|0,4,0,0)|0|0;if(E){J=ha(g|0,4,0,0)|0|0;if((J|0)!=(E|0))ia(g|0,J+(~((J+-8-E|0)>>>3)<<3)|0,4,0);Gn(E)}E=ha(k|0,4,0,0)|0|0;if(E){J=ha(u|0,4,0,0)|0|0;Vb[(ja(ha((ha(J|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](J,E)}ed(d);B=B+1|0;if((B|0)>=2048){F=39;break}}if((F|0)==5)Na(440,160,594,464);else if((F|0)==8)Na(120,160,428,192);else if((F|0)==18)Na(120,160,428,192);else if((F|0)==22)Na(200,160,433,216);else if((F|0)==24)Na(120,160,428,192);else if((F|0)==27)Na(48,96,26,112);else if((F|0)==39){F=qc(712,8,7)|0;Dd(b,F+(ha((ha(F|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)|0);B=cj(b,5208)|0;d=ec[(ja(ha((ha(B|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](B,10)|0;aj(b);Ee(F,d)|0;oe(F)|0;i=a;return 0}return 0}function qc(a,b,c){a=a|0;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;d=i;i=i+32|0;e=d+16|0;f=d+8|0;g=d+4|0;h=d;Ae(f,a);if(!(ha(f>>0|0,1,0,0)|0)){Ce(f);i=d;return a|0}j=ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;ia(g|0,ha(a+(j+24)|0,4,0,0)|0|0,4,0);if(((ha(a+(j+4)|0,4,0,0)|0)&176|0)==32)k=b+c|0;else k=b;l=a+j|0;m=a+(j+76)|0;j=ha(m|0,4,0,0)|0|0;if((j|0)==-1){Dd(e,l);n=cj(e,5208)|0;o=ec[(ja(ha((ha(n|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](n,32)|0;aj(e);n=o<<24>>24;ia(m|0,n|0,4,0);p=l;q=n}else{p=l;q=j}ia(e+0|0,ha(g+0|0,4,0,0)|0|0,4,0);rc(h,e,b,k,b+c|0,p,q&255);if(ha(h|0,4,0,0)|0){Ce(f);i=d;return a|0}h=ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;zd(a+h|0,ha(a+(h+16)|0,4,0,0)|0|5);Ce(f);i=d;return a|0}function rc(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;i=i+16|0;j=h;k=ha(b|0,4,0,0)|0|0;if(!k){ia(a|0,0|0,4,0);i=h;return}l=e;e=c;m=l-e|0;n=f+12|0;f=ha(n|0,4,0,0)|0|0;o=(f|0)>(m|0)?f-m|0:0;m=d;f=m-e|0;if((f|0)>0?(Rb[(ja(ha((ha(k|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,31|0)|0)&31](k,c,f)|0)!=(f|0):0){ia(b|0,0|0,4,0);ia(a|0,0|0,4,0);i=h;return}do if((o|0)>0){cd(j,o,g);if(!((ha(j>>0|0,1,0,0)|0)&1))p=j+1|0;else p=ha(j+8|0,4,0,0)|0|0;if((Rb[(ja(ha((ha(k|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,31|0)|0)&31](k,p,o)|0)==(o|0)){ed(j);break}ia(b|0,0|0,4,0);ia(a|0,0|0,4,0);ed(j);i=h;return}while(0);j=l-m|0;if((j|0)>0?(Rb[(ja(ha((ha(k|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,31|0)|0)&31](k,d,j)|0)!=(j|0):0){ia(b|0,0|0,4,0);ia(a|0,0|0,4,0);i=h;return}ia(n|0,0|0,4,0);ia(a|0,k|0,4,0);i=h;return}function sc(a){a=a|0;ib(a|0)|0;Nn()}function tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;ia(a|0,560|0,4,0);e=(c|0)!=0?c:a;c=a+4|0;ia(c|0,b|0,4,0);f=ec[(ja(ha((ha(e|0,4,0,0)|0|0)+8|0,4,0,0)|0|0,15|0)|0)&15](e,b)|0;ia(a+8|0,f|0,4,0);ia(a+12|0,f+(ha(c|0,4,0,0)|0|0)|0,4,0);ia(a+16|0,e|0,4,0);if(b&7)Na(480,160,374,536);b=a+20|0;e=a+24|0;c=a+32|0;f=a+36|0;g=a+40|0;ia(b+0|0,0|0,4,0);ia(b+4|0,0|0,4,0);ia(b+8|0,0|0,4,0);ia(b+12|0,0|0,4,0);ia(b+16|0,0|0,4,0);ia(b+20|0,0|0,4,0);ia(a+44|0,1|0,4,0);ia(a+48>>0|0,0|0,1,0);h=En(128)|0;j=ha(b|0,4,0,0)|0|0;k=(ha(e|0,4,0,0)|0|0)-j|0;l=h+(0-(k>>3)<<3)|0;tp(l|0,j|0,k|0)|0;ia(b|0,l|0,4,0);ia(e|0,h|0,4,0);ia(a+28|0,h+128|0,4,0);if(j)Gn(j);j=ha(c|0,4,0,0)|0|0;if((ha(g|0,4,0,0)|0|0)-j>>2>>>0>=16){i=d;return}h=(ha(f|0,4,0,0)|0|0)-j>>2;j=En(64)|0;a=ha(c|0,4,0,0)|0|0;e=(ha(f|0,4,0,0)|0|0)-a|0;l=j+(h-(e>>2)<<2)|0;tp(l|0,a|0,e|0)|0;ia(c|0,l|0,4,0);ia(f|0,j+(h<<2)|0,4,0);ia(g|0,j+64|0,4,0);if(!a){i=d;return}Gn(a);i=d;return}function uc(a){a=a|0;return}function vc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;c=i;d=ha(b|0,4,0,0)|0|0;if(d>>>0>a>>>0){e=0;i=c;return e|0}f=ha(b+4|0,4,0,0)|0|0;g=f+-4|0;if(g>>>0<a>>>0){e=0;i=c;return e|0}h=a+(0-(ha(a|0,4,0,0)|0|0))|0;j=b+8|0;k=ha(j|0,4,0,0)|0|0;l=k+1|0;ia(j|0,l|0,4,0);m=b+16|0;n=(ha(m|0,4,0,0)|0|0)+1|0;ia(m|0,n|0,4,0);if(l>>>0>(ha(b+12|0,4,0,0)|0|0)>>>0){e=0;i=c;return e|0}if((d>>>0>h>>>0?1:n>>>0>(ha(b+20|0,4,0,0)|0|0)>>>0)|(f+-2|0)>>>0<h>>>0){e=0;i=c;return e|0}if((f+(0-(ha(h|0,2,0,1)|0|0))|0)>>>0<h>>>0){e=0;i=c;return e|0}h=ha(a|0,4,0,0)|0|0;b=(ha(a+(0-h)|0,2,0,1)|0|0)>4;a:do if(b){n=ha(a+(4-h)|0,2,0,0)|0|0;do if(n<<16>>16){l=a+(n&65535)|0;if(!(d>>>0>l>>>0|g>>>0<l>>>0))if(b)break;else break a;else{e=0;i=c;return e|0}}while(0);n=ha(a+(4-h)|0,2,0,0)|0|0;l=n&65535;if(n<<16>>16!=0?(n=(ha(a+l|0,4,0,0)|0|0)+l|0,l=a+n|0,(l|0)!=0):0){if(d>>>0>l>>>0|g>>>0<l>>>0){e=0;i=c;return e|0}m=ha(l|0,4,0,0)|0|0;o=a+(n+4+m)|0;if((f+(-4-m)|0)>>>0<l>>>0|d>>>0>o>>>0|(f+-1|0)>>>0<o>>>0){e=0;i=c;return e|0}if(ha(o>>0|0,1,0,0)|0){e=0;i=c;return e|0}}}while(0);ia(j|0,k|0,4,0);e=1;i=c;return e|0}function wc(a,b,c){a=a|0;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,E=0,F=0,G=0;d=i;i=i+16|0;e=d;f=xc(a,0)|0;g=a+4|0;h=(c&65535)<<1;j=Ac(g,h)|0;if(c<<16>>16)op(j|0,0,h|0)|0;j=f-b|0;if(j>>>0>=65536)Na(224,160,616,256);yc(a,j&65535)|0;yc(a,h+4&65535)|0;h=ha(a+20|0,4,0,0)|0|0;j=a+24|0;b=ha(j|0,4,0,0)|0|0;if((h|0)!=(b|0)){c=ha(a+12|0,4,0,0)|0|0;if(!c)Na(200,160,433,216);else k=h;do{l=c+(ha(k+4|0,2,0,1)|0|0)|0;if(ha(l|0,2,0,0)|0){m=9;break}ia(l|0,f-(ha(k|0,4,0,0)|0|0)|0,2,0);k=k+8|0}while((k|0)!=(b|0));if((m|0)==9)Na(272,160,625,256);if((b|0)!=(h|0))ia(j|0,b+(~((b+-8-h|0)>>>3)<<3)|0,4,0)}h=a+12|0;b=ha(h|0,4,0,0)|0|0;if(!b)Na(200,160,433,216);j=ha(b|0,2,0,0)|0|0;m=a+8|0;k=ha(m|0,4,0,0)|0|0;if(!k)Na(120,160,428,192);c=ha(a+4|0,4,0,0)|0|0;l=b;n=k;o=n-l+c|0;ia(e|0,o|0,4,0);p=a+32|0;q=ha(p|0,4,0,0)|0|0;r=a+36|0;s=ha(r|0,4,0,0)|0|0;a:do if((q|0)==(s|0)){t=b;u=o;v=q}else{w=j&65535;x=q;while(1){y=ha(x|0,4,0,0)|0|0;z=k+(c-y)|0;if(j<<16>>16==(ha(z|0,2,0,0)|0|0)?(gp(z,b,w)|0)==0:0)break;x=x+4|0;if((x|0)==(s|0)){t=b;u=o;v=s;break a}}ia(e|0,y|0,4,0);x=b+(n-(l+f)+c)|0;ia(h|0,x|0,4,0);t=x;u=y;v=s}while(0);if(!t)Na(120,160,428,192);if((u|0)!=(n-t+c|0)){A=k;B=u;C=ha(g|0,4,0,0)|0|0;D=C-f|0;E=A+D|0;F=B-f|0;ia(E|0,F|0,4,0);i=d;return f|0}if((v|0)==(ha(a+40|0,4,0,0)|0|0)){zc(p,e);A=ha(m|0,4,0,0)|0|0;B=u;C=ha(g|0,4,0,0)|0|0;D=C-f|0;E=A+D|0;F=B-f|0;ia(E|0,F|0,4,0);i=d;return f|0}if(!v)G=u;else{ia(v|0,u|0,4,0);G=ha(e|0,4,0,0)|0|0}ia(r|0,v+4|0,4,0);A=k;B=G;C=ha(g|0,4,0,0)|0|0;D=C-f|0;E=A+D|0;F=B-f|0;ia(E|0,F|0,4,0);i=d;return f|0}function xc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;c=i;i=i+16|0;d=c;ia(d|0,b|0,4,0);b=a+44|0;if((ha(b|0,4,0,0)|0|0)>>>0<4)ia(b|0,4|0,4,0);b=a+4|0;e=a+12|0;f=ha(e|0,4,0,0)|0|0;if(!f)Na(120,160,428,192);g=a+8|0;h=ha(g|0,4,0,0)|0|0;if(!h)Na(120,160,428,192);j=0-(h-f+(ha(b|0,4,0,0)|0|0))&3;f=Ac(b,j)|0;if(j)op(f|0,0,j|0)|0;j=Ac(b,4)|0;b=ha(d|0,4,0,0)|0|0;ia(j>>0|0,b|0,1,0);ia(j+1>>0|0,b>>8|0,1,0);ia(j+2>>0|0,b>>16|0,1,0);ia(j+3>>0|0,b>>24|0,1,0);b=ha(e|0,4,0,0)|0|0;if(!b)Na(120,160,428,192);e=ha(g|0,4,0,0)|0|0;if(!e)Na(120,160,428,192);else{i=c;return e-b+(ha(a+4|0,4,0,0)|0|0)|0}return 0}function yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;c=i;i=i+16|0;d=c;ia(d|0,b|0,2,0);b=a+44|0;if((ha(b|0,4,0,0)|0|0)>>>0<2)ia(b|0,2|0,4,0);b=a+4|0;e=a+12|0;f=ha(e|0,4,0,0)|0|0;if(!f)Na(120,160,428,192);g=a+8|0;h=ha(g|0,4,0,0)|0|0;if(!h)Na(120,160,428,192);j=0-(h-f+(ha(b|0,4,0,0)|0|0))&1;f=Ac(b,j)|0;if(j)op(f|0,0,j|0)|0;j=Ac(b,2)|0;b=ha(d|0,2,0,0)|0|0;ia(j>>0|0,b|0,1,0);ia(j+1>>0|0,b>>8|0,1,0);b=ha(e|0,4,0,0)|0|0;if(!b)Na(120,160,428,192);e=ha(g|0,4,0,0)|0|0;if(!e)Na(120,160,428,192);else{i=c;return e-b+(ha(a+4|0,4,0,0)|0|0)|0}return 0}function zc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;d=a+4|0;e=ha(a|0,4,0,0)|0|0;f=((ha(d|0,4,0,0)|0|0)-e>>2)+1|0;if(f>>>0>1073741823)Qi(a);g=a+8|0;h=e;e=(ha(g|0,4,0,0)|0|0)-h|0;if(e>>2>>>0<536870911){j=e>>1;e=j>>>0<f>>>0?f:j;j=(ha(d|0,4,0,0)|0|0)-h>>2;if(!e){k=0;l=0;m=j}else{n=e;o=j;p=6}}else{n=1073741823;o=(ha(d|0,4,0,0)|0|0)-h>>2;p=6}if((p|0)==6){k=n;l=En(n<<2)|0;m=o}o=l+(m<<2)|0;if(o)ia(o|0,ha(b|0,4,0,0)|0|0,4,0);b=ha(a|0,4,0,0)|0|0;o=(ha(d|0,4,0,0)|0|0)-b|0;n=l+(m-(o>>2)<<2)|0;tp(n|0,b|0,o|0)|0;ia(a|0,n|0,4,0);ia(d|0,l+(m+1<<2)|0,4,0);ia(g|0,l+(k<<2)|0,4,0);if(!b){i=c;return}Gn(b);i=c;return}function Ac(a,b){a=a|0;b=b|0;var c=0,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;c=i;d=a+8|0;e=ha(d|0,4,0,0)|0|0;f=a+4|0;g=ha(f|0,4,0,0)|0|0;h=e;j=g;do if((h-j|0)>>>0<b>>>0)if((e|0)==0|(g|0)==0)Na(120,160,428,192);else{k=ha(a|0,4,0,0)|0|0;l=k+(j-h)|0;m=k>>>1&2147483640;n=(m>>>0>b>>>0?m:b)+k|0;ia(a|0,n|0,4,0);k=a+12|0;m=ha(k|0,4,0,0)|0|0;o=ec[(ja(ha((ha(m|0,4,0,0)|0|0)+8|0,4,0,0)|0|0,15|0)|0)&15](m,n)|0;n=o+((ha(a|0,4,0,0)|0|0)-l)|0;tp(n|0,ha(d|0,4,0,0)|0|0,l|0)|0;ia(d|0,n|0,4,0);n=ha(k|0,4,0,0)|0|0;Vb[(ja(ha((ha(n|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](n,ha(f|0,4,0,0)|0|0);ia(f|0,o|0,4,0);p=ha(d|0,4,0,0)|0|0;q=o;break}else{p=e;q=g}while(0);g=p+(0-b)|0;ia(d|0,g|0,4,0);if((g|0)==0|(q|0)==0)Na(120,160,428,192);if((q-g+(ha(a|0,4,0,0)|0|0)|0)>>>0<2147483647){i=c;return g|0}else Na(336,160,423,392);return 0}function Bc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;c=i;i=i+16|0;d=c;ia(d|0,b|0,4,0);b=a+44|0;if((ha(b|0,4,0,0)|0|0)>>>0<4)ia(b|0,4|0,4,0);b=a+4|0;e=a+12|0;f=ha(e|0,4,0,0)|0|0;if(!f)Na(120,160,428,192);g=a+8|0;h=ha(g|0,4,0,0)|0|0;if(!h)Na(120,160,428,192);j=0-(h-f+(ha(b|0,4,0,0)|0|0))&3;f=Ac(b,j)|0;if(j)op(f|0,0,j|0)|0;j=Ac(b,4)|0;b=ha(d|0,4,0,0)|0|0;ia(j>>0|0,b|0,1,0);ia(j+1>>0|0,b>>8|0,1,0);ia(j+2>>0|0,b>>16|0,1,0);ia(j+3>>0|0,b>>24|0,1,0);b=ha(e|0,4,0,0)|0|0;if(!b)Na(120,160,428,192);e=ha(g|0,4,0,0)|0|0;if(!e)Na(120,160,428,192);else{i=c;return e-b+(ha(a+4|0,4,0,0)|0|0)|0}return 0}function Cc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0;c=i;d=a+44|0;if((ha(d|0,4,0,0)|0|0)>>>0<4)ia(d|0,4|0,4,0);d=a+4|0;e=a+12|0;f=ha(e|0,4,0,0)|0|0;if(!f)Na(120,160,428,192);g=a+8|0;h=ha(g|0,4,0,0)|0|0;if(!h)Na(120,160,428,192);j=0-(h-f+(ha(d|0,4,0,0)|0|0))&3;f=Ac(d,j)|0;if(j)op(f|0,0,j|0)|0;j=ha(e|0,4,0,0)|0|0;if(!j)Na(120,160,428,192);e=ha(g|0,4,0,0)|0|0;if(!e)Na(120,160,428,192);g=(ha(a+4|0,4,0,0)|0|0)+(e-j)|0;if(g>>>0<b>>>0)Na(408,160,587,432);else{i=c;return 4-b+g|0}return 0}function Dc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;d=a+4|0;e=ha(a|0,4,0,0)|0|0;f=((ha(d|0,4,0,0)|0|0)-e>>3)+1|0;if(f>>>0>536870911)Qi(a);g=a+8|0;h=e;e=(ha(g|0,4,0,0)|0|0)-h|0;if(e>>3>>>0<268435455){j=e>>2;e=j>>>0<f>>>0?f:j;j=(ha(d|0,4,0,0)|0|0)-h>>3;if(!e){k=0;l=0;m=j}else{n=e;o=j;p=6}}else{n=536870911;o=(ha(d|0,4,0,0)|0|0)-h>>3;p=6}if((p|0)==6){k=n;l=En(n<<3)|0;m=o}o=l+(m<<3)|0;if(o){n=b;b=ha(n+4|0,4,0,0)|0|0;p=o;ia(p|0,ha(n|0,4,0,0)|0|0,4,0);ia(p+4|0,b|0,4,0)}b=ha(a|0,4,0,0)|0|0;p=(ha(d|0,4,0,0)|0|0)-b|0;n=l+(m-(p>>3)<<3)|0;tp(n|0,b|0,p|0)|0;ia(a|0,n|0,4,0);ia(d|0,l+(m+1<<3)|0,4,0);ia(g|0,l+(k<<3)|0,4,0);if(!b){i=c;return}Gn(b);i=c;return}function Ec(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;if((ha(a+24|0,4,0,0)|0|0)!=(ha(a+20|0,4,0,0)|0|0))Na(440,160,594,464);e=a+4|0;f=a+12|0;g=ha(f|0,4,0,0)|0|0;if(!g)Na(120,160,428,192);h=a+8|0;j=ha(h|0,4,0,0)|0|0;if(!j)Na(120,160,428,192);k=a+4|0;l=0-(j-g+(ha(k|0,4,0,0)|0|0)+(c+1))&3;g=Ac(e,l)|0;if(l)op(g|0,0,l|0)|0;ia((Ac(e,1)|0)>>0|0,0|0,1,0);l=Ac(e,c)|0;if(c){e=0;do{ia(l+e>>0|0,ha(b+e>>0|0,1,0,0)|0|0|0,1,0);e=e+1|0}while((e|0)!=(c|0))}Bc(a,c)|0;c=ha(f|0,4,0,0)|0|0;if(!c)Na(120,160,428,192);f=ha(h|0,4,0,0)|0|0;if(!f)Na(120,160,428,192);else{i=d;return f-c+(ha(k|0,4,0,0)|0|0)|0}return 0}function Fc(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Gc(a,b){a=a|0;b=b|0;var c=0;a=i;c=Fn(b)|0;i=a;return c|0}function Hc(a,b){a=a|0;b=b|0;a=i;if(b)Hn(b);i=a;return}function Ic(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;a=i;b=ha(q|0,4,0,0)|0|0;ml(1336,b,1392);ia(156*4|0,2580|0,4,0);ia(158*4|0,2600|0,4,0);ia(157*4|0,0|0,4,0);c=ha(642*4|0,4,0,0)|0|0;Ed(624+c|0,1336);ia(c+696|0,0|0,4,0);ia(c+700|0,-1|0,4,0);c=ha(r|0,4,0,0)|0|0;nl(1440,c,1400|0);ia(178*4|0,2660|0,4,0);ia(179*4|0,2680|0,4,0);d=ha(662*4|0,4,0,0)|0|0;Ed(712+d|0,1440);e=d+72|0;ia(712+e|0,0|0,4,0);f=d+76|0;ia(712+f|0,-1|0,4,0);g=ha(p|0,4,0,0)|0|0;nl(1488,g,1408|0);ia(200*4|0,2660|0,4,0);ia(201*4|0,2680|0,4,0);Ed(800+d|0,1488);ia(800+e|0,0|0,4,0);ia(800+f|0,-1|0,4,0);h=ha((ha((ha(200*4|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+824|0,4,0,0)|0|0;ia(222*4|0,2660|0,4,0);ia(223*4|0,2680|0,4,0);Ed(888+d|0,h);ia(888+e|0,0|0,4,0);ia(888+f|0,-1|0,4,0);ia((ha((ha(156*4|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+696|0,712|0,4,0);f=(ha((ha(200*4|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+804|0;ia(f|0,ha(f|0,4,0,0)|0|8192|0,4,0);ia((ha((ha(200*4|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+872|0,712|0,4,0);ol(1536,b,1416|0);ia(244*4|0,2620|0,4,0);ia(246*4|0,2640|0,4,0);ia(245*4|0,0|0,4,0);b=ha(652*4|0,4,0,0)|0|0;Ed(976+b|0,1536);ia(b+1048|0,0|0,4,0);ia(b+1052|0,-1|0,4,0);pl(1592,c,1424|0);ia(266*4|0,2700|0,4,0);ia(267*4|0,2720|0,4,0);c=ha(672*4|0,4,0,0)|0|0;Ed(1064+c|0,1592);b=c+72|0;ia(1064+b|0,0|0,4,0);f=c+76|0;ia(1064+f|0,-1|0,4,0);pl(1640,g,1432|0);ia(288*4|0,2700|0,4,0);ia(289*4|0,2720|0,4,0);Ed(1152+c|0,1640);ia(1152+b|0,0|0,4,0);ia(1152+f|0,-1|0,4,0);g=ha((ha((ha(288*4|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+1176|0,4,0,0)|0|0;ia(310*4|0,2700|0,4,0);ia(311*4|0,2720|0,4,0);Ed(1240+c|0,g);ia(1240+b|0,0|0,4,0);ia(1240+f|0,-1|0,4,0);ia((ha((ha(244*4|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+1048|0,1064|0,4,0);f=(ha((ha(288*4|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+1156|0;ia(f|0,ha(f|0,4,0,0)|0|8192|0,4,0);ia((ha((ha(288*4|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+1224|0,1064|0,4,0);i=a;return}function Jc(a){a=a|0;a=i;oe(712)|0;oe(888)|0;ue(1064)|0;ue(1240)|0;i=a;return}function Kc(a){a=a|0;return}function Lc(a){a=a|0;var b=0;b=a+4|0;ia(b|0,(ha(b|0,4,0,0)|0|0)+1|0,4,0);return}function Mc(a){a=a|0;var b=0,c=0,d=0,e=0;b=i;c=a+4|0;d=ha(c|0,4,0,0)|0|0;ia(c|0,d+-1|0,4,0);if(d){e=0;i=b;return e|0}Ub[(ja(ha((ha(a|0,4,0,0)|0|0)+8|0,4,0,0)|0|0,127|0)|0)&127](a);e=1;i=b;return e|0}function Nc(a,b){a=a|0;b=b|0;var c=0;c=i;ia(a|0,13664|0,4,0);ql(a+4|0,b);i=c;return}function Oc(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;ia(a|0,13688|0,4,0);if(!((ha(b>>0|0,1,0,0)|0)&1))d=b+1|0;else d=ha(b+8|0,4,0,0)|0|0;ql(a+4|0,d);i=c;return}function Pc(a,b){a=a|0;b=b|0;var c=0;c=i;ia(a|0,13688|0,4,0);ql(a+4|0,b);i=c;return}function Qc(a,b,c){a=a|0;b=b|0;c=c|0;ia(a|0,c|0,4,0);ia(a+4|0,b|0,4,0);return}function Rc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d;Zb[(ja(ha((ha(a|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,3|0)|0)&3](e,a,b);if((ha(e+4|0,4,0,0)|0|0)!=(ha(c+4|0,4,0,0)|0|0)){f=0;i=d;return f|0}f=(ha(e|0,4,0,0)|0|0)==(ha(c|0,4,0,0)|0|0);i=d;return f|0}function Sc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;if((ha(b+4|0,4,0,0)|0|0)!=(a|0)){e=0;i=d;return e|0}e=(ha(b|0,4,0,0)|0|0)==(c|0);i=d;return e|0}function Tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;b=i;d=Lb(c|0)|0;bd(a,d,pp(d|0)|0);i=b;return}function Uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;i=i+16|0;e=d;f=ha(b|0,4,0,0)|0|0;if(f){g=ha(c>>0|0,1,0,0)|0|0;if(!(g&1))h=(g&255)>>>1;else h=ha(c+4|0,4,0,0)|0|0;if(!h)j=f;else{kd(c,2200)|0;j=ha(b|0,4,0,0)|0|0}f=ha(b+4|0,4,0,0)|0|0;Zb[(ja(ha((ha(f|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,3|0)|0)&3](e,f,j);j=ha(e>>0|0,1,0,0)|0|0;if(!(j&1)){k=e+1|0;l=(j&255)>>>1}else{k=ha(e+8|0,4,0,0)|0|0;l=ha(e+4|0,4,0,0)|0|0}md(c,k,l)|0;ed(e)};ia(a+0|0,ha(c+0|0,4,0,0)|0|0,4,0);ia(a+4|0,ha(c+4|0,4,0,0)|0|0,4,0);ia(a+8|0,ha(c+8|0,4,0,0)|0|0,4,0);ia(c+0|0,0|0,4,0);ia(c+4|0,0|0,4,0);ia(c+8|0,0|0,4,0);i=d;return}function Vc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i;i=i+32|0;e=d+12|0;f=d;bd(f,c,pp(c|0)|0);Uc(e,b,f);Oc(a,e);ed(e);ed(f);ia(a|0,2216|0,4,0);f=b;b=ha(f+4|0,4,0,0)|0|0;e=a+8|0;ia(e|0,ha(f|0,4,0,0)|0|0,4,0);ia(e+4|0,b|0,4,0);i=d;return}function Wc(a){a=a|0;var b=0;b=i;Un(a);Gn(a);i=b;return}function Xc(a){a=a|0;var b=0;b=i;Un(a);i=b;return}function Yc(a){a=a|0;return}function Zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;Ya(2352)|0;if((ha(a|0,4,0,0)|0|0)==1)do Ea(2376,2352)|0;while((ha(a|0,4,0,0)|0|0)==1);if(!(ha(a|0,4,0,0)|0)){ia(a|0,1|0,4,0);nb(2352)|0;Ub[(ja(c|0,127|0)|0)&127](b);Ya(2352)|0;ia(a|0,-1|0,4,0);nb(2352)|0;Eb(2376)|0;i=d;return}else{nb(2352)|0;i=d;return}}function _c(a){a=a|0;a=Pa(8)|0;Nc(a,2424);ia(a|0,13744|0,4,0);Cb(a|0,13784,98)}function $c(a,b){a=a|0;b=b|0;var c=0;c=i;if(!((ha(b>>0|0,1,0,0)|0)&1)){ia(a+0|0,ha(b+0|0,4,0,0)|0|0,4,0);ia(a+4|0,ha(b+4|0,4,0,0)|0|0,4,0);ia(a+8|0,ha(b+8|0,4,0,0)|0|0,4,0);i=c;return}else{bd(a,ha(b+8|0,4,0,0)|0|0,ha(b+4|0,4,0,0)|0|0);i=c;return}}function ad(a,b){a=a|0;b=b|0;var c=0;c=i;$c(a,b);i=c;return}function bd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;if(c>>>0>4294967279)_c(a);if(c>>>0<11){ia(a>>0|0,c<<1|0,1,0);e=a+1|0}else{f=c+16&-16;g=En(f)|0;ia(a+8|0,g|0,4,0);ia(a|0,f|1|0,4,0);ia(a+4|0,c|0,4,0);e=g}tp(e|0,b|0,c|0)|0;ia(e+c>>0|0,0|0,1,0);i=d;return}function cd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;if(b>>>0>4294967279)_c(a);if(b>>>0<11){ia(a>>0|0,b<<1|0,1,0);e=a+1|0}else{f=b+16&-16;g=En(f)|0;ia(a+8|0,g|0,4,0);ia(a|0,f|1|0,4,0);ia(a+4|0,b|0,4,0);e=g}op(e|0,c|0,b|0)|0;ia(e+b>>0|0,0|0,1,0);i=d;return}function dd(a){a=a|0;var b=0;b=i;if(!((ha(a>>0|0,1,0,0)|0)&1)){i=b;return}Gn(ha(a+8|0,4,0,0)|0|0);i=b;return}function ed(a){a=a|0;var b=0;b=i;dd(a);i=b;return}function fd(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;d=gd(a,b,pp(b|0)|0)|0;i=c;return d|0}function gd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=ha(a>>0|0,1,0,0)|0|0;if(!(e&1)){f=10;g=e}else{e=ha(a|0,4,0,0)|0|0;f=(e&-2)+-1|0;g=e&255}e=(g&1)==0;if(f>>>0<c>>>0){if(e)h=(g&255)>>>1;else h=ha(a+4|0,4,0,0)|0|0;nd(a,f,c-f|0,h,0,h,c,b);i=d;return a|0}if(e)j=a+1|0;else j=ha(a+8|0,4,0,0)|0|0;up(j|0,b|0,c|0)|0;ia(j+c>>0|0,0|0,1,0);if(!((ha(a>>0|0,1,0,0)|0)&1)){ia(a>>0|0,c<<1|0,1,0);i=d;return a|0}else{ia(a+4|0,c|0,4,0);i=d;return a|0}return 0}function hd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;e=ha(a>>0|0,1,0,0)|0|0;f=(e&1)==0;if(f)g=(e&255)>>>1;else g=ha(a+4|0,4,0,0)|0|0;if(g>>>0<b>>>0){id(a,b-g|0,c)|0;i=d;return}if(f){ia(a+b+1>>0|0,0|0,1,0);ia(a>>0|0,b<<1|0,1,0);i=d;return}else{ia((ha(a+8|0,4,0,0)|0|0)+b>>0|0,0|0,1,0);ia(a+4|0,b|0,4,0);i=d;return}}function id(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if(!b){i=d;return a|0}e=ha(a>>0|0,1,0,0)|0|0;if(!(e&1)){f=10;g=e}else{e=ha(a|0,4,0,0)|0|0;f=(e&-2)+-1|0;g=e&255}if(!(g&1))h=(g&255)>>>1;else h=ha(a+4|0,4,0,0)|0|0;if((f-h|0)>>>0<b>>>0){od(a,f,b-f+h|0,h,h,0,0);j=ha(a>>0|0,1,0,0)|0|0}else j=g;if(!(j&1))k=a+1|0;else k=ha(a+8|0,4,0,0)|0|0;op(k+h|0,c|0,b|0)|0;c=h+b|0;if(!((ha(a>>0|0,1,0,0)|0)&1))ia(a>>0|0,c<<1|0,1,0);else ia(a+4|0,c|0,4,0);ia(k+c>>0|0,0|0,1,0);i=d;return a|0}function jd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;if(b>>>0>4294967279)_c(a);d=ha(a>>0|0,1,0,0)|0|0;if(!(d&1)){e=10;f=d}else{d=ha(a|0,4,0,0)|0|0;e=(d&-2)+-1|0;f=d&255}if(!(f&1))g=(f&255)>>>1;else g=ha(a+4|0,4,0,0)|0|0;d=g>>>0>b>>>0?g:b;if(d>>>0<11)h=10;else h=(d+16&-16)+-1|0;if((h|0)==(e|0)){i=c;return}do if((h|0)!=10){d=h+1|0;if(h>>>0>e>>>0)j=En(d)|0;else j=En(d)|0;d=ha(a>>0|0,1,0,0)|0|0;if(!(d&1)){k=d;l=j;m=1;n=a+1|0;o=0;break}else{k=d;l=j;m=1;n=ha(a+8|0,4,0,0)|0|0;o=1;break}}else{k=f;l=a+1|0;m=0;n=ha(a+8|0,4,0,0)|0|0;o=1}while(0);if(!(k&1))p=(k&255)>>>1;else p=ha(a+4|0,4,0,0)|0|0;tp(l|0,n|0,p+1|0)|0;if(o)Gn(n);if(m){ia(a|0,h+1|1|0,4,0);ia(a+4|0,g|0,4,0);ia(a+8|0,l|0,4,0);i=c;return}else{ia(a>>0|0,g<<1|0,1,0);i=c;return}}function kd(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;d=md(a,b,pp(b|0)|0)|0;i=c;return d|0}function ld(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;c=i;d=ha(a>>0|0,1,0,0)|0|0;e=(d&1)!=0;if(e){f=((ha(a|0,4,0,0)|0)&-2)+-1|0;g=ha(a+4|0,4,0,0)|0|0}else{f=10;g=(d&255)>>>1}if((g|0)==(f|0)){od(a,f,1,f,f,0,0);if(!((ha(a>>0|0,1,0,0)|0)&1))h=7;else h=8}else if(e)h=8;else h=7;if((h|0)==7){ia(a>>0|0,(g<<1)+2|0,1,0);j=a+1|0;k=g+1|0;l=j+g|0;ia(l>>0|0,b|0,1,0);m=j+k|0;ia(m>>0|0,0|0,1,0);i=c;return}else if((h|0)==8){h=ha(a+8|0,4,0,0)|0|0;e=g+1|0;ia(a+4|0,e|0,4,0);j=h;k=e;l=j+g|0;ia(l>>0|0,b|0,1,0);m=j+k|0;ia(m>>0|0,0|0,1,0);i=c;return}}function md(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=ha(a>>0|0,1,0,0)|0|0;if(!(e&1)){f=10;g=e}else{e=ha(a|0,4,0,0)|0|0;f=(e&-2)+-1|0;g=e&255}if(!(g&1))h=(g&255)>>>1;else h=ha(a+4|0,4,0,0)|0|0;if((f-h|0)>>>0<c>>>0){nd(a,f,c-f+h|0,h,h,0,c,b);i=d;return a|0}if(!c){i=d;return a|0}if(!(g&1))j=a+1|0;else j=ha(a+8|0,4,0,0)|0|0;tp(j+h|0,b|0,c|0)|0;b=h+c|0;if(!((ha(a>>0|0,1,0,0)|0)&1))ia(a>>0|0,b<<1|0,1,0);else ia(a+4|0,b|0,4,0);ia(j+b>>0|0,0|0,1,0);i=d;return a|0}function nd(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;j=i;if((-18-b|0)>>>0<c>>>0)_c(a);if(!((ha(a>>0|0,1,0,0)|0)&1))k=a+1|0;else k=ha(a+8|0,4,0,0)|0|0;if(b>>>0<2147483623){l=c+b|0;c=b<<1;m=l>>>0<c>>>0?c:l;if(m>>>0<11)n=11;else n=m+16&-16}else n=-17;m=En(n)|0;if(e)tp(m|0,k|0,e|0)|0;if(g)tp(m+e|0,h|0,g|0)|0;h=d-f|0;if((h|0)!=(e|0))tp(m+(g+e)|0,k+(f+e)|0,h-e|0)|0;if((b|0)==10){o=a+8|0;ia(o|0,m|0,4,0);p=n|1;ia(a|0,p|0,4,0);q=h+g|0;r=a+4|0;ia(r|0,q|0,4,0);s=m+q|0;ia(s>>0|0,0|0,1,0);i=j;return}Gn(k);o=a+8|0;ia(o|0,m|0,4,0);p=n|1;ia(a|0,p|0,4,0);q=h+g|0;r=a+4|0;ia(r|0,q|0,4,0);s=m+q|0;ia(s>>0|0,0|0,1,0);i=j;return}function od(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i;if((-17-b|0)>>>0<c>>>0)_c(a);if(!((ha(a>>0|0,1,0,0)|0)&1))j=a+1|0;else j=ha(a+8|0,4,0,0)|0|0;if(b>>>0<2147483623){k=c+b|0;c=b<<1;l=k>>>0<c>>>0?c:k;if(l>>>0<11)m=11;else m=l+16&-16}else m=-17;l=En(m)|0;if(e)tp(l|0,j|0,e|0)|0;k=d-f|0;if((k|0)!=(e|0))tp(l+(g+e)|0,j+(f+e)|0,k-e|0)|0;if((b|0)==10){n=a+8|0;ia(n|0,l|0,4,0);o=m|1;ia(a|0,o|0,4,0);i=h;return}Gn(j);n=a+8|0;ia(n|0,l|0,4,0);o=m|1;ia(a|0,o|0,4,0);i=h;return}function pd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;if(c>>>0>1073741807)_c(a);if(c>>>0<2){ia(a>>0|0,c<<1|0,1,0);e=a+4|0}else{f=c+4&-4;g=En(f<<2)|0;ia(a+8|0,g|0,4,0);ia(a|0,f|1|0,4,0);ia(a+4|0,c|0,4,0);e=g}yn(e,b,c)|0;ia(e+(c<<2)|0,0|0,4,0);i=d;return}function qd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;if(b>>>0>1073741807)_c(a);if(b>>>0<2){ia(a>>0|0,b<<1|0,1,0);e=a+4|0}else{f=b+4&-4;g=En(f<<2)|0;ia(a+8|0,g|0,4,0);ia(a|0,f|1|0,4,0);ia(a+4|0,b|0,4,0);e=g}An(e,c,b)|0;ia(e+(b<<2)|0,0|0,4,0);i=d;return}function rd(a){a=a|0;var b=0;b=i;if(!((ha(a>>0|0,1,0,0)|0)&1)){i=b;return}Gn(ha(a+8|0,4,0,0)|0|0);i=b;return}function sd(a){a=a|0;var b=0;b=i;rd(a);i=b;return}function td(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;d=ud(a,b,xn(b)|0)|0;i=c;return d|0}function ud(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=ha(a>>0|0,1,0,0)|0|0;if(!(e&1)){f=1;g=e}else{e=ha(a|0,4,0,0)|0|0;f=(e&-2)+-1|0;g=e&255}e=(g&1)==0;if(f>>>0<c>>>0){if(e)h=(g&255)>>>1;else h=ha(a+4|0,4,0,0)|0|0;xd(a,f,c-f|0,h,0,h,c,b);i=d;return a|0}if(e)j=a+4|0;else j=ha(a+8|0,4,0,0)|0|0;zn(j,b,c)|0;ia(j+(c<<2)|0,0|0,4,0);if(!((ha(a>>0|0,1,0,0)|0)&1)){ia(a>>0|0,c<<1|0,1,0);i=d;return a|0}else{ia(a+4|0,c|0,4,0);i=d;return a|0}return 0}function vd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;if(b>>>0>1073741807)_c(a);d=ha(a>>0|0,1,0,0)|0|0;if(!(d&1)){e=1;f=d}else{d=ha(a|0,4,0,0)|0|0;e=(d&-2)+-1|0;f=d&255}if(!(f&1))g=(f&255)>>>1;else g=ha(a+4|0,4,0,0)|0|0;d=g>>>0>b>>>0?g:b;if(d>>>0<2)h=1;else h=(d+4&-4)+-1|0;if((h|0)==(e|0)){i=c;return}do if((h|0)!=1){d=(h<<2)+4|0;if(h>>>0>e>>>0)j=En(d)|0;else j=En(d)|0;d=ha(a>>0|0,1,0,0)|0|0;if(!(d&1)){k=d;l=j;m=1;n=a+4|0;o=0;break}else{k=d;l=j;m=1;n=ha(a+8|0,4,0,0)|0|0;o=1;break}}else{k=f;l=a+4|0;m=0;n=ha(a+8|0,4,0,0)|0|0;o=1}while(0);if(!(k&1))p=(k&255)>>>1;else p=ha(a+4|0,4,0,0)|0|0;yn(l,n,p+1|0)|0;if(o)Gn(n);if(m){ia(a|0,h+1|1|0,4,0);ia(a+4|0,g|0,4,0);ia(a+8|0,l|0,4,0);i=c;return}else{ia(a>>0|0,g<<1|0,1,0);i=c;return}}function wd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;c=i;d=ha(a>>0|0,1,0,0)|0|0;e=(d&1)!=0;if(e){f=((ha(a|0,4,0,0)|0)&-2)+-1|0;g=ha(a+4|0,4,0,0)|0|0}else{f=1;g=(d&255)>>>1}if((g|0)==(f|0)){yd(a,f,1,f,f,0,0);if(!((ha(a>>0|0,1,0,0)|0)&1))h=7;else h=8}else if(e)h=8;else h=7;if((h|0)==7){ia(a>>0|0,(g<<1)+2|0,1,0);j=a+4|0;k=g+1|0;l=j+(g<<2)|0;ia(l|0,b|0,4,0);m=j+(k<<2)|0;ia(m|0,0|0,4,0);i=c;return}else if((h|0)==8){h=ha(a+8|0,4,0,0)|0|0;e=g+1|0;ia(a+4|0,e|0,4,0);j=h;k=e;l=j+(g<<2)|0;ia(l|0,b|0,4,0);m=j+(k<<2)|0;ia(m|0,0|0,4,0);i=c;return}}function xd(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;j=i;if((1073741806-b|0)>>>0<c>>>0)_c(a);if(!((ha(a>>0|0,1,0,0)|0)&1))k=a+4|0;else k=ha(a+8|0,4,0,0)|0|0;if(b>>>0<536870887){l=c+b|0;c=b<<1;m=l>>>0<c>>>0?c:l;if(m>>>0<2)n=2;else n=m+4&-4}else n=1073741807;m=En(n<<2)|0;if(e)yn(m,k,e)|0;if(g)yn(m+(e<<2)|0,h,g)|0;h=d-f|0;if((h|0)!=(e|0))yn(m+(g+e<<2)|0,k+(f+e<<2)|0,h-e|0)|0;if((b|0)==1){o=a+8|0;ia(o|0,m|0,4,0);p=n|1;ia(a|0,p|0,4,0);q=h+g|0;r=a+4|0;ia(r|0,q|0,4,0);s=m+(q<<2)|0;ia(s|0,0|0,4,0);i=j;return}Gn(k);o=a+8|0;ia(o|0,m|0,4,0);p=n|1;ia(a|0,p|0,4,0);q=h+g|0;r=a+4|0;ia(r|0,q|0,4,0);s=m+(q<<2)|0;ia(s|0,0|0,4,0);i=j;return}function yd(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i;if((1073741807-b|0)>>>0<c>>>0)_c(a);if(!((ha(a>>0|0,1,0,0)|0)&1))j=a+4|0;else j=ha(a+8|0,4,0,0)|0|0;if(b>>>0<536870887){k=c+b|0;c=b<<1;l=k>>>0<c>>>0?c:k;if(l>>>0<2)m=2;else m=l+4&-4}else m=1073741807;l=En(m<<2)|0;if(e)yn(l,j,e)|0;k=d-f|0;if((k|0)!=(e|0))yn(l+(g+e<<2)|0,j+(f+e<<2)|0,k-e|0)|0;if((b|0)==1){n=a+8|0;ia(n|0,l|0,4,0);o=m|1;ia(a|0,o|0,4,0);i=h;return}Gn(j);n=a+8|0;ia(n|0,l|0,4,0);o=m|1;ia(a|0,o|0,4,0);i=h;return}function zd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;i=i+16|0;d=c;e=(ha(a+24|0,4,0,0)|0|0)==0;if(e)ia(a+16|0,b|1|0,4,0);else ia(a+16|0,b|0,4,0);if(!((e&1|b)&(ha(a+20|0,4,0,0)|0))){i=c;return}else{c=Pa(16)|0;Ne()|0;a=d;ia(a|0,1|0,4,0);ia(a+4|0,2784|0,4,0);Oe(c,2840,d);Cb(c|0,2888,31)}}function Ad(a){a=a|0;var b=0;b=i;ia(a|0,2832|0,4,0);Cd(a,0);aj(a+28|0);Fo(ha(a+32|0,4,0,0)|0|0);Fo(ha(a+36|0,4,0,0)|0|0);Fo(ha(a+48|0,4,0,0)|0|0);Fo(ha(a+60|0,4,0,0)|0|0);i=b;return}function Bd(a){a=a|0;var b=0;b=i;Ad(a);i=b;return}function Cd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=i;d=ha(a+40|0,4,0,0)|0|0;if(!d){i=c;return}e=a+32|0;f=a+36|0;g=d;do{g=g+-1|0;Zb[(ja(ha((ha(e|0,4,0,0)|0|0)+(g<<2)|0,4,0,0)|0|0,3|0)|0)&3](b,a,ha((ha(f|0,4,0,0)|0|0)+(g<<2)|0,4,0,0)|0|0)}while((g|0)!=0);i=c;return}function Dd(a,b){a=a|0;b=b|0;var c=0;c=i;$i(a,b+28|0);i=c;return}function Ed(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;ia(a+24|0,b|0,4,0);ia(a+16|0,(b|0)==0&1|0,4,0);ia(a+20|0,0|0,4,0);ia(a+4|0,4098|0,4,0);ia(a+12|0,0|0,4,0);ia(a+8|0,6|0,4,0);b=a+28|0;d=a+32|0;a=d+40|0;do{ia(d|0,0|0,4,0);d=d+4|0}while((d|0)<(a|0));_i(b);i=c;return}function Fd(a){a=a|0;var b=0;b=i;Ad(a);i=b;return}function Gd(a){a=a|0;var b=0;b=i;ia(a|0,2448|0,4,0);aj(a+4|0);Gn(a);i=b;return}function Hd(a){a=a|0;var b=0;b=i;ia(a|0,2448|0,4,0);aj(a+4|0);i=b;return}function Id(a){a=a|0;var b=0;b=i;ia(a|0,2448|0,4,0);aj(a+4|0);i=b;return}function Jd(a){a=a|0;var b=0,c=0;b=i;ia(a|0,2448|0,4,0);_i(a+4|0);c=a+8|0;ia(c+0|0,0|0,4,0);ia(c+4|0,0|0,4,0);ia(c+8|0,0|0,4,0);ia(c+12|0,0|0,4,0);ia(c+16|0,0|0,4,0);ia(c+20|0,0|0,4,0);i=b;return}function Kd(a,b){a=a|0;b=b|0;return}function Ld(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Md(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;f=a;ia(f|0,0|0,4,0);ia(f+4|0,0|0,4,0);f=a+8|0;ia(f|0,-1|0,4,0);ia(f+4|0,-1|0,4,0);return}function Nd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=a;ia(d|0,0|0,4,0);ia(d+4|0,0|0,4,0);d=a+8|0;ia(d|0,-1|0,4,0);ia(d+4|0,-1|0,4,0);return}function Od(a){a=a|0;return 0}function Pd(a){a=a|0;return 0}function Qd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;if((c|0)<=0){e=0;i=d;return e|0}f=a+12|0;g=a+16|0;h=b;b=0;while(1){j=ha(f|0,4,0,0)|0|0;if(j>>>0<(ha(g|0,4,0,0)|0|0)>>>0){ia(f|0,j+1|0,4,0);k=ha(j>>0|0,1,0,0)|0|0}else{j=Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](a)|0;if((j|0)==-1){e=b;l=8;break}k=j&255}ia(h>>0|0,k|0,1,0);j=b+1|0;if((j|0)<(c|0)){h=h+1|0;b=j}else{e=j;l=8;break}}if((l|0)==8){i=d;return e|0}return 0}function Rd(a){a=a|0;return -1}function Sd(a){a=a|0;var b=0,c=0,d=0;b=i;if((Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](a)|0)==-1){c=-1;i=b;return c|0}d=a+12|0;a=ha(d|0,4,0,0)|0|0;ia(d|0,a+1|0,4,0);c=ha(a>>0|0,1,0,1)|0|0;i=b;return c|0}function Td(a,b){a=a|0;b=b|0;return -1}function Ud(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;if((c|0)<=0){e=0;i=d;return e|0}f=a+24|0;g=a+28|0;h=b;b=0;while(1){j=ha(f|0,4,0,0)|0|0;if(j>>>0>=(ha(g|0,4,0,0)|0|0)>>>0){if((ec[(ja(ha((ha(a|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,15|0)|0)&15](a,ha(h>>0|0,1,0,1)|0|0)|0)==-1){e=b;k=7;break}}else{l=ha(h>>0|0,1,0,0)|0|0;ia(f|0,j+1|0,4,0);ia(j>>0|0,l|0,1,0)}l=b+1|0;if((l|0)<(c|0)){h=h+1|0;b=l}else{e=l;k=7;break}}if((k|0)==7){i=d;return e|0}return 0}function Vd(a,b){a=a|0;b=b|0;return -1}function Wd(a){a=a|0;var b=0;b=i;ia(a|0,2512|0,4,0);aj(a+4|0);Gn(a);i=b;return}function Xd(a){a=a|0;var b=0;b=i;ia(a|0,2512|0,4,0);aj(a+4|0);i=b;return}function Yd(a){a=a|0;var b=0;b=i;ia(a|0,2512|0,4,0);aj(a+4|0);i=b;return}function Zd(a){a=a|0;var b=0,c=0;b=i;ia(a|0,2512|0,4,0);_i(a+4|0);c=a+8|0;ia(c+0|0,0|0,4,0);ia(c+4|0,0|0,4,0);ia(c+8|0,0|0,4,0);ia(c+12|0,0|0,4,0);ia(c+16|0,0|0,4,0);ia(c+20|0,0|0,4,0);i=b;return}function _d(a,b){a=a|0;b=b|0;return}function $d(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function ae(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;f=a;ia(f|0,0|0,4,0);ia(f+4|0,0|0,4,0);f=a+8|0;ia(f|0,-1|0,4,0);ia(f+4|0,-1|0,4,0);return}function be(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=a;ia(d|0,0|0,4,0);ia(d+4|0,0|0,4,0);d=a+8|0;ia(d|0,-1|0,4,0);ia(d+4|0,-1|0,4,0);return}function ce(a){a=a|0;return 0}function de(a){a=a|0;return 0}function ee(a,b,c){a=a|0;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;d=i;if((c|0)<=0){e=0;i=d;return e|0}f=a+12|0;g=a+16|0;h=b;b=0;while(1){j=ha(f|0,4,0,0)|0|0;if(j>>>0>=(ha(g|0,4,0,0)|0|0)>>>0){k=Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](a)|0;if((k|0)==-1){e=b;l=7;break}else m=k}else{ia(f|0,j+4|0,4,0);m=ha(j|0,4,0,0)|0|0}ia(h|0,m|0,4,0);j=b+1|0;if((j|0)<(c|0)){h=h+4|0;b=j}else{e=j;l=7;break}}if((l|0)==7){i=d;return e|0}return 0}function fe(a){a=a|0;return -1}function ge(a){a=a|0;var b=0,c=0,d=0;b=i;if((Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](a)|0)==-1){c=-1;i=b;return c|0}d=a+12|0;a=ha(d|0,4,0,0)|0|0;ia(d|0,a+4|0,4,0);c=ha(a|0,4,0,0)|0|0;i=b;return c|0}function he(a,b){a=a|0;b=b|0;return -1}function ie(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;if((c|0)<=0){e=0;i=d;return e|0}f=a+24|0;g=a+28|0;h=b;b=0;while(1){j=ha(f|0,4,0,0)|0|0;if(j>>>0>=(ha(g|0,4,0,0)|0|0)>>>0){if((ec[(ja(ha((ha(a|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,15|0)|0)&15](a,ha(h|0,4,0,0)|0|0)|0)==-1){e=b;k=7;break}}else{l=ha(h|0,4,0,0)|0|0;ia(f|0,j+4|0,4,0);ia(j|0,l|0,4,0)}l=b+1|0;if((l|0)<(c|0)){h=h+4|0;b=l}else{e=l;k=7;break}}if((k|0)==7){i=d;return e|0}return 0}function je(a,b){a=a|0;b=b|0;return -1}function ke(a){a=a|0;var b=0;b=i;Ad(a+8|0);Gn(a);i=b;return}function le(a){a=a|0;var b=0;b=i;Ad(a+8|0);i=b;return}function me(a){a=a|0;var b=0;b=i;ke(a+(ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)|0);i=b;return}function ne(a){a=a|0;var b=0;b=i;Ad(a+((ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+8)|0);i=b;return}function oe(a){a=a|0;var b=0,c=0,d=0;b=i;i=i+16|0;c=b;if(!(ha(a+((ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+24)|0,4,0,0)|0)){i=b;return a|0}ze(c,a);if((ha(c>>0|0,1,0,0)|0|0)!=0?(d=ha(a+((ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+24)|0,4,0,0)|0|0,(Xb[(ja(ha((ha(d|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](d)|0)==-1):0){d=ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;zd(a+d|0,ha(a+(d+16)|0,4,0,0)|0|1)}Be(c);i=b;return a|0}function pe(a){a=a|0;var b=0;b=a+16|0;ia(b|0,ha(b|0,4,0,0)|0|1|0,4,0);if(!((ha(a+20|0,4,0,0)|0)&1))return;else Fb()}function qe(a){a=a|0;var b=0;b=i;Ad(a+8|0);Gn(a);i=b;return}function re(a){a=a|0;var b=0;b=i;Ad(a+8|0);i=b;return}function se(a){a=a|0;var b=0;b=i;qe(a+(ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)|0);i=b;return}function te(a){a=a|0;var b=0;b=i;Ad(a+((ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+8)|0);i=b;return}function ue(a){a=a|0;var b=0,c=0,d=0;b=i;i=i+16|0;c=b;if(!(ha(a+((ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+24)|0,4,0,0)|0)){i=b;return a|0}Je(c,a);if((ha(c>>0|0,1,0,0)|0|0)!=0?(d=ha(a+((ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+24)|0,4,0,0)|0|0,(Xb[(ja(ha((ha(d|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](d)|0)==-1):0){d=ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;zd(a+d|0,ha(a+(d+16)|0,4,0,0)|0|1)}Ke(c);i=b;return a|0}function ve(a){a=a|0;var b=0;b=i;Ad(a+4|0);Gn(a);i=b;return}function we(a){a=a|0;var b=0;b=i;Ad(a+4|0);i=b;return}function xe(a){a=a|0;var b=0;b=i;ve(a+(ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)|0);i=b;return}function ye(a){a=a|0;var b=0;b=i;Ad(a+((ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+4)|0);i=b;return}function ze(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;ia(a>>0|0,0|0,1,0);ia(a+4|0,b|0,4,0);d=ha((ha(b|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;if(ha(b+(d+16)|0,4,0,0)|0){i=c;return}e=ha(b+(d+72)|0,4,0,0)|0|0;if(e)oe(e)|0;ia(a>>0|0,1|0,1,0);i=c;return}function Ae(a,b){a=a|0;b=b|0;var c=0;c=i;ze(a,b);i=c;return}function Be(a){a=a|0;var b=0,c=0,d=0;b=i;c=a+4|0;a=ha(c|0,4,0,0)|0|0;d=ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;if(!(ha(a+(d+24)|0,4,0,0)|0)){i=b;return}if(ha(a+(d+16)|0,4,0,0)|0){i=b;return}if(!((ha(a+(d+4)|0,4,0,0)|0)&8192)){i=b;return}if(gb()|0){i=b;return}d=ha(c|0,4,0,0)|0|0;a=ha(d+((ha((ha(d|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+24)|0,4,0,0)|0|0;if((Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](a)|0)!=-1){i=b;return}a=ha(c|0,4,0,0)|0|0;c=ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;zd(a+c|0,ha(a+(c+16)|0,4,0,0)|0|1);i=b;return}function Ce(a){a=a|0;var b=0;b=i;Be(a);i=b;return}function De(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;i=i+32|0;d=c+20|0;e=c+16|0;f=c+8|0;g=c+4|0;h=c;ze(f,a);if(!(ha(f>>0|0,1,0,0)|0)){Be(f);i=c;return a|0}$i(g,a+((ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+28)|0);j=cj(g,3896)|0;aj(g);g=ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;k=ha(a+(g+24)|0,4,0,0)|0|0;l=a+(g+76)|0;m=ha(l|0,4,0,0)|0|0;if((m|0)==-1){$i(d,a+(g+28)|0);n=cj(d,5208)|0;o=ec[(ja(ha((ha(n|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](n,32)|0;aj(d);n=o<<24>>24;ia(l|0,n|0,4,0);p=n}else p=m;m=ha((ha(j|0,4,0,0)|0|0)+16|0,4,0,0)|0|0;ia(e|0,k|0,4,0);ia(d+0|0,ha(e+0|0,4,0,0)|0|0,4,0);dc[(ja(m|0,15|0)|0)&15](h,j,d,a+g|0,p&255,b);if(ha(h|0,4,0,0)|0){Be(f);i=c;return a|0}h=ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;zd(a+h|0,ha(a+(h+16)|0,4,0,0)|0|5);Be(f);i=c;return a|0}function Ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=i;i=i+16|0;d=c;ze(d,a);do if(ha(d>>0|0,1,0,0)|0){e=ha(a|0,4,0,0)|0|0;f=ha(a+((ha(e+-12|0,4,0,0)|0|0)+24)|0,4,0,0)|0|0;if(!f)g=e;else{e=f+24|0;h=ha(e|0,4,0,0)|0|0;if((h|0)!=(ha(f+28|0,4,0,0)|0|0)){ia(e|0,h+1|0,4,0);ia(h>>0|0,b|0,1,0);break}if((ec[(ja(ha((ha(f|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,15|0)|0)&15](f,b&255)|0)!=-1)break;g=ha(a|0,4,0,0)|0|0}f=ha(g+-12|0,4,0,0)|0|0;zd(a+f|0,ha(a+(f+16)|0,4,0,0)|0|1)}while(0);Be(d);i=c;return a|0}function Fe(a){a=a|0;var b=0;b=i;Ad(a+4|0);Gn(a);i=b;return}function Ge(a){a=a|0;var b=0;b=i;Ad(a+4|0);i=b;return}function He(a){a=a|0;var b=0;b=i;Fe(a+(ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)|0);i=b;return}function Ie(a){a=a|0;var b=0;b=i;Ad(a+((ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+4)|0);i=b;return}function Je(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;ia(a>>0|0,0|0,1,0);ia(a+4|0,b|0,4,0);d=ha((ha(b|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;if(ha(b+(d+16)|0,4,0,0)|0){i=c;return}e=ha(b+(d+72)|0,4,0,0)|0|0;if(e)ue(e)|0;ia(a>>0|0,1|0,1,0);i=c;return}function Ke(a){a=a|0;var b=0,c=0,d=0;b=i;c=a+4|0;a=ha(c|0,4,0,0)|0|0;d=ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;if(!(ha(a+(d+24)|0,4,0,0)|0)){i=b;return}if(ha(a+(d+16)|0,4,0,0)|0){i=b;return}if(!((ha(a+(d+4)|0,4,0,0)|0)&8192)){i=b;return}if(gb()|0){i=b;return}d=ha(c|0,4,0,0)|0|0;a=ha(d+((ha((ha(d|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0)+24)|0,4,0,0)|0|0;if((Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](a)|0)!=-1){i=b;return}a=ha(c|0,4,0,0)|0|0;c=ha((ha(a|0,4,0,0)|0|0)+-12|0,4,0,0)|0|0;zd(a+c|0,ha(a+(c+16)|0,4,0,0)|0|1);i=b;return}function Le(a){a=a|0;return 2728}function Me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;if((c|0)!=1&(c|0)<257){Tc(a,b,c);i=d;return}else{bd(a,2744,35);i=d;return}}function Ne(){var a=0;a=i;if((ha(2792|0,1,0,0)|0|0)==0?(Ja(2792)|0)!=0:0){ia(696*4|0,3488|0,4,0);zb(35,2784,o|0)|0;Ta(2792)}i=a;return 2784}function Oe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+8|0;f=d;g=c;c=ha(g+4|0,4,0,0)|0|0;h=f;ia(h|0,ha(g|0,4,0,0)|0|0,4,0);ia(h+4|0,c|0,4,0);ia(e+0|0,ha(f+0|0,4,0,0)|0|0,4,0);ia(e+4|0,ha(f+4|0,4,0,0)|0|0,4,0);Vc(a,e,b);ia(a|0,2808|0,4,0);i=d;return}function Pe(a){a=a|0;var b=0;b=i;Xc(a);Gn(a);i=b;return}function Qe(a){a=a|0;var b=0;b=i;Xc(a);i=b;return}function Re(a){a=a|0;var b=0;b=i;Ad(a);Gn(a);i=b;return}function Se(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Te(a){a=a|0;return}function Ue(a){a=a|0;return}function Ve(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;a=i;a:do if((d|0)==(e|0)){f=b;g=6}else{h=d;j=b;while(1){if((j|0)==(c|0)){k=-1;break a}l=ha(j>>0|0,1,0,0)|0|0;m=ha(h>>0|0,1,0,0)|0|0;if(l<<24>>24<m<<24>>24){k=-1;break a}if(m<<24>>24<l<<24>>24){k=1;break a}l=j+1|0;h=h+1|0;if((h|0)==(e|0)){f=l;g=6;break}else j=l}}while(0);if((g|0)==6)k=(f|0)!=(c|0)&1;i=a;return k|0}function We(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=i;rl(a,c,d);i=b;return}function Xe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;a=i;if((b|0)==(c|0)){d=0;i=a;return d|0}else{e=0;f=b}while(1){b=(ha(f>>0|0,1,0,0)|0|0)+(e<<4)|0;g=b&-268435456;h=(g>>>24|g)^b;f=f+1|0;if((f|0)==(c|0)){d=h;break}else e=h}i=a;return d|0}function Ye(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Ze(a){a=a|0;return}function _e(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;a=i;a:do if((d|0)==(e|0)){f=b;g=6}else{h=d;j=b;while(1){if((j|0)==(c|0)){k=-1;break a}l=ha(j|0,4,0,0)|0|0;m=ha(h|0,4,0,0)|0|0;if((l|0)<(m|0)){k=-1;break a}if((m|0)<(l|0)){k=1;break a}l=j+4|0;h=h+4|0;if((h|0)==(e|0)){f=l;g=6;break}else j=l}}while(0);if((g|0)==6)k=(f|0)!=(c|0)&1;i=a;return k|0}function $e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=i;sl(a,c,d);i=b;return}function af(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;a=i;if((b|0)==(c|0)){d=0;i=a;return d|0}else{e=0;f=b}while(1){b=(ha(f|0,4,0,0)|0|0)+(e<<4)|0;g=b&-268435456;h=(g>>>24|g)^b;f=f+4|0;if((f|0)==(c|0)){d=h;break}else e=h}i=a;return d|0}function bf(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function cf(a){a=a|0;return}function df(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=i;i=i+64|0;j=h;k=h+16|0;l=h+52|0;m=h+4|0;n=h+56|0;o=h+60|0;p=h+12|0;q=h+48|0;r=h+24|0;s=h+8|0;if((ha(e+4|0,4,0,0)|0)&1){Dd(p,e);t=cj(p,5208)|0;Mc(ha(p|0,4,0,0)|0|0)|0;Dd(q,e);p=cj(q,5352)|0;Mc(ha(q|0,4,0,0)|0|0)|0;Vb[(ja(ha((ha(p|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](r,p);Vb[(ja(ha((ha(p|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](r+12|0,p);ia(s|0,ha(d|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(s+0|0,4,0,0)|0|0,4,0);ia(g>>0|0,(tl(c,j,r,r+24|0,t,f,1)|0)==(r|0)&1|0,1,0);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);ed(r+12|0);ed(r);i=h;return}ia(l|0,-1|0,4,0);r=ha((ha(b|0,4,0,0)|0|0)+16|0,4,0,0)|0|0;ia(n|0,ha(c|0,4,0,0)|0|0,4,0);ia(o|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(n+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(o+0|0,4,0,0)|0|0,4,0);Sb[(ja(r|0,63|0)|0)&63](m,b,k,j,e,f,l);e=ha(m|0,4,0,0)|0|0;ia(c|0,e|0,4,0);c=ha(l|0,4,0,0)|0|0;if((c|0)==1)ia(g>>0|0,1|0,1,0);else if(!c)ia(g>>0|0,0|0,1,0);else{ia(g>>0|0,1|0,1,0);ia(f|0,4|0,4,0)}ia(a|0,e|0,4,0);i=h;return}function ef(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);ul(a,b,k,j,e,f,g);i=h;return}function ff(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);vl(a,b,k,j,e,f,g);i=h;return}function gf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);wl(a,b,k,j,e,f,g);i=h;return}function hf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);xl(a,b,k,j,e,f,g);i=h;return}function jf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);yl(a,b,k,j,e,f,g);i=h;return}function kf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);zl(a,b,k,j,e,f,g);i=h;return}function lf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Al(a,b,k,j,e,f,g);i=h;return}function mf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Bl(a,b,k,j,e,f,g);i=h;return}function nf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Cl(a,b,k,j,e,f,g);i=h;return}function of(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;var 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;b=i;i=i+240|0;h=b;j=b+208|0;k=b+188|0;l=b+200|0;m=b+8|0;n=b+4|0;o=b+24|0;p=b+184|0;q=b+204|0;ia(k+0|0,0|0,4,0);ia(k+4|0,0|0,4,0);ia(k+8|0,0|0,4,0);Dd(l,e);e=cj(l,5208)|0;bc[(ja(ha((ha(e|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,7|0)|0)&7](e,3720,3746|0,j)|0;Mc(ha(l|0,4,0,0)|0|0)|0;ia(m+0|0,0|0,4,0);ia(m+4|0,0|0,4,0);ia(m+8|0,0|0,4,0);hd(m,10,0);if(!((ha(m>>0|0,1,0,0)|0)&1)){l=m+1|0;r=l;s=m+8|0;t=l}else{l=m+8|0;r=m+1|0;s=l;t=ha(l|0,4,0,0)|0|0}ia(n|0,t|0,4,0);ia(p|0,o|0,4,0);ia(q|0,0|0,4,0);l=m+4|0;e=ha(c|0,4,0,0)|0|0;u=t;a:while(1){if(e)if((ha(e+12|0,4,0,0)|0|0)==(ha(e+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(e|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](e)|0)==-1:0){ia(c|0,0|0,4,0);v=0}else v=e;else v=0;t=(v|0)==0;w=ha(d|0,4,0,0)|0|0;do if(w){if((ha(w+12|0,4,0,0)|0|0)!=(ha(w+16|0,4,0,0)|0|0))if(t){x=w;break}else{y=w;z=u;break a}if((Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0)!=-1)if(t){x=w;break}else{y=w;z=u;break a}else{ia(d|0,0|0,4,0);A=14;break}}else A=14;while(0);if((A|0)==14){A=0;if(t){y=0;z=u;break}else x=0}w=ha(m>>0|0,1,0,0)|0|0;B=(w&1)==0;if(B)C=(w&255)>>>1;else C=ha(l|0,4,0,0)|0|0;if((ha(n|0,4,0,0)|0|0)==(u+C|0)){if(B){D=(w&255)>>>1;E=(w&255)>>>1}else{w=ha(l|0,4,0,0)|0|0;D=w;E=w}hd(m,D<<1,0);if(!((ha(m>>0|0,1,0,0)|0)&1))F=10;else F=((ha(m|0,4,0,0)|0)&-2)+-1|0;hd(m,F,0);if(!((ha(m>>0|0,1,0,0)|0)&1))G=r;else G=ha(s|0,4,0,0)|0|0;ia(n|0,G+E|0,4,0);H=G}else H=u;w=v+12|0;B=ha(w|0,4,0,0)|0|0;I=v+16|0;if((B|0)==(ha(I|0,4,0,0)|0|0))J=Xb[(ja(ha((ha(v|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](v)|0;else J=ha(B>>0|0,1,0,1)|0|0;if(pf(J&255,16,H,n,q,0,k,o,p,j)|0){y=x;z=H;break}B=ha(w|0,4,0,0)|0|0;if((B|0)==(ha(I|0,4,0,0)|0|0)){Xb[(ja(ha((ha(v|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](v)|0;e=v;u=H;continue}else{ia(w|0,B+1|0,4,0);e=v;u=H;continue}}hd(m,(ha(n|0,4,0,0)|0|0)-z|0,0);if(!((ha(m>>0|0,1,0,0)|0)&1))K=r;else K=ha(s|0,4,0,0)|0|0;s=qf()|0;ia(h|0,g|0,4,0);if((Dl(K,s,3760,h)|0)!=1)ia(f|0,4|0,4,0);if(v)if((ha(v+12|0,4,0,0)|0|0)==(ha(v+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(v|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](v)|0)==-1:0){ia(c|0,0|0,4,0);L=0}else L=v;else L=0;v=(L|0)==0;do if(y){if((ha(y+12|0,4,0,0)|0|0)!=(ha(y+16|0,4,0,0)|0|0)){if(!v)break;ia(a|0,L|0,4,0);ed(m);ed(k);i=b;return}if((Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0)==-1){ia(d|0,0|0,4,0);A=48;break}if(v^(y|0)==0){ia(a|0,L|0,4,0);ed(m);ed(k);i=b;return}}else A=48;while(0);if((A|0)==48?!v:0){ia(a|0,L|0,4,0);ed(m);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,L|0,4,0);ed(m);ed(k);i=b;return}function pf(a,b,c,d,e,f,g,h,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=i;m=ha(d|0,4,0,0)|0|0;n=(m|0)==(c|0);do if(n){o=(ha(k+24>>0|0,1,0,0)|0|0)==a<<24>>24;if(!o?(ha(k+25>>0|0,1,0,0)|0|0)!=a<<24>>24:0)break;ia(d|0,c+1|0,4,0);ia(c>>0|0,(o?43:45)|0,1,0);ia(e|0,0|0,4,0);p=0;i=l;return p|0}while(0);o=ha(g>>0|0,1,0,0)|0|0;if(!(o&1))q=(o&255)>>>1;else q=ha(g+4|0,4,0,0)|0|0;if((q|0)!=0?a<<24>>24==f<<24>>24:0){f=ha(j|0,4,0,0)|0|0;if((f-h|0)>=160){p=0;i=l;return p|0}h=ha(e|0,4,0,0)|0|0;ia(j|0,f+4|0,4,0);ia(f|0,h|0,4,0);ia(e|0,0|0,4,0);p=0;i=l;return p|0}h=k+26|0;f=k;while(1){if((ha(f>>0|0,1,0,0)|0|0)==a<<24>>24){r=f;break}f=f+1|0;if((f|0)==(h|0)){r=h;break}}h=r-k|0;if((h|0)>23){p=-1;i=l;return p|0}if((b|0)==10|(b|0)==8){if((h|0)>=(b|0)){p=-1;i=l;return p|0}}else if((b|0)==16?(h|0)>=22:0){if(n){p=-1;i=l;return p|0}if((m-c|0)>=3){p=-1;i=l;return p|0}if((ha(m+-1>>0|0,1,0,0)|0|0)!=48){p=-1;i=l;return p|0}ia(e|0,0|0,4,0);c=ha(3720+h>>0|0,1,0,0)|0|0;ia(d|0,m+1|0,4,0);ia(m>>0|0,c|0,1,0);p=0;i=l;return p|0}c=ha(3720+h>>0|0,1,0,0)|0|0;ia(d|0,m+1|0,4,0);ia(m>>0|0,c|0,1,0);ia(e|0,(ha(e|0,4,0,0)|0|0)+1|0,4,0);p=0;i=l;return p|0}function qf(){var a=0;a=i;if((ha(5104|0,1,0,0)|0|0)==0?(Ja(5104)|0)!=0:0){ia(1274*4|0,bb(2147483647,5112,0)|0|0,4,0);Ta(5104)}i=a;return ha(1274*4|0,4,0,0)|0|0}function rf(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function sf(a){a=a|0;return}function tf(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=i;i=i+64|0;j=h;k=h+16|0;l=h+52|0;m=h+4|0;n=h+56|0;o=h+60|0;p=h+12|0;q=h+48|0;r=h+24|0;s=h+8|0;if((ha(e+4|0,4,0,0)|0)&1){Dd(p,e);t=cj(p,5200)|0;Mc(ha(p|0,4,0,0)|0|0)|0;Dd(q,e);p=cj(q,5360)|0;Mc(ha(q|0,4,0,0)|0|0)|0;Vb[(ja(ha((ha(p|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](r,p);Vb[(ja(ha((ha(p|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](r+12|0,p);ia(s|0,ha(d|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(s+0|0,4,0,0)|0|0,4,0);ia(g>>0|0,(El(c,j,r,r+24|0,t,f,1)|0)==(r|0)&1|0,1,0);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);sd(r+12|0);sd(r);i=h;return}ia(l|0,-1|0,4,0);r=ha((ha(b|0,4,0,0)|0|0)+16|0,4,0,0)|0|0;ia(n|0,ha(c|0,4,0,0)|0|0,4,0);ia(o|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(n+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(o+0|0,4,0,0)|0|0,4,0);Sb[(ja(r|0,63|0)|0)&63](m,b,k,j,e,f,l);e=ha(m|0,4,0,0)|0|0;ia(c|0,e|0,4,0);c=ha(l|0,4,0,0)|0|0;if(!c)ia(g>>0|0,0|0,1,0);else if((c|0)==1)ia(g>>0|0,1|0,1,0);else{ia(g>>0|0,1|0,1,0);ia(f|0,4|0,4,0)}ia(a|0,e|0,4,0);i=h;return}function uf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Fl(a,b,k,j,e,f,g);i=h;return}function vf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Gl(a,b,k,j,e,f,g);i=h;return}function wf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Hl(a,b,k,j,e,f,g);i=h;return}function xf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Il(a,b,k,j,e,f,g);i=h;return}function yf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Jl(a,b,k,j,e,f,g);i=h;return}function zf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Kl(a,b,k,j,e,f,g);i=h;return}function Af(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Ll(a,b,k,j,e,f,g);i=h;return}function Bf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Ml(a,b,k,j,e,f,g);i=h;return}function Cf(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Nl(a,b,k,j,e,f,g);i=h;return}function Df(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;var 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;b=i;i=i+320|0;h=b;j=b+200|0;k=b+188|0;l=b+8|0;m=b+176|0;n=b+4|0;o=b+16|0;p=b+304|0;q=b+308|0;ia(k+0|0,0|0,4,0);ia(k+4|0,0|0,4,0);ia(k+8|0,0|0,4,0);Dd(l,e);e=cj(l,5200)|0;bc[(ja(ha((ha(e|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,7|0)|0)&7](e,3720,3746|0,j)|0;Mc(ha(l|0,4,0,0)|0|0)|0;ia(m+0|0,0|0,4,0);ia(m+4|0,0|0,4,0);ia(m+8|0,0|0,4,0);hd(m,10,0);if(!((ha(m>>0|0,1,0,0)|0)&1)){l=m+1|0;r=l;s=m+8|0;t=l}else{l=m+8|0;r=m+1|0;s=l;t=ha(l|0,4,0,0)|0|0}ia(n|0,t|0,4,0);ia(p|0,o|0,4,0);ia(q|0,0|0,4,0);l=m+4|0;e=ha(c|0,4,0,0)|0|0;u=t;a:while(1){if(e){t=ha(e+12|0,4,0,0)|0|0;if((t|0)==(ha(e+16|0,4,0,0)|0|0))v=Xb[(ja(ha((ha(e|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](e)|0;else v=ha(t|0,4,0,0)|0|0;if((v|0)==-1){ia(c|0,0|0,4,0);w=1;x=0}else{w=0;x=e}}else{w=1;x=0}t=ha(d|0,4,0,0)|0|0;do if(t){y=ha(t+12|0,4,0,0)|0|0;if((y|0)==(ha(t+16|0,4,0,0)|0|0))z=Xb[(ja(ha((ha(t|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](t)|0;else z=ha(y|0,4,0,0)|0|0;if((z|0)!=-1)if(w){A=t;break}else{B=t;C=u;break a}else{ia(d|0,0|0,4,0);D=17;break}}else D=17;while(0);if((D|0)==17){D=0;if(w){B=0;C=u;break}else A=0}t=ha(m>>0|0,1,0,0)|0|0;y=(t&1)==0;if(y)E=(t&255)>>>1;else E=ha(l|0,4,0,0)|0|0;if((ha(n|0,4,0,0)|0|0)==(u+E|0)){if(y){F=(t&255)>>>1;G=(t&255)>>>1}else{t=ha(l|0,4,0,0)|0|0;F=t;G=t}hd(m,F<<1,0);if(!((ha(m>>0|0,1,0,0)|0)&1))H=10;else H=((ha(m|0,4,0,0)|0)&-2)+-1|0;hd(m,H,0);if(!((ha(m>>0|0,1,0,0)|0)&1))I=r;else I=ha(s|0,4,0,0)|0|0;ia(n|0,I+G|0,4,0);J=I}else J=u;t=x+12|0;y=ha(t|0,4,0,0)|0|0;K=x+16|0;if((y|0)==(ha(K|0,4,0,0)|0|0))L=Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0;else L=ha(y|0,4,0,0)|0|0;if(Ef(L,16,J,n,q,0,k,o,p,j)|0){B=A;C=J;break}y=ha(t|0,4,0,0)|0|0;if((y|0)==(ha(K|0,4,0,0)|0|0)){Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](x)|0;e=x;u=J;continue}else{ia(t|0,y+4|0,4,0);e=x;u=J;continue}}hd(m,(ha(n|0,4,0,0)|0|0)-C|0,0);if(!((ha(m>>0|0,1,0,0)|0)&1))M=r;else M=ha(s|0,4,0,0)|0|0;s=qf()|0;ia(h|0,g|0,4,0);if((Dl(M,s,3760,h)|0)!=1)ia(f|0,4|0,4,0);if(x){h=ha(x+12|0,4,0,0)|0|0;if((h|0)==(ha(x+16|0,4,0,0)|0|0))N=Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0;else N=ha(h|0,4,0,0)|0|0;if((N|0)==-1){ia(c|0,0|0,4,0);O=0;P=1}else{O=x;P=0}}else{O=0;P=1}do if(B){x=ha(B+12|0,4,0,0)|0|0;if((x|0)==(ha(B+16|0,4,0,0)|0|0))Q=Xb[(ja(ha((ha(B|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](B)|0;else Q=ha(x|0,4,0,0)|0|0;if((Q|0)==-1){ia(d|0,0|0,4,0);D=54;break}if(P){ia(a|0,O|0,4,0);ed(m);ed(k);i=b;return}}else D=54;while(0);if((D|0)==54?!P:0){ia(a|0,O|0,4,0);ed(m);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,O|0,4,0);ed(m);ed(k);i=b;return}function Ef(a,b,c,d,e,f,g,h,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=i;m=ha(d|0,4,0,0)|0|0;n=(m|0)==(c|0);do if(n){o=(ha(k+96|0,4,0,0)|0|0)==(a|0);if(!o?(ha(k+100|0,4,0,0)|0|0)!=(a|0):0)break;ia(d|0,c+1|0,4,0);ia(c>>0|0,(o?43:45)|0,1,0);ia(e|0,0|0,4,0);p=0;i=l;return p|0}while(0);o=ha(g>>0|0,1,0,0)|0|0;if(!(o&1))q=(o&255)>>>1;else q=ha(g+4|0,4,0,0)|0|0;if((q|0)!=0&(a|0)==(f|0)){f=ha(j|0,4,0,0)|0|0;if((f-h|0)>=160){p=0;i=l;return p|0}h=ha(e|0,4,0,0)|0|0;ia(j|0,f+4|0,4,0);ia(f|0,h|0,4,0);ia(e|0,0|0,4,0);p=0;i=l;return p|0}h=k+104|0;f=k;while(1){if((ha(f|0,4,0,0)|0|0)==(a|0)){r=f;break}f=f+4|0;if((f|0)==(h|0)){r=h;break}}h=r-k|0;k=h>>2;if((h|0)>92){p=-1;i=l;return p|0}if((b|0)==10|(b|0)==8){if((k|0)>=(b|0)){p=-1;i=l;return p|0}}else if((b|0)==16?(h|0)>=88:0){if(n){p=-1;i=l;return p|0}if((m-c|0)>=3){p=-1;i=l;return p|0}if((ha(m+-1>>0|0,1,0,0)|0|0)!=48){p=-1;i=l;return p|0}ia(e|0,0|0,4,0);c=ha(3720+k>>0|0,1,0,0)|0|0;ia(d|0,m+1|0,4,0);ia(m>>0|0,c|0,1,0);p=0;i=l;return p|0}c=ha(3720+k>>0|0,1,0,0)|0|0;ia(d|0,m+1|0,4,0);ia(m>>0|0,c|0,1,0);ia(e|0,(ha(e|0,4,0,0)|0|0)+1|0,4,0);p=0;i=l;return p|0}function Ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;Dd(f,b);b=cj(f,5208)|0;bc[(ja(ha((ha(b|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,7|0)|0)&7](b,3720,3746|0,c)|0;c=cj(f,5352)|0;ia(d>>0|0,Xb[(ja(ha((ha(c|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](c)|0|0,1,0);Vb[(ja(ha((ha(c|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](a,c);Mc(ha(f|0,4,0,0)|0|0)|0;i=e;return}function Gf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;Dd(g,b);b=cj(g,5208)|0;bc[(ja(ha((ha(b|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,7|0)|0)&7](b,3720,3752|0,c)|0;c=cj(g,5352)|0;ia(d>>0|0,Xb[(ja(ha((ha(c|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](c)|0|0,1,0);ia(e>>0|0,Xb[(ja(ha((ha(c|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](c)|0|0,1,0);Vb[(ja(ha((ha(c|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](a,c);Mc(ha(g|0,4,0,0)|0|0)|0;i=f;return}function Hf(a,b,c,d,e,f,g,h,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|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;var n=0,o=0,p=0,q=0,r=0,s=0;n=i;if(a<<24>>24==f<<24>>24){if(!(ha(b>>0|0,1,0,0)|0)){o=-1;i=n;return o|0}ia(b>>0|0,0|0,1,0);f=ha(e|0,4,0,0)|0|0;ia(e|0,f+1|0,4,0);ia(f>>0|0,46|0,1,0);f=ha(h>>0|0,1,0,0)|0|0;if(!(f&1))p=(f&255)>>>1;else p=ha(h+4|0,4,0,0)|0|0;if(!p){o=0;i=n;return o|0}p=ha(k|0,4,0,0)|0|0;if((p-j|0)>=160){o=0;i=n;return o|0}f=ha(l|0,4,0,0)|0|0;ia(k|0,p+4|0,4,0);ia(p|0,f|0,4,0);o=0;i=n;return o|0}if(a<<24>>24==g<<24>>24){g=ha(h>>0|0,1,0,0)|0|0;if(!(g&1))q=(g&255)>>>1;else q=ha(h+4|0,4,0,0)|0|0;if(q){if(!(ha(b>>0|0,1,0,0)|0)){o=-1;i=n;return o|0}q=ha(k|0,4,0,0)|0|0;if((q-j|0)>=160){o=0;i=n;return o|0}g=ha(l|0,4,0,0)|0|0;ia(k|0,q+4|0,4,0);ia(q|0,g|0,4,0);ia(l|0,0|0,4,0);o=0;i=n;return o|0}}g=m+32|0;q=m;while(1){if((ha(q>>0|0,1,0,0)|0|0)==a<<24>>24){r=q;break}q=q+1|0;if((q|0)==(g|0)){r=g;break}}g=r-m|0;if((g|0)>31){o=-1;i=n;return o|0}m=ha(3720+g>>0|0,1,0,0)|0|0;if((g|0)==24|(g|0)==25){r=ha(e|0,4,0,0)|0|0;if((r|0)!=(d|0)?((ha(r+-1>>0|0,1,0,1)|0)&95|0)!=((ha(c>>0|0,1,0,1)|0)&127|0):0){o=-1;i=n;return o|0}ia(e|0,r+1|0,4,0);ia(r>>0|0,m|0,1,0);o=0;i=n;return o|0}else if((g|0)==23|(g|0)==22){ia(c>>0|0,80|0,1,0);r=ha(e|0,4,0,0)|0|0;ia(e|0,r+1|0,4,0);ia(r>>0|0,m|0,1,0);o=0;i=n;return o|0}else{r=m&95;if((r|0)==(ha(c>>0|0,1,0,0)|0|0)?(ia(c>>0|0,r|128|0,1,0),(ha(b>>0|0,1,0,0)|0|0)!=0):0){ia(b>>0|0,0|0,1,0);b=ha(h>>0|0,1,0,0)|0|0;if(!(b&1))s=(b&255)>>>1;else s=ha(h+4|0,4,0,0)|0|0;if((s|0)!=0?(s=ha(k|0,4,0,0)|0|0,(s-j|0)<160):0){j=ha(l|0,4,0,0)|0|0;ia(k|0,s+4|0,4,0);ia(s|0,j|0,4,0)}}j=ha(e|0,4,0,0)|0|0;ia(e|0,j+1|0,4,0);ia(j>>0|0,m|0,1,0);if((g|0)>21){o=0;i=n;return o|0}ia(l|0,(ha(l|0,4,0,0)|0|0)+1|0,4,0);o=0;i=n;return o|0}return 0}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;Dd(f,b);b=cj(f,5200)|0;bc[(ja(ha((ha(b|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,7|0)|0)&7](b,3720,3746|0,c)|0;c=cj(f,5360)|0;ia(d|0,Xb[(ja(ha((ha(c|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](c)|0|0,4,0);Vb[(ja(ha((ha(c|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](a,c);Mc(ha(f|0,4,0,0)|0|0)|0;i=e;return}function Jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;Dd(g,b);b=cj(g,5200)|0;bc[(ja(ha((ha(b|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,7|0)|0)&7](b,3720,3752|0,c)|0;c=cj(g,5360)|0;ia(d|0,Xb[(ja(ha((ha(c|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](c)|0|0,4,0);ia(e|0,Xb[(ja(ha((ha(c|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](c)|0|0,4,0);Vb[(ja(ha((ha(c|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](a,c);Mc(ha(g|0,4,0,0)|0|0)|0;i=f;return}function Kf(a,b,c,d,e,f,g,h,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|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;var n=0,o=0,p=0,q=0,r=0,s=0;n=i;if((a|0)==(f|0)){if(!(ha(b>>0|0,1,0,0)|0)){o=-1;i=n;return o|0}ia(b>>0|0,0|0,1,0);f=ha(e|0,4,0,0)|0|0;ia(e|0,f+1|0,4,0);ia(f>>0|0,46|0,1,0);f=ha(h>>0|0,1,0,0)|0|0;if(!(f&1))p=(f&255)>>>1;else p=ha(h+4|0,4,0,0)|0|0;if(!p){o=0;i=n;return o|0}p=ha(k|0,4,0,0)|0|0;if((p-j|0)>=160){o=0;i=n;return o|0}f=ha(l|0,4,0,0)|0|0;ia(k|0,p+4|0,4,0);ia(p|0,f|0,4,0);o=0;i=n;return o|0}if((a|0)==(g|0)){g=ha(h>>0|0,1,0,0)|0|0;if(!(g&1))q=(g&255)>>>1;else q=ha(h+4|0,4,0,0)|0|0;if(q){if(!(ha(b>>0|0,1,0,0)|0)){o=-1;i=n;return o|0}q=ha(k|0,4,0,0)|0|0;if((q-j|0)>=160){o=0;i=n;return o|0}g=ha(l|0,4,0,0)|0|0;ia(k|0,q+4|0,4,0);ia(q|0,g|0,4,0);ia(l|0,0|0,4,0);o=0;i=n;return o|0}}g=m+128|0;q=m;while(1){if((ha(q|0,4,0,0)|0|0)==(a|0)){r=q;break}q=q+4|0;if((q|0)==(g|0)){r=g;break}}g=r-m|0;m=g>>2;if((g|0)>124){o=-1;i=n;return o|0}r=ha(3720+m>>0|0,1,0,0)|0|0;if((m|0)==24|(m|0)==25){q=ha(e|0,4,0,0)|0|0;if((q|0)!=(d|0)?((ha(q+-1>>0|0,1,0,1)|0)&95|0)!=((ha(c>>0|0,1,0,1)|0)&127|0):0){o=-1;i=n;return o|0}ia(e|0,q+1|0,4,0);ia(q>>0|0,r|0,1,0);o=0;i=n;return o|0}else if(!((m|0)==23|(m|0)==22)){m=r&95;if((m|0)==(ha(c>>0|0,1,0,0)|0|0)?(ia(c>>0|0,m|128|0,1,0),(ha(b>>0|0,1,0,0)|0|0)!=0):0){ia(b>>0|0,0|0,1,0);b=ha(h>>0|0,1,0,0)|0|0;if(!(b&1))s=(b&255)>>>1;else s=ha(h+4|0,4,0,0)|0|0;if((s|0)!=0?(s=ha(k|0,4,0,0)|0|0,(s-j|0)<160):0){j=ha(l|0,4,0,0)|0|0;ia(k|0,s+4|0,4,0);ia(s|0,j|0,4,0)}}}else ia(c>>0|0,80|0,1,0);c=ha(e|0,4,0,0)|0|0;ia(e|0,c+1|0,4,0);ia(c>>0|0,r|0,1,0);if((g|0)>84){o=0;i=n;return o|0}ia(l|0,(ha(l|0,4,0,0)|0|0)+1|0,4,0);o=0;i=n;return o|0}function Lf(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Mf(a){a=a|0;return}function Nf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;g=i;i=i+32|0;h=g+20|0;j=g+16|0;k=g+12|0;l=g;if(!((ha(d+4|0,4,0,0)|0)&1)){m=ha((ha(b|0,4,0,0)|0|0)+24|0,4,0,0)|0|0;ia(j|0,ha(c|0,4,0,0)|0|0,4,0);ia(h+0|0,ha(j+0|0,4,0,0)|0|0,4,0);dc[(ja(m|0,15|0)|0)&15](a,b,h,d,e,f&1);i=g;return}Dd(k,d);d=cj(k,5352)|0;Mc(ha(k|0,4,0,0)|0|0)|0;k=ha(d|0,4,0,0)|0|0;if(f)Vb[(ja(ha(k+24|0,4,0,0)|0|0,63|0)|0)&63](l,d);else Vb[(ja(ha(k+28|0,4,0,0)|0|0,63|0)|0)&63](l,d);d=ha(l>>0|0,1,0,0)|0|0;if(!(d&1)){k=l+1|0;n=k;o=k;p=l+8|0}else{k=l+8|0;n=ha(k|0,4,0,0)|0|0;o=l+1|0;p=k}k=l+4|0;f=d;d=n;while(1){if(!(f&1)){q=o;r=(f&255)>>>1}else{q=ha(p|0,4,0,0)|0|0;r=ha(k|0,4,0,0)|0|0}if((d|0)==(q+r|0))break;n=ha(d>>0|0,1,0,0)|0|0;e=ha(c|0,4,0,0)|0|0;do if(e){h=e+24|0;b=ha(h|0,4,0,0)|0|0;if((b|0)!=(ha(e+28|0,4,0,0)|0|0)){ia(h|0,b+1|0,4,0);ia(b>>0|0,n|0,1,0);break}if((ec[(ja(ha((ha(e|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,15|0)|0)&15](e,n&255)|0)==-1)ia(c|0,0|0,4,0)}while(0);f=ha(l>>0|0,1,0,0)|0|0;d=d+1|0}ia(a|0,ha(c|0,4,0,0)|0|0,4,0);ed(l);i=g;return}function Of(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;b=i;i=i+64|0;g=b;h=b+20|0;j=b+28|0;k=b+40|0;l=b+12|0;m=b+4|0;n=b+8|0;o=b+16|0;ia(h+0>>0|0,ha(4e3|0,1,0,0)|0|0|0,1,0);ia(h+1>>0|0,ha(4001|0,1,0,0)|0|0|0,1,0);ia(h+2>>0|0,ha(4002|0,1,0,0)|0|0|0,1,0);ia(h+3>>0|0,ha(4003|0,1,0,0)|0|0|0,1,0);ia(h+4>>0|0,ha(4004|0,1,0,0)|0|0|0,1,0);ia(h+5>>0|0,ha(4005|0,1,0,0)|0|0|0,1,0);Pf(h+1|0,3904,1,ha(d+4|0,4,0,0)|0|0);p=qf()|0;ia(g|0,f|0,4,0);f=j+(Ol(j,12,p,h,g)|0)|0;h=Qf(j,f,d)|0;Dd(n,d);Rf(j,h,f,k,l,m,n);Mc(ha(n|0,4,0,0)|0|0)|0;ia(o|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(l|0,4,0,0)|0|0;l=ha(m|0,4,0,0)|0|0;ia(g+0|0,ha(o+0|0,4,0,0)|0|0,4,0);rc(a,g,k,c,l,d,e);i=b;return}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;if(!(d&2048))f=a;else{ia(a>>0|0,43|0,1,0);f=a+1|0}if(!(d&512))g=f;else{ia(f>>0|0,35|0,1,0);g=f+1|0}f=ha(b>>0|0,1,0,0)|0|0;if(!(f<<24>>24))h=g;else{a=b;b=g;g=f;while(1){a=a+1|0;f=b+1|0;ia(b>>0|0,g|0,1,0);g=ha(a>>0|0,1,0,0)|0|0;if(!(g<<24>>24)){h=f;break}else b=f}}b=d&74;if((b|0)==8)if(!(d&16384)){ia(h>>0|0,120|0,1,0);i=e;return}else{ia(h>>0|0,88|0,1,0);i=e;return}else if((b|0)!=64)if(c){ia(h>>0|0,100|0,1,0);i=e;return}else{ia(h>>0|0,117|0,1,0);i=e;return}else{ia(h>>0|0,111|0,1,0);i=e;return}}function Qf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;e=(ha(c+4|0,4,0,0)|0)&176;do if((e|0)==32)f=b;else if((e|0)==16){c=ha(a>>0|0,1,0,0)|0|0;if(c<<24>>24==43|c<<24>>24==45){f=a+1|0;break}if((b-a|0)>1&c<<24>>24==48?(c=ha(a+1>>0|0,1,0,0)|0|0,c<<24>>24==88|c<<24>>24==120):0)f=a+2|0;else g=7}else g=7;while(0);if((g|0)==7)f=a;i=d;return f|0}function Rf(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;var 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;h=i;i=i+16|0;j=h;k=cj(g,5208)|0;l=cj(g,5352)|0;Vb[(ja(ha((ha(l|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](j,l);g=ha(j>>0|0,1,0,0)|0|0;if(!(g&1))m=(g&255)>>>1;else m=ha(j+4|0,4,0,0)|0|0;if(m){ia(f|0,d|0,4,0);m=ha(a>>0|0,1,0,0)|0|0;if(m<<24>>24==43|m<<24>>24==45){g=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](k,m)|0;m=ha(f|0,4,0,0)|0|0;ia(f|0,m+1|0,4,0);ia(m>>0|0,g|0,1,0);n=a+1|0}else n=a;if(((c-n|0)>1?(ha(n>>0|0,1,0,0)|0|0)==48:0)?(g=n+1|0,m=ha(g>>0|0,1,0,0)|0|0,m<<24>>24==88|m<<24>>24==120):0){m=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](k,48)|0;o=ha(f|0,4,0,0)|0|0;ia(f|0,o+1|0,4,0);ia(o>>0|0,m|0,1,0);m=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](k,ha(g>>0|0,1,0,0)|0|0)|0;g=ha(f|0,4,0,0)|0|0;ia(f|0,g+1|0,4,0);ia(g>>0|0,m|0,1,0);p=n+2|0}else p=n;if((p|0)!=(c|0)?(n=c+-1|0,n>>>0>p>>>0):0){m=p;g=n;do{n=ha(m>>0|0,1,0,0)|0|0;ia(m>>0|0,ha(g>>0|0,1,0,0)|0|0|0,1,0);ia(g>>0|0,n|0,1,0);m=m+1|0;g=g+-1|0}while(m>>>0<g>>>0)}g=Xb[(ja(ha((ha(l|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](l)|0;if(p>>>0<c>>>0){l=j+1|0;m=j+4|0;n=j+8|0;o=0;q=0;r=p;while(1){s=((ha(j>>0|0,1,0,0)|0)&1)==0;if((ha((s?l:ha(n|0,4,0,0)|0|0)+q>>0|0,1,0,0)|0|0)!=0?(o|0)==(ha((s?l:ha(n|0,4,0,0)|0|0)+q>>0|0,1,0,0)|0|0):0){s=ha(f|0,4,0,0)|0|0;ia(f|0,s+1|0,4,0);ia(s>>0|0,g|0,1,0);s=ha(j>>0|0,1,0,0)|0|0;if(!(s&1))t=(s&255)>>>1;else t=ha(m|0,4,0,0)|0|0;u=0;v=(q>>>0<(t+-1|0)>>>0&1)+q|0}else{u=o;v=q}s=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](k,ha(r>>0|0,1,0,0)|0|0)|0;w=ha(f|0,4,0,0)|0|0;ia(f|0,w+1|0,4,0);ia(w>>0|0,s|0,1,0);r=r+1|0;if(r>>>0>=c>>>0)break;else{o=u+1|0;q=v}}}v=d+(p-a)|0;p=ha(f|0,4,0,0)|0|0;if((v|0)!=(p|0)?(q=p+-1|0,q>>>0>v>>>0):0){p=v;v=q;do{q=ha(p>>0|0,1,0,0)|0|0;ia(p>>0|0,ha(v>>0|0,1,0,0)|0|0|0,1,0);ia(v>>0|0,q|0,1,0);p=p+1|0;v=v+-1|0}while(p>>>0<v>>>0)}}else{bc[(ja(ha((ha(k|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,7|0)|0)&7](k,a,c,d)|0;ia(f|0,d+(c-a)|0,4,0)}if((b|0)==(c|0)){x=ha(f|0,4,0,0)|0|0;ia(e|0,x|0,4,0);ed(j);i=h;return}else{x=d+(b-a)|0;ia(e|0,x|0,4,0);ed(j);i=h;return}}function Sf(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=i;i=i+96|0;h=b;j=b+8|0;k=b+32|0;l=b+54|0;m=b+16|0;n=b+24|0;o=b+20|0;p=b+28|0;q=j;ia(q|0,37|0,4,0);ia(q+4|0,0|0,4,0);Pf(j+1|0,3912,1,ha(d+4|0,4,0,0)|0|0);q=qf()|0;r=h;ia(r|0,f|0,4,0);ia(r+4|0,g|0,4,0);g=k+(Ol(k,22,q,j,h)|0)|0;j=Qf(k,g,d)|0;Dd(o,d);Rf(k,j,g,l,m,n,o);Mc(ha(o|0,4,0,0)|0|0)|0;ia(p|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(m|0,4,0,0)|0|0;m=ha(n|0,4,0,0)|0|0;ia(h+0|0,ha(p+0|0,4,0,0)|0|0,4,0);rc(a,h,l,c,m,d,e);i=b;return}function Tf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;b=i;i=i+64|0;g=b;h=b+20|0;j=b+28|0;k=b+40|0;l=b+12|0;m=b+4|0;n=b+8|0;o=b+16|0;ia(h+0>>0|0,ha(4e3|0,1,0,0)|0|0|0,1,0);ia(h+1>>0|0,ha(4001|0,1,0,0)|0|0|0,1,0);ia(h+2>>0|0,ha(4002|0,1,0,0)|0|0|0,1,0);ia(h+3>>0|0,ha(4003|0,1,0,0)|0|0|0,1,0);ia(h+4>>0|0,ha(4004|0,1,0,0)|0|0|0,1,0);ia(h+5>>0|0,ha(4005|0,1,0,0)|0|0|0,1,0);Pf(h+1|0,3904,0,ha(d+4|0,4,0,0)|0|0);p=qf()|0;ia(g|0,f|0,4,0);f=j+(Ol(j,12,p,h,g)|0)|0;h=Qf(j,f,d)|0;Dd(n,d);Rf(j,h,f,k,l,m,n);Mc(ha(n|0,4,0,0)|0|0)|0;ia(o|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(l|0,4,0,0)|0|0;l=ha(m|0,4,0,0)|0|0;ia(g+0|0,ha(o+0|0,4,0,0)|0|0,4,0);rc(a,g,k,c,l,d,e);i=b;return}function Uf(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=i;i=i+112|0;h=b;j=b+8|0;k=b+32|0;l=b+55|0;m=b+16|0;n=b+24|0;o=b+20|0;p=b+28|0;q=j;ia(q|0,37|0,4,0);ia(q+4|0,0|0,4,0);Pf(j+1|0,3912,0,ha(d+4|0,4,0,0)|0|0);q=qf()|0;r=h;ia(r|0,f|0,4,0);ia(r+4|0,g|0,4,0);g=k+(Ol(k,23,q,j,h)|0)|0;j=Qf(k,g,d)|0;Dd(o,d);Rf(k,j,g,l,m,n,o);Mc(ha(o|0,4,0,0)|0|0)|0;ia(p|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(m|0,4,0,0)|0|0;m=ha(n|0,4,0,0)|0|0;ia(h+0|0,ha(p+0|0,4,0,0)|0|0,4,0);rc(a,h,l,c,m,d,e);i=b;return}function Vf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=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=i;i=i+144|0;g=b+8|0;h=b;j=b+44|0;l=b+36|0;m=b+74|0;n=b+20|0;o=b+32|0;p=b+28|0;q=b+24|0;r=b+40|0;s=h;ia(s|0,37|0,4,0);ia(s+4|0,0|0,4,0);s=Wf(h+1|0,3920,ha(d+4|0,4,0,0)|0|0)|0;ia(l|0,j|0,4,0);t=qf()|0;if(s){ia(g|0,ha(d+8|0,4,0,0)|0|0,4,0);s=g+4|0;ia(k|0,+f,8,1);ia(s|0,ha(k|0,4,0,0)|0|0,4,0);ia(s+4|0,ha(k+4|0,4,0,0)|0|0,4,0);u=Ol(j,30,t,h,g)|0}else{ia(k|0,+f,8,1);ia(g|0,ha(k|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(k+4|0,4,0,0)|0|0,4,0);u=Ol(j,30,t,h,g)|0}if((u|0)>29){t=qf()|0;ia(g|0,ha(d+8|0,4,0,0)|0|0,4,0);s=g+4|0;ia(k|0,+f,8,1);ia(s|0,ha(k|0,4,0,0)|0|0,4,0);ia(s+4|0,ha(k+4|0,4,0,0)|0|0,4,0);s=Pl(l,t,h,g)|0;h=ha(l|0,4,0,0)|0|0;if(!h)zo();else{v=h;w=h;x=s}}else{v=ha(l|0,4,0,0)|0|0;w=0;x=u}u=v+x|0;l=Qf(v,u,d)|0;if((v|0)!=(j|0)){s=Eo(x<<1)|0;if(!s)zo();else{y=v;z=s;A=s}}else{y=j;z=0;A=m}Dd(p,d);Xf(y,l,u,A,n,o,p);Mc(ha(p|0,4,0,0)|0|0)|0;ia(r|0,ha(c|0,4,0,0)|0|0,4,0);p=ha(n|0,4,0,0)|0|0;n=ha(o|0,4,0,0)|0|0;ia(g+0|0,ha(r+0|0,4,0,0)|0|0,4,0);rc(q,g,A,p,n,d,e);e=ha(q|0,4,0,0)|0|0;ia(c|0,e|0,4,0);ia(a|0,e|0,4,0);if(z)Fo(z);if(!w){i=b;return}Fo(w);i=b;return}function Wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if(!(c&2048))e=a;else{ia(a>>0|0,43|0,1,0);e=a+1|0}if(!(c&1024))f=e;else{ia(e>>0|0,35|0,1,0);f=e+1|0}e=c&260;a=c>>>14;c=(e|0)==260;if(c){g=f;h=0}else{ia(f>>0|0,46|0,1,0);ia(f+1>>0|0,42|0,1,0);g=f+2|0;h=1}f=ha(b>>0|0,1,0,0)|0|0;if(!(f<<24>>24))j=g;else{k=b;b=g;g=f;while(1){k=k+1|0;f=b+1|0;ia(b>>0|0,g|0,1,0);g=ha(k>>0|0,1,0,0)|0|0;if(!(g<<24>>24)){j=f;break}else b=f}}do if((e|0)==4)if(!(a&1)){ia(j>>0|0,102|0,1,0);break}else{ia(j>>0|0,70|0,1,0);break}else if((e|0)==256)if(!(a&1)){ia(j>>0|0,101|0,1,0);break}else{ia(j>>0|0,69|0,1,0);break}else{b=(a&1|0)!=0;if(c)if(b){ia(j>>0|0,65|0,1,0);break}else{ia(j>>0|0,97|0,1,0);break}else if(b){ia(j>>0|0,71|0,1,0);break}else{ia(j>>0|0,103|0,1,0);break}}while(0);i=d;return h|0}function Xf(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;var 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;h=i;i=i+16|0;j=h;k=cj(g,5208)|0;l=cj(g,5352)|0;Vb[(ja(ha((ha(l|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](j,l);ia(f|0,d|0,4,0);g=ha(a>>0|0,1,0,0)|0|0;if(g<<24>>24==43|g<<24>>24==45){m=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](k,g)|0;g=ha(f|0,4,0,0)|0|0;ia(f|0,g+1|0,4,0);ia(g>>0|0,m|0,1,0);n=a+1|0}else n=a;m=c;a:do if(((m-n|0)>1?(ha(n>>0|0,1,0,0)|0|0)==48:0)?(g=n+1|0,o=ha(g>>0|0,1,0,0)|0|0,o<<24>>24==88|o<<24>>24==120):0){o=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](k,48)|0;p=ha(f|0,4,0,0)|0|0;ia(f|0,p+1|0,4,0);ia(p>>0|0,o|0,1,0);o=n+2|0;p=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](k,ha(g>>0|0,1,0,0)|0|0)|0;g=ha(f|0,4,0,0)|0|0;ia(f|0,g+1|0,4,0);ia(g>>0|0,p|0,1,0);if(o>>>0<c>>>0){p=o;while(1){g=ha(p>>0|0,1,0,0)|0|0;q=p+1|0;if(!(jn(g<<24>>24,qf()|0)|0)){r=o;s=p;break a}if(q>>>0<c>>>0)p=q;else{r=o;s=q;break}}}else{r=o;s=o}}else t=4;while(0);b:do if((t|0)==4)if(n>>>0<c>>>0){p=n;while(1){q=ha(p>>0|0,1,0,0)|0|0;g=p+1|0;if(!(hn(q<<24>>24,qf()|0)|0)){r=n;s=p;break b}if(g>>>0<c>>>0)p=g;else{r=n;s=g;break}}}else{r=n;s=n}while(0);n=ha(j>>0|0,1,0,0)|0|0;if(!(n&1))u=(n&255)>>>1;else u=ha(j+4|0,4,0,0)|0|0;if(u){if((r|0)!=(s|0)?(u=s+-1|0,u>>>0>r>>>0):0){n=r;t=u;do{u=ha(n>>0|0,1,0,0)|0|0;ia(n>>0|0,ha(t>>0|0,1,0,0)|0|0|0,1,0);ia(t>>0|0,u|0,1,0);n=n+1|0;t=t+-1|0}while(n>>>0<t>>>0)}t=Xb[(ja(ha((ha(l|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](l)|0;if(r>>>0<s>>>0){n=j+1|0;u=j+4|0;p=j+8|0;o=0;g=0;q=r;while(1){v=((ha(j>>0|0,1,0,0)|0)&1)==0;if((ha((v?n:ha(p|0,4,0,0)|0|0)+g>>0|0,1,0,0)|0|0)>0?(o|0)==(ha((v?n:ha(p|0,4,0,0)|0|0)+g>>0|0,1,0,0)|0|0):0){v=ha(f|0,4,0,0)|0|0;ia(f|0,v+1|0,4,0);ia(v>>0|0,t|0,1,0);v=ha(j>>0|0,1,0,0)|0|0;if(!(v&1))w=(v&255)>>>1;else w=ha(u|0,4,0,0)|0|0;x=0;y=(g>>>0<(w+-1|0)>>>0&1)+g|0}else{x=o;y=g}v=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](k,ha(q>>0|0,1,0,0)|0|0)|0;z=ha(f|0,4,0,0)|0|0;ia(f|0,z+1|0,4,0);ia(z>>0|0,v|0,1,0);q=q+1|0;if(q>>>0>=s>>>0)break;else{o=x+1|0;g=y}}}y=d+(r-a)|0;g=ha(f|0,4,0,0)|0|0;if((y|0)!=(g|0)?(x=g+-1|0,x>>>0>y>>>0):0){g=y;y=x;do{x=ha(g>>0|0,1,0,0)|0|0;ia(g>>0|0,ha(y>>0|0,1,0,0)|0|0|0,1,0);ia(y>>0|0,x|0,1,0);g=g+1|0;y=y+-1|0}while(g>>>0<y>>>0)}}else{bc[(ja(ha((ha(k|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,7|0)|0)&7](k,r,s,ha(f|0,4,0,0)|0|0)|0;ia(f|0,(ha(f|0,4,0,0)|0|0)+(s-r)|0,4,0)}c:do if(s>>>0<c>>>0){r=s;while(1){y=ha(r>>0|0,1,0,0)|0|0;if(y<<24>>24==46)break;g=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](k,y)|0;y=ha(f|0,4,0,0)|0|0;ia(f|0,y+1|0,4,0);ia(y>>0|0,g|0,1,0);g=r+1|0;if(g>>>0<c>>>0)r=g;else{A=g;break c}}g=Xb[(ja(ha((ha(l|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](l)|0;y=ha(f|0,4,0,0)|0|0;ia(f|0,y+1|0,4,0);ia(y>>0|0,g|0,1,0);A=r+1|0}else A=s;while(0);bc[(ja(ha((ha(k|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,7|0)|0)&7](k,A,c,ha(f|0,4,0,0)|0|0)|0;k=(ha(f|0,4,0,0)|0|0)+(m-A)|0;ia(f|0,k|0,4,0);if((b|0)==(c|0)){B=k;ia(e|0,B|0,4,0);ed(j);i=h;return}B=d+(b-a)|0;ia(e|0,B|0,4,0);ed(j);i=h;return}function Yf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=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;b=i;i=i+144|0;g=b+8|0;h=b;j=b+44|0;l=b+36|0;m=b+74|0;n=b+20|0;o=b+32|0;p=b+28|0;q=b+24|0;r=b+40|0;s=h;ia(s|0,37|0,4,0);ia(s+4|0,0|0,4,0);s=Wf(h+1|0,3928,ha(d+4|0,4,0,0)|0|0)|0;ia(l|0,j|0,4,0);t=qf()|0;if(s){ia(g|0,ha(d+8|0,4,0,0)|0|0,4,0);u=g+4|0;ia(k|0,+f,8,1);ia(u|0,ha(k|0,4,0,0)|0|0,4,0);ia(u+4|0,ha(k+4|0,4,0,0)|0|0,4,0);v=Ol(j,30,t,h,g)|0}else{ia(k|0,+f,8,1);ia(g|0,ha(k|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(k+4|0,4,0,0)|0|0,4,0);v=Ol(j,30,t,h,g)|0}if((v|0)>29){t=qf()|0;if(s){ia(g|0,ha(d+8|0,4,0,0)|0|0,4,0);s=g+4|0;ia(k|0,+f,8,1);ia(s|0,ha(k|0,4,0,0)|0|0,4,0);ia(s+4|0,ha(k+4|0,4,0,0)|0|0,4,0);w=Pl(l,t,h,g)|0}else{ia(k|0,+f,8,1);ia(g|0,ha(k|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(k+4|0,4,0,0)|0|0,4,0);w=Pl(l,t,h,g)|0}h=ha(l|0,4,0,0)|0|0;if(!h)zo();else{x=h;y=h;z=w}}else{x=ha(l|0,4,0,0)|0|0;y=0;z=v}v=x+z|0;l=Qf(x,v,d)|0;if((x|0)!=(j|0)){w=Eo(z<<1)|0;if(!w)zo();else{A=x;B=w;C=w}}else{A=j;B=0;C=m}Dd(p,d);Xf(A,l,v,C,n,o,p);Mc(ha(p|0,4,0,0)|0|0)|0;ia(r|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(n|0,4,0,0)|0|0;n=ha(o|0,4,0,0)|0|0;ia(g+0|0,ha(r+0|0,4,0,0)|0|0,4,0);rc(q,g,C,c,n,d,e);ia(a|0,ha(q|0,4,0,0)|0|0,4,0);Fo(B);Fo(y);i=b;return}function Zf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;b=i;i=i+80|0;g=b;h=b+72|0;j=b+52|0;k=b+12|0;l=b+8|0;m=b+4|0;ia(h+0>>0|0,ha(4008|0,1,0,0)|0|0|0,1,0);ia(h+1>>0|0,ha(4009|0,1,0,0)|0|0|0,1,0);ia(h+2>>0|0,ha(4010|0,1,0,0)|0|0|0,1,0);ia(h+3>>0|0,ha(4011|0,1,0,0)|0|0|0,1,0);ia(h+4>>0|0,ha(4012|0,1,0,0)|0|0|0,1,0);ia(h+5>>0|0,ha(4013|0,1,0,0)|0|0|0,1,0);n=qf()|0;ia(g|0,f|0,4,0);f=Ol(j,20,n,h,g)|0;h=j+f|0;n=Qf(j,h,d)|0;Dd(l,d);o=cj(l,5208)|0;Mc(ha(l|0,4,0,0)|0|0)|0;bc[(ja(ha((ha(o|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,7|0)|0)&7](o,j,h,k)|0;o=k+f|0;if((n|0)==(h|0))p=o;else p=k+(n-j)|0;ia(m|0,ha(c|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(m+0|0,4,0,0)|0|0,4,0);rc(a,g,k,p,o,d,e);i=b;return}function _f(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function $f(a){a=a|0;return}function ag(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;g=i;i=i+32|0;h=g+20|0;j=g+16|0;k=g+12|0;l=g;if(!((ha(d+4|0,4,0,0)|0)&1)){m=ha((ha(b|0,4,0,0)|0|0)+24|0,4,0,0)|0|0;ia(j|0,ha(c|0,4,0,0)|0|0,4,0);ia(h+0|0,ha(j+0|0,4,0,0)|0|0,4,0);dc[(ja(m|0,15|0)|0)&15](a,b,h,d,e,f&1);i=g;return}Dd(k,d);d=cj(k,5360)|0;Mc(ha(k|0,4,0,0)|0|0)|0;k=ha(d|0,4,0,0)|0|0;if(f)Vb[(ja(ha(k+24|0,4,0,0)|0|0,63|0)|0)&63](l,d);else Vb[(ja(ha(k+28|0,4,0,0)|0|0,63|0)|0)&63](l,d);d=ha(l>>0|0,1,0,0)|0|0;if(!(d&1)){k=l+4|0;n=k;o=l+8|0;p=k}else{k=l+8|0;n=ha(k|0,4,0,0)|0|0;o=k;p=l+4|0}k=d;d=n;while(1){if(!(k&1)){q=p;r=(k&255)>>>1}else{q=ha(o|0,4,0,0)|0|0;r=ha(p|0,4,0,0)|0|0}if((d|0)==(q+(r<<2)|0))break;n=ha(d|0,4,0,0)|0|0;f=ha(c|0,4,0,0)|0|0;if(f){e=f+24|0;h=ha(e|0,4,0,0)|0|0;if((h|0)==(ha(f+28|0,4,0,0)|0|0))s=ec[(ja(ha((ha(f|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,15|0)|0)&15](f,n)|0;else{ia(e|0,h+4|0,4,0);ia(h|0,n|0,4,0);s=n}if((s|0)==-1)ia(c|0,0|0,4,0)}k=ha(l>>0|0,1,0,0)|0|0;d=d+4|0}ia(a|0,ha(c|0,4,0,0)|0|0,4,0);sd(l);i=g;return}function bg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;b=i;i=i+128|0;g=b;h=b+104|0;j=b+112|0;k=b+8|0;l=b+4|0;m=b+96|0;n=b+92|0;o=b+100|0;ia(h+0>>0|0,ha(4e3|0,1,0,0)|0|0|0,1,0);ia(h+1>>0|0,ha(4001|0,1,0,0)|0|0|0,1,0);ia(h+2>>0|0,ha(4002|0,1,0,0)|0|0|0,1,0);ia(h+3>>0|0,ha(4003|0,1,0,0)|0|0|0,1,0);ia(h+4>>0|0,ha(4004|0,1,0,0)|0|0|0,1,0);ia(h+5>>0|0,ha(4005|0,1,0,0)|0|0|0,1,0);Pf(h+1|0,3904,1,ha(d+4|0,4,0,0)|0|0);p=qf()|0;ia(g|0,f|0,4,0);f=j+(Ol(j,12,p,h,g)|0)|0;h=Qf(j,f,d)|0;Dd(n,d);cg(j,h,f,k,l,m,n);Mc(ha(n|0,4,0,0)|0|0)|0;ia(o|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(l|0,4,0,0)|0|0;l=ha(m|0,4,0,0)|0|0;ia(g+0|0,ha(o+0|0,4,0,0)|0|0,4,0);Ql(a,g,k,c,l,d,e);i=b;return}function cg(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;var 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;h=i;i=i+16|0;j=h;k=cj(g,5200)|0;l=cj(g,5360)|0;Vb[(ja(ha((ha(l|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](j,l);g=ha(j>>0|0,1,0,0)|0|0;if(!(g&1))m=(g&255)>>>1;else m=ha(j+4|0,4,0,0)|0|0;if(m){ia(f|0,d|0,4,0);m=ha(a>>0|0,1,0,0)|0|0;if(m<<24>>24==43|m<<24>>24==45){g=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](k,m)|0;m=ha(f|0,4,0,0)|0|0;ia(f|0,m+4|0,4,0);ia(m|0,g|0,4,0);n=a+1|0}else n=a;if(((c-n|0)>1?(ha(n>>0|0,1,0,0)|0|0)==48:0)?(g=n+1|0,m=ha(g>>0|0,1,0,0)|0|0,m<<24>>24==88|m<<24>>24==120):0){m=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](k,48)|0;o=ha(f|0,4,0,0)|0|0;ia(f|0,o+4|0,4,0);ia(o|0,m|0,4,0);m=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](k,ha(g>>0|0,1,0,0)|0|0)|0;g=ha(f|0,4,0,0)|0|0;ia(f|0,g+4|0,4,0);ia(g|0,m|0,4,0);p=n+2|0}else p=n;if((p|0)!=(c|0)?(n=c+-1|0,n>>>0>p>>>0):0){m=p;g=n;do{n=ha(m>>0|0,1,0,0)|0|0;ia(m>>0|0,ha(g>>0|0,1,0,0)|0|0|0,1,0);ia(g>>0|0,n|0,1,0);m=m+1|0;g=g+-1|0}while(m>>>0<g>>>0)}g=Xb[(ja(ha((ha(l|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](l)|0;if(p>>>0<c>>>0){l=j+1|0;m=j+4|0;n=j+8|0;o=0;q=0;r=p;while(1){s=((ha(j>>0|0,1,0,0)|0)&1)==0;if((ha((s?l:ha(n|0,4,0,0)|0|0)+q>>0|0,1,0,0)|0|0)!=0?(o|0)==(ha((s?l:ha(n|0,4,0,0)|0|0)+q>>0|0,1,0,0)|0|0):0){s=ha(f|0,4,0,0)|0|0;ia(f|0,s+4|0,4,0);ia(s|0,g|0,4,0);s=ha(j>>0|0,1,0,0)|0|0;if(!(s&1))t=(s&255)>>>1;else t=ha(m|0,4,0,0)|0|0;u=0;v=(q>>>0<(t+-1|0)>>>0&1)+q|0}else{u=o;v=q}s=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](k,ha(r>>0|0,1,0,0)|0|0)|0;w=ha(f|0,4,0,0)|0|0;x=w+4|0;ia(f|0,x|0,4,0);ia(w|0,s|0,4,0);r=r+1|0;if(r>>>0>=c>>>0){y=x;break}else{o=u+1|0;q=v}}}else y=ha(f|0,4,0,0)|0|0;v=d+(p-a<<2)|0;if((v|0)!=(y|0)?(p=y+-4|0,p>>>0>v>>>0):0){q=v;v=p;do{p=ha(q|0,4,0,0)|0|0;ia(q|0,ha(v|0,4,0,0)|0|0,4,0);ia(v|0,p|0,4,0);q=q+4|0;v=v+-4|0}while(q>>>0<v>>>0);z=y}else z=y}else{bc[(ja(ha((ha(k|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,7|0)|0)&7](k,a,c,d)|0;k=d+(c-a<<2)|0;ia(f|0,k|0,4,0);z=k}if((b|0)==(c|0)){A=z;ia(e|0,A|0,4,0);ed(j);i=h;return}A=d+(b-a<<2)|0;ia(e|0,A|0,4,0);ed(j);i=h;return}function dg(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=i;i=i+224|0;h=b;j=b+8|0;k=b+196|0;l=b+24|0;m=b+20|0;n=b+16|0;o=b+188|0;p=b+192|0;q=j;ia(q|0,37|0,4,0);ia(q+4|0,0|0,4,0);Pf(j+1|0,3912,1,ha(d+4|0,4,0,0)|0|0);q=qf()|0;r=h;ia(r|0,f|0,4,0);ia(r+4|0,g|0,4,0);g=k+(Ol(k,22,q,j,h)|0)|0;j=Qf(k,g,d)|0;Dd(o,d);cg(k,j,g,l,m,n,o);Mc(ha(o|0,4,0,0)|0|0)|0;ia(p|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(m|0,4,0,0)|0|0;m=ha(n|0,4,0,0)|0|0;ia(h+0|0,ha(p+0|0,4,0,0)|0|0,4,0);Ql(a,h,l,c,m,d,e);i=b;return}function eg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;b=i;i=i+128|0;g=b;h=b+104|0;j=b+112|0;k=b+8|0;l=b+4|0;m=b+96|0;n=b+92|0;o=b+100|0;ia(h+0>>0|0,ha(4e3|0,1,0,0)|0|0|0,1,0);ia(h+1>>0|0,ha(4001|0,1,0,0)|0|0|0,1,0);ia(h+2>>0|0,ha(4002|0,1,0,0)|0|0|0,1,0);ia(h+3>>0|0,ha(4003|0,1,0,0)|0|0|0,1,0);ia(h+4>>0|0,ha(4004|0,1,0,0)|0|0|0,1,0);ia(h+5>>0|0,ha(4005|0,1,0,0)|0|0|0,1,0);Pf(h+1|0,3904,0,ha(d+4|0,4,0,0)|0|0);p=qf()|0;ia(g|0,f|0,4,0);f=j+(Ol(j,12,p,h,g)|0)|0;h=Qf(j,f,d)|0;Dd(n,d);cg(j,h,f,k,l,m,n);Mc(ha(n|0,4,0,0)|0|0)|0;ia(o|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(l|0,4,0,0)|0|0;l=ha(m|0,4,0,0)|0|0;ia(g+0|0,ha(o+0|0,4,0,0)|0|0,4,0);Ql(a,g,k,c,l,d,e);i=b;return}function fg(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=i;i=i+240|0;h=b;j=b+8|0;k=b+204|0;l=b+24|0;m=b+20|0;n=b+16|0;o=b+196|0;p=b+200|0;q=j;ia(q|0,37|0,4,0);ia(q+4|0,0|0,4,0);Pf(j+1|0,3912,0,ha(d+4|0,4,0,0)|0|0);q=qf()|0;r=h;ia(r|0,f|0,4,0);ia(r+4|0,g|0,4,0);g=k+(Ol(k,23,q,j,h)|0)|0;j=Qf(k,g,d)|0;Dd(o,d);cg(k,j,g,l,m,n,o);Mc(ha(o|0,4,0,0)|0|0)|0;ia(p|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(m|0,4,0,0)|0|0;m=ha(n|0,4,0,0)|0|0;ia(h+0|0,ha(p+0|0,4,0,0)|0|0,4,0);Ql(a,h,l,c,m,d,e);i=b;return}function gg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=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=i;i=i+320|0;g=b;h=b+16|0;j=b+276|0;l=b+36|0;m=b+44|0;n=b+24|0;o=b+32|0;p=b+40|0;q=b+28|0;r=b+272|0;s=h;ia(s|0,37|0,4,0);ia(s+4|0,0|0,4,0);s=Wf(h+1|0,3920,ha(d+4|0,4,0,0)|0|0)|0;ia(l|0,j|0,4,0);t=qf()|0;if(s){ia(g|0,ha(d+8|0,4,0,0)|0|0,4,0);s=g+4|0;ia(k|0,+f,8,1);ia(s|0,ha(k|0,4,0,0)|0|0,4,0);ia(s+4|0,ha(k+4|0,4,0,0)|0|0,4,0);u=Ol(j,30,t,h,g)|0}else{ia(k|0,+f,8,1);ia(g|0,ha(k|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(k+4|0,4,0,0)|0|0,4,0);u=Ol(j,30,t,h,g)|0}if((u|0)>29){t=qf()|0;ia(g|0,ha(d+8|0,4,0,0)|0|0,4,0);s=g+4|0;ia(k|0,+f,8,1);ia(s|0,ha(k|0,4,0,0)|0|0,4,0);ia(s+4|0,ha(k+4|0,4,0,0)|0|0,4,0);s=Pl(l,t,h,g)|0;h=ha(l|0,4,0,0)|0|0;if(!h)zo();else{v=h;w=h;x=s}}else{v=ha(l|0,4,0,0)|0|0;w=0;x=u}u=v+x|0;l=Qf(v,u,d)|0;if((v|0)!=(j|0)){s=Eo(x<<3)|0;if(!s)zo();else{y=v;z=s;A=s}}else{y=j;z=0;A=m}Dd(p,d);hg(y,l,u,A,n,o,p);Mc(ha(p|0,4,0,0)|0|0)|0;ia(r|0,ha(c|0,4,0,0)|0|0,4,0);p=ha(n|0,4,0,0)|0|0;n=ha(o|0,4,0,0)|0|0;ia(g+0|0,ha(r+0|0,4,0,0)|0|0,4,0);Ql(q,g,A,p,n,d,e);e=ha(q|0,4,0,0)|0|0;ia(c|0,e|0,4,0);ia(a|0,e|0,4,0);if(!z){Fo(w);i=b;return}Fo(z);Fo(w);i=b;return}function hg(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;var 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;h=i;i=i+16|0;j=h;k=cj(g,5200)|0;l=cj(g,5360)|0;Vb[(ja(ha((ha(l|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](j,l);ia(f|0,d|0,4,0);g=ha(a>>0|0,1,0,0)|0|0;if(g<<24>>24==43|g<<24>>24==45){m=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](k,g)|0;g=ha(f|0,4,0,0)|0|0;ia(f|0,g+4|0,4,0);ia(g|0,m|0,4,0);n=a+1|0}else n=a;m=c;a:do if(((m-n|0)>1?(ha(n>>0|0,1,0,0)|0|0)==48:0)?(g=n+1|0,o=ha(g>>0|0,1,0,0)|0|0,o<<24>>24==88|o<<24>>24==120):0){o=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](k,48)|0;p=ha(f|0,4,0,0)|0|0;ia(f|0,p+4|0,4,0);ia(p|0,o|0,4,0);o=n+2|0;p=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](k,ha(g>>0|0,1,0,0)|0|0)|0;g=ha(f|0,4,0,0)|0|0;ia(f|0,g+4|0,4,0);ia(g|0,p|0,4,0);if(o>>>0<c>>>0){p=o;while(1){g=ha(p>>0|0,1,0,0)|0|0;q=p+1|0;if(!(jn(g<<24>>24,qf()|0)|0)){r=o;s=p;break a}if(q>>>0<c>>>0)p=q;else{r=o;s=q;break}}}else{r=o;s=o}}else t=4;while(0);b:do if((t|0)==4)if(n>>>0<c>>>0){p=n;while(1){q=ha(p>>0|0,1,0,0)|0|0;g=p+1|0;if(!(hn(q<<24>>24,qf()|0)|0)){r=n;s=p;break b}if(g>>>0<c>>>0)p=g;else{r=n;s=g;break}}}else{r=n;s=n}while(0);n=ha(j>>0|0,1,0,0)|0|0;if(!(n&1))u=(n&255)>>>1;else u=ha(j+4|0,4,0,0)|0|0;if(u){if((r|0)!=(s|0)?(u=s+-1|0,u>>>0>r>>>0):0){n=r;t=u;do{u=ha(n>>0|0,1,0,0)|0|0;ia(n>>0|0,ha(t>>0|0,1,0,0)|0|0|0,1,0);ia(t>>0|0,u|0,1,0);n=n+1|0;t=t+-1|0}while(n>>>0<t>>>0)}t=Xb[(ja(ha((ha(l|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](l)|0;if(r>>>0<s>>>0){n=j+1|0;u=j+4|0;p=j+8|0;o=0;g=0;q=r;while(1){v=((ha(j>>0|0,1,0,0)|0)&1)==0;if((ha((v?n:ha(p|0,4,0,0)|0|0)+g>>0|0,1,0,0)|0|0)>0?(o|0)==(ha((v?n:ha(p|0,4,0,0)|0|0)+g>>0|0,1,0,0)|0|0):0){v=ha(f|0,4,0,0)|0|0;ia(f|0,v+4|0,4,0);ia(v|0,t|0,4,0);v=ha(j>>0|0,1,0,0)|0|0;if(!(v&1))w=(v&255)>>>1;else w=ha(u|0,4,0,0)|0|0;x=0;y=(g>>>0<(w+-1|0)>>>0&1)+g|0}else{x=o;y=g}v=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](k,ha(q>>0|0,1,0,0)|0|0)|0;z=ha(f|0,4,0,0)|0|0;A=z+4|0;ia(f|0,A|0,4,0);ia(z|0,v|0,4,0);q=q+1|0;if(q>>>0>=s>>>0){B=A;break}else{o=x+1|0;g=y}}}else B=ha(f|0,4,0,0)|0|0;y=d+(r-a<<2)|0;if((y|0)!=(B|0)?(g=B+-4|0,g>>>0>y>>>0):0){x=y;y=g;do{g=ha(x|0,4,0,0)|0|0;ia(x|0,ha(y|0,4,0,0)|0|0,4,0);ia(y|0,g|0,4,0);x=x+4|0;y=y+-4|0}while(x>>>0<y>>>0);C=B}else C=B}else{bc[(ja(ha((ha(k|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,7|0)|0)&7](k,r,s,ha(f|0,4,0,0)|0|0)|0;B=(ha(f|0,4,0,0)|0|0)+(s-r<<2)|0;ia(f|0,B|0,4,0);C=B}c:do if(s>>>0<c>>>0){B=s;while(1){r=ha(B>>0|0,1,0,0)|0|0;if(r<<24>>24==46)break;y=ec[(ja(ha((ha(k|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](k,r)|0;r=ha(f|0,4,0,0)|0|0;x=r+4|0;ia(f|0,x|0,4,0);ia(r|0,y|0,4,0);y=B+1|0;if(y>>>0<c>>>0)B=y;else{D=x;E=y;break c}}y=Xb[(ja(ha((ha(l|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](l)|0;x=ha(f|0,4,0,0)|0|0;r=x+4|0;ia(f|0,r|0,4,0);ia(x|0,y|0,4,0);D=r;E=B+1|0}else{D=C;E=s}while(0);bc[(ja(ha((ha(k|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,7|0)|0)&7](k,E,c,D)|0;D=(ha(f|0,4,0,0)|0|0)+(m-E<<2)|0;ia(f|0,D|0,4,0);if((b|0)==(c|0)){F=D;ia(e|0,F|0,4,0);ed(j);i=h;return}F=d+(b-a<<2)|0;ia(e|0,F|0,4,0);ed(j);i=h;return}function ig(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;var g=0,h=0,j=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;b=i;i=i+320|0;g=b;h=b+16|0;j=b+276|0;l=b+36|0;m=b+44|0;n=b+24|0;o=b+32|0;p=b+40|0;q=b+28|0;r=b+272|0;s=h;ia(s|0,37|0,4,0);ia(s+4|0,0|0,4,0);s=Wf(h+1|0,3928,ha(d+4|0,4,0,0)|0|0)|0;ia(l|0,j|0,4,0);t=qf()|0;if(s){ia(g|0,ha(d+8|0,4,0,0)|0|0,4,0);u=g+4|0;ia(k|0,+f,8,1);ia(u|0,ha(k|0,4,0,0)|0|0,4,0);ia(u+4|0,ha(k+4|0,4,0,0)|0|0,4,0);v=Ol(j,30,t,h,g)|0}else{ia(k|0,+f,8,1);ia(g|0,ha(k|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(k+4|0,4,0,0)|0|0,4,0);v=Ol(j,30,t,h,g)|0}if((v|0)>29){t=qf()|0;if(s){ia(g|0,ha(d+8|0,4,0,0)|0|0,4,0);s=g+4|0;ia(k|0,+f,8,1);ia(s|0,ha(k|0,4,0,0)|0|0,4,0);ia(s+4|0,ha(k+4|0,4,0,0)|0|0,4,0);w=Pl(l,t,h,g)|0}else{ia(k|0,+f,8,1);ia(g|0,ha(k|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(k+4|0,4,0,0)|0|0,4,0);w=Pl(l,t,h,g)|0}h=ha(l|0,4,0,0)|0|0;if(!h)zo();else{x=h;y=h;z=w}}else{x=ha(l|0,4,0,0)|0|0;y=0;z=v}v=x+z|0;l=Qf(x,v,d)|0;if((x|0)!=(j|0)){w=Eo(z<<3)|0;if(!w)zo();else{A=x;B=w;C=w}}else{A=j;B=0;C=m}Dd(p,d);hg(A,l,v,C,n,o,p);Mc(ha(p|0,4,0,0)|0|0)|0;ia(r|0,ha(c|0,4,0,0)|0|0,4,0);p=ha(n|0,4,0,0)|0|0;n=ha(o|0,4,0,0)|0|0;ia(g+0|0,ha(r+0|0,4,0,0)|0|0,4,0);Ql(q,g,C,p,n,d,e);e=ha(q|0,4,0,0)|0|0;ia(c|0,e|0,4,0);ia(a|0,e|0,4,0);if(!B){Fo(y);i=b;return}Fo(B);Fo(y);i=b;return}function jg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;b=i;i=i+192|0;g=b;h=b+180|0;j=b+160|0;k=b+12|0;l=b+8|0;m=b+4|0;ia(h+0>>0|0,ha(4008|0,1,0,0)|0|0|0,1,0);ia(h+1>>0|0,ha(4009|0,1,0,0)|0|0|0,1,0);ia(h+2>>0|0,ha(4010|0,1,0,0)|0|0|0,1,0);ia(h+3>>0|0,ha(4011|0,1,0,0)|0|0|0,1,0);ia(h+4>>0|0,ha(4012|0,1,0,0)|0|0|0,1,0);ia(h+5>>0|0,ha(4013|0,1,0,0)|0|0|0,1,0);n=qf()|0;ia(g|0,f|0,4,0);f=Ol(j,20,n,h,g)|0;h=j+f|0;n=Qf(j,h,d)|0;Dd(l,d);o=cj(l,5200)|0;Mc(ha(l|0,4,0,0)|0|0)|0;bc[(ja(ha((ha(o|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,7|0)|0)&7](o,j,h,k)|0;o=k+(f<<2)|0;if((n|0)==(h|0))p=o;else p=k+(n-j<<2)|0;ia(m|0,ha(c|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Ql(a,g,k,p,o,d,e);i=b;return}function kg(a,b,c,d,e,f,g,h,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,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;k=i;i=i+32|0;l=k+20|0;m=k+16|0;n=k+12|0;o=k+8|0;p=k+4|0;q=k;Dd(n,e);r=cj(n,5208)|0;Mc(ha(n|0,4,0,0)|0|0)|0;ia(f|0,0|0,4,0);a:do if((h|0)!=(j|0)){n=r+8|0;s=h;t=0;b:while(1){u=t;while(1){if(u){v=60;break a}w=ha(c|0,4,0,0)|0|0;if(w)if((ha(w+12|0,4,0,0)|0|0)==(ha(w+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0)==-1:0){ia(c|0,0|0,4,0);x=0}else x=w;else x=0;w=(x|0)==0;y=ha(d|0,4,0,0)|0|0;do if(y){if((ha(y+12|0,4,0,0)|0|0)==(ha(y+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0)==-1:0){ia(d|0,0|0,4,0);v=14;break}if(w)z=y;else{v=15;break b}}else v=14;while(0);if((v|0)==14){v=0;if(w){v=15;break b}else z=0}if((Rb[(ja(ha((ha(r|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,31|0)|0)&31](r,ha(s>>0|0,1,0,0)|0|0,0)|0)<<24>>24==37){v=17;break}y=ha(s>>0|0,1,0,0)|0|0;if(y<<24>>24>-1?(A=ha(n|0,4,0,0)|0|0,((ha(A+(y<<24>>24<<1)|0,2,0,0)|0)&8192)!=0):0){B=s;v=28;break}C=x+12|0;y=ha(C|0,4,0,0)|0|0;D=x+16|0;if((y|0)==(ha(D|0,4,0,0)|0|0))E=Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0;else E=ha(y>>0|0,1,0,1)|0|0;y=ec[(ja(ha((ha(r|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,15|0)|0)&15](r,E&255)|0;if(y<<24>>24==(ec[(ja(ha((ha(r|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,15|0)|0)&15](r,ha(s>>0|0,1,0,0)|0|0)|0)<<24>>24){v=55;break}ia(f|0,4|0,4,0);u=4}c:do if((v|0)==17){v=0;u=s+1|0;if((u|0)==(j|0)){v=18;break b}y=Rb[(ja(ha((ha(r|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,31|0)|0)&31](r,ha(u>>0|0,1,0,0)|0|0,0)|0;if(y<<24>>24==48|y<<24>>24==69){F=s+2|0;if((F|0)==(j|0)){v=21;break b}G=F;H=Rb[(ja(ha((ha(r|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,31|0)|0)&31](r,ha(F>>0|0,1,0,0)|0|0,0)|0;I=y}else{G=u;H=y;I=0}y=ha((ha(b|0,4,0,0)|0|0)+36|0,4,0,0)|0|0;ia(p|0,x|0,4,0);ia(q|0,z|0,4,0);ia(m+0|0,ha(p+0|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(q+0|0,4,0,0)|0|0,4,0);Wb[(ja(y|0,3|0)|0)&3](o,b,m,l,e,f,g,H,I);ia(c|0,ha(o|0,4,0,0)|0|0,4,0);J=G+1|0}else if((v|0)==28){while(1){v=0;y=B+1|0;if((y|0)==(j|0)){K=j;break}u=ha(y>>0|0,1,0,0)|0|0;if(u<<24>>24<=-1){K=y;break}if(!((ha(A+(u<<24>>24<<1)|0,2,0,0)|0)&8192)){K=y;break}else{B=y;v=28}}w=x;y=z;u=z;while(1){if(w)if((ha(w+12|0,4,0,0)|0|0)==(ha(w+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0)==-1:0){ia(c|0,0|0,4,0);L=0}else L=w;else L=0;F=(L|0)==0;do if(u){if((ha(u+12|0,4,0,0)|0|0)!=(ha(u+16|0,4,0,0)|0|0))if(F){M=y;N=u;break}else{J=K;break c}if((Xb[(ja(ha((ha(u|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](u)|0)!=-1)if(F^(y|0)==0){M=y;N=y;break}else{J=K;break c}else{ia(d|0,0|0,4,0);O=0;v=41;break}}else{O=y;v=41}while(0);if((v|0)==41){v=0;if(F){J=K;break c}else{M=O;N=0}}P=L+12|0;Q=ha(P|0,4,0,0)|0|0;R=L+16|0;if((Q|0)==(ha(R|0,4,0,0)|0|0))S=Xb[(ja(ha((ha(L|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](L)|0;else S=ha(Q>>0|0,1,0,1)|0|0;if((S&255)<<24>>24<=-1){J=K;break c}if(!((ha((ha(n|0,4,0,0)|0|0)+(S<<24>>24<<1)|0,2,0,0)|0)&8192)){J=K;break c}Q=ha(P|0,4,0,0)|0|0;if((Q|0)==(ha(R|0,4,0,0)|0|0)){Xb[(ja(ha((ha(L|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](L)|0;w=L;y=M;u=N;continue}else{ia(P|0,Q+1|0,4,0);w=L;y=M;u=N;continue}}}else if((v|0)==55){v=0;u=ha(C|0,4,0,0)|0|0;if((u|0)==(ha(D|0,4,0,0)|0|0))Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](x)|0;else ia(C|0,u+1|0,4,0);J=s+1|0}while(0);if((J|0)==(j|0)){v=60;break a}s=J;t=ha(f|0,4,0,0)|0|0}if((v|0)==15){ia(f|0,4|0,4,0);T=x;break}else if((v|0)==18){ia(f|0,4|0,4,0);T=x;break}else if((v|0)==21){ia(f|0,4|0,4,0);T=x;break}}else v=60;while(0);if((v|0)==60)T=ha(c|0,4,0,0)|0|0;if(T)if((ha(T+12|0,4,0,0)|0|0)==(ha(T+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(T|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](T)|0)==-1:0){ia(c|0,0|0,4,0);U=0}else U=T;else U=0;T=(U|0)==0;c=ha(d|0,4,0,0)|0|0;do if(c){if((ha(c+12|0,4,0,0)|0|0)==(ha(c+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(c|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](c)|0)==-1:0){ia(d|0,0|0,4,0);v=70;break}if(T){ia(a|0,U|0,4,0);i=k;return}}else v=70;while(0);if((v|0)==70?!T:0){ia(a|0,U|0,4,0);i=k;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,U|0,4,0);i=k;return}function lg(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function mg(a){a=a|0;return}function ng(a){a=a|0;return 2}function og(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);kg(a,b,k,j,e,f,g,4112,4120|0);i=h;return}function pg(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;n=b+8|0;o=Xb[(ja(ha((ha(n|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](n)|0;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);d=ha(o>>0|0,1,0,0)|0|0;if(!(d&1)){p=o+1|0;q=(d&255)>>>1;r=o+1|0}else{d=ha(o+8|0,4,0,0)|0|0;p=d;q=ha(o+4|0,4,0,0)|0|0;r=d}ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);kg(a,b,k,j,e,f,g,r,p+q|0);i=h;return}function qg(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;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h+8|0;k=h+4|0;l=h;Dd(k,e);e=cj(k,5208)|0;Mc(ha(k|0,4,0,0)|0|0)|0;ia(l|0,ha(d|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(l+0|0,4,0,0)|0|0,4,0);rg(b,g+24|0,c,j,f,e);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);i=h;return}function rg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g+4|0;j=g;k=a+8|0;a=Xb[(ja(ha(ha(k|0,4,0,0)|0|0,4,0,0)|0|0,63|0)|0)&63](k)|0;ia(j|0,ha(d|0,4,0,0)|0|0,4,0);ia(h+0|0,ha(j+0|0,4,0,0)|0|0,4,0);j=(tl(c,h,a,a+168|0,f,e,0)|0)-a|0;if((j|0)>=168){i=g;return}ia(b|0,((j|0)/12|0|0)%7|0|0,4,0);i=g;return}function sg(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;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h+8|0;k=h+4|0;l=h;Dd(k,e);e=cj(k,5208)|0;Mc(ha(k|0,4,0,0)|0|0)|0;ia(l|0,ha(d|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(l+0|0,4,0,0)|0|0,4,0);tg(b,g+16|0,c,j,f,e);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);i=h;return}function tg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g+4|0;j=g;k=a+8|0;a=Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+4|0,4,0,0)|0|0,63|0)|0)&63](k)|0;ia(j|0,ha(d|0,4,0,0)|0|0,4,0);ia(h+0|0,ha(j+0|0,4,0,0)|0|0,4,0);j=(tl(c,h,a,a+288|0,f,e,0)|0)-a|0;if((j|0)>=288){i=g;return}ia(b|0,((j|0)/12|0|0)%12|0|0,4,0);i=g;return}function ug(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;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h+8|0;k=h+4|0;l=h;Dd(k,e);e=cj(k,5208)|0;Mc(ha(k|0,4,0,0)|0|0)|0;ia(l|0,ha(d|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(l+0|0,4,0,0)|0|0,4,0);vg(b,g+20|0,c,j,f,e);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);i=h;return}function vg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Rl(c,g,e,f,4)|0;if((ha(e|0,4,0,0)|0)&4){i=a;return}if((h|0)<69)j=h+2e3|0;else j=(h+-69|0)>>>0<31?h+1900|0:h;ia(b|0,j+-1900|0,4,0);i=a;return}function wg(a,b,c,d,e,f,g,h,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,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;j=i;i=i+176|0;k=j+156|0;l=j+148|0;m=j+4|0;n=j+72|0;o=j+76|0;p=j;q=j+20|0;r=j+24|0;s=j+28|0;t=j+32|0;u=j+36|0;v=j+40|0;w=j+44|0;x=j+48|0;y=j+52|0;z=j+56|0;A=j+128|0;B=j+136|0;C=j+144|0;D=j+152|0;E=j+160|0;F=j+80|0;G=j+84|0;H=j+88|0;I=j+92|0;J=j+96|0;K=j+100|0;L=j+104|0;M=j+108|0;N=j+112|0;O=j+116|0;P=j+12|0;Q=j+120|0;R=j+60|0;S=j+124|0;T=j+16|0;U=j+64|0;V=j+132|0;W=j+68|0;X=j+140|0;Y=j+8|0;ia(f|0,0|0,4,0);Dd(m,e);Z=cj(m,5208)|0;Mc(ha(m|0,4,0,0)|0|0)|0;do switch(h<<24>>24|0){case 89:{ia(X|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(X+0|0,4,0,0)|0|0,4,0);Hg(b,g+20|0,c,k,f,Z);break}case 37:{ia(Y|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(Y+0|0,4,0,0)|0|0,4,0);Ig(b,c,k,f,Z);break}case 82:{ia(K|0,ha(c|0,4,0,0)|0|0,4,0);ia(L|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(K+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(L+0|0,4,0,0)|0|0,4,0);kg(J,b,l,k,e,f,g,4152,4157|0);ia(c|0,ha(J|0,4,0,0)|0|0,4,0);break}case 83:{ia(M|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(M+0|0,4,0,0)|0|0,4,0);Fg(b,g,c,k,f,Z);break}case 114:{ia(H|0,ha(c|0,4,0,0)|0|0,4,0);ia(I|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(H+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(I+0|0,4,0,0)|0|0,4,0);kg(G,b,l,k,e,f,g,4136,4147|0);ia(c|0,ha(G|0,4,0,0)|0|0,4,0);break}case 68:{ia(u|0,ha(c|0,4,0,0)|0|0,4,0);ia(v|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(u+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(v+0|0,4,0,0)|0|0,4,0);kg(t,b,l,k,e,f,g,4120,4128|0);ia(c|0,ha(t|0,4,0,0)|0|0,4,0);break}case 101:case 100:{ia(s|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(s+0|0,4,0,0)|0|0,4,0);xg(b,g+12|0,c,k,f,Z);break}case 104:case 66:case 98:{ia(o|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(o+0|0,4,0,0)|0|0,4,0);tg(b,g+16|0,c,k,f,Z);break}case 112:{ia(F|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(F+0|0,4,0,0)|0|0,4,0);Eg(b,g+8|0,c,k,f,Z);break}case 84:{ia(O|0,ha(c|0,4,0,0)|0|0,4,0);ia(P|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(O+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(P+0|0,4,0,0)|0|0,4,0);kg(N,b,l,k,e,f,g,4160,4168|0);ia(c|0,ha(N|0,4,0,0)|0|0,4,0);break}case 119:{ia(Q|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(Q+0|0,4,0,0)|0|0,4,0);Gg(b,g+24|0,c,k,f,Z);break}case 120:{m=ha((ha(b|0,4,0,0)|0|0)+20|0,4,0,0)|0|0;ia(R|0,ha(c|0,4,0,0)|0|0,4,0);ia(S|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(R+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(S+0|0,4,0,0)|0|0,4,0);Sb[(ja(m|0,63|0)|0)&63](a,b,l,k,e,f,g);i=j;return}case 88:{m=b+8|0;_=Xb[(ja(ha((ha(m|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](m)|0;ia(U|0,ha(c|0,4,0,0)|0|0,4,0);ia(V|0,ha(d|0,4,0,0)|0|0,4,0);m=ha(_>>0|0,1,0,0)|0|0;if(!(m&1)){$=_+1|0;aa=(m&255)>>>1;ba=_+1|0}else{m=ha(_+8|0,4,0,0)|0|0;$=m;aa=ha(_+4|0,4,0,0)|0|0;ba=m}ia(l+0|0,ha(U+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(V+0|0,4,0,0)|0|0,4,0);kg(T,b,l,k,e,f,g,ba,$+aa|0);ia(c|0,ha(T|0,4,0,0)|0|0,4,0);break}case 116:case 110:{ia(E|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(E+0|0,4,0,0)|0|0,4,0);Dg(b,c,k,f,Z);break}case 109:{ia(C|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(C+0|0,4,0,0)|0|0,4,0);Bg(b,g+16|0,c,k,f,Z);break}case 77:{ia(D|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(D+0|0,4,0,0)|0|0,4,0);Cg(b,g+4|0,c,k,f,Z);break}case 72:{ia(z|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(z+0|0,4,0,0)|0|0,4,0);yg(b,g+8|0,c,k,f,Z);break}case 73:{ia(A|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(A+0|0,4,0,0)|0|0,4,0);zg(b,g+8|0,c,k,f,Z);break}case 121:{ia(W|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(W+0|0,4,0,0)|0|0,4,0);vg(b,g+20|0,c,k,f,Z);break}case 99:{m=b+8|0;_=Xb[(ja(ha((ha(m|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](m)|0;ia(q|0,ha(c|0,4,0,0)|0|0,4,0);ia(r|0,ha(d|0,4,0,0)|0|0,4,0);m=ha(_>>0|0,1,0,0)|0|0;if(!(m&1)){ca=_+1|0;da=(m&255)>>>1;ea=_+1|0}else{m=ha(_+8|0,4,0,0)|0|0;ca=m;da=ha(_+4|0,4,0,0)|0|0;ea=m}ia(l+0|0,ha(q+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(r+0|0,4,0,0)|0|0,4,0);kg(p,b,l,k,e,f,g,ea,ca+da|0);ia(c|0,ha(p|0,4,0,0)|0|0,4,0);break}case 65:case 97:{ia(n|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(n+0|0,4,0,0)|0|0,4,0);rg(b,g+24|0,c,k,f,Z);break}case 70:{ia(x|0,ha(c|0,4,0,0)|0|0,4,0);ia(y|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(x+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(y+0|0,4,0,0)|0|0,4,0);kg(w,b,l,k,e,f,g,4128,4136|0);ia(c|0,ha(w|0,4,0,0)|0|0,4,0);break}case 106:{ia(B|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(B+0|0,4,0,0)|0|0,4,0);Ag(b,g+28|0,c,k,f,Z);break}default:ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0)}while(0);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);i=j;return}function xg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Rl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)>0&(h|0)<32){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function yg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Rl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<24){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function zg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Rl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)>0&(h|0)<13){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function Ag(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Rl(c,g,e,f,3)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<366){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function Bg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Rl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<13){ia(b|0,h+-1|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function Cg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Rl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<60){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function Dg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;a=i;f=e+8|0;a:while(1){e=ha(b|0,4,0,0)|0|0;do if(e)if((ha(e+12|0,4,0,0)|0|0)==(ha(e+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(e|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](e)|0)==-1){ia(b|0,0|0,4,0);g=0;break}else{g=ha(b|0,4,0,0)|0|0;break}else g=e;else g=0;while(0);e=(g|0)==0;h=ha(c|0,4,0,0)|0|0;do if(h){if((ha(h+12|0,4,0,0)|0|0)!=(ha(h+16|0,4,0,0)|0|0))if(e){j=h;break}else{k=h;break a}if((Xb[(ja(ha((ha(h|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](h)|0)!=-1)if(e){j=h;break}else{k=h;break a}else{ia(c|0,0|0,4,0);l=12;break}}else l=12;while(0);if((l|0)==12){l=0;if(e){k=0;break}else j=0}h=ha(b|0,4,0,0)|0|0;m=ha(h+12|0,4,0,0)|0|0;if((m|0)==(ha(h+16|0,4,0,0)|0|0))n=Xb[(ja(ha((ha(h|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](h)|0;else n=ha(m>>0|0,1,0,1)|0|0;if((n&255)<<24>>24<=-1){k=j;break}if(!((ha((ha(f|0,4,0,0)|0|0)+(n<<24>>24<<1)|0,2,0,0)|0)&8192)){k=j;break}m=ha(b|0,4,0,0)|0|0;h=m+12|0;o=ha(h|0,4,0,0)|0|0;if((o|0)==(ha(m+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(m|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](m)|0;continue}else{ia(h|0,o+1|0,4,0);continue}}j=ha(b|0,4,0,0)|0|0;do if(j)if((ha(j+12|0,4,0,0)|0|0)==(ha(j+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0)==-1){ia(b|0,0|0,4,0);p=0;break}else{p=ha(b|0,4,0,0)|0|0;break}else p=j;else p=0;while(0);j=(p|0)==0;do if(k){if((ha(k+12|0,4,0,0)|0|0)==(ha(k+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0)==-1:0){ia(c|0,0|0,4,0);l=32;break}if(j){i=a;return}}else l=32;while(0);if((l|0)==32?!j:0){i=a;return}ia(d|0,ha(d|0,4,0,0)|0|2|0,4,0);i=a;return}function Eg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g+4|0;j=g;k=a+8|0;a=Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+8|0,4,0,0)|0|0,63|0)|0)&63](k)|0;k=ha(a>>0|0,1,0,0)|0|0;if(!(k&1))l=(k&255)>>>1;else l=ha(a+4|0,4,0,0)|0|0;k=ha(a+12>>0|0,1,0,0)|0|0;if(!(k&1))m=(k&255)>>>1;else m=ha(a+16|0,4,0,0)|0|0;if((l|0)==(0-m|0)){ia(e|0,ha(e|0,4,0,0)|0|4|0,4,0);i=g;return}ia(j|0,ha(d|0,4,0,0)|0|0,4,0);ia(h+0|0,ha(j+0|0,4,0,0)|0|0,4,0);j=tl(c,h,a,a+24|0,f,e,0)|0;e=j-a|0;if((j|0)==(a|0)?(ha(b|0,4,0,0)|0|0)==12:0){ia(b|0,0|0,4,0);i=g;return}if((e|0)!=12){i=g;return}e=ha(b|0,4,0,0)|0|0;if((e|0)>=12){i=g;return}ia(b|0,e+12|0,4,0);i=g;return}function Fg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Rl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<61){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function Gg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Rl(c,g,e,f,1)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<7){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function Hg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Rl(c,g,e,f,4)|0;if((ha(e|0,4,0,0)|0)&4){i=a;return}ia(b|0,h+-1900|0,4,0);i=a;return}function Ig(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;a=i;f=ha(b|0,4,0,0)|0|0;do if(f)if((ha(f+12|0,4,0,0)|0|0)==(ha(f+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(f|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](f)|0)==-1){ia(b|0,0|0,4,0);g=0;break}else{g=ha(b|0,4,0,0)|0|0;break}else g=f;else g=0;while(0);f=(g|0)==0;g=ha(c|0,4,0,0)|0|0;do if(g){if((ha(g+12|0,4,0,0)|0|0)==(ha(g+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(g|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](g)|0)==-1:0){ia(c|0,0|0,4,0);h=11;break}if(f)j=g;else h=12}else h=11;while(0);if((h|0)==11)if(f)h=12;else j=0;if((h|0)==12){ia(d|0,ha(d|0,4,0,0)|0|6|0,4,0);i=a;return}f=ha(b|0,4,0,0)|0|0;g=ha(f+12|0,4,0,0)|0|0;if((g|0)==(ha(f+16|0,4,0,0)|0|0))k=Xb[(ja(ha((ha(f|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](f)|0;else k=ha(g>>0|0,1,0,1)|0|0;if((Rb[(ja(ha((ha(e|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,31|0)|0)&31](e,k&255,0)|0)<<24>>24!=37){ia(d|0,ha(d|0,4,0,0)|0|4|0,4,0);i=a;return}k=ha(b|0,4,0,0)|0|0;e=k+12|0;g=ha(e|0,4,0,0)|0|0;if((g|0)==(ha(k+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](k)|0;l=ha(b|0,4,0,0)|0|0}else{ia(e|0,g+1|0,4,0);l=k}do if(l)if((ha(l+12|0,4,0,0)|0|0)==(ha(l+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(l|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](l)|0)==-1){ia(b|0,0|0,4,0);m=0;break}else{m=ha(b|0,4,0,0)|0|0;break}else m=l;else m=0;while(0);l=(m|0)==0;do if(j){if((ha(j+12|0,4,0,0)|0|0)==(ha(j+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0)==-1:0){ia(c|0,0|0,4,0);h=31;break}if(l){i=a;return}}else h=31;while(0);if((h|0)==31?!l:0){i=a;return}ia(d|0,ha(d|0,4,0,0)|0|2|0,4,0);i=a;return}function Jg(a,b,c,d,e,f,g,h,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,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;k=i;i=i+32|0;l=k+20|0;m=k+16|0;n=k+12|0;o=k+8|0;p=k+4|0;q=k;Dd(n,e);r=cj(n,5200)|0;Mc(ha(n|0,4,0,0)|0|0)|0;ia(f|0,0|0,4,0);a:do if((h|0)!=(j|0)){n=h;s=0;b:while(1){t=s;while(1){if(t){u=64;break a}v=ha(c|0,4,0,0)|0|0;if(v){w=ha(v+12|0,4,0,0)|0|0;if((w|0)==(ha(v+16|0,4,0,0)|0|0))x=Xb[(ja(ha((ha(v|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](v)|0;else x=ha(w|0,4,0,0)|0|0;if((x|0)==-1){ia(c|0,0|0,4,0);y=1;z=0}else{y=0;z=v}}else{y=1;z=0}v=ha(d|0,4,0,0)|0|0;do if(v){w=ha(v+12|0,4,0,0)|0|0;if((w|0)==(ha(v+16|0,4,0,0)|0|0))A=Xb[(ja(ha((ha(v|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](v)|0;else A=ha(w|0,4,0,0)|0|0;if((A|0)!=-1)if(y){B=v;break}else{u=19;break b}else{ia(d|0,0|0,4,0);u=17;break}}else u=17;while(0);if((u|0)==17){u=0;if(y){u=19;break b}else B=0}if((Rb[(ja(ha((ha(r|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,31|0)|0)&31](r,ha(n|0,4,0,0)|0|0,0)|0)<<24>>24==37){u=21;break}if(Rb[(ja(ha((ha(r|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](r,8192,ha(n|0,4,0,0)|0|0)|0){C=n;u=31;break}D=z+12|0;v=ha(D|0,4,0,0)|0|0;E=z+16|0;if((v|0)==(ha(E|0,4,0,0)|0|0))F=Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0;else F=ha(v|0,4,0,0)|0|0;v=ec[(ja(ha((ha(r|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](r,F)|0;if((v|0)==(ec[(ja(ha((ha(r|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](r,ha(n|0,4,0,0)|0|0)|0)){u=59;break}ia(f|0,4|0,4,0);t=4}c:do if((u|0)==21){u=0;t=n+4|0;if((t|0)==(j|0)){u=22;break b}v=Rb[(ja(ha((ha(r|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,31|0)|0)&31](r,ha(t|0,4,0,0)|0|0,0)|0;if(v<<24>>24==48|v<<24>>24==69){w=n+8|0;if((w|0)==(j|0)){u=25;break b}G=w;H=Rb[(ja(ha((ha(r|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,31|0)|0)&31](r,ha(w|0,4,0,0)|0|0,0)|0;I=v}else{G=t;H=v;I=0}v=ha((ha(b|0,4,0,0)|0|0)+36|0,4,0,0)|0|0;ia(p|0,z|0,4,0);ia(q|0,B|0,4,0);ia(m+0|0,ha(p+0|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(q+0|0,4,0,0)|0|0,4,0);Wb[(ja(v|0,3|0)|0)&3](o,b,m,l,e,f,g,H,I);ia(c|0,ha(o|0,4,0,0)|0|0,4,0);J=G+4|0}else if((u|0)==31){while(1){u=0;v=C+4|0;if((v|0)==(j|0)){K=j;break}if(Rb[(ja(ha((ha(r|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](r,8192,ha(v|0,4,0,0)|0|0)|0){C=v;u=31}else{K=v;break}}v=z;t=B;w=B;while(1){if(v){L=ha(v+12|0,4,0,0)|0|0;if((L|0)==(ha(v+16|0,4,0,0)|0|0))M=Xb[(ja(ha((ha(v|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](v)|0;else M=ha(L|0,4,0,0)|0|0;if((M|0)==-1){ia(c|0,0|0,4,0);N=0;O=1}else{N=v;O=0}}else{N=0;O=1}do if(w){L=ha(w+12|0,4,0,0)|0|0;if((L|0)==(ha(w+16|0,4,0,0)|0|0))P=Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0;else P=ha(L|0,4,0,0)|0|0;if((P|0)!=-1)if(O^(t|0)==0){Q=t;R=t;break}else{J=K;break c}else{ia(d|0,0|0,4,0);S=0;u=46;break}}else{S=t;u=46}while(0);if((u|0)==46){u=0;if(O){J=K;break c}else{Q=S;R=0}}L=N+12|0;T=ha(L|0,4,0,0)|0|0;U=N+16|0;if((T|0)==(ha(U|0,4,0,0)|0|0))V=Xb[(ja(ha((ha(N|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](N)|0;else V=ha(T|0,4,0,0)|0|0;if(!(Rb[(ja(ha((ha(r|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](r,8192,V)|0)){J=K;break c}T=ha(L|0,4,0,0)|0|0;if((T|0)==(ha(U|0,4,0,0)|0|0)){Xb[(ja(ha((ha(N|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](N)|0;v=N;t=Q;w=R;continue}else{ia(L|0,T+4|0,4,0);v=N;t=Q;w=R;continue}}}else if((u|0)==59){u=0;w=ha(D|0,4,0,0)|0|0;if((w|0)==(ha(E|0,4,0,0)|0|0))Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](z)|0;else ia(D|0,w+4|0,4,0);J=n+4|0}while(0);if((J|0)==(j|0)){u=64;break a}n=J;s=ha(f|0,4,0,0)|0|0}if((u|0)==19){ia(f|0,4|0,4,0);W=z;break}else if((u|0)==22){ia(f|0,4|0,4,0);W=z;break}else if((u|0)==25){ia(f|0,4|0,4,0);W=z;break}}else u=64;while(0);if((u|0)==64)W=ha(c|0,4,0,0)|0|0;if(W){z=ha(W+12|0,4,0,0)|0|0;if((z|0)==(ha(W+16|0,4,0,0)|0|0))X=Xb[(ja(ha((ha(W|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](W)|0;else X=ha(z|0,4,0,0)|0|0;if((X|0)==-1){ia(c|0,0|0,4,0);Y=0;Z=1}else{Y=W;Z=0}}else{Y=0;Z=1}W=ha(d|0,4,0,0)|0|0;do if(W){c=ha(W+12|0,4,0,0)|0|0;if((c|0)==(ha(W+16|0,4,0,0)|0|0))_=Xb[(ja(ha((ha(W|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](W)|0;else _=ha(c|0,4,0,0)|0|0;if((_|0)==-1){ia(d|0,0|0,4,0);u=77;break}if(Z){ia(a|0,Y|0,4,0);i=k;return}}else u=77;while(0);if((u|0)==77?!Z:0){ia(a|0,Y|0,4,0);i=k;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,Y|0,4,0);i=k;return}function Kg(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Lg(a){a=a|0;return}function Mg(a){a=a|0;return 2}function Ng(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;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Jg(a,b,k,j,e,f,g,4264,4296|0);i=h;return}function Og(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=i;i=i+16|0;j=h+12|0;k=h+8|0;l=h+4|0;m=h;n=b+8|0;o=Xb[(ja(ha((ha(n|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](n)|0;ia(l|0,ha(c|0,4,0,0)|0|0,4,0);ia(m|0,ha(d|0,4,0,0)|0|0,4,0);d=ha(o>>0|0,1,0,0)|0|0;if(!(d&1)){p=o+4|0;q=(d&255)>>>1;r=o+4|0}else{d=ha(o+8|0,4,0,0)|0|0;p=d;q=ha(o+4|0,4,0,0)|0|0;r=d}ia(k+0|0,ha(l+0|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(m+0|0,4,0,0)|0|0,4,0);Jg(a,b,k,j,e,f,g,r,p+(q<<2)|0);i=h;return}function Pg(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;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h+8|0;k=h+4|0;l=h;Dd(k,e);e=cj(k,5200)|0;Mc(ha(k|0,4,0,0)|0|0)|0;ia(l|0,ha(d|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(l+0|0,4,0,0)|0|0,4,0);Qg(b,g+24|0,c,j,f,e);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);i=h;return}function Qg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g+4|0;j=g;k=a+8|0;a=Xb[(ja(ha(ha(k|0,4,0,0)|0|0,4,0,0)|0|0,63|0)|0)&63](k)|0;ia(j|0,ha(d|0,4,0,0)|0|0,4,0);ia(h+0|0,ha(j+0|0,4,0,0)|0|0,4,0);j=(El(c,h,a,a+168|0,f,e,0)|0)-a|0;if((j|0)>=168){i=g;return}ia(b|0,((j|0)/12|0|0)%7|0|0,4,0);i=g;return}function Rg(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;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h+8|0;k=h+4|0;l=h;Dd(k,e);e=cj(k,5200)|0;Mc(ha(k|0,4,0,0)|0|0)|0;ia(l|0,ha(d|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(l+0|0,4,0,0)|0|0,4,0);Sg(b,g+16|0,c,j,f,e);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);i=h;return}function Sg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g+4|0;j=g;k=a+8|0;a=Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+4|0,4,0,0)|0|0,63|0)|0)&63](k)|0;ia(j|0,ha(d|0,4,0,0)|0|0,4,0);ia(h+0|0,ha(j+0|0,4,0,0)|0|0,4,0);j=(El(c,h,a,a+288|0,f,e,0)|0)-a|0;if((j|0)>=288){i=g;return}ia(b|0,((j|0)/12|0|0)%12|0|0,4,0);i=g;return}function Tg(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;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h+8|0;k=h+4|0;l=h;Dd(k,e);e=cj(k,5200)|0;Mc(ha(k|0,4,0,0)|0|0)|0;ia(l|0,ha(d|0,4,0,0)|0|0,4,0);ia(j+0|0,ha(l+0|0,4,0,0)|0|0,4,0);Ug(b,g+20|0,c,j,f,e);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);i=h;return}function Ug(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Sl(c,g,e,f,4)|0;if((ha(e|0,4,0,0)|0)&4){i=a;return}if((h|0)<69)j=h+2e3|0;else j=(h+-69|0)>>>0<31?h+1900|0:h;ia(b|0,j+-1900|0,4,0);i=a;return}function Vg(a,b,c,d,e,f,g,h,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,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;j=i;i=i+176|0;k=j+156|0;l=j+148|0;m=j+4|0;n=j+72|0;o=j+76|0;p=j;q=j+20|0;r=j+24|0;s=j+28|0;t=j+32|0;u=j+36|0;v=j+40|0;w=j+44|0;x=j+48|0;y=j+52|0;z=j+56|0;A=j+128|0;B=j+136|0;C=j+144|0;D=j+152|0;E=j+160|0;F=j+80|0;G=j+84|0;H=j+88|0;I=j+92|0;J=j+96|0;K=j+100|0;L=j+104|0;M=j+108|0;N=j+112|0;O=j+116|0;P=j+12|0;Q=j+120|0;R=j+60|0;S=j+124|0;T=j+16|0;U=j+64|0;V=j+132|0;W=j+68|0;X=j+140|0;Y=j+8|0;ia(f|0,0|0,4,0);Dd(m,e);Z=cj(m,5200)|0;Mc(ha(m|0,4,0,0)|0|0)|0;do switch(h<<24>>24|0){case 88:{m=b+8|0;_=Xb[(ja(ha((ha(m|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](m)|0;ia(U|0,ha(c|0,4,0,0)|0|0,4,0);ia(V|0,ha(d|0,4,0,0)|0|0,4,0);m=ha(_>>0|0,1,0,0)|0|0;if(!(m&1)){$=_+4|0;aa=(m&255)>>>1;ba=_+4|0}else{m=ha(_+8|0,4,0,0)|0|0;$=m;aa=ha(_+4|0,4,0,0)|0|0;ba=m}ia(l+0|0,ha(U+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(V+0|0,4,0,0)|0|0,4,0);Jg(T,b,l,k,e,f,g,ba,$+(aa<<2)|0);ia(c|0,ha(T|0,4,0,0)|0|0,4,0);break}case 72:{ia(z|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(z+0|0,4,0,0)|0|0,4,0);Xg(b,g+8|0,c,k,f,Z);break}case 70:{ia(x|0,ha(c|0,4,0,0)|0|0,4,0);ia(y|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(x+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(y+0|0,4,0,0)|0|0,4,0);Jg(w,b,l,k,e,f,g,4328,4360|0);ia(c|0,ha(w|0,4,0,0)|0|0,4,0);break}case 68:{ia(u|0,ha(c|0,4,0,0)|0|0,4,0);ia(v|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(u+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(v+0|0,4,0,0)|0|0,4,0);Jg(t,b,l,k,e,f,g,4296,4328|0);ia(c|0,ha(t|0,4,0,0)|0|0,4,0);break}case 65:case 97:{ia(n|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(n+0|0,4,0,0)|0|0,4,0);Qg(b,g+24|0,c,k,f,Z);break}case 104:case 66:case 98:{ia(o|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(o+0|0,4,0,0)|0|0,4,0);Sg(b,g+16|0,c,k,f,Z);break}case 106:{ia(B|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(B+0|0,4,0,0)|0|0,4,0);Zg(b,g+28|0,c,k,f,Z);break}case 109:{ia(C|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(C+0|0,4,0,0)|0|0,4,0);_g(b,g+16|0,c,k,f,Z);break}case 83:{ia(M|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(M+0|0,4,0,0)|0|0,4,0);ch(b,g,c,k,f,Z);break}case 114:{ia(H|0,ha(c|0,4,0,0)|0|0,4,0);ia(I|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(H+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(I+0|0,4,0,0)|0|0,4,0);Jg(G,b,l,k,e,f,g,4360,4404|0);ia(c|0,ha(G|0,4,0,0)|0|0,4,0);break}case 77:{ia(D|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(D+0|0,4,0,0)|0|0,4,0);$g(b,g+4|0,c,k,f,Z);break}case 121:{ia(W|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(W+0|0,4,0,0)|0|0,4,0);Ug(b,g+20|0,c,k,f,Z);break}case 89:{ia(X|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(X+0|0,4,0,0)|0|0,4,0);eh(b,g+20|0,c,k,f,Z);break}case 37:{ia(Y|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(Y+0|0,4,0,0)|0|0,4,0);fh(b,c,k,f,Z);break}case 73:{ia(A|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(A+0|0,4,0,0)|0|0,4,0);Yg(b,g+8|0,c,k,f,Z);break}case 116:case 110:{ia(E|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(E+0|0,4,0,0)|0|0,4,0);ah(b,c,k,f,Z);break}case 84:{ia(O|0,ha(c|0,4,0,0)|0|0,4,0);ia(P|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(O+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(P+0|0,4,0,0)|0|0,4,0);Jg(N,b,l,k,e,f,g,4432,4464|0);ia(c|0,ha(N|0,4,0,0)|0|0,4,0);break}case 119:{ia(Q|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(Q+0|0,4,0,0)|0|0,4,0);dh(b,g+24|0,c,k,f,Z);break}case 120:{m=ha((ha(b|0,4,0,0)|0|0)+20|0,4,0,0)|0|0;ia(R|0,ha(c|0,4,0,0)|0|0,4,0);ia(S|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(R+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(S+0|0,4,0,0)|0|0,4,0);Sb[(ja(m|0,63|0)|0)&63](a,b,l,k,e,f,g);i=j;return}case 101:case 100:{ia(s|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(s+0|0,4,0,0)|0|0,4,0);Wg(b,g+12|0,c,k,f,Z);break}case 99:{m=b+8|0;_=Xb[(ja(ha((ha(m|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](m)|0;ia(q|0,ha(c|0,4,0,0)|0|0,4,0);ia(r|0,ha(d|0,4,0,0)|0|0,4,0);m=ha(_>>0|0,1,0,0)|0|0;if(!(m&1)){ca=_+4|0;da=(m&255)>>>1;ea=_+4|0}else{m=ha(_+8|0,4,0,0)|0|0;ca=m;da=ha(_+4|0,4,0,0)|0|0;ea=m}ia(l+0|0,ha(q+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(r+0|0,4,0,0)|0|0,4,0);Jg(p,b,l,k,e,f,g,ea,ca+(da<<2)|0);ia(c|0,ha(p|0,4,0,0)|0|0,4,0);break}case 112:{ia(F|0,ha(d|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(F+0|0,4,0,0)|0|0,4,0);bh(b,g+8|0,c,k,f,Z);break}case 82:{ia(K|0,ha(c|0,4,0,0)|0|0,4,0);ia(L|0,ha(d|0,4,0,0)|0|0,4,0);ia(l+0|0,ha(K+0|0,4,0,0)|0|0,4,0);ia(k+0|0,ha(L+0|0,4,0,0)|0|0,4,0);Jg(J,b,l,k,e,f,g,4408,4428|0);ia(c|0,ha(J|0,4,0,0)|0|0,4,0);break}default:ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0)}while(0);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);i=j;return}function Wg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Sl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)>0&(h|0)<32){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function Xg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Sl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<24){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function Yg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Sl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)>0&(h|0)<13){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function Zg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Sl(c,g,e,f,3)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<366){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function _g(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Sl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<13){ia(b|0,h+-1|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function $g(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Sl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<60){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function ah(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;a=i;a:while(1){f=ha(b|0,4,0,0)|0|0;do if(f){g=ha(f+12|0,4,0,0)|0|0;if((g|0)==(ha(f+16|0,4,0,0)|0|0))h=Xb[(ja(ha((ha(f|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](f)|0;else h=ha(g|0,4,0,0)|0|0;if((h|0)==-1){ia(b|0,0|0,4,0);j=1;break}else{j=(ha(b|0,4,0,0)|0|0)==0;break}}else j=1;while(0);f=ha(c|0,4,0,0)|0|0;do if(f){g=ha(f+12|0,4,0,0)|0|0;if((g|0)==(ha(f+16|0,4,0,0)|0|0))k=Xb[(ja(ha((ha(f|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](f)|0;else k=ha(g|0,4,0,0)|0|0;if((k|0)!=-1)if(j){l=f;break}else{m=f;break a}else{ia(c|0,0|0,4,0);n=15;break}}else n=15;while(0);if((n|0)==15){n=0;if(j){m=0;break}else l=0}f=ha(b|0,4,0,0)|0|0;g=ha(f+12|0,4,0,0)|0|0;if((g|0)==(ha(f+16|0,4,0,0)|0|0))o=Xb[(ja(ha((ha(f|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](f)|0;else o=ha(g|0,4,0,0)|0|0;if(!(Rb[(ja(ha((ha(e|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](e,8192,o)|0)){m=l;break}g=ha(b|0,4,0,0)|0|0;f=g+12|0;p=ha(f|0,4,0,0)|0|0;if((p|0)==(ha(g+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(g|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](g)|0;continue}else{ia(f|0,p+4|0,4,0);continue}}l=ha(b|0,4,0,0)|0|0;do if(l){o=ha(l+12|0,4,0,0)|0|0;if((o|0)==(ha(l+16|0,4,0,0)|0|0))q=Xb[(ja(ha((ha(l|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](l)|0;else q=ha(o|0,4,0,0)|0|0;if((q|0)==-1){ia(b|0,0|0,4,0);r=1;break}else{r=(ha(b|0,4,0,0)|0|0)==0;break}}else r=1;while(0);do if(m){b=ha(m+12|0,4,0,0)|0|0;if((b|0)==(ha(m+16|0,4,0,0)|0|0))s=Xb[(ja(ha((ha(m|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](m)|0;else s=ha(b|0,4,0,0)|0|0;if((s|0)==-1){ia(c|0,0|0,4,0);n=37;break}if(r){i=a;return}}else n=37;while(0);if((n|0)==37?!r:0){i=a;return}ia(d|0,ha(d|0,4,0,0)|0|2|0,4,0);i=a;return}function bh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;h=g+4|0;j=g;k=a+8|0;a=Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+8|0,4,0,0)|0|0,63|0)|0)&63](k)|0;k=ha(a>>0|0,1,0,0)|0|0;if(!(k&1))l=(k&255)>>>1;else l=ha(a+4|0,4,0,0)|0|0;k=ha(a+12>>0|0,1,0,0)|0|0;if(!(k&1))m=(k&255)>>>1;else m=ha(a+16|0,4,0,0)|0|0;if((l|0)==(0-m|0)){ia(e|0,ha(e|0,4,0,0)|0|4|0,4,0);i=g;return}ia(j|0,ha(d|0,4,0,0)|0|0,4,0);ia(h+0|0,ha(j+0|0,4,0,0)|0|0,4,0);j=El(c,h,a,a+24|0,f,e,0)|0;e=j-a|0;if((j|0)==(a|0)?(ha(b|0,4,0,0)|0|0)==12:0){ia(b|0,0|0,4,0);i=g;return}if((e|0)!=12){i=g;return}e=ha(b|0,4,0,0)|0|0;if((e|0)>=12){i=g;return}ia(b|0,e+12|0,4,0);i=g;return}function ch(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Sl(c,g,e,f,2)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<61){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function dh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Sl(c,g,e,f,1)|0;f=ha(e|0,4,0,0)|0|0;if((f&4|0)==0&(h|0)<7){ia(b|0,h|0,4,0);i=a;return}else{ia(e|0,f|4|0,4,0);i=a;return}}function eh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=i;i=i+16|0;g=a+4|0;h=a;ia(h|0,ha(d|0,4,0,0)|0|0,4,0);ia(g+0|0,ha(h+0|0,4,0,0)|0|0,4,0);h=Sl(c,g,e,f,4)|0;if((ha(e|0,4,0,0)|0)&4){i=a;return}ia(b|0,h+-1900|0,4,0);i=a;return}function fh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;a=i;f=ha(b|0,4,0,0)|0|0;do if(f){g=ha(f+12|0,4,0,0)|0|0;if((g|0)==(ha(f+16|0,4,0,0)|0|0))h=Xb[(ja(ha((ha(f|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](f)|0;else h=ha(g|0,4,0,0)|0|0;if((h|0)==-1){ia(b|0,0|0,4,0);j=1;break}else{j=(ha(b|0,4,0,0)|0|0)==0;break}}else j=1;while(0);h=ha(c|0,4,0,0)|0|0;do if(h){f=ha(h+12|0,4,0,0)|0|0;if((f|0)==(ha(h+16|0,4,0,0)|0|0))k=Xb[(ja(ha((ha(h|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](h)|0;else k=ha(f|0,4,0,0)|0|0;if((k|0)!=-1)if(j){l=h;break}else{m=16;break}else{ia(c|0,0|0,4,0);m=14;break}}else m=14;while(0);if((m|0)==14)if(j)m=16;else l=0;if((m|0)==16){ia(d|0,ha(d|0,4,0,0)|0|6|0,4,0);i=a;return}j=ha(b|0,4,0,0)|0|0;h=ha(j+12|0,4,0,0)|0|0;if((h|0)==(ha(j+16|0,4,0,0)|0|0))n=Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0;else n=ha(h|0,4,0,0)|0|0;if((Rb[(ja(ha((ha(e|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,31|0)|0)&31](e,n,0)|0)<<24>>24!=37){ia(d|0,ha(d|0,4,0,0)|0|4|0,4,0);i=a;return}n=ha(b|0,4,0,0)|0|0;e=n+12|0;h=ha(e|0,4,0,0)|0|0;if((h|0)==(ha(n+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(n|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](n)|0;o=ha(b|0,4,0,0)|0|0}else{ia(e|0,h+4|0,4,0);o=n}do if(o){n=ha(o+12|0,4,0,0)|0|0;if((n|0)==(ha(o+16|0,4,0,0)|0|0))p=Xb[(ja(ha((ha(o|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](o)|0;else p=ha(n|0,4,0,0)|0|0;if((p|0)==-1){ia(b|0,0|0,4,0);q=1;break}else{q=(ha(b|0,4,0,0)|0|0)==0;break}}else q=1;while(0);do if(l){b=ha(l+12|0,4,0,0)|0|0;if((b|0)==(ha(l+16|0,4,0,0)|0|0))r=Xb[(ja(ha((ha(l|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](l)|0;else r=ha(b|0,4,0,0)|0|0;if((r|0)==-1){ia(c|0,0|0,4,0);m=38;break}if(q){i=a;return}}else m=38;while(0);if((m|0)==38?!q:0){i=a;return}ia(d|0,ha(d|0,4,0,0)|0|2|0,4,0);i=a;return}function gh(a){a=a|0;var b=0;b=i;ih(a+8|0);Gn(a);i=b;return}function hh(a){a=a|0;var b=0;b=i;ih(a+8|0);i=b;return}function ih(a){a=a|0;var b=0,c=0;b=i;c=ha(a|0,4,0,0)|0|0;if((c|0)==(qf()|0)){i=b;return}Db(ha(a|0,4,0,0)|0|0);i=b;return}function jh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;e=i;i=i+112|0;d=e+4|0;j=e;ia(j|0,d+100|0,4,0);kh(b+8|0,d,j,f,g,h);h=ha(j|0,4,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;if((d|0)==(h|0)){k=j;ia(a|0,k|0,4,0);i=e;return}else{l=d;m=j}while(1){j=ha(l>>0|0,1,0,0)|0|0;do if(m){d=m+24|0;c=ha(d|0,4,0,0)|0|0;if((c|0)==(ha(m+28|0,4,0,0)|0|0)){g=(ec[(ja(ha((ha(m|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,15|0)|0)&15](m,j&255)|0)==-1;n=g?0:m;break}else{ia(d|0,c+1|0,4,0);ia(c>>0|0,j|0,1,0);n=m;break}}else n=0;while(0);l=l+1|0;if((l|0)==(h|0)){k=n;break}else m=n}ia(a|0,k|0,4,0);i=e;return}function kh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;h=g;ia(h>>0|0,37|0,1,0);j=h+1|0;ia(j>>0|0,e|0,1,0);k=h+2|0;ia(k>>0|0,f|0,1,0);ia(h+3>>0|0,0|0,1,0);if(f<<24>>24){ia(j>>0|0,f|0,1,0);ia(k>>0|0,e|0,1,0)}ia(c|0,b+(Xa(b|0,(ha(c|0,4,0,0)|0|0)-b|0,h|0,d|0,ha(a|0,4,0,0)|0|0)|0)|0,4,0);i=g;return}function lh(a){a=a|0;var b=0;b=i;ih(a+8|0);Gn(a);i=b;return}function mh(a){a=a|0;var b=0;b=i;ih(a+8|0);i=b;return}function nh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0;e=i;i=i+416|0;d=e+8|0;j=e;ia(j|0,d+400|0,4,0);oh(b+8|0,d,j,f,g,h);h=ha(j|0,4,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;if((d|0)==(h|0)){k=j;ia(a|0,k|0,4,0);i=e;return}else{l=d;m=j}while(1){j=ha(l|0,4,0,0)|0|0;if(!m)n=0;else{d=m+24|0;c=ha(d|0,4,0,0)|0|0;if((c|0)==(ha(m+28|0,4,0,0)|0|0))o=ec[(ja(ha((ha(m|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,15|0)|0)&15](m,j)|0;else{ia(d|0,c+4|0,4,0);ia(c|0,j|0,4,0);o=j}n=(o|0)==-1?0:m}l=l+4|0;if((l|0)==(h|0)){k=n;break}else m=n}ia(a|0,k|0,4,0);i=e;return}function oh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+128|0;h=g+16|0;j=g+12|0;k=g;l=g+8|0;ia(j|0,h+100|0,4,0);kh(a,h,j,d,e,f);f=k;ia(f|0,0|0,4,0);ia(f+4|0,0|0,4,0);ia(l|0,h|0,4,0);h=(ha(c|0,4,0,0)|0|0)-b>>2;f=$a(ha(a|0,4,0,0)|0|0)|0;a=on(b,l,h,k)|0;if(f)$a(f|0)|0;if((a|0)==-1)ki(6088);else{ia(c|0,b+(a<<2)|0,4,0);i=g;return}}function ph(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function qh(a){a=a|0;return}function rh(a){a=a|0;return 127}function sh(a){a=a|0;return 127}function th(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function uh(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function vh(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function wh(a,b){a=a|0;b=b|0;b=i;cd(a,1,45);i=b;return}function xh(a){a=a|0;return 0}function yh(a,b){a=a|0;b=b|0;ia(a>>0|0,2|0,1,0);ia(a+1>>0|0,3|0,1,0);ia(a+2>>0|0,0|0,1,0);ia(a+3>>0|0,4|0,1,0);return}function zh(a,b){a=a|0;b=b|0;ia(a>>0|0,2|0,1,0);ia(a+1>>0|0,3|0,1,0);ia(a+2>>0|0,0|0,1,0);ia(a+3>>0|0,4|0,1,0);return}function Ah(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Bh(a){a=a|0;return}function Ch(a){a=a|0;return 127}function Dh(a){a=a|0;return 127}function Eh(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function Fh(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function Gh(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function Hh(a,b){a=a|0;b=b|0;b=i;cd(a,1,45);i=b;return}function Ih(a){a=a|0;return 0}function Jh(a,b){a=a|0;b=b|0;ia(a>>0|0,2|0,1,0);ia(a+1>>0|0,3|0,1,0);ia(a+2>>0|0,0|0,1,0);ia(a+3>>0|0,4|0,1,0);return}function Kh(a,b){a=a|0;b=b|0;ia(a>>0|0,2|0,1,0);ia(a+1>>0|0,3|0,1,0);ia(a+2>>0|0,0|0,1,0);ia(a+3>>0|0,4|0,1,0);return}function Lh(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Mh(a){a=a|0;return}function Nh(a){a=a|0;return 2147483647}function Oh(a){a=a|0;return 2147483647}function Ph(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function Qh(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function Rh(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function Sh(a,b){a=a|0;b=b|0;b=i;qd(a,1,45);i=b;return}function Th(a){a=a|0;return 0}function Uh(a,b){a=a|0;b=b|0;ia(a>>0|0,2|0,1,0);ia(a+1>>0|0,3|0,1,0);ia(a+2>>0|0,0|0,1,0);ia(a+3>>0|0,4|0,1,0);return}function Vh(a,b){a=a|0;b=b|0;ia(a>>0|0,2|0,1,0);ia(a+1>>0|0,3|0,1,0);ia(a+2>>0|0,0|0,1,0);ia(a+3>>0|0,4|0,1,0);return}function Wh(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Xh(a){a=a|0;return}function Yh(a){a=a|0;return 2147483647}function Zh(a){a=a|0;return 2147483647}function _h(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function $h(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function ai(a,b){a=a|0;b=b|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);return}function bi(a,b){a=a|0;b=b|0;b=i;qd(a,1,45);i=b;return}function ci(a){a=a|0;return 0}function di(a,b){a=a|0;b=b|0;ia(a>>0|0,2|0,1,0);ia(a+1>>0|0,3|0,1,0);ia(a+2>>0|0,0|0,1,0);ia(a+3>>0|0,4|0,1,0);return}function ei(a,b){a=a|0;b=b|0;ia(a>>0|0,2|0,1,0);ia(a+1>>0|0,3|0,1,0);ia(a+2>>0|0,0|0,1,0);ia(a+3>>0|0,4|0,1,0);return}function fi(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function gi(a){a=a|0;return}function hi(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;b=i;i=i+240|0;j=b;k=b+136|0;l=b+8|0;m=b+4|0;n=b+20|0;o=b+236|0;p=b+16|0;q=b+124|0;r=b+24|0;ia(l|0,k|0,4,0);s=l+4|0;ia(s|0,111|0,4,0);Dd(n,f);t=cj(n,5208)|0;ia(o>>0|0,0|0,1,0);ia(p|0,ha(d|0,4,0,0)|0|0,4,0);u=ha(f+4|0,4,0,0)|0|0;ia(j+0|0,ha(p+0|0,4,0,0)|0|0,4,0);do if(ji(c,j,e,n,u,g,o,t,l,m,k+100|0)|0){bc[(ja(ha((ha(t|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,7|0)|0)&7](t,4824,4834,q)|0;p=ha(m|0,4,0,0)|0|0;f=ha(l|0,4,0,0)|0|0;v=p-f|0;if((v|0)>98){w=Eo(v+2|0)|0;if(!w)zo();else{x=w;y=w}}else{x=0;y=r}if(!(ha(o>>0|0,1,0,0)|0))z=y;else{ia(y>>0|0,45|0,1,0);z=y+1|0}if(f>>>0<p>>>0){p=q+10|0;w=q;v=z;A=f;while(1){f=ha(A>>0|0,1,0,0)|0|0;B=q;while(1){if((ha(B>>0|0,1,0,0)|0|0)==f<<24>>24){C=B;break}B=B+1|0;if((B|0)==(p|0)){C=p;break}}ia(v>>0|0,ha(4824+(C-w)>>0|0,1,0,0)|0|0|0,1,0);A=A+1|0;B=v+1|0;if(A>>>0>=(ha(m|0,4,0,0)|0|0)>>>0){D=B;break}else v=B}}else D=z;ia(D>>0|0,0|0,1,0);ia(j|0,h|0,4,0);if((tn(r,4840,j)|0)==1){Fo(x);break}else ki(4848)}while(0);x=ha(c|0,4,0,0)|0|0;do if(x)if((ha(x+12|0,4,0,0)|0|0)==(ha(x+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0)==-1){ia(c|0,0|0,4,0);E=0;break}else{E=ha(c|0,4,0,0)|0|0;break}else E=x;else E=0;while(0);x=(E|0)==0;E=ha(d|0,4,0,0)|0|0;do if(E){if((ha(E+12|0,4,0,0)|0|0)!=(ha(E+16|0,4,0,0)|0|0))if(x)break;else{F=28;break}if((Xb[(ja(ha((ha(E|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](E)|0)!=-1)if(x)break;else{F=28;break}else{ia(d|0,0|0,4,0);F=26;break}}else F=26;while(0);if((F|0)==26?x:0)F=28;if((F|0)==28)ia(g|0,ha(g|0,4,0,0)|0|2|0,4,0);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);Mc(ha(n|0,4,0,0)|0|0)|0;n=ha(l|0,4,0,0)|0|0;ia(l|0,0|0,4,0);if(!n){i=b;return}Ub[(ja(ha(s|0,4,0,0)|0|0,127|0)|0)&127](n);i=b;return}function ii(a){a=a|0;return}function ji(a,b,c,d,e,f,g,h,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;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,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0;m=i;i=i+496|0;n=m+488|0;o=m+32|0;p=m+472|0;q=m;r=m+468|0;s=m+480|0;t=m+492|0;u=m+493|0;v=m+4|0;w=m+444|0;x=m+20|0;y=m+456|0;z=m+432|0;A=m+16|0;B=m+484|0;ia(n|0,l|0,4,0);ia(p|0,o|0,4,0);l=p+4|0;ia(l|0,111|0,4,0);ia(q|0,o|0,4,0);ia(r|0,o+400|0,4,0);ia(s|0,0|0,4,0);ia(v+0|0,0|0,4,0);ia(v+4|0,0|0,4,0);ia(v+8|0,0|0,4,0);ia(w+0|0,0|0,4,0);ia(w+4|0,0|0,4,0);ia(w+8|0,0|0,4,0);ia(x+0|0,0|0,4,0);ia(x+4|0,0|0,4,0);ia(x+8|0,0|0,4,0);ia(y+0|0,0|0,4,0);ia(y+4|0,0|0,4,0);ia(y+8|0,0|0,4,0);ia(z+0|0,0|0,4,0);ia(z+4|0,0|0,4,0);ia(z+8|0,0|0,4,0);mi(c,d,s,t,u,v,w,x,y,A);ia(k|0,ha(j|0,4,0,0)|0|0,4,0);d=h+8|0;h=y+1|0;c=y+4|0;C=y+8|0;D=x+1|0;E=x+4|0;F=x+8|0;G=(e&512|0)!=0;e=w+1|0;H=w+8|0;I=w+4|0;J=z+1|0;K=z+8|0;L=z+4|0;M=s+3|0;N=v+4|0;O=o;o=0;P=0;a:while(1){Q=ha(a|0,4,0,0)|0|0;do if(Q)if((ha(Q+12|0,4,0,0)|0|0)==(ha(Q+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(Q|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Q)|0)==-1){ia(a|0,0|0,4,0);R=0;break}else{R=ha(a|0,4,0,0)|0|0;break}else R=Q;else R=0;while(0);Q=(R|0)==0;S=ha(b|0,4,0,0)|0|0;do if(S){if((ha(S+12|0,4,0,0)|0|0)!=(ha(S+16|0,4,0,0)|0|0))if(Q){T=S;break}else{U=O;V=S;W=P;X=250;break a}if((Xb[(ja(ha((ha(S|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](S)|0)!=-1)if(Q){T=S;break}else{U=O;V=S;W=P;X=250;break a}else{ia(b|0,0|0,4,0);X=12;break}}else X=12;while(0);if((X|0)==12){X=0;if(Q){U=O;V=0;W=P;X=250;break}else T=0}b:do switch(ha(s+o>>0|0,1,0,0)|0|0){case 4:{S=ha(u>>0|0,1,0,0)|0|0;Y=T;Z=T;_=O;$=0;c:while(1){aa=ha(a|0,4,0,0)|0|0;do if(aa)if((ha(aa+12|0,4,0,0)|0|0)==(ha(aa+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(aa|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](aa)|0)==-1){ia(a|0,0|0,4,0);ba=0;break}else{ba=ha(a|0,4,0,0)|0|0;break}else ba=aa;else ba=0;while(0);aa=(ba|0)==0;do if(Z){if((ha(Z+12|0,4,0,0)|0|0)!=(ha(Z+16|0,4,0,0)|0|0))if(aa){ca=Y;da=Z;break}else{ea=Y;break c}if((Xb[(ja(ha((ha(Z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Z)|0)!=-1)if(aa^(Y|0)==0){ca=Y;da=Y;break}else{ea=Y;break c}else{ia(b|0,0|0,4,0);fa=0;X=175;break}}else{fa=Y;X=175}while(0);if((X|0)==175){X=0;if(aa){ea=fa;break}else{ca=fa;da=0}}ga=ha(a|0,4,0,0)|0|0;ka=ha(ga+12|0,4,0,0)|0|0;if((ka|0)==(ha(ga+16|0,4,0,0)|0|0))la=Xb[(ja(ha((ha(ga|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](ga)|0;else la=ha(ka>>0|0,1,0,1)|0|0;ka=la&255;if(ka<<24>>24>-1?((ha((ha(d|0,4,0,0)|0|0)+(la<<24>>24<<1)|0,2,0,0)|0)&2048)!=0:0){ga=ha(k|0,4,0,0)|0|0;if((ga|0)==(ha(n|0,4,0,0)|0|0)){Tl(j,k,n);ma=ha(k|0,4,0,0)|0|0}else ma=ga;ia(k|0,ma+1|0,4,0);ia(ma>>0|0,ka|0,1,0);na=_;oa=$+1|0}else{ga=ha(v>>0|0,1,0,0)|0|0;if(!(ga&1))pa=(ga&255)>>>1;else pa=ha(N|0,4,0,0)|0|0;if(!((pa|0)!=0&($|0)!=0&ka<<24>>24==S<<24>>24)){ea=ca;break}if((_|0)==(ha(r|0,4,0,0)|0|0)){Ul(p,q,r);qa=ha(q|0,4,0,0)|0|0}else qa=_;ka=qa+4|0;ia(q|0,ka|0,4,0);ia(qa|0,$|0,4,0);na=ka;oa=0}ka=ha(a|0,4,0,0)|0|0;ga=ka+12|0;ra=ha(ga|0,4,0,0)|0|0;if((ra|0)==(ha(ka+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(ka|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](ka)|0;Y=ca;Z=da;_=na;$=oa;continue}else{ia(ga|0,ra+1|0,4,0);Y=ca;Z=da;_=na;$=oa;continue}}if(($|0)!=0?(ha(p|0,4,0,0)|0|0)!=(_|0):0){if((_|0)==(ha(r|0,4,0,0)|0|0)){Ul(p,q,r);sa=ha(q|0,4,0,0)|0|0}else sa=_;Z=sa+4|0;ia(q|0,Z|0,4,0);ia(sa|0,$|0,4,0);ta=Z}else ta=_;Z=ha(A|0,4,0,0)|0|0;if((Z|0)>0){Y=ha(a|0,4,0,0)|0|0;do if(Y)if((ha(Y+12|0,4,0,0)|0|0)==(ha(Y+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(Y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Y)|0)==-1){ia(a|0,0|0,4,0);ua=0;break}else{ua=ha(a|0,4,0,0)|0|0;break}else ua=Y;else ua=0;while(0);Y=(ua|0)==0;do if(ea){if((ha(ea+12|0,4,0,0)|0|0)!=(ha(ea+16|0,4,0,0)|0|0))if(Y){va=ea;break}else{X=216;break a}if((Xb[(ja(ha((ha(ea|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](ea)|0)!=-1)if(Y^(ea|0)==0){va=ea;break}else{X=216;break a}else{ia(b|0,0|0,4,0);X=210;break}}else X=210;while(0);if((X|0)==210){X=0;if(Y){X=216;break a}else va=0}_=ha(a|0,4,0,0)|0|0;$=ha(_+12|0,4,0,0)|0|0;if(($|0)==(ha(_+16|0,4,0,0)|0|0))wa=Xb[(ja(ha((ha(_|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](_)|0;else wa=ha($>>0|0,1,0,1)|0|0;if((wa&255)<<24>>24!=(ha(t>>0|0,1,0,0)|0|0)){X=216;break a}$=ha(a|0,4,0,0)|0|0;_=$+12|0;S=ha(_|0,4,0,0)|0|0;if((S|0)==(ha($+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha($|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63]($)|0;xa=va;ya=va;za=Z}else{ia(_|0,S+1|0,4,0);xa=va;ya=va;za=Z}while(1){S=ha(a|0,4,0,0)|0|0;do if(S)if((ha(S+12|0,4,0,0)|0|0)==(ha(S+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(S|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](S)|0)==-1){ia(a|0,0|0,4,0);Aa=0;break}else{Aa=ha(a|0,4,0,0)|0|0;break}else Aa=S;else Aa=0;while(0);S=(Aa|0)==0;do if(ya){if((ha(ya+12|0,4,0,0)|0|0)!=(ha(ya+16|0,4,0,0)|0|0))if(S){Ba=xa;Ca=ya;break}else{X=237;break a}if((Xb[(ja(ha((ha(ya|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](ya)|0)!=-1)if(S^(xa|0)==0){Ba=xa;Ca=xa;break}else{X=237;break a}else{ia(b|0,0|0,4,0);Da=0;X=230;break}}else{Da=xa;X=230}while(0);if((X|0)==230){X=0;if(S){X=237;break a}else{Ba=Da;Ca=0}}aa=ha(a|0,4,0,0)|0|0;_=ha(aa+12|0,4,0,0)|0|0;if((_|0)==(ha(aa+16|0,4,0,0)|0|0))Ea=Xb[(ja(ha((ha(aa|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](aa)|0;else Ea=ha(_>>0|0,1,0,1)|0|0;if((Ea&255)<<24>>24<=-1){X=237;break a}if(!((ha((ha(d|0,4,0,0)|0|0)+(Ea<<24>>24<<1)|0,2,0,0)|0)&2048)){X=237;break a}if((ha(k|0,4,0,0)|0|0)==(ha(n|0,4,0,0)|0|0))Tl(j,k,n);_=ha(a|0,4,0,0)|0|0;aa=ha(_+12|0,4,0,0)|0|0;if((aa|0)==(ha(_+16|0,4,0,0)|0|0))Fa=Xb[(ja(ha((ha(_|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](_)|0;else Fa=ha(aa>>0|0,1,0,1)|0|0;aa=ha(k|0,4,0,0)|0|0;ia(k|0,aa+1|0,4,0);ia(aa>>0|0,Fa|0,1,0);za=za+-1|0;ia(A|0,za|0,4,0);aa=ha(a|0,4,0,0)|0|0;_=aa+12|0;$=ha(_|0,4,0,0)|0|0;if(($|0)==(ha(aa+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(aa|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](aa)|0;else ia(_|0,$+1|0,4,0);if((za|0)<=0){Ga=Ba;break}else{xa=Ba;ya=Ca}}}else Ga=ea;if((ha(k|0,4,0,0)|0|0)==(ha(j|0,4,0,0)|0|0)){X=248;break a}else{Ha=Ga;Ia=ta;Ja=P}break}case 1:{if((o|0)==3){U=O;V=T;W=P;X=250;break a}Z=ha(a|0,4,0,0)|0|0;Y=ha(Z+12|0,4,0,0)|0|0;if((Y|0)==(ha(Z+16|0,4,0,0)|0|0))Ka=Xb[(ja(ha((ha(Z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Z)|0;else Ka=ha(Y>>0|0,1,0,1)|0|0;if((Ka&255)<<24>>24<=-1){X=26;break a}if(!((ha((ha(d|0,4,0,0)|0|0)+(Ka<<24>>24<<1)|0,2,0,0)|0)&8192)){X=26;break a}Y=ha(a|0,4,0,0)|0|0;Z=Y+12|0;$=ha(Z|0,4,0,0)|0|0;if(($|0)==(ha(Y+16|0,4,0,0)|0|0))La=Xb[(ja(ha((ha(Y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](Y)|0;else{ia(Z|0,$+1|0,4,0);La=ha($>>0|0,1,0,1)|0|0}ld(z,La&255);X=27;break}case 0:{X=27;break}case 3:{$=ha(x>>0|0,1,0,0)|0|0;Z=($&1)==0;if(Z)Ma=($&255)>>>1;else Ma=ha(E|0,4,0,0)|0|0;Y=ha(y>>0|0,1,0,0)|0|0;_=(Y&1)==0;if(_)Na=(Y&255)>>>1;else Na=ha(c|0,4,0,0)|0|0;if((Ma|0)==(0-Na|0)){Ha=T;Ia=O;Ja=P}else{if(Z)Oa=($&255)>>>1;else Oa=ha(E|0,4,0,0)|0|0;if(Oa){if(_)Pa=(Y&255)>>>1;else Pa=ha(c|0,4,0,0)|0|0;if(Pa){_=ha(a|0,4,0,0)|0|0;aa=ha(_+12|0,4,0,0)|0|0;if((aa|0)==(ha(_+16|0,4,0,0)|0|0)){ra=Xb[(ja(ha((ha(_|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](_)|0;Qa=ra;Ra=ha(x>>0|0,1,0,0)|0|0}else{Qa=ha(aa>>0|0,1,0,1)|0|0;Ra=$}aa=ha(a|0,4,0,0)|0|0;ra=aa+12|0;_=ha(ra|0,4,0,0)|0|0;ga=(_|0)==(ha(aa+16|0,4,0,0)|0|0);if((Qa&255)<<24>>24==(ha(((Ra&1)==0?D:ha(F|0,4,0,0)|0|0)>>0|0,1,0,0)|0|0)){if(ga)Xb[(ja(ha((ha(aa|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](aa)|0;else ia(ra|0,_+1|0,4,0);ra=ha(x>>0|0,1,0,0)|0|0;if(!(ra&1))Sa=(ra&255)>>>1;else Sa=ha(E|0,4,0,0)|0|0;Ha=T;Ia=O;Ja=Sa>>>0>1?x:P;break b}if(ga)Ta=Xb[(ja(ha((ha(aa|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](aa)|0;else Ta=ha(_>>0|0,1,0,1)|0|0;if((Ta&255)<<24>>24!=(ha((((ha(y>>0|0,1,0,0)|0)&1)==0?h:ha(C|0,4,0,0)|0|0)>>0|0,1,0,0)|0|0)){X=113;break a}_=ha(a|0,4,0,0)|0|0;aa=_+12|0;ga=ha(aa|0,4,0,0)|0|0;if((ga|0)==(ha(_+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(_|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](_)|0;else ia(aa|0,ga+1|0,4,0);ia(g>>0|0,1|0,1,0);ga=ha(y>>0|0,1,0,0)|0|0;if(!(ga&1))Ua=(ga&255)>>>1;else Ua=ha(c|0,4,0,0)|0|0;Ha=T;Ia=O;Ja=Ua>>>0>1?y:P;break b}}if(Z)Va=($&255)>>>1;else Va=ha(E|0,4,0,0)|0|0;Z=ha(a|0,4,0,0)|0|0;ga=ha(Z+12|0,4,0,0)|0|0;aa=(ga|0)==(ha(Z+16|0,4,0,0)|0|0);if(!Va){if(aa){_=Xb[(ja(ha((ha(Z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Z)|0;Wa=_;Xa=ha(y>>0|0,1,0,0)|0|0}else{Wa=ha(ga>>0|0,1,0,1)|0|0;Xa=Y}if((Wa&255)<<24>>24!=(ha(((Xa&1)==0?h:ha(C|0,4,0,0)|0|0)>>0|0,1,0,0)|0|0)){Ha=T;Ia=O;Ja=P;break b}Y=ha(a|0,4,0,0)|0|0;_=Y+12|0;ra=ha(_|0,4,0,0)|0|0;if((ra|0)==(ha(Y+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(Y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](Y)|0;else ia(_|0,ra+1|0,4,0);ia(g>>0|0,1|0,1,0);ra=ha(y>>0|0,1,0,0)|0|0;if(!(ra&1))Ya=(ra&255)>>>1;else Ya=ha(c|0,4,0,0)|0|0;Ha=T;Ia=O;Ja=Ya>>>0>1?y:P;break b}if(aa){aa=Xb[(ja(ha((ha(Z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Z)|0;Za=aa;_a=ha(x>>0|0,1,0,0)|0|0}else{Za=ha(ga>>0|0,1,0,1)|0|0;_a=$}if((Za&255)<<24>>24!=(ha(((_a&1)==0?D:ha(F|0,4,0,0)|0|0)>>0|0,1,0,0)|0|0)){ia(g>>0|0,1|0,1,0);Ha=T;Ia=O;Ja=P;break b}$=ha(a|0,4,0,0)|0|0;ga=$+12|0;aa=ha(ga|0,4,0,0)|0|0;if((aa|0)==(ha($+16|0,4,0,0)|0|0))Xb[(ja(ha((ha($|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63]($)|0;else ia(ga|0,aa+1|0,4,0);aa=ha(x>>0|0,1,0,0)|0|0;if(!(aa&1))$a=(aa&255)>>>1;else $a=ha(E|0,4,0,0)|0|0;Ha=T;Ia=O;Ja=$a>>>0>1?x:P}break}case 2:{if(!((P|0)!=0|o>>>0<2)){if((o|0)==2)ab=(ha(M>>0|0,1,0,0)|0|0)!=0;else ab=0;if(!(G|ab)){Ha=T;Ia=O;Ja=0;break b}}aa=ha(w>>0|0,1,0,0)|0|0;ga=(aa&1)==0;$=ga?e:ha(H|0,4,0,0)|0|0;d:do if((o|0)!=0?(ha(s+(o+-1)>>0|0,1,0,1)|0|0)<2:0){Z=(aa&255)>>>1;ra=ha(H|0,4,0,0)|0|0;_=ha(I|0,4,0,0)|0|0;Y=$;while(1){if((Y|0)==((ga?e:ra)+(ga?Z:_)|0))break;ka=ha(Y>>0|0,1,0,0)|0|0;if(ka<<24>>24<=-1)break;if(!((ha((ha(d|0,4,0,0)|0|0)+(ka<<24>>24<<1)|0,2,0,0)|0)&8192))break;else Y=Y+1|0}_=Y-(ga?e:ra)|0;Z=ha(z>>0|0,1,0,0)|0|0;S=(Z&1)==0;if(S)bb=(Z&255)>>>1;else bb=ha(L|0,4,0,0)|0|0;e:do if(_>>>0<=bb>>>0){if(S){cb=J;db=(Z&255)>>>1;eb=z+(((Z&255)>>>1)-_)+1|0}else{ka=ha(K|0,4,0,0)|0|0;fb=ha(L|0,4,0,0)|0|0;cb=ka;db=fb;eb=ka+(fb-_)|0}fb=cb+db|0;if((eb|0)==(fb|0)){gb=T;hb=aa;ib=Y;jb=T;break d}else{kb=eb;lb=ga?e:ra}while(1){if((ha(kb>>0|0,1,0,0)|0|0)!=(ha(lb>>0|0,1,0,0)|0|0))break e;kb=kb+1|0;if((kb|0)==(fb|0)){gb=T;hb=aa;ib=Y;jb=T;break d}else lb=lb+1|0}}while(0);gb=T;hb=aa;ib=ga?e:ra;jb=T}else{gb=T;hb=aa;ib=$;jb=T}while(0);f:while(1){if(!(hb&1)){mb=e;nb=(hb&255)>>>1}else{mb=ha(H|0,4,0,0)|0|0;nb=ha(I|0,4,0,0)|0|0}if((ib|0)==(mb+nb|0)){ob=gb;break}$=ha(a|0,4,0,0)|0|0;do if($)if((ha($+12|0,4,0,0)|0|0)==(ha($+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha($|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63]($)|0)==-1){ia(a|0,0|0,4,0);pb=0;break}else{pb=ha(a|0,4,0,0)|0|0;break}else pb=$;else pb=0;while(0);$=(pb|0)==0;do if(jb){if((ha(jb+12|0,4,0,0)|0|0)!=(ha(jb+16|0,4,0,0)|0|0))if($){qb=gb;rb=jb;break}else{ob=gb;break f}if((Xb[(ja(ha((ha(jb|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](jb)|0)!=-1)if($^(gb|0)==0){qb=gb;rb=gb;break}else{ob=gb;break f}else{ia(b|0,0|0,4,0);sb=0;X=149;break}}else{sb=gb;X=149}while(0);if((X|0)==149){X=0;if($){ob=sb;break}else{qb=sb;rb=0}}ra=ha(a|0,4,0,0)|0|0;aa=ha(ra+12|0,4,0,0)|0|0;if((aa|0)==(ha(ra+16|0,4,0,0)|0|0))tb=Xb[(ja(ha((ha(ra|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](ra)|0;else tb=ha(aa>>0|0,1,0,1)|0|0;if((tb&255)<<24>>24!=(ha(ib>>0|0,1,0,0)|0|0)){ob=qb;break}aa=ha(a|0,4,0,0)|0|0;ra=aa+12|0;ga=ha(ra|0,4,0,0)|0|0;if((ga|0)==(ha(aa+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(aa|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](aa)|0;else ia(ra|0,ga+1|0,4,0);gb=qb;hb=ha(w>>0|0,1,0,0)|0|0;ib=ib+1|0;jb=rb}if(G){ga=ha(w>>0|0,1,0,0)|0|0;if(!(ga&1)){ub=e;vb=(ga&255)>>>1}else{ub=ha(H|0,4,0,0)|0|0;vb=ha(I|0,4,0,0)|0|0}if((ib|0)!=(ub+vb|0)){X=164;break a}else{Ha=ob;Ia=O;Ja=P}}else{Ha=ob;Ia=O;Ja=P}break}default:{Ha=T;Ia=O;Ja=P}}while(0);g:do if((X|0)==27){X=0;if((o|0)==3){U=O;V=T;W=P;X=250;break a}else{wb=T;xb=T}while(1){Q=ha(a|0,4,0,0)|0|0;do if(Q)if((ha(Q+12|0,4,0,0)|0|0)==(ha(Q+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(Q|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Q)|0)==-1){ia(a|0,0|0,4,0);yb=0;break}else{yb=ha(a|0,4,0,0)|0|0;break}else yb=Q;else yb=0;while(0);Q=(yb|0)==0;do if(xb){if((ha(xb+12|0,4,0,0)|0|0)!=(ha(xb+16|0,4,0,0)|0|0))if(Q){zb=wb;Ab=xb;break}else{Ha=wb;Ia=O;Ja=P;break g}if((Xb[(ja(ha((ha(xb|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](xb)|0)!=-1)if(Q^(wb|0)==0){zb=wb;Ab=wb;break}else{Ha=wb;Ia=O;Ja=P;break g}else{ia(b|0,0|0,4,0);Bb=0;X=38;break}}else{Bb=wb;X=38}while(0);if((X|0)==38){X=0;if(Q){Ha=Bb;Ia=O;Ja=P;break g}else{zb=Bb;Ab=0}}$=ha(a|0,4,0,0)|0|0;ga=ha($+12|0,4,0,0)|0|0;if((ga|0)==(ha($+16|0,4,0,0)|0|0))Cb=Xb[(ja(ha((ha($|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63]($)|0;else Cb=ha(ga>>0|0,1,0,1)|0|0;if((Cb&255)<<24>>24<=-1){Ha=zb;Ia=O;Ja=P;break g}if(!((ha((ha(d|0,4,0,0)|0|0)+(Cb<<24>>24<<1)|0,2,0,0)|0)&8192)){Ha=zb;Ia=O;Ja=P;break g}ga=ha(a|0,4,0,0)|0|0;$=ga+12|0;ra=ha($|0,4,0,0)|0|0;if((ra|0)==(ha(ga+16|0,4,0,0)|0|0))Db=Xb[(ja(ha((ha(ga|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](ga)|0;else{ia($|0,ra+1|0,4,0);Db=ha(ra>>0|0,1,0,1)|0|0}ld(z,Db&255);wb=zb;xb=Ab}}while(0);o=o+1|0;if(o>>>0>=4){U=Ia;V=Ha;W=Ja;X=250;break}else{O=Ia;P=Ja}}h:do if((X|0)==26){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Eb=0}else if((X|0)==113){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Eb=0}else if((X|0)==164){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Eb=0}else if((X|0)==216){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Eb=0}else if((X|0)==237){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Eb=0}else if((X|0)==248){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Eb=0}else if((X|0)==250){i:do if(W){Ja=W+1|0;P=W+8|0;Ia=W+4|0;O=V;Ha=V;o=1;j:while(1){Ab=ha(W>>0|0,1,0,0)|0|0;if(!(Ab&1))Fb=(Ab&255)>>>1;else Fb=ha(Ia|0,4,0,0)|0|0;if(o>>>0>=Fb>>>0)break i;Ab=ha(a|0,4,0,0)|0|0;do if(Ab)if((ha(Ab+12|0,4,0,0)|0|0)==(ha(Ab+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(Ab|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Ab)|0)==-1){ia(a|0,0|0,4,0);Gb=0;break}else{Gb=ha(a|0,4,0,0)|0|0;break}else Gb=Ab;else Gb=0;while(0);Ab=(Gb|0)==0;do if(Ha){if((ha(Ha+12|0,4,0,0)|0|0)!=(ha(Ha+16|0,4,0,0)|0|0))if(Ab){Hb=O;Ib=Ha;break}else break j;if((Xb[(ja(ha((ha(Ha|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Ha)|0)!=-1)if(Ab^(O|0)==0){Hb=O;Ib=O;break}else break j;else{ia(b|0,0|0,4,0);Jb=0;X=266;break}}else{Jb=O;X=266}while(0);if((X|0)==266){X=0;if(Ab)break;else{Hb=Jb;Ib=0}}Q=ha(a|0,4,0,0)|0|0;xb=ha(Q+12|0,4,0,0)|0|0;if((xb|0)==(ha(Q+16|0,4,0,0)|0|0))Kb=Xb[(ja(ha((ha(Q|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Q)|0;else Kb=ha(xb>>0|0,1,0,1)|0|0;if(!((ha(W>>0|0,1,0,0)|0)&1))Lb=Ja;else Lb=ha(P|0,4,0,0)|0|0;if((Kb&255)<<24>>24!=(ha(Lb+o>>0|0,1,0,0)|0|0))break;xb=o+1|0;Q=ha(a|0,4,0,0)|0|0;zb=Q+12|0;wb=ha(zb|0,4,0,0)|0|0;if((wb|0)==(ha(Q+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(Q|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](Q)|0;O=Hb;Ha=Ib;o=xb;continue}else{ia(zb|0,wb+1|0,4,0);O=Hb;Ha=Ib;o=xb;continue}}ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Eb=0;break h}while(0);o=ha(p|0,4,0,0)|0|0;if((o|0)!=(U|0)?(ia(B|0,0|0,4,0),ni(v,o,U,B),(ha(B|0,4,0,0)|0|0)!=0):0){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Eb=0}else Eb=1}while(0);ed(z);ed(y);ed(x);ed(w);ed(v);v=ha(p|0,4,0,0)|0|0;ia(p|0,0|0,4,0);if(!v){i=m;return Eb|0}Ub[(ja(ha(l|0,4,0,0)|0|0,127|0)|0)&127](v);i=m;return Eb|0}function ki(a){a=a|0;var b=0;b=Pa(8)|0;Pc(b,a);Cb(b|0,13824,100)}function li(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;b=i;i=i+144|0;j=b;k=b+28|0;l=b+8|0;m=b+24|0;n=b+20|0;o=b+128|0;p=b+16|0;ia(l|0,k|0,4,0);q=l+4|0;ia(q|0,111|0,4,0);Dd(n,f);r=cj(n,5208)|0;ia(o>>0|0,0|0,1,0);s=ha(d|0,4,0,0)|0|0;ia(p|0,s|0,4,0);t=ha(f+4|0,4,0,0)|0|0;ia(j+0|0,ha(p+0|0,4,0,0)|0|0,4,0);if(ji(c,j,e,n,t,g,o,r,l,m,k+100|0)|0){if(!((ha(h>>0|0,1,0,0)|0)&1)){ia(h+1>>0|0,0|0,1,0);ia(h>>0|0,0|0,1,0)}else{ia((ha(h+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(h+4|0,0|0,4,0)}if(ha(o>>0|0,1,0,0)|0)ld(h,ec[(ja(ha((ha(r|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](r,45)|0);o=ec[(ja(ha((ha(r|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](r,48)|0;r=ha(l|0,4,0,0)|0|0;k=ha(m|0,4,0,0)|0|0;m=k+-1|0;a:do if(r>>>0<m>>>0){t=r;while(1){e=t+1|0;if((ha(t>>0|0,1,0,0)|0|0)!=o<<24>>24){u=t;break a}if(e>>>0<m>>>0)t=e;else{u=e;break}}}else u=r;while(0);Vl(h,u,k)|0}k=ha(c|0,4,0,0)|0|0;do if(k)if((ha(k+12|0,4,0,0)|0|0)==(ha(k+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0)==-1){ia(c|0,0|0,4,0);v=0;break}else{v=ha(c|0,4,0,0)|0|0;break}else v=k;else v=0;while(0);k=(v|0)==0;do if(s){if((ha(s+12|0,4,0,0)|0|0)!=(ha(s+16|0,4,0,0)|0|0))if(k)break;else{w=23;break}if((Xb[(ja(ha((ha(s|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](s)|0)!=-1)if(k^(s|0)==0)break;else{w=23;break}else{ia(d|0,0|0,4,0);w=21;break}}else w=21;while(0);if((w|0)==21?k:0)w=23;if((w|0)==23)ia(g|0,ha(g|0,4,0,0)|0|2|0,4,0);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);Mc(ha(n|0,4,0,0)|0|0)|0;n=ha(l|0,4,0,0)|0|0;ia(l|0,0|0,4,0);if(!n){i=b;return}Ub[(ja(ha(q|0,4,0,0)|0|0,127|0)|0)&127](n);i=b;return}function mi(a,b,c,d,e,f,g,h,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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;l=i;i=i+112|0;m=l;n=l+40|0;o=l+76|0;p=l+4|0;q=l+88|0;r=l+100|0;s=l+28|0;t=l+64|0;u=l+52|0;v=l+16|0;if(a){a=cj(b,4648)|0;Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,63|0)|0)&63](m,a);w=ha(m|0,4,0,0)|0|0;ia(c>>0|0,w|0,1,0);ia(c+1>>0|0,w>>8|0,1,0);ia(c+2>>0|0,w>>16|0,1,0);ia(c+3>>0|0,w>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,63|0)|0)&63](n,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+1>>0|0,0|0,1,0);ia(j>>0|0,0|0,1,0)}else{ia((ha(j+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(j+4|0,0|0,4,0)}jd(j,0);ia(j+0|0,ha(n+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(n+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(n+8|0,4,0,0)|0|0,4,0);ia(n+0|0,0|0,4,0);ia(n+4|0,0|0,4,0);ia(n+8|0,0|0,4,0);ed(n);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](o,a);if(!((ha(h>>0|0,1,0,0)|0)&1)){ia(h+1>>0|0,0|0,1,0);ia(h>>0|0,0|0,1,0)}else{ia((ha(h+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(h+4|0,0|0,4,0)}jd(h,0);ia(h+0|0,ha(o+0|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(o+4|0,4,0,0)|0|0,4,0);ia(h+8|0,ha(o+8|0,4,0,0)|0|0,4,0);ia(o+0|0,0|0,4,0);ia(o+4|0,0|0,4,0);ia(o+8|0,0|0,4,0);ed(o);ia(d>>0|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,1,0);ia(e>>0|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](p,a);if(!((ha(f>>0|0,1,0,0)|0)&1)){ia(f+1>>0|0,0|0,1,0);ia(f>>0|0,0|0,1,0)}else{ia((ha(f+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(f+4|0,0|0,4,0)}jd(f,0);ia(f+0|0,ha(p+0|0,4,0,0)|0|0,4,0);ia(f+4|0,ha(p+4|0,4,0,0)|0|0,4,0);ia(f+8|0,ha(p+8|0,4,0,0)|0|0,4,0);ia(p+0|0,0|0,4,0);ia(p+4|0,0|0,4,0);ia(p+8|0,0|0,4,0);ed(p);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](q,a);if(!((ha(g>>0|0,1,0,0)|0)&1)){ia(g+1>>0|0,0|0,1,0);ia(g>>0|0,0|0,1,0)}else{ia((ha(g+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(g+4|0,0|0,4,0)}jd(g,0);ia(g+0|0,ha(q+0|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(q+4|0,4,0,0)|0|0,4,0);ia(g+8|0,ha(q+8|0,4,0,0)|0|0,4,0);ia(q+0|0,0|0,4,0);ia(q+4|0,0|0,4,0);ia(q+8|0,0|0,4,0);ed(q);x=Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](a)|0;ia(k|0,x|0,4,0);i=l;return}else{a=cj(b,4584)|0;Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,63|0)|0)&63](r,a);b=ha(r|0,4,0,0)|0|0;ia(c>>0|0,b|0,1,0);ia(c+1>>0|0,b>>8|0,1,0);ia(c+2>>0|0,b>>16|0,1,0);ia(c+3>>0|0,b>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,63|0)|0)&63](s,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+1>>0|0,0|0,1,0);ia(j>>0|0,0|0,1,0)}else{ia((ha(j+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(j+4|0,0|0,4,0)}jd(j,0);ia(j+0|0,ha(s+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(s+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(s+8|0,4,0,0)|0|0,4,0);ia(s+0|0,0|0,4,0);ia(s+4|0,0|0,4,0);ia(s+8|0,0|0,4,0);ed(s);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](t,a);if(!((ha(h>>0|0,1,0,0)|0)&1)){ia(h+1>>0|0,0|0,1,0);ia(h>>0|0,0|0,1,0)}else{ia((ha(h+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(h+4|0,0|0,4,0)}jd(h,0);ia(h+0|0,ha(t+0|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(t+4|0,4,0,0)|0|0,4,0);ia(h+8|0,ha(t+8|0,4,0,0)|0|0,4,0);ia(t+0|0,0|0,4,0);ia(t+4|0,0|0,4,0);ia(t+8|0,0|0,4,0);ed(t);ia(d>>0|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,1,0);ia(e>>0|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](u,a);if(!((ha(f>>0|0,1,0,0)|0)&1)){ia(f+1>>0|0,0|0,1,0);ia(f>>0|0,0|0,1,0)}else{ia((ha(f+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(f+4|0,0|0,4,0)}jd(f,0);ia(f+0|0,ha(u+0|0,4,0,0)|0|0,4,0);ia(f+4|0,ha(u+4|0,4,0,0)|0|0,4,0);ia(f+8|0,ha(u+8|0,4,0,0)|0|0,4,0);ia(u+0|0,0|0,4,0);ia(u+4|0,0|0,4,0);ia(u+8|0,0|0,4,0);ed(u);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](v,a);if(!((ha(g>>0|0,1,0,0)|0)&1)){ia(g+1>>0|0,0|0,1,0);ia(g>>0|0,0|0,1,0)}else{ia((ha(g+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(g+4|0,0|0,4,0)}jd(g,0);ia(g+0|0,ha(v+0|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(v+4|0,4,0,0)|0|0,4,0);ia(g+8|0,ha(v+8|0,4,0,0)|0|0,4,0);ia(v+0|0,0|0,4,0);ia(v+4|0,0|0,4,0);ia(v+8|0,0|0,4,0);ed(v);x=Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](a)|0;ia(k|0,x|0,4,0);i=l;return}}function ni(a,b,c,d){a=a|0;b=b|0;c=c|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;e=i;f=ha(a>>0|0,1,0,0)|0|0;if(!(f&1))g=(f&255)>>>1;else g=ha(a+4|0,4,0,0)|0|0;if(!g){i=e;return}if((b|0)!=(c|0)?(g=c+-4|0,g>>>0>b>>>0):0){h=b;j=g;do{g=ha(h|0,4,0,0)|0|0;ia(h|0,ha(j|0,4,0,0)|0|0,4,0);ia(j|0,g|0,4,0);h=h+4|0;j=j+-4|0}while(h>>>0<j>>>0);k=ha(a>>0|0,1,0,0)|0|0}else k=f;if(!(k&1)){l=a+1|0;m=(k&255)>>>1}else{l=ha(a+8|0,4,0,0)|0|0;m=ha(a+4|0,4,0,0)|0|0}a=c+-4|0;c=ha(l>>0|0,1,0,0)|0|0;k=c<<24>>24<1|c<<24>>24==127;a:do if(a>>>0>b>>>0){f=l+m|0;j=c;h=l;g=b;n=k;while(1){if(!n?(j<<24>>24|0)!=(ha(g|0,4,0,0)|0|0):0)break;h=(f-h|0)>1?h+1|0:h;g=g+4|0;o=ha(h>>0|0,1,0,0)|0|0;p=o<<24>>24<1|o<<24>>24==127;if(g>>>0>=a>>>0){q=o;r=p;break a}else{j=o;n=p}}ia(d|0,4|0,4,0);i=e;return}else{q=c;r=k}while(0);if(r){i=e;return}if(((ha(a|0,4,0,0)|0|0)+-1|0)>>>0<q<<24>>24>>>0){i=e;return}ia(d|0,4|0,4,0);i=e;return}function oi(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function pi(a){a=a|0;return}function qi(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;b=i;i=i+576|0;j=b;k=b+64|0;l=b+56|0;m=b+48|0;n=b+468|0;o=b+572|0;p=b+464|0;q=b+8|0;r=b+472|0;ia(l|0,k|0,4,0);s=l+4|0;ia(s|0,111|0,4,0);Dd(n,f);t=cj(n,5200)|0;ia(o>>0|0,0|0,1,0);ia(p|0,ha(d|0,4,0,0)|0|0,4,0);u=ha(f+4|0,4,0,0)|0|0;ia(j+0|0,ha(p+0|0,4,0,0)|0|0,4,0);do if(ri(c,j,e,n,u,g,o,t,l,m,k+400|0)|0){bc[(ja(ha((ha(t|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,7|0)|0)&7](t,4904,4914,q)|0;p=ha(m|0,4,0,0)|0|0;f=ha(l|0,4,0,0)|0|0;v=p-f|0;if((v|0)>392){w=Eo((v>>2)+2|0)|0;if(!w)zo();else{x=w;y=w}}else{x=0;y=r}if(!(ha(o>>0|0,1,0,0)|0))z=y;else{ia(y>>0|0,45|0,1,0);z=y+1|0}if(f>>>0<p>>>0){p=q+40|0;w=q;v=z;A=f;while(1){f=ha(A|0,4,0,0)|0|0;B=q;while(1){if((ha(B|0,4,0,0)|0|0)==(f|0)){C=B;break}B=B+4|0;if((B|0)==(p|0)){C=p;break}}ia(v>>0|0,ha(4904+(C-w>>2)>>0|0,1,0,0)|0|0|0,1,0);A=A+4|0;B=v+1|0;if(A>>>0>=(ha(m|0,4,0,0)|0|0)>>>0){D=B;break}else v=B}}else D=z;ia(D>>0|0,0|0,1,0);ia(j|0,h|0,4,0);if((tn(r,4840,j)|0)==1){Fo(x);break}else ki(4848)}while(0);x=ha(c|0,4,0,0)|0|0;do if(x){j=ha(x+12|0,4,0,0)|0|0;if((j|0)==(ha(x+16|0,4,0,0)|0|0))E=Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0;else E=ha(j|0,4,0,0)|0|0;if((E|0)==-1){ia(c|0,0|0,4,0);F=1;break}else{F=(ha(c|0,4,0,0)|0|0)==0;break}}else F=1;while(0);E=ha(d|0,4,0,0)|0|0;do if(E){x=ha(E+12|0,4,0,0)|0|0;if((x|0)==(ha(E+16|0,4,0,0)|0|0))G=Xb[(ja(ha((ha(E|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](E)|0;else G=ha(x|0,4,0,0)|0|0;if((G|0)!=-1)if(F)break;else{H=31;break}else{ia(d|0,0|0,4,0);H=29;break}}else H=29;while(0);if((H|0)==29?F:0)H=31;if((H|0)==31)ia(g|0,ha(g|0,4,0,0)|0|2|0,4,0);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);Mc(ha(n|0,4,0,0)|0|0)|0;n=ha(l|0,4,0,0)|0|0;ia(l|0,0|0,4,0);if(!n){i=b;return}Ub[(ja(ha(s|0,4,0,0)|0|0,127|0)|0)&127](n);i=b;return}
function ri(a,b,c,d,e,f,g,h,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;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,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Sb=0,Tb=0,Vb=0,Wb=0,Yb=0,Zb=0;m=i;i=i+512|0;n=m+492|0;o=m+88|0;p=m+48|0;q=m+44|0;r=m+36|0;s=m+84|0;t=m+488|0;u=m+496|0;v=m+56|0;w=m+24|0;x=m+12|0;y=m+68|0;z=m;A=m+40|0;B=m+80|0;ia(n|0,l|0,4,0);ia(p|0,o|0,4,0);l=p+4|0;ia(l|0,111|0,4,0);ia(q|0,o|0,4,0);ia(r|0,o+400|0,4,0);ia(s|0,0|0,4,0);ia(v+0|0,0|0,4,0);ia(v+4|0,0|0,4,0);ia(v+8|0,0|0,4,0);ia(w+0|0,0|0,4,0);ia(w+4|0,0|0,4,0);ia(w+8|0,0|0,4,0);ia(x+0|0,0|0,4,0);ia(x+4|0,0|0,4,0);ia(x+8|0,0|0,4,0);ia(y+0|0,0|0,4,0);ia(y+4|0,0|0,4,0);ia(y+8|0,0|0,4,0);ia(z+0|0,0|0,4,0);ia(z+4|0,0|0,4,0);ia(z+8|0,0|0,4,0);ti(c,d,s,t,u,v,w,x,y,A);ia(k|0,ha(j|0,4,0,0)|0|0,4,0);d=y+4|0;c=y+8|0;C=x+4|0;D=x+8|0;E=(e&512|0)!=0;e=w+4|0;F=w+8|0;G=z+4|0;H=z+8|0;I=s+3|0;J=v+4|0;K=o;o=0;L=0;a:while(1){M=ha(a|0,4,0,0)|0|0;do if(M){N=ha(M+12|0,4,0,0)|0|0;if((N|0)==(ha(M+16|0,4,0,0)|0|0))O=Xb[(ja(ha((ha(M|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](M)|0;else O=ha(N|0,4,0,0)|0|0;if((O|0)==-1){ia(a|0,0|0,4,0);P=1;break}else{P=(ha(a|0,4,0,0)|0|0)==0;break}}else P=1;while(0);M=ha(b|0,4,0,0)|0|0;do if(M){N=ha(M+12|0,4,0,0)|0|0;if((N|0)==(ha(M+16|0,4,0,0)|0|0))Q=Xb[(ja(ha((ha(M|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](M)|0;else Q=ha(N|0,4,0,0)|0|0;if((Q|0)!=-1)if(P){R=M;break}else{S=K;T=M;U=L;V=267;break a}else{ia(b|0,0|0,4,0);V=15;break}}else V=15;while(0);if((V|0)==15){V=0;if(P){S=K;T=0;U=L;V=267;break}else R=0}b:do switch(ha(s+o>>0|0,1,0,0)|0|0){case 0:{V=29;break}case 4:{M=ha(u|0,4,0,0)|0|0;N=R;W=R;X=K;Y=0;c:while(1){Z=ha(a|0,4,0,0)|0|0;do if(Z){_=ha(Z+12|0,4,0,0)|0|0;if((_|0)==(ha(Z+16|0,4,0,0)|0|0))$=Xb[(ja(ha((ha(Z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Z)|0;else $=ha(_|0,4,0,0)|0|0;if(($|0)==-1){ia(a|0,0|0,4,0);aa=1;break}else{aa=(ha(a|0,4,0,0)|0|0)==0;break}}else aa=1;while(0);do if(W){Z=ha(W+12|0,4,0,0)|0|0;if((Z|0)==(ha(W+16|0,4,0,0)|0|0))ba=Xb[(ja(ha((ha(W|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](W)|0;else ba=ha(Z|0,4,0,0)|0|0;if((ba|0)!=-1)if(aa^(N|0)==0){ca=N;da=N;break}else{ea=N;break c}else{ia(b|0,0|0,4,0);fa=0;V=188;break}}else{fa=N;V=188}while(0);if((V|0)==188){V=0;if(aa){ea=fa;break}else{ca=fa;da=0}}Z=ha(a|0,4,0,0)|0|0;_=ha(Z+12|0,4,0,0)|0|0;if((_|0)==(ha(Z+16|0,4,0,0)|0|0))ga=Xb[(ja(ha((ha(Z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Z)|0;else ga=ha(_|0,4,0,0)|0|0;if(Rb[(ja(ha((ha(h|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](h,2048,ga)|0){_=ha(k|0,4,0,0)|0|0;if((_|0)==(ha(n|0,4,0,0)|0|0)){Wl(j,k,n);ka=ha(k|0,4,0,0)|0|0}else ka=_;ia(k|0,ka+4|0,4,0);ia(ka|0,ga|0,4,0);la=X;ma=Y+1|0}else{_=ha(v>>0|0,1,0,0)|0|0;if(!(_&1))na=(_&255)>>>1;else na=ha(J|0,4,0,0)|0|0;if(!((na|0)!=0&(Y|0)!=0&(ga|0)==(M|0))){ea=ca;break}if((X|0)==(ha(r|0,4,0,0)|0|0)){Ul(p,q,r);oa=ha(q|0,4,0,0)|0|0}else oa=X;_=oa+4|0;ia(q|0,_|0,4,0);ia(oa|0,Y|0,4,0);la=_;ma=0}_=ha(a|0,4,0,0)|0|0;Z=_+12|0;pa=ha(Z|0,4,0,0)|0|0;if((pa|0)==(ha(_+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(_|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](_)|0;N=ca;W=da;X=la;Y=ma;continue}else{ia(Z|0,pa+4|0,4,0);N=ca;W=da;X=la;Y=ma;continue}}if((Y|0)!=0?(ha(p|0,4,0,0)|0|0)!=(X|0):0){if((X|0)==(ha(r|0,4,0,0)|0|0)){Ul(p,q,r);qa=ha(q|0,4,0,0)|0|0}else qa=X;W=qa+4|0;ia(q|0,W|0,4,0);ia(qa|0,Y|0,4,0);ra=W}else ra=X;W=ha(A|0,4,0,0)|0|0;if((W|0)>0){N=ha(a|0,4,0,0)|0|0;do if(N){M=ha(N+12|0,4,0,0)|0|0;if((M|0)==(ha(N+16|0,4,0,0)|0|0))sa=Xb[(ja(ha((ha(N|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](N)|0;else sa=ha(M|0,4,0,0)|0|0;if((sa|0)==-1){ia(a|0,0|0,4,0);ta=1;break}else{ta=(ha(a|0,4,0,0)|0|0)==0;break}}else ta=1;while(0);do if(ea){N=ha(ea+12|0,4,0,0)|0|0;if((N|0)==(ha(ea+16|0,4,0,0)|0|0))ua=Xb[(ja(ha((ha(ea|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](ea)|0;else ua=ha(N|0,4,0,0)|0|0;if((ua|0)!=-1)if(ta){va=ea;break}else{V=231;break a}else{ia(b|0,0|0,4,0);V=225;break}}else V=225;while(0);if((V|0)==225){V=0;if(ta){V=231;break a}else va=0}N=ha(a|0,4,0,0)|0|0;X=ha(N+12|0,4,0,0)|0|0;if((X|0)==(ha(N+16|0,4,0,0)|0|0))wa=Xb[(ja(ha((ha(N|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](N)|0;else wa=ha(X|0,4,0,0)|0|0;if((wa|0)!=(ha(t|0,4,0,0)|0|0)){V=231;break a}X=ha(a|0,4,0,0)|0|0;N=X+12|0;Y=ha(N|0,4,0,0)|0|0;if((Y|0)==(ha(X+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(X|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](X)|0;xa=va;ya=va;za=W}else{ia(N|0,Y+4|0,4,0);xa=va;ya=va;za=W}while(1){Y=ha(a|0,4,0,0)|0|0;do if(Y){N=ha(Y+12|0,4,0,0)|0|0;if((N|0)==(ha(Y+16|0,4,0,0)|0|0))Aa=Xb[(ja(ha((ha(Y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Y)|0;else Aa=ha(N|0,4,0,0)|0|0;if((Aa|0)==-1){ia(a|0,0|0,4,0);Ba=1;break}else{Ba=(ha(a|0,4,0,0)|0|0)==0;break}}else Ba=1;while(0);do if(ya){Y=ha(ya+12|0,4,0,0)|0|0;if((Y|0)==(ha(ya+16|0,4,0,0)|0|0))Ca=Xb[(ja(ha((ha(ya|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](ya)|0;else Ca=ha(Y|0,4,0,0)|0|0;if((Ca|0)!=-1)if(Ba^(xa|0)==0){Da=xa;Ea=xa;break}else{V=254;break a}else{ia(b|0,0|0,4,0);Fa=0;V=248;break}}else{Fa=xa;V=248}while(0);if((V|0)==248){V=0;if(Ba){V=254;break a}else{Da=Fa;Ea=0}}Y=ha(a|0,4,0,0)|0|0;N=ha(Y+12|0,4,0,0)|0|0;if((N|0)==(ha(Y+16|0,4,0,0)|0|0))Ga=Xb[(ja(ha((ha(Y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Y)|0;else Ga=ha(N|0,4,0,0)|0|0;if(!(Rb[(ja(ha((ha(h|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](h,2048,Ga)|0)){V=254;break a}if((ha(k|0,4,0,0)|0|0)==(ha(n|0,4,0,0)|0|0))Wl(j,k,n);N=ha(a|0,4,0,0)|0|0;Y=ha(N+12|0,4,0,0)|0|0;if((Y|0)==(ha(N+16|0,4,0,0)|0|0))Ha=Xb[(ja(ha((ha(N|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](N)|0;else Ha=ha(Y|0,4,0,0)|0|0;Y=ha(k|0,4,0,0)|0|0;ia(k|0,Y+4|0,4,0);ia(Y|0,Ha|0,4,0);za=za+-1|0;ia(A|0,za|0,4,0);Y=ha(a|0,4,0,0)|0|0;N=Y+12|0;X=ha(N|0,4,0,0)|0|0;if((X|0)==(ha(Y+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(Y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](Y)|0;else ia(N|0,X+4|0,4,0);if((za|0)<=0){Ia=Da;break}else{xa=Da;ya=Ea}}}else Ia=ea;if((ha(k|0,4,0,0)|0|0)==(ha(j|0,4,0,0)|0|0)){V=265;break a}else{Ja=Ia;Ka=ra;La=L}break}case 1:{if((o|0)==3){S=K;T=R;U=L;V=267;break a}W=ha(a|0,4,0,0)|0|0;X=ha(W+12|0,4,0,0)|0|0;if((X|0)==(ha(W+16|0,4,0,0)|0|0))Ma=Xb[(ja(ha((ha(W|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](W)|0;else Ma=ha(X|0,4,0,0)|0|0;if(!(Rb[(ja(ha((ha(h|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](h,8192,Ma)|0)){V=28;break a}X=ha(a|0,4,0,0)|0|0;W=X+12|0;N=ha(W|0,4,0,0)|0|0;if((N|0)==(ha(X+16|0,4,0,0)|0|0))Na=Xb[(ja(ha((ha(X|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](X)|0;else{ia(W|0,N+4|0,4,0);Na=ha(N|0,4,0,0)|0|0}wd(z,Na);V=29;break}case 3:{N=ha(x>>0|0,1,0,0)|0|0;W=(N&1)==0;if(W)Oa=(N&255)>>>1;else Oa=ha(C|0,4,0,0)|0|0;X=ha(y>>0|0,1,0,0)|0|0;Y=(X&1)==0;if(Y)Pa=(X&255)>>>1;else Pa=ha(d|0,4,0,0)|0|0;if((Oa|0)==(0-Pa|0)){Ja=R;Ka=K;La=L}else{if(W)Qa=(N&255)>>>1;else Qa=ha(C|0,4,0,0)|0|0;if(Qa){if(Y)Ra=(X&255)>>>1;else Ra=ha(d|0,4,0,0)|0|0;if(Ra){Y=ha(a|0,4,0,0)|0|0;M=ha(Y+12|0,4,0,0)|0|0;if((M|0)==(ha(Y+16|0,4,0,0)|0|0)){pa=Xb[(ja(ha((ha(Y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Y)|0;Sa=pa;Ta=ha(x>>0|0,1,0,0)|0|0}else{Sa=ha(M|0,4,0,0)|0|0;Ta=N}M=ha(a|0,4,0,0)|0|0;pa=M+12|0;Y=ha(pa|0,4,0,0)|0|0;Z=(Y|0)==(ha(M+16|0,4,0,0)|0|0);if((Sa|0)==(ha(((Ta&1)==0?C:ha(D|0,4,0,0)|0|0)|0,4,0,0)|0|0)){if(Z)Xb[(ja(ha((ha(M|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](M)|0;else ia(pa|0,Y+4|0,4,0);pa=ha(x>>0|0,1,0,0)|0|0;if(!(pa&1))Ua=(pa&255)>>>1;else Ua=ha(C|0,4,0,0)|0|0;Ja=R;Ka=K;La=Ua>>>0>1?x:L;break b}if(Z)Va=Xb[(ja(ha((ha(M|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](M)|0;else Va=ha(Y|0,4,0,0)|0|0;if((Va|0)!=(ha((((ha(y>>0|0,1,0,0)|0)&1)==0?d:ha(c|0,4,0,0)|0|0)|0,4,0,0)|0|0)){V=117;break a}Y=ha(a|0,4,0,0)|0|0;M=Y+12|0;Z=ha(M|0,4,0,0)|0|0;if((Z|0)==(ha(Y+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(Y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](Y)|0;else ia(M|0,Z+4|0,4,0);ia(g>>0|0,1|0,1,0);Z=ha(y>>0|0,1,0,0)|0|0;if(!(Z&1))Wa=(Z&255)>>>1;else Wa=ha(d|0,4,0,0)|0|0;Ja=R;Ka=K;La=Wa>>>0>1?y:L;break b}}if(W)Xa=(N&255)>>>1;else Xa=ha(C|0,4,0,0)|0|0;W=ha(a|0,4,0,0)|0|0;Z=ha(W+12|0,4,0,0)|0|0;M=(Z|0)==(ha(W+16|0,4,0,0)|0|0);if(!Xa){if(M){Y=Xb[(ja(ha((ha(W|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](W)|0;Ya=Y;Za=ha(y>>0|0,1,0,0)|0|0}else{Ya=ha(Z|0,4,0,0)|0|0;Za=X}if((Ya|0)!=(ha(((Za&1)==0?d:ha(c|0,4,0,0)|0|0)|0,4,0,0)|0|0)){Ja=R;Ka=K;La=L;break b}X=ha(a|0,4,0,0)|0|0;Y=X+12|0;pa=ha(Y|0,4,0,0)|0|0;if((pa|0)==(ha(X+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(X|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](X)|0;else ia(Y|0,pa+4|0,4,0);ia(g>>0|0,1|0,1,0);pa=ha(y>>0|0,1,0,0)|0|0;if(!(pa&1))_a=(pa&255)>>>1;else _a=ha(d|0,4,0,0)|0|0;Ja=R;Ka=K;La=_a>>>0>1?y:L;break b}if(M){M=Xb[(ja(ha((ha(W|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](W)|0;$a=M;ab=ha(x>>0|0,1,0,0)|0|0}else{$a=ha(Z|0,4,0,0)|0|0;ab=N}if(($a|0)!=(ha(((ab&1)==0?C:ha(D|0,4,0,0)|0|0)|0,4,0,0)|0|0)){ia(g>>0|0,1|0,1,0);Ja=R;Ka=K;La=L;break b}N=ha(a|0,4,0,0)|0|0;Z=N+12|0;M=ha(Z|0,4,0,0)|0|0;if((M|0)==(ha(N+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(N|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](N)|0;else ia(Z|0,M+4|0,4,0);M=ha(x>>0|0,1,0,0)|0|0;if(!(M&1))bb=(M&255)>>>1;else bb=ha(C|0,4,0,0)|0|0;Ja=R;Ka=K;La=bb>>>0>1?x:L}break}case 2:{if(!((L|0)!=0|o>>>0<2)){if((o|0)==2)cb=(ha(I>>0|0,1,0,0)|0|0)!=0;else cb=0;if(!(E|cb)){Ja=R;Ka=K;La=0;break b}}M=ha(w>>0|0,1,0,0)|0|0;Z=(M&1)==0?e:ha(F|0,4,0,0)|0|0;d:do if((o|0)!=0?(ha(s+(o+-1)>>0|0,1,0,1)|0|0)<2:0){N=M;W=Z;while(1){if(!(N&1)){db=e;eb=(N&255)>>>1}else{db=ha(F|0,4,0,0)|0|0;eb=ha(e|0,4,0,0)|0|0}if((W|0)==(db+(eb<<2)|0)){fb=N;break}if(!(Rb[(ja(ha((ha(h|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](h,8192,ha(W|0,4,0,0)|0|0)|0)){V=129;break}N=ha(w>>0|0,1,0,0)|0|0;W=W+4|0}if((V|0)==129){V=0;fb=ha(w>>0|0,1,0,0)|0|0}N=(fb&1)==0;pa=W-(N?e:ha(F|0,4,0,0)|0|0)>>2;Y=ha(z>>0|0,1,0,0)|0|0;X=(Y&1)==0;if(X)gb=(Y&255)>>>1;else gb=ha(G|0,4,0,0)|0|0;e:do if(pa>>>0<=gb>>>0){if(X){hb=G;ib=(Y&255)>>>1;jb=G+(((Y&255)>>>1)-pa<<2)|0}else{_=ha(H|0,4,0,0)|0|0;kb=ha(G|0,4,0,0)|0|0;hb=_;ib=kb;jb=_+(kb-pa<<2)|0}kb=hb+(ib<<2)|0;if((jb|0)==(kb|0)){lb=R;mb=fb;nb=W;ob=R;break d}else{pb=jb;qb=N?e:ha(F|0,4,0,0)|0|0}while(1){if((ha(pb|0,4,0,0)|0|0)!=(ha(qb|0,4,0,0)|0|0))break e;pb=pb+4|0;if((pb|0)==(kb|0)){lb=R;mb=fb;nb=W;ob=R;break d}else qb=qb+4|0}}while(0);lb=R;mb=fb;nb=N?e:ha(F|0,4,0,0)|0|0;ob=R}else{lb=R;mb=M;nb=Z;ob=R}while(0);f:while(1){if(!(mb&1)){rb=e;sb=(mb&255)>>>1}else{rb=ha(F|0,4,0,0)|0|0;sb=ha(e|0,4,0,0)|0|0}if((nb|0)==(rb+(sb<<2)|0)){tb=lb;break}Z=ha(a|0,4,0,0)|0|0;do if(Z){M=ha(Z+12|0,4,0,0)|0|0;if((M|0)==(ha(Z+16|0,4,0,0)|0|0))ub=Xb[(ja(ha((ha(Z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Z)|0;else ub=ha(M|0,4,0,0)|0|0;if((ub|0)==-1){ia(a|0,0|0,4,0);vb=1;break}else{vb=(ha(a|0,4,0,0)|0|0)==0;break}}else vb=1;while(0);do if(ob){Z=ha(ob+12|0,4,0,0)|0|0;if((Z|0)==(ha(ob+16|0,4,0,0)|0|0))wb=Xb[(ja(ha((ha(ob|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](ob)|0;else wb=ha(Z|0,4,0,0)|0|0;if((wb|0)!=-1)if(vb^(lb|0)==0){xb=lb;yb=lb;break}else{tb=lb;break f}else{ia(b|0,0|0,4,0);zb=0;V=159;break}}else{zb=lb;V=159}while(0);if((V|0)==159){V=0;if(vb){tb=zb;break}else{xb=zb;yb=0}}Z=ha(a|0,4,0,0)|0|0;N=ha(Z+12|0,4,0,0)|0|0;if((N|0)==(ha(Z+16|0,4,0,0)|0|0))Ab=Xb[(ja(ha((ha(Z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Z)|0;else Ab=ha(N|0,4,0,0)|0|0;if((Ab|0)!=(ha(nb|0,4,0,0)|0|0)){tb=xb;break}N=ha(a|0,4,0,0)|0|0;Z=N+12|0;M=ha(Z|0,4,0,0)|0|0;if((M|0)==(ha(N+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(N|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](N)|0;else ia(Z|0,M+4|0,4,0);lb=xb;mb=ha(w>>0|0,1,0,0)|0|0;nb=nb+4|0;ob=yb}if(E){M=ha(w>>0|0,1,0,0)|0|0;if(!(M&1)){Bb=e;Cb=(M&255)>>>1}else{Bb=ha(F|0,4,0,0)|0|0;Cb=ha(e|0,4,0,0)|0|0}if((nb|0)!=(Bb+(Cb<<2)|0)){V=174;break a}else{Ja=tb;Ka=K;La=L}}else{Ja=tb;Ka=K;La=L}break}default:{Ja=R;Ka=K;La=L}}while(0);g:do if((V|0)==29){V=0;if((o|0)==3){S=K;T=R;U=L;V=267;break a}else{Db=R;Eb=R}while(1){M=ha(a|0,4,0,0)|0|0;do if(M){Z=ha(M+12|0,4,0,0)|0|0;if((Z|0)==(ha(M+16|0,4,0,0)|0|0))Fb=Xb[(ja(ha((ha(M|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](M)|0;else Fb=ha(Z|0,4,0,0)|0|0;if((Fb|0)==-1){ia(a|0,0|0,4,0);Gb=1;break}else{Gb=(ha(a|0,4,0,0)|0|0)==0;break}}else Gb=1;while(0);do if(Eb){M=ha(Eb+12|0,4,0,0)|0|0;if((M|0)==(ha(Eb+16|0,4,0,0)|0|0))Hb=Xb[(ja(ha((ha(Eb|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](Eb)|0;else Hb=ha(M|0,4,0,0)|0|0;if((Hb|0)!=-1)if(Gb^(Db|0)==0){Ib=Db;Jb=Db;break}else{Ja=Db;Ka=K;La=L;break g}else{ia(b|0,0|0,4,0);Kb=0;V=43;break}}else{Kb=Db;V=43}while(0);if((V|0)==43){V=0;if(Gb){Ja=Kb;Ka=K;La=L;break g}else{Ib=Kb;Jb=0}}M=ha(a|0,4,0,0)|0|0;Z=ha(M+12|0,4,0,0)|0|0;if((Z|0)==(ha(M+16|0,4,0,0)|0|0))Lb=Xb[(ja(ha((ha(M|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](M)|0;else Lb=ha(Z|0,4,0,0)|0|0;if(!(Rb[(ja(ha((ha(h|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](h,8192,Lb)|0)){Ja=Ib;Ka=K;La=L;break g}Z=ha(a|0,4,0,0)|0|0;M=Z+12|0;N=ha(M|0,4,0,0)|0|0;if((N|0)==(ha(Z+16|0,4,0,0)|0|0))Mb=Xb[(ja(ha((ha(Z|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](Z)|0;else{ia(M|0,N+4|0,4,0);Mb=ha(N|0,4,0,0)|0|0}wd(z,Mb);Db=Ib;Eb=Jb}}while(0);o=o+1|0;if(o>>>0>=4){S=Ka;T=Ja;U=La;V=267;break}else{K=Ka;L=La}}h:do if((V|0)==28){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Nb=0}else if((V|0)==117){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Nb=0}else if((V|0)==174){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Nb=0}else if((V|0)==231){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Nb=0}else if((V|0)==254){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Nb=0}else if((V|0)==265){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Nb=0}else if((V|0)==267){i:do if(U){La=U+4|0;L=U+8|0;Ka=T;K=T;Ja=1;j:while(1){o=ha(U>>0|0,1,0,0)|0|0;if(!(o&1))Ob=(o&255)>>>1;else Ob=ha(La|0,4,0,0)|0|0;if(Ja>>>0>=Ob>>>0)break i;o=ha(a|0,4,0,0)|0|0;do if(o){Jb=ha(o+12|0,4,0,0)|0|0;if((Jb|0)==(ha(o+16|0,4,0,0)|0|0))Pb=Xb[(ja(ha((ha(o|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](o)|0;else Pb=ha(Jb|0,4,0,0)|0|0;if((Pb|0)==-1){ia(a|0,0|0,4,0);Qb=1;break}else{Qb=(ha(a|0,4,0,0)|0|0)==0;break}}else Qb=1;while(0);do if(K){o=ha(K+12|0,4,0,0)|0|0;if((o|0)==(ha(K+16|0,4,0,0)|0|0))Sb=Xb[(ja(ha((ha(K|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](K)|0;else Sb=ha(o|0,4,0,0)|0|0;if((Sb|0)!=-1)if(Qb^(Ka|0)==0){Tb=Ka;Vb=Ka;break}else break j;else{ia(b|0,0|0,4,0);Wb=0;V=286;break}}else{Wb=Ka;V=286}while(0);if((V|0)==286){V=0;if(Qb)break;else{Tb=Wb;Vb=0}}o=ha(a|0,4,0,0)|0|0;Jb=ha(o+12|0,4,0,0)|0|0;if((Jb|0)==(ha(o+16|0,4,0,0)|0|0))Yb=Xb[(ja(ha((ha(o|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](o)|0;else Yb=ha(Jb|0,4,0,0)|0|0;if(!((ha(U>>0|0,1,0,0)|0)&1))Zb=La;else Zb=ha(L|0,4,0,0)|0|0;if((Yb|0)!=(ha(Zb+(Ja<<2)|0,4,0,0)|0|0))break;Jb=Ja+1|0;o=ha(a|0,4,0,0)|0|0;Eb=o+12|0;Ib=ha(Eb|0,4,0,0)|0|0;if((Ib|0)==(ha(o+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(o|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](o)|0;Ka=Tb;K=Vb;Ja=Jb;continue}else{ia(Eb|0,Ib+4|0,4,0);Ka=Tb;K=Vb;Ja=Jb;continue}}ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Nb=0;break h}while(0);Ja=ha(p|0,4,0,0)|0|0;if((Ja|0)!=(S|0)?(ia(B|0,0|0,4,0),ni(v,Ja,S,B),(ha(B|0,4,0,0)|0|0)!=0):0){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Nb=0}else Nb=1}while(0);sd(z);sd(y);sd(x);sd(w);ed(v);v=ha(p|0,4,0,0)|0|0;ia(p|0,0|0,4,0);if(!v){i=m;return Nb|0}Ub[(ja(ha(l|0,4,0,0)|0|0,127|0)|0)&127](v);i=m;return Nb|0}function si(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;b=i;i=i+432|0;j=b+4|0;k=b+16|0;l=b+8|0;m=b+420|0;n=b;o=b+424|0;p=b+416|0;ia(l|0,k|0,4,0);q=l+4|0;ia(q|0,111|0,4,0);Dd(n,f);r=cj(n,5200)|0;ia(o>>0|0,0|0,1,0);s=ha(d|0,4,0,0)|0|0;ia(p|0,s|0,4,0);t=ha(f+4|0,4,0,0)|0|0;ia(j+0|0,ha(p+0|0,4,0,0)|0|0,4,0);if(ri(c,j,e,n,t,g,o,r,l,m,k+400|0)|0){if(!((ha(h>>0|0,1,0,0)|0)&1)){ia(h+4|0,0|0,4,0);ia(h>>0|0,0|0,1,0)}else{ia(ha(h+8|0,4,0,0)|0|0,0|0,4,0);ia(h+4|0,0|0,4,0)}if(ha(o>>0|0,1,0,0)|0)wd(h,ec[(ja(ha((ha(r|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](r,45)|0);o=ec[(ja(ha((ha(r|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](r,48)|0;r=ha(l|0,4,0,0)|0|0;k=ha(m|0,4,0,0)|0|0;m=k+-4|0;a:do if(r>>>0<m>>>0){t=r;while(1){e=t+4|0;if((ha(t|0,4,0,0)|0|0)!=(o|0)){u=t;break a}if(e>>>0<m>>>0)t=e;else{u=e;break}}}else u=r;while(0);Xl(h,u,k)|0}k=ha(c|0,4,0,0)|0|0;do if(k){u=ha(k+12|0,4,0,0)|0|0;if((u|0)==(ha(k+16|0,4,0,0)|0|0))v=Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0;else v=ha(u|0,4,0,0)|0|0;if((v|0)==-1){ia(c|0,0|0,4,0);w=1;break}else{w=(ha(c|0,4,0,0)|0|0)==0;break}}else w=1;while(0);do if(s){v=ha(s+12|0,4,0,0)|0|0;if((v|0)==(ha(s+16|0,4,0,0)|0|0))x=Xb[(ja(ha((ha(s|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](s)|0;else x=ha(v|0,4,0,0)|0|0;if((x|0)!=-1)if(w)break;else{y=26;break}else{ia(d|0,0|0,4,0);y=24;break}}else y=24;while(0);if((y|0)==24?w:0)y=26;if((y|0)==26)ia(g|0,ha(g|0,4,0,0)|0|2|0,4,0);ia(a|0,ha(c|0,4,0,0)|0|0,4,0);Mc(ha(n|0,4,0,0)|0|0)|0;n=ha(l|0,4,0,0)|0|0;ia(l|0,0|0,4,0);if(!n){i=b;return}Ub[(ja(ha(q|0,4,0,0)|0|0,127|0)|0)&127](n);i=b;return}function ti(a,b,c,d,e,f,g,h,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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;l=i;i=i+112|0;m=l;n=l+40|0;o=l+76|0;p=l+4|0;q=l+88|0;r=l+100|0;s=l+28|0;t=l+64|0;u=l+52|0;v=l+16|0;if(a){a=cj(b,4776)|0;Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,63|0)|0)&63](m,a);w=ha(m|0,4,0,0)|0|0;ia(c>>0|0,w|0,1,0);ia(c+1>>0|0,w>>8|0,1,0);ia(c+2>>0|0,w>>16|0,1,0);ia(c+3>>0|0,w>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,63|0)|0)&63](n,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+4|0,0|0,4,0);ia(j>>0|0,0|0,1,0)}else{ia(ha(j+8|0,4,0,0)|0|0,0|0,4,0);ia(j+4|0,0|0,4,0)}vd(j,0);ia(j+0|0,ha(n+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(n+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(n+8|0,4,0,0)|0|0,4,0);ia(n+0|0,0|0,4,0);ia(n+4|0,0|0,4,0);ia(n+8|0,0|0,4,0);sd(n);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](o,a);if(!((ha(h>>0|0,1,0,0)|0)&1)){ia(h+4|0,0|0,4,0);ia(h>>0|0,0|0,1,0)}else{ia(ha(h+8|0,4,0,0)|0|0,0|0,4,0);ia(h+4|0,0|0,4,0)}vd(h,0);ia(h+0|0,ha(o+0|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(o+4|0,4,0,0)|0|0,4,0);ia(h+8|0,ha(o+8|0,4,0,0)|0|0,4,0);ia(o+0|0,0|0,4,0);ia(o+4|0,0|0,4,0);ia(o+8|0,0|0,4,0);sd(o);ia(d|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,4,0);ia(e|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,4,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](p,a);if(!((ha(f>>0|0,1,0,0)|0)&1)){ia(f+1>>0|0,0|0,1,0);ia(f>>0|0,0|0,1,0)}else{ia((ha(f+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(f+4|0,0|0,4,0)}jd(f,0);ia(f+0|0,ha(p+0|0,4,0,0)|0|0,4,0);ia(f+4|0,ha(p+4|0,4,0,0)|0|0,4,0);ia(f+8|0,ha(p+8|0,4,0,0)|0|0,4,0);ia(p+0|0,0|0,4,0);ia(p+4|0,0|0,4,0);ia(p+8|0,0|0,4,0);ed(p);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](q,a);if(!((ha(g>>0|0,1,0,0)|0)&1)){ia(g+4|0,0|0,4,0);ia(g>>0|0,0|0,1,0)}else{ia(ha(g+8|0,4,0,0)|0|0,0|0,4,0);ia(g+4|0,0|0,4,0)}vd(g,0);ia(g+0|0,ha(q+0|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(q+4|0,4,0,0)|0|0,4,0);ia(g+8|0,ha(q+8|0,4,0,0)|0|0,4,0);ia(q+0|0,0|0,4,0);ia(q+4|0,0|0,4,0);ia(q+8|0,0|0,4,0);sd(q);x=Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](a)|0;ia(k|0,x|0,4,0);i=l;return}else{a=cj(b,4712)|0;Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,63|0)|0)&63](r,a);b=ha(r|0,4,0,0)|0|0;ia(c>>0|0,b|0,1,0);ia(c+1>>0|0,b>>8|0,1,0);ia(c+2>>0|0,b>>16|0,1,0);ia(c+3>>0|0,b>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,63|0)|0)&63](s,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+4|0,0|0,4,0);ia(j>>0|0,0|0,1,0)}else{ia(ha(j+8|0,4,0,0)|0|0,0|0,4,0);ia(j+4|0,0|0,4,0)}vd(j,0);ia(j+0|0,ha(s+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(s+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(s+8|0,4,0,0)|0|0,4,0);ia(s+0|0,0|0,4,0);ia(s+4|0,0|0,4,0);ia(s+8|0,0|0,4,0);sd(s);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](t,a);if(!((ha(h>>0|0,1,0,0)|0)&1)){ia(h+4|0,0|0,4,0);ia(h>>0|0,0|0,1,0)}else{ia(ha(h+8|0,4,0,0)|0|0,0|0,4,0);ia(h+4|0,0|0,4,0)}vd(h,0);ia(h+0|0,ha(t+0|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(t+4|0,4,0,0)|0|0,4,0);ia(h+8|0,ha(t+8|0,4,0,0)|0|0,4,0);ia(t+0|0,0|0,4,0);ia(t+4|0,0|0,4,0);ia(t+8|0,0|0,4,0);sd(t);ia(d|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,4,0);ia(e|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,4,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](u,a);if(!((ha(f>>0|0,1,0,0)|0)&1)){ia(f+1>>0|0,0|0,1,0);ia(f>>0|0,0|0,1,0)}else{ia((ha(f+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(f+4|0,0|0,4,0)}jd(f,0);ia(f+0|0,ha(u+0|0,4,0,0)|0|0,4,0);ia(f+4|0,ha(u+4|0,4,0,0)|0|0,4,0);ia(f+8|0,ha(u+8|0,4,0,0)|0|0,4,0);ia(u+0|0,0|0,4,0);ia(u+4|0,0|0,4,0);ia(u+8|0,0|0,4,0);ed(u);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](v,a);if(!((ha(g>>0|0,1,0,0)|0)&1)){ia(g+4|0,0|0,4,0);ia(g>>0|0,0|0,1,0)}else{ia(ha(g+8|0,4,0,0)|0|0,0|0,4,0);ia(g+4|0,0|0,4,0)}vd(g,0);ia(g+0|0,ha(v+0|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(v+4|0,4,0,0)|0|0,4,0);ia(g+8|0,ha(v+8|0,4,0,0)|0|0,4,0);ia(v+0|0,0|0,4,0);ia(v+4|0,0|0,4,0);ia(v+8|0,0|0,4,0);sd(v);x=Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](a)|0;ia(k|0,x|0,4,0);i=l;return}}function ui(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function vi(a){a=a|0;return}function wi(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;var h=0,j=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;b=i;i=i+384|0;h=b;j=b+72|0;l=b+40|0;m=b+172|0;n=b+36|0;o=b+64|0;p=b+272|0;q=b+376|0;r=b+52|0;s=b+20|0;t=b+8|0;u=b+48|0;v=b+276|0;w=b+32|0;x=b+44|0;y=b+68|0;ia(l|0,j|0,4,0);ia(k|0,+g,8,1);ia(h|0,ha(k|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(k+4|0,4,0,0)|0|0,4,0);z=$o(j,100,4960,h)|0;if(z>>>0>99){j=qf()|0;ia(k|0,+g,8,1);ia(h|0,ha(k|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(k+4|0,4,0,0)|0|0,4,0);A=Pl(l,j,4960,h)|0;j=ha(l|0,4,0,0)|0|0;if(!j)zo();B=Eo(A)|0;if(!B)zo();else{C=B;D=j;E=B;F=A}}else{C=0;D=0;E=m;F=z}Dd(n,e);z=cj(n,5208)|0;m=ha(l|0,4,0,0)|0|0;bc[(ja(ha((ha(z|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,7|0)|0)&7](z,m,m+F|0,E)|0;if(!F)G=0;else G=(ha((ha(l|0,4,0,0)|0)>>0|0,1,0,0)|0|0)==45;ia(o|0,0|0,4,0);ia(r+0|0,0|0,4,0);ia(r+4|0,0|0,4,0);ia(r+8|0,0|0,4,0);ia(s+0|0,0|0,4,0);ia(s+4|0,0|0,4,0);ia(s+8|0,0|0,4,0);ia(t+0|0,0|0,4,0);ia(t+4|0,0|0,4,0);ia(t+8|0,0|0,4,0);xi(d,G,n,o,p,q,r,s,t,u);d=ha(u|0,4,0,0)|0|0;if((F|0)>(d|0)){u=ha(t>>0|0,1,0,0)|0|0;if(!(u&1))H=(u&255)>>>1;else H=ha(t+4|0,4,0,0)|0|0;u=ha(s>>0|0,1,0,0)|0|0;if(!(u&1))I=(u&255)>>>1;else I=ha(s+4|0,4,0,0)|0|0;J=H+(F-d<<1|1)+I|0}else{I=ha(t>>0|0,1,0,0)|0|0;if(!(I&1))K=(I&255)>>>1;else K=ha(t+4|0,4,0,0)|0|0;I=ha(s>>0|0,1,0,0)|0|0;if(!(I&1))L=(I&255)>>>1;else L=ha(s+4|0,4,0,0)|0|0;J=K+2+L|0}L=J+d|0;if(L>>>0>100){J=Eo(L)|0;if(!J)zo();else{M=J;N=J}}else{M=0;N=v}yi(N,w,x,ha(e+4|0,4,0,0)|0|0,E,E+F|0,z,G,o,ha(p>>0|0,1,0,0)|0|0,ha(q>>0|0,1,0,0)|0|0,r,s,t,d);ia(y|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(w|0,4,0,0)|0|0;w=ha(x|0,4,0,0)|0|0;ia(h+0|0,ha(y+0|0,4,0,0)|0|0,4,0);rc(a,h,N,c,w,e,f);Fo(M);ed(t);ed(s);ed(r);Mc(ha(n|0,4,0,0)|0|0)|0;Fo(C);Fo(D);i=b;return}function xi(a,b,c,d,e,f,g,h,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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;l=i;i=i+112|0;m=l+12|0;n=l+40|0;o=l+92|0;p=l;q=l+80|0;r=l+96|0;s=l+108|0;t=l+56|0;u=l+52|0;v=l+16|0;w=l+28|0;x=l+68|0;if(a){a=cj(c,4648)|0;y=ha(a|0,4,0,0)|0|0;if(b){Vb[(ja(ha(y+44|0,4,0,0)|0|0,63|0)|0)&63](m,a);z=ha(m|0,4,0,0)|0|0;ia(d>>0|0,z|0,1,0);ia(d+1>>0|0,z>>8|0,1,0);ia(d+2>>0|0,z>>16|0,1,0);ia(d+3>>0|0,z>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,63|0)|0)&63](n,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+1>>0|0,0|0,1,0);ia(j>>0|0,0|0,1,0)}else{ia((ha(j+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(j+4|0,0|0,4,0)}jd(j,0);ia(j+0|0,ha(n+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(n+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(n+8|0,4,0,0)|0|0,4,0);ia(n+0|0,0|0,4,0);ia(n+4|0,0|0,4,0);ia(n+8|0,0|0,4,0);ed(n)}else{Vb[(ja(ha(y+40|0,4,0,0)|0|0,63|0)|0)&63](o,a);y=ha(o|0,4,0,0)|0|0;ia(d>>0|0,y|0,1,0);ia(d+1>>0|0,y>>8|0,1,0);ia(d+2>>0|0,y>>16|0,1,0);ia(d+3>>0|0,y>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](p,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+1>>0|0,0|0,1,0);ia(j>>0|0,0|0,1,0)}else{ia((ha(j+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(j+4|0,0|0,4,0)}jd(j,0);ia(j+0|0,ha(p+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(p+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(p+8|0,4,0,0)|0|0,4,0);ia(p+0|0,0|0,4,0);ia(p+4|0,0|0,4,0);ia(p+8|0,0|0,4,0);ed(p)}ia(e>>0|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,1,0);ia(f>>0|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](q,a);if(!((ha(g>>0|0,1,0,0)|0)&1)){ia(g+1>>0|0,0|0,1,0);ia(g>>0|0,0|0,1,0)}else{ia((ha(g+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(g+4|0,0|0,4,0)}jd(g,0);ia(g+0|0,ha(q+0|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(q+4|0,4,0,0)|0|0,4,0);ia(g+8|0,ha(q+8|0,4,0,0)|0|0,4,0);ia(q+0|0,0|0,4,0);ia(q+4|0,0|0,4,0);ia(q+8|0,0|0,4,0);ed(q);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](r,a);if(!((ha(h>>0|0,1,0,0)|0)&1)){ia(h+1>>0|0,0|0,1,0);ia(h>>0|0,0|0,1,0)}else{ia((ha(h+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(h+4|0,0|0,4,0)}jd(h,0);ia(h+0|0,ha(r+0|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(r+4|0,4,0,0)|0|0,4,0);ia(h+8|0,ha(r+8|0,4,0,0)|0|0,4,0);ia(r+0|0,0|0,4,0);ia(r+4|0,0|0,4,0);ia(r+8|0,0|0,4,0);ed(r);A=Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](a)|0;ia(k|0,A|0,4,0);i=l;return}else{a=cj(c,4584)|0;c=ha(a|0,4,0,0)|0|0;if(b){Vb[(ja(ha(c+44|0,4,0,0)|0|0,63|0)|0)&63](s,a);b=ha(s|0,4,0,0)|0|0;ia(d>>0|0,b|0,1,0);ia(d+1>>0|0,b>>8|0,1,0);ia(d+2>>0|0,b>>16|0,1,0);ia(d+3>>0|0,b>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,63|0)|0)&63](t,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+1>>0|0,0|0,1,0);ia(j>>0|0,0|0,1,0)}else{ia((ha(j+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(j+4|0,0|0,4,0)}jd(j,0);ia(j+0|0,ha(t+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(t+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(t+8|0,4,0,0)|0|0,4,0);ia(t+0|0,0|0,4,0);ia(t+4|0,0|0,4,0);ia(t+8|0,0|0,4,0);ed(t)}else{Vb[(ja(ha(c+40|0,4,0,0)|0|0,63|0)|0)&63](u,a);c=ha(u|0,4,0,0)|0|0;ia(d>>0|0,c|0,1,0);ia(d+1>>0|0,c>>8|0,1,0);ia(d+2>>0|0,c>>16|0,1,0);ia(d+3>>0|0,c>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](v,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+1>>0|0,0|0,1,0);ia(j>>0|0,0|0,1,0)}else{ia((ha(j+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(j+4|0,0|0,4,0)}jd(j,0);ia(j+0|0,ha(v+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(v+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(v+8|0,4,0,0)|0|0,4,0);ia(v+0|0,0|0,4,0);ia(v+4|0,0|0,4,0);ia(v+8|0,0|0,4,0);ed(v)}ia(e>>0|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,1,0);ia(f>>0|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](w,a);if(!((ha(g>>0|0,1,0,0)|0)&1)){ia(g+1>>0|0,0|0,1,0);ia(g>>0|0,0|0,1,0)}else{ia((ha(g+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(g+4|0,0|0,4,0)}jd(g,0);ia(g+0|0,ha(w+0|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(w+4|0,4,0,0)|0|0,4,0);ia(g+8|0,ha(w+8|0,4,0,0)|0|0,4,0);ia(w+0|0,0|0,4,0);ia(w+4|0,0|0,4,0);ia(w+8|0,0|0,4,0);ed(w);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](x,a);if(!((ha(h>>0|0,1,0,0)|0)&1)){ia(h+1>>0|0,0|0,1,0);ia(h>>0|0,0|0,1,0)}else{ia((ha(h+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(h+4|0,0|0,4,0)}jd(h,0);ia(h+0|0,ha(x+0|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(x+4|0,4,0,0)|0|0,4,0);ia(h+8|0,ha(x+8|0,4,0,0)|0|0,4,0);ia(x+0|0,0|0,4,0);ia(x+4|0,0|0,4,0);ia(x+8|0,0|0,4,0);ed(x);A=Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](a)|0;ia(k|0,A|0,4,0);i=l;return}}function yi(a,b,c,d,e,f,g,h,j,k,l,m,n,o,p){a=a|0;b=b|0;c=c|0;d=d|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;p=p|0;var 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,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0;q=i;ia(c|0,a|0,4,0);r=o+1|0;s=o+8|0;t=o+4|0;u=(d&512|0)==0;v=n+1|0;w=n+8|0;x=n+4|0;y=(p|0)>0;z=m+1|0;A=m+8|0;B=m+4|0;C=g+8|0;D=0-p|0;E=e;e=0;while(1){switch(ha(j+e>>0|0,1,0,0)|0|0){case 4:{F=ha(c|0,4,0,0)|0|0;G=h?E+1|0:E;a:do if(G>>>0<f>>>0){H=G;while(1){I=ha(H>>0|0,1,0,0)|0|0;if(I<<24>>24<=-1){J=H;break a}K=H+1|0;if(!((ha((ha(C|0,4,0,0)|0|0)+(I<<24>>24<<1)|0,2,0,0)|0)&2048)){J=H;break a}if(K>>>0<f>>>0)H=K;else{J=K;break}}}else J=G;while(0);H=J;if(y){if(J>>>0>G>>>0){K=G-H|0;H=K>>>0<D>>>0?D:K;K=H+p|0;I=F;L=J;M=p;while(1){N=L+-1|0;O=ha(N>>0|0,1,0,0)|0|0;ia(c|0,I+1|0,4,0);ia(I>>0|0,O|0,1,0);O=M+-1|0;P=(O|0)>0;if(!(N>>>0>G>>>0&P))break;I=ha(c|0,4,0,0)|0|0;L=N;M=O}M=J+H|0;if(P){Q=M;R=K;S=32}else{T=0;U=M;V=K}}else{Q=J;R=p;S=32}if((S|0)==32){S=0;T=ec[(ja(ha((ha(g|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](g,48)|0;U=Q;V=R}M=ha(c|0,4,0,0)|0|0;ia(c|0,M+1|0,4,0);if((V|0)>0){L=M;I=V;while(1){ia(L>>0|0,T|0,1,0);I=I+-1|0;O=ha(c|0,4,0,0)|0|0;ia(c|0,O+1|0,4,0);if((I|0)<=0){W=O;break}else L=O}}else W=M;ia(W>>0|0,k|0,1,0);X=U}else X=J;if((X|0)==(G|0)){L=ec[(ja(ha((ha(g|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](g,48)|0;I=ha(c|0,4,0,0)|0|0;ia(c|0,I+1|0,4,0);ia(I>>0|0,L|0,1,0)}else{L=ha(m>>0|0,1,0,0)|0|0;I=(L&1)==0;if(I)Y=(L&255)>>>1;else Y=ha(B|0,4,0,0)|0|0;if(!Y){Z=X;_=-1;$=0;aa=0}else{if(I)ba=z;else ba=ha(A|0,4,0,0)|0|0;Z=X;_=ha(ba>>0|0,1,0,0)|0|0;$=0;aa=0}while(1){if((aa|0)==(_|0)){I=ha(c|0,4,0,0)|0|0;ia(c|0,I+1|0,4,0);ia(I>>0|0,l|0,1,0);I=$+1|0;L=ha(m>>0|0,1,0,0)|0|0;K=(L&1)==0;if(K)ca=(L&255)>>>1;else ca=ha(B|0,4,0,0)|0|0;if(I>>>0<ca>>>0){if(K)da=z;else da=ha(A|0,4,0,0)|0|0;if((ha(da+I>>0|0,1,0,0)|0|0)==127){ea=-1;fa=I;ga=0}else{if(K)ka=z;else ka=ha(A|0,4,0,0)|0|0;ea=ha(ka+I>>0|0,1,0,0)|0|0;fa=I;ga=0}}else{ea=_;fa=I;ga=0}}else{ea=_;fa=$;ga=aa}Z=Z+-1|0;I=ha(Z>>0|0,1,0,0)|0|0;K=ha(c|0,4,0,0)|0|0;ia(c|0,K+1|0,4,0);ia(K>>0|0,I|0,1,0);if((Z|0)==(G|0))break;else{_=ea;$=fa;aa=ga+1|0}}}M=ha(c|0,4,0,0)|0|0;if((F|0)!=(M|0)?(I=M+-1|0,I>>>0>F>>>0):0){M=F;K=I;do{I=ha(M>>0|0,1,0,0)|0|0;ia(M>>0|0,ha(K>>0|0,1,0,0)|0|0|0,1,0);ia(K>>0|0,I|0,1,0);M=M+1|0;K=K+-1|0}while(M>>>0<K>>>0);la=G}else la=G;break}case 1:{ia(b|0,ha(c|0,4,0,0)|0|0,4,0);K=ec[(ja(ha((ha(g|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](g,32)|0;M=ha(c|0,4,0,0)|0|0;ia(c|0,M+1|0,4,0);ia(M>>0|0,K|0,1,0);la=E;break}case 3:{K=ha(o>>0|0,1,0,0)|0|0;M=(K&1)==0;if(M)ma=(K&255)>>>1;else ma=ha(t|0,4,0,0)|0|0;if(!ma)la=E;else{if(M)na=r;else na=ha(s|0,4,0,0)|0|0;M=ha(na>>0|0,1,0,0)|0|0;K=ha(c|0,4,0,0)|0|0;ia(c|0,K+1|0,4,0);ia(K>>0|0,M|0,1,0);la=E}break}case 2:{M=ha(n>>0|0,1,0,0)|0|0;K=(M&1)==0;if(K)oa=(M&255)>>>1;else oa=ha(x|0,4,0,0)|0|0;if((oa|0)==0|u)la=E;else{if(K){pa=v;qa=(M&255)>>>1}else{pa=ha(w|0,4,0,0)|0|0;qa=ha(x|0,4,0,0)|0|0}M=pa+qa|0;K=ha(c|0,4,0,0)|0|0;if((pa|0)==(M|0))ra=K;else{F=K;K=pa;while(1){ia(F>>0|0,ha(K>>0|0,1,0,0)|0|0|0,1,0);K=K+1|0;I=F+1|0;if((K|0)==(M|0)){ra=I;break}else F=I}}ia(c|0,ra|0,4,0);la=E}break}case 0:{ia(b|0,ha(c|0,4,0,0)|0|0,4,0);la=E;break}default:la=E}e=e+1|0;if((e|0)==4)break;else E=la}la=ha(o>>0|0,1,0,0)|0|0;o=(la&1)==0;if(o)sa=(la&255)>>>1;else sa=ha(t|0,4,0,0)|0|0;if(sa>>>0>1){if(o){ta=r;ua=(la&255)>>>1}else{ta=ha(s|0,4,0,0)|0|0;ua=ha(t|0,4,0,0)|0|0}t=ta+1|0;s=ta+ua|0;ua=ha(c|0,4,0,0)|0|0;if((t|0)==(s|0))va=ua;else{ta=ua;ua=t;while(1){ia(ta>>0|0,ha(ua>>0|0,1,0,0)|0|0|0,1,0);ua=ua+1|0;t=ta+1|0;if((ua|0)==(s|0)){va=t;break}else ta=t}}ia(c|0,va|0,4,0)}va=d&176;if((va|0)==32){ia(b|0,ha(c|0,4,0,0)|0|0,4,0);i=q;return}else if((va|0)==16){i=q;return}else{ia(b|0,a|0,4,0);i=q;return}}function zi(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;var 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;b=i;i=i+176|0;h=b+20|0;j=b+24|0;k=b+12|0;l=b+64|0;m=b+65|0;n=b;o=b+52|0;p=b+32|0;q=b+28|0;r=b+68|0;s=b+44|0;t=b+48|0;u=b+16|0;Dd(j,e);v=cj(j,5208)|0;w=ha(g>>0|0,1,0,0)|0|0;x=(w&1)==0;if(x)y=(w&255)>>>1;else y=ha(g+4|0,4,0,0)|0|0;if(!y)z=0;else{if(x)A=g+1|0;else A=ha(g+8|0,4,0,0)|0|0;x=ha(A>>0|0,1,0,0)|0|0;z=x<<24>>24==(ec[(ja(ha((ha(v|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](v,45)|0)<<24>>24}ia(k|0,0|0,4,0);ia(n+0|0,0|0,4,0);ia(n+4|0,0|0,4,0);ia(n+8|0,0|0,4,0);ia(o+0|0,0|0,4,0);ia(o+4|0,0|0,4,0);ia(o+8|0,0|0,4,0);ia(p+0|0,0|0,4,0);ia(p+4|0,0|0,4,0);ia(p+8|0,0|0,4,0);xi(d,z,j,k,l,m,n,o,p,q);d=ha(g>>0|0,1,0,0)|0|0;x=(d&1)==0;if(x)B=(d&255)>>>1;else B=ha(g+4|0,4,0,0)|0|0;A=ha(q|0,4,0,0)|0|0;if((B|0)>(A|0)){if(x)C=(d&255)>>>1;else C=ha(g+4|0,4,0,0)|0|0;x=ha(p>>0|0,1,0,0)|0|0;if(!(x&1))D=(x&255)>>>1;else D=ha(p+4|0,4,0,0)|0|0;x=ha(o>>0|0,1,0,0)|0|0;if(!(x&1))E=(x&255)>>>1;else E=ha(o+4|0,4,0,0)|0|0;F=D+(C-A<<1|1)+E|0}else{E=ha(p>>0|0,1,0,0)|0|0;if(!(E&1))G=(E&255)>>>1;else G=ha(p+4|0,4,0,0)|0|0;E=ha(o>>0|0,1,0,0)|0|0;if(!(E&1))H=(E&255)>>>1;else H=ha(o+4|0,4,0,0)|0|0;F=G+2+H|0}H=F+A|0;if(H>>>0>100){F=Eo(H)|0;if(!F)zo();else{I=F;J=F}}else{I=0;J=r}if(!(d&1)){K=g+1|0;L=(d&255)>>>1}else{K=ha(g+8|0,4,0,0)|0|0;L=ha(g+4|0,4,0,0)|0|0}yi(J,s,t,ha(e+4|0,4,0,0)|0|0,K,K+L|0,v,z,k,ha(l>>0|0,1,0,0)|0|0,ha(m>>0|0,1,0,0)|0|0,n,o,p,A);ia(u|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(s|0,4,0,0)|0|0;s=ha(t|0,4,0,0)|0|0;ia(h+0|0,ha(u+0|0,4,0,0)|0|0,4,0);rc(a,h,J,c,s,e,f);Fo(I);ed(p);ed(o);ed(n);Mc(ha(j|0,4,0,0)|0|0)|0;i=b;return}function Ai(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Bi(a){a=a|0;return}function Ci(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;var h=0,j=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;b=i;i=i+992|0;h=b;j=b+880|0;l=b+412|0;m=b+8|0;n=b+408|0;o=b+416|0;p=b+420|0;q=b+872|0;r=b+432|0;s=b+444|0;t=b+456|0;u=b+468|0;v=b+472|0;w=b+424|0;x=b+428|0;y=b+876|0;ia(l|0,j|0,4,0);ia(k|0,+g,8,1);ia(h|0,ha(k|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(k+4|0,4,0,0)|0|0,4,0);z=$o(j,100,4960,h)|0;if(z>>>0>99){j=qf()|0;ia(k|0,+g,8,1);ia(h|0,ha(k|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(k+4|0,4,0,0)|0|0,4,0);A=Pl(l,j,4960,h)|0;j=ha(l|0,4,0,0)|0|0;if(!j)zo();B=Eo(A<<2)|0;if(!B)zo();else{C=B;D=j;E=B;F=A}}else{C=0;D=0;E=m;F=z}Dd(n,e);z=cj(n,5200)|0;m=ha(l|0,4,0,0)|0|0;bc[(ja(ha((ha(z|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,7|0)|0)&7](z,m,m+F|0,E)|0;if(!F)G=0;else G=(ha((ha(l|0,4,0,0)|0)>>0|0,1,0,0)|0|0)==45;ia(o|0,0|0,4,0);ia(r+0|0,0|0,4,0);ia(r+4|0,0|0,4,0);ia(r+8|0,0|0,4,0);ia(s+0|0,0|0,4,0);ia(s+4|0,0|0,4,0);ia(s+8|0,0|0,4,0);ia(t+0|0,0|0,4,0);ia(t+4|0,0|0,4,0);ia(t+8|0,0|0,4,0);Di(d,G,n,o,p,q,r,s,t,u);d=ha(u|0,4,0,0)|0|0;if((F|0)>(d|0)){u=ha(t>>0|0,1,0,0)|0|0;if(!(u&1))H=(u&255)>>>1;else H=ha(t+4|0,4,0,0)|0|0;u=ha(s>>0|0,1,0,0)|0|0;if(!(u&1))I=(u&255)>>>1;else I=ha(s+4|0,4,0,0)|0|0;J=H+(F-d<<1|1)+I|0}else{I=ha(t>>0|0,1,0,0)|0|0;if(!(I&1))K=(I&255)>>>1;else K=ha(t+4|0,4,0,0)|0|0;I=ha(s>>0|0,1,0,0)|0|0;if(!(I&1))L=(I&255)>>>1;else L=ha(s+4|0,4,0,0)|0|0;J=K+2+L|0}L=J+d|0;if(L>>>0>100){J=Eo(L<<2)|0;if(!J)zo();else{M=J;N=J}}else{M=0;N=v}Ei(N,w,x,ha(e+4|0,4,0,0)|0|0,E,E+(F<<2)|0,z,G,o,ha(p|0,4,0,0)|0|0,ha(q|0,4,0,0)|0|0,r,s,t,d);ia(y|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(w|0,4,0,0)|0|0;w=ha(x|0,4,0,0)|0|0;ia(h+0|0,ha(y+0|0,4,0,0)|0|0,4,0);Ql(a,h,N,c,w,e,f);if(M)Fo(M);sd(t);sd(s);ed(r);Mc(ha(n|0,4,0,0)|0|0)|0;if(!C){Fo(D);i=b;return}Fo(C);Fo(D);i=b;return}function Di(a,b,c,d,e,f,g,h,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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;l=i;i=i+112|0;m=l+12|0;n=l+40|0;o=l+92|0;p=l;q=l+80|0;r=l+96|0;s=l+108|0;t=l+56|0;u=l+52|0;v=l+16|0;w=l+28|0;x=l+68|0;if(a){a=cj(c,4776)|0;y=ha(a|0,4,0,0)|0|0;if(b){Vb[(ja(ha(y+44|0,4,0,0)|0|0,63|0)|0)&63](m,a);z=ha(m|0,4,0,0)|0|0;ia(d>>0|0,z|0,1,0);ia(d+1>>0|0,z>>8|0,1,0);ia(d+2>>0|0,z>>16|0,1,0);ia(d+3>>0|0,z>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,63|0)|0)&63](n,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+4|0,0|0,4,0);ia(j>>0|0,0|0,1,0)}else{ia(ha(j+8|0,4,0,0)|0|0,0|0,4,0);ia(j+4|0,0|0,4,0)}vd(j,0);ia(j+0|0,ha(n+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(n+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(n+8|0,4,0,0)|0|0,4,0);ia(n+0|0,0|0,4,0);ia(n+4|0,0|0,4,0);ia(n+8|0,0|0,4,0);sd(n)}else{Vb[(ja(ha(y+40|0,4,0,0)|0|0,63|0)|0)&63](o,a);y=ha(o|0,4,0,0)|0|0;ia(d>>0|0,y|0,1,0);ia(d+1>>0|0,y>>8|0,1,0);ia(d+2>>0|0,y>>16|0,1,0);ia(d+3>>0|0,y>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](p,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+4|0,0|0,4,0);ia(j>>0|0,0|0,1,0)}else{ia(ha(j+8|0,4,0,0)|0|0,0|0,4,0);ia(j+4|0,0|0,4,0)}vd(j,0);ia(j+0|0,ha(p+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(p+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(p+8|0,4,0,0)|0|0,4,0);ia(p+0|0,0|0,4,0);ia(p+4|0,0|0,4,0);ia(p+8|0,0|0,4,0);sd(p)}ia(e|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,4,0);ia(f|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,4,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](q,a);if(!((ha(g>>0|0,1,0,0)|0)&1)){ia(g+1>>0|0,0|0,1,0);ia(g>>0|0,0|0,1,0)}else{ia((ha(g+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(g+4|0,0|0,4,0)}jd(g,0);ia(g+0|0,ha(q+0|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(q+4|0,4,0,0)|0|0,4,0);ia(g+8|0,ha(q+8|0,4,0,0)|0|0,4,0);ia(q+0|0,0|0,4,0);ia(q+4|0,0|0,4,0);ia(q+8|0,0|0,4,0);ed(q);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](r,a);if(!((ha(h>>0|0,1,0,0)|0)&1)){ia(h+4|0,0|0,4,0);ia(h>>0|0,0|0,1,0)}else{ia(ha(h+8|0,4,0,0)|0|0,0|0,4,0);ia(h+4|0,0|0,4,0)}vd(h,0);ia(h+0|0,ha(r+0|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(r+4|0,4,0,0)|0|0,4,0);ia(h+8|0,ha(r+8|0,4,0,0)|0|0,4,0);ia(r+0|0,0|0,4,0);ia(r+4|0,0|0,4,0);ia(r+8|0,0|0,4,0);sd(r);A=Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](a)|0;ia(k|0,A|0,4,0);i=l;return}else{a=cj(c,4712)|0;c=ha(a|0,4,0,0)|0|0;if(b){Vb[(ja(ha(c+44|0,4,0,0)|0|0,63|0)|0)&63](s,a);b=ha(s|0,4,0,0)|0|0;ia(d>>0|0,b|0,1,0);ia(d+1>>0|0,b>>8|0,1,0);ia(d+2>>0|0,b>>16|0,1,0);ia(d+3>>0|0,b>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+32|0,4,0,0)|0|0,63|0)|0)&63](t,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+4|0,0|0,4,0);ia(j>>0|0,0|0,1,0)}else{ia(ha(j+8|0,4,0,0)|0|0,0|0,4,0);ia(j+4|0,0|0,4,0)}vd(j,0);ia(j+0|0,ha(t+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(t+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(t+8|0,4,0,0)|0|0,4,0);ia(t+0|0,0|0,4,0);ia(t+4|0,0|0,4,0);ia(t+8|0,0|0,4,0);sd(t)}else{Vb[(ja(ha(c+40|0,4,0,0)|0|0,63|0)|0)&63](u,a);c=ha(u|0,4,0,0)|0|0;ia(d>>0|0,c|0,1,0);ia(d+1>>0|0,c>>8|0,1,0);ia(d+2>>0|0,c>>16|0,1,0);ia(d+3>>0|0,c>>24|0,1,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](v,a);if(!((ha(j>>0|0,1,0,0)|0)&1)){ia(j+4|0,0|0,4,0);ia(j>>0|0,0|0,1,0)}else{ia(ha(j+8|0,4,0,0)|0|0,0|0,4,0);ia(j+4|0,0|0,4,0)}vd(j,0);ia(j+0|0,ha(v+0|0,4,0,0)|0|0,4,0);ia(j+4|0,ha(v+4|0,4,0,0)|0|0,4,0);ia(j+8|0,ha(v+8|0,4,0,0)|0|0,4,0);ia(v+0|0,0|0,4,0);ia(v+4|0,0|0,4,0);ia(v+8|0,0|0,4,0);sd(v)}ia(e|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,4,0);ia(f|0,Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,63|0)|0)&63](a)|0|0,4,0);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,63|0)|0)&63](w,a);if(!((ha(g>>0|0,1,0,0)|0)&1)){ia(g+1>>0|0,0|0,1,0);ia(g>>0|0,0|0,1,0)}else{ia((ha(g+8|0,4,0,0)|0)>>0|0,0|0,1,0);ia(g+4|0,0|0,4,0)}jd(g,0);ia(g+0|0,ha(w+0|0,4,0,0)|0|0,4,0);ia(g+4|0,ha(w+4|0,4,0,0)|0|0,4,0);ia(g+8|0,ha(w+8|0,4,0,0)|0|0,4,0);ia(w+0|0,0|0,4,0);ia(w+4|0,0|0,4,0);ia(w+8|0,0|0,4,0);ed(w);Vb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](x,a);if(!((ha(h>>0|0,1,0,0)|0)&1)){ia(h+4|0,0|0,4,0);ia(h>>0|0,0|0,1,0)}else{ia(ha(h+8|0,4,0,0)|0|0,0|0,4,0);ia(h+4|0,0|0,4,0)}vd(h,0);ia(h+0|0,ha(x+0|0,4,0,0)|0|0,4,0);ia(h+4|0,ha(x+4|0,4,0,0)|0|0,4,0);ia(h+8|0,ha(x+8|0,4,0,0)|0|0,4,0);ia(x+0|0,0|0,4,0);ia(x+4|0,0|0,4,0);ia(x+8|0,0|0,4,0);sd(x);A=Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](a)|0;ia(k|0,A|0,4,0);i=l;return}}function Ei(a,b,c,d,e,f,g,h,j,k,l,m,n,o,p){a=a|0;b=b|0;c=c|0;d=d|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;p=p|0;var 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,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0;q=i;ia(c|0,a|0,4,0);r=o+4|0;s=o+8|0;t=(d&512|0)==0;u=n+4|0;v=n+8|0;w=(p|0)>0;x=m+1|0;y=m+8|0;z=m+4|0;A=e;e=0;while(1){switch(ha(j+e>>0|0,1,0,0)|0|0){case 1:{ia(b|0,ha(c|0,4,0,0)|0|0,4,0);B=ec[(ja(ha((ha(g|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](g,32)|0;C=ha(c|0,4,0,0)|0|0;ia(c|0,C+4|0,4,0);ia(C|0,B|0,4,0);D=A;break}case 3:{B=ha(o>>0|0,1,0,0)|0|0;C=(B&1)==0;if(C)E=(B&255)>>>1;else E=ha(r|0,4,0,0)|0|0;if(!E)D=A;else{if(C)F=r;else F=ha(s|0,4,0,0)|0|0;C=ha(F|0,4,0,0)|0|0;B=ha(c|0,4,0,0)|0|0;ia(c|0,B+4|0,4,0);ia(B|0,C|0,4,0);D=A}break}case 0:{ia(b|0,ha(c|0,4,0,0)|0|0,4,0);D=A;break}case 2:{C=ha(n>>0|0,1,0,0)|0|0;B=(C&1)==0;if(B)G=(C&255)>>>1;else G=ha(u|0,4,0,0)|0|0;if((G|0)==0|t)D=A;else{if(B){H=u;I=(C&255)>>>1}else{H=ha(v|0,4,0,0)|0|0;I=ha(u|0,4,0,0)|0|0}C=H+(I<<2)|0;B=ha(c|0,4,0,0)|0|0;if((H|0)==(C|0))J=B;else{K=(H+(I+-1<<2)-H|0)>>>2;L=B;M=H;while(1){ia(L|0,ha(M|0,4,0,0)|0|0,4,0);M=M+4|0;if((M|0)==(C|0))break;else L=L+4|0}J=B+(K+1<<2)|0}ia(c|0,J|0,4,0);D=A}break}case 4:{L=ha(c|0,4,0,0)|0|0;C=h?A+4|0:A;a:do if(C>>>0<f>>>0){M=C;while(1){N=M+4|0;if(!(Rb[(ja(ha((ha(g|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](g,2048,ha(M|0,4,0,0)|0|0)|0)){O=M;break a}if(N>>>0<f>>>0)M=N;else{O=N;break}}}else O=C;while(0);if(w){if(O>>>0>C>>>0){K=ha(c|0,4,0,0)|0|0;B=O;M=p;do{B=B+-4|0;N=K;K=K+4|0;ia(N|0,ha(B|0,4,0,0)|0|0,4,0);M=M+-1|0;P=(M|0)>0}while(B>>>0>C>>>0&P);ia(c|0,K|0,4,0);if(P){Q=B;R=M;S=33}else{N=ha(c|0,4,0,0)|0|0;ia(c|0,N+4|0,4,0);T=N;U=B}}else{Q=O;R=p;S=33}if((S|0)==33){S=0;N=ec[(ja(ha((ha(g|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](g,48)|0;V=ha(c|0,4,0,0)|0|0;W=V+4|0;ia(c|0,W|0,4,0);if((R|0)>0){X=V;Y=W;W=R;while(1){ia(X|0,N|0,4,0);W=W+-1|0;if((W|0)<=0)break;else{Z=Y;Y=Y+4|0;X=Z}}ia(c|0,V+(R+1<<2)|0,4,0);T=V+(R<<2)|0;U=Q}else{T=V;U=Q}}ia(T|0,k|0,4,0);_=U}else _=O;if((_|0)==(C|0)){X=ec[(ja(ha((ha(g|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](g,48)|0;Y=ha(c|0,4,0,0)|0|0;W=Y+4|0;ia(c|0,W|0,4,0);ia(Y|0,X|0,4,0);$=W}else{W=ha(m>>0|0,1,0,0)|0|0;X=(W&1)==0;if(X)aa=(W&255)>>>1;else aa=ha(z|0,4,0,0)|0|0;if(!aa){ba=_;ca=-1;da=0;ea=0}else{if(X)fa=x;else fa=ha(y|0,4,0,0)|0|0;ba=_;ca=ha(fa>>0|0,1,0,0)|0|0;da=0;ea=0}while(1){X=ha(c|0,4,0,0)|0|0;if((ea|0)==(ca|0)){W=X+4|0;ia(c|0,W|0,4,0);ia(X|0,l|0,4,0);Y=da+1|0;N=ha(m>>0|0,1,0,0)|0|0;B=(N&1)==0;if(B)ga=(N&255)>>>1;else ga=ha(z|0,4,0,0)|0|0;if(Y>>>0<ga>>>0){if(B)ka=x;else ka=ha(y|0,4,0,0)|0|0;if((ha(ka+Y>>0|0,1,0,0)|0|0)==127){la=W;ma=-1;na=Y;oa=0}else{if(B)pa=x;else pa=ha(y|0,4,0,0)|0|0;la=W;ma=ha(pa+Y>>0|0,1,0,0)|0|0;na=Y;oa=0}}else{la=W;ma=ca;na=Y;oa=0}}else{la=X;ma=ca;na=da;oa=ea}ba=ba+-4|0;X=ha(ba|0,4,0,0)|0|0;Y=la+4|0;ia(c|0,Y|0,4,0);ia(la|0,X|0,4,0);if((ba|0)==(C|0)){$=Y;break}else{ca=ma;da=na;ea=oa+1|0}}}if((L|0)!=($|0)?(V=$+-4|0,V>>>0>L>>>0):0){Y=L;X=V;do{V=ha(Y|0,4,0,0)|0|0;ia(Y|0,ha(X|0,4,0,0)|0|0,4,0);ia(X|0,V|0,4,0);Y=Y+4|0;X=X+-4|0}while(Y>>>0<X>>>0);D=C}else D=C;break}default:D=A}e=e+1|0;if((e|0)==4)break;else A=D}D=ha(o>>0|0,1,0,0)|0|0;o=(D&1)==0;if(o)qa=(D&255)>>>1;else qa=ha(r|0,4,0,0)|0|0;if(qa>>>0>1){if(o){ra=r;sa=(D&255)>>>1}else{ra=ha(s|0,4,0,0)|0|0;sa=ha(r|0,4,0,0)|0|0}r=ra+4|0;s=ra+(sa<<2)|0;D=ha(c|0,4,0,0)|0|0;if((r|0)==(s|0))ta=D;else{o=(ra+(sa+-1<<2)-r|0)>>>2;sa=D;ra=r;while(1){ia(sa|0,ha(ra|0,4,0,0)|0|0,4,0);ra=ra+4|0;if((ra|0)==(s|0))break;else sa=sa+4|0}ta=D+(o+1<<2)|0}ia(c|0,ta|0,4,0)}ta=d&176;if((ta|0)==32){ia(b|0,ha(c|0,4,0,0)|0|0,4,0);i=q;return}else if((ta|0)==16){i=q;return}else{ia(b|0,a|0,4,0);i=q;return}}function Fi(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;var 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;b=i;i=i+480|0;h=b+456|0;j=b+440|0;k=b+28|0;l=b+24|0;m=b+436|0;n=b+444|0;o=b+460|0;p=b+8|0;q=b+4|0;r=b+32|0;s=b+20|0;t=b+432|0;u=b;Dd(j,e);v=cj(j,5200)|0;w=ha(g>>0|0,1,0,0)|0|0;x=(w&1)==0;if(x)y=(w&255)>>>1;else y=ha(g+4|0,4,0,0)|0|0;if(!y)z=0;else{if(x)A=g+4|0;else A=ha(g+8|0,4,0,0)|0|0;x=ha(A|0,4,0,0)|0|0;z=(x|0)==(ec[(ja(ha((ha(v|0,4,0,0)|0|0)+44|0,4,0,0)|0|0,15|0)|0)&15](v,45)|0)}ia(k|0,0|0,4,0);ia(n+0|0,0|0,4,0);ia(n+4|0,0|0,4,0);ia(n+8|0,0|0,4,0);ia(o+0|0,0|0,4,0);ia(o+4|0,0|0,4,0);ia(o+8|0,0|0,4,0);ia(p+0|0,0|0,4,0);ia(p+4|0,0|0,4,0);ia(p+8|0,0|0,4,0);Di(d,z,j,k,l,m,n,o,p,q);d=ha(g>>0|0,1,0,0)|0|0;x=(d&1)==0;if(x)B=(d&255)>>>1;else B=ha(g+4|0,4,0,0)|0|0;A=ha(q|0,4,0,0)|0|0;if((B|0)>(A|0)){if(x)C=(d&255)>>>1;else C=ha(g+4|0,4,0,0)|0|0;x=ha(p>>0|0,1,0,0)|0|0;if(!(x&1))D=(x&255)>>>1;else D=ha(p+4|0,4,0,0)|0|0;x=ha(o>>0|0,1,0,0)|0|0;if(!(x&1))E=(x&255)>>>1;else E=ha(o+4|0,4,0,0)|0|0;F=D+(C-A<<1|1)+E|0}else{E=ha(p>>0|0,1,0,0)|0|0;if(!(E&1))G=(E&255)>>>1;else G=ha(p+4|0,4,0,0)|0|0;E=ha(o>>0|0,1,0,0)|0|0;if(!(E&1))H=(E&255)>>>1;else H=ha(o+4|0,4,0,0)|0|0;F=G+2+H|0}H=F+A|0;if(H>>>0>100){F=Eo(H<<2)|0;if(!F)zo();else{I=F;J=F}}else{I=0;J=r}if(!(d&1)){K=g+4|0;L=(d&255)>>>1}else{K=ha(g+8|0,4,0,0)|0|0;L=ha(g+4|0,4,0,0)|0|0}Ei(J,s,t,ha(e+4|0,4,0,0)|0|0,K,K+(L<<2)|0,v,z,k,ha(l|0,4,0,0)|0|0,ha(m|0,4,0,0)|0|0,n,o,p,A);ia(u|0,ha(c|0,4,0,0)|0|0,4,0);c=ha(s|0,4,0,0)|0|0;s=ha(t|0,4,0,0)|0|0;ia(h+0|0,ha(u+0|0,4,0,0)|0|0,4,0);Ql(a,h,J,c,s,e,f);if(!I){sd(p);sd(o);ed(n);M=ha(j|0,4,0,0)|0|0;Mc(M)|0;i=b;return}Fo(I);sd(p);sd(o);ed(n);M=ha(j|0,4,0,0)|0|0;Mc(M)|0;i=b;return}function Gi(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Hi(a){a=a|0;return}function Ii(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;c=i;if(!((ha(b>>0|0,1,0,0)|0)&1))d=b+1|0;else d=ha(b+8|0,4,0,0)|0|0;b=Ob(d|0,1)|0;i=c;return b>>>((b|0)!=(-1|0)&1)|0}function Ji(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;b=i;i=i+16|0;g=b;ia(g+0|0,0|0,4,0);ia(g+4|0,0|0,4,0);ia(g+8|0,0|0,4,0);h=ha(f>>0|0,1,0,0)|0|0;if(!(h&1)){j=f+1|0;k=(h&255)>>>1;l=f+1|0}else{h=ha(f+8|0,4,0,0)|0|0;j=h;k=ha(f+4|0,4,0,0)|0|0;l=h}h=j+k|0;if(l>>>0<h>>>0){k=l;do{ld(g,ha(k>>0|0,1,0,0)|0|0);k=k+1|0}while((k|0)!=(h|0));h=(c|0)==-1?-1:c<<1;if(!((ha(g>>0|0,1,0,0)|0)&1)){m=h;n=9}else{o=h;p=ha(g+8|0,4,0,0)|0|0}}else{m=(c|0)==-1?-1:c<<1;n=9}if((n|0)==9){o=m;p=g+1|0}m=ab(o|0,d|0,e|0,p|0)|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);p=pp(m|0)|0;e=m+p|0;if((p|0)>0)q=m;else{ed(g);i=b;return}do{ld(a,ha(q>>0|0,1,0,0)|0|0);q=q+1|0}while((q|0)!=(e|0));ed(g);i=b;return}function Ki(a,b){a=a|0;b=b|0;a=i;Hb(((b|0)==-1?-1:b<<1)|0)|0;i=a;return}function Li(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Mi(a){a=a|0;return}function Ni(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;c=i;if(!((ha(b>>0|0,1,0,0)|0)&1))d=b+1|0;else d=ha(b+8|0,4,0,0)|0|0;b=Ob(d|0,1)|0;i=c;return b>>>((b|0)!=(-1|0)&1)|0}function Oi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;b=i;i=i+176|0;g=b;h=b+40|0;j=b+168|0;k=b+172|0;l=b+16|0;m=b+8|0;n=b+32|0;ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);ia(m+4|0,0|0,4,0);ia(m|0,6864|0,4,0);o=ha(f>>0|0,1,0,0)|0|0;if(!(o&1)){p=f+4|0;q=(o&255)>>>1;r=f+4|0}else{o=ha(f+8|0,4,0,0)|0|0;p=o;q=ha(f+4|0,4,0,0)|0|0;r=o}o=p+(q<<2)|0;q=g;ia(q|0,0|0,4,0);ia(q+4|0,0|0,4,0);a:do if(r>>>0<o>>>0){q=h+32|0;p=r;f=6864|0;while(1){ia(k|0,p|0,4,0);s=(ac[(ja(ha(f+12|0,4,0,0)|0|0,15|0)|0)&15](m,g,p,o,k,h,q,j)|0)==2;t=ha(k|0,4,0,0)|0|0;if(s|(t|0)==(p|0))break;if(h>>>0<(ha(j|0,4,0,0)|0|0)>>>0){s=h;do{ld(l,ha(s>>0|0,1,0,0)|0|0);s=s+1|0}while(s>>>0<(ha(j|0,4,0,0)|0|0)>>>0);u=ha(k|0,4,0,0)|0|0}else u=t;if(u>>>0>=o>>>0)break a;p=u;f=ha(m|0,4,0,0)|0|0}ki(6088)}while(0);if(!((ha(l>>0|0,1,0,0)|0)&1))v=l+1|0;else v=ha(l+8|0,4,0,0)|0|0;m=ab(((c|0)==-1?-1:c<<1)|0,d|0,e|0,v|0)|0;ia(a+0|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);ia(n+4|0,0|0,4,0);ia(n|0,6968|0,4,0);v=pp(m|0)|0;e=m+v|0;d=g;ia(d|0,0|0,4,0);ia(d+4|0,0|0,4,0);if((v|0)<=0){ed(l);i=b;return}v=e;d=h+128|0;c=m;m=6968|0;while(1){ia(k|0,c|0,4,0);u=(ac[(ja(ha(m+16|0,4,0,0)|0|0,15|0)|0)&15](n,g,c,(v-c|0)>32?c+32|0:e,k,h,d,j)|0)==2;o=ha(k|0,4,0,0)|0|0;if(u|(o|0)==(c|0)){w=20;break}if(h>>>0<(ha(j|0,4,0,0)|0|0)>>>0){u=h;do{wd(a,ha(u|0,4,0,0)|0|0);u=u+4|0}while(u>>>0<(ha(j|0,4,0,0)|0|0)>>>0);x=ha(k|0,4,0,0)|0|0}else x=o;if(x>>>0>=e>>>0){w=25;break}c=x;m=ha(n|0,4,0,0)|0|0}if((w|0)==20)ki(6088);else if((w|0)==25){ed(l);i=b;return}}function Pi(a,b){a=a|0;b=b|0;a=i;Hb(((b|0)==-1?-1:b<<1)|0)|0;i=a;return}function Qi(a){a=a|0;a=Pa(8)|0;Nc(a,5088);ia(a|0,13744|0,4,0);Cb(a|0,13784,98)}function Ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;ia(a+4|0,b+-1|0,4,0);ia(a|0,5128|0,4,0);b=a+8|0;Yl(b,28);bd(a+144|0,5112,1);d=ha(b|0,4,0,0)|0|0;b=a+12|0;e=ha(b|0,4,0,0)|0|0;if((e|0)!=(d|0))ia(b|0,e+(~((e+-4-d|0)>>>2)<<2)|0,4,0);ia(2505*4|0,0|0,4,0);ia(2504*4|0,3576|0,4,0);Zl(a,10016);ia(2503*4|0,0|0,4,0);ia(2502*4|0,3616|0,4,0);_l(a,10008);wj(9992,0,0,1);$l(a,9992);ia(2497*4|0,0|0,4,0);ia(2496*4|0,6184|0,4,0);am(a,9984);ia(2495*4|0,0|0,4,0);ia(2494*4|0,6400|0,4,0);bm(a,9976);Pj(9960,1);cm(a,9960);ia(2489*4|0,0|0,4,0);ia(2488*4|0,6624|0,4,0);dm(a,9952);ia(2487*4|0,0|0,4,0);ia(2486*4|0,6744|0,4,0);em(a,9944);ia(2481*4|0,0|0,4,0);ia(2480*4|0,5376|0,4,0);ia(9928|0,46|0,1,0);ia(9929|0,44|0,1,0);ia(2483*4|0,0|0,4,0);ia(2484*4|0,0|0,4,0);ia(2485*4|0,0|0,4,0);fm(a,9920);ia(2473*4|0,0|0,4,0);ia(2472*4|0,5416|0,4,0);ia(2474*4|0,46|0,4,0);ia(2475*4|0,44|0,4,0);ia(2476*4|0,0|0,4,0);ia(2477*4|0,0|0,4,0);ia(2478*4|0,0|0,4,0);gm(a,9888);ia(2471*4|0,0|0,4,0);ia(2470*4|0,3656|0,4,0);hm(a,9880);ia(2469*4|0,0|0,4,0);ia(2468*4|0,3776|0,4,0);im(a,9872);ia(2467*4|0,0|0,4,0);ia(2466*4|0,3848|0,4,0);jm(a,9864);ia(2465*4|0,0|0,4,0);ia(2464*4|0,3944|0,4,0);km(a,9856);ia(2463*4|0,0|0,4,0);ia(2462*4|0,4536|0,4,0);lm(a,9848);ia(2461*4|0,0|0,4,0);ia(2460*4|0,4600|0,4,0);mm(a,9840);ia(2459*4|0,0|0,4,0);ia(2458*4|0,4664|0,4,0);nm(a,9832);ia(2457*4|0,0|0,4,0);ia(2456*4|0,4728|0,4,0);om(a,9824);ia(2455*4|0,0|0,4,0);ia(2454*4|0,4792|0,4,0);pm(a,9816);ia(2453*4|0,0|0,4,0);ia(2452*4|0,4872|0,4,0);qm(a,9808);ia(2451*4|0,0|0,4,0);ia(2450*4|0,4928|0,4,0);rm(a,9800);ia(2449*4|0,0|0,4,0);ia(2448*4|0,4976|0,4,0);sm(a,9792);ia(2445*4|0,0|0,4,0);ia(2444*4|0,4024|0,4,0);ia(2446*4|0,4072|0,4,0);tm(a,9776);ia(2441*4|0,0|0,4,0);ia(2440*4|0,4176|0,4,0);ia(2442*4|0,4224|0,4,0);um(a,9760);ia(2437*4|0,0|0,4,0);ia(2436*4|0,6120|0,4,0);ia(2438*4|0,qf()|0|0,4,0);ia(2436*4|0,4472|0,4,0);vm(a,9744);ia(2433*4|0,0|0,4,0);ia(2432*4|0,6120|0,4,0);ia(2434*4|0,qf()|0|0,4,0);ia(2432*4|0,4504|0,4,0);wm(a,9728);ia(2431*4|0,0|0,4,0);ia(2430*4|0,5016|0,4,0);xm(a,9720);ia(2429*4|0,0|0,4,0);ia(2428*4|0,5056|0,4,0);ym(a,9712);i=c;return}function Si(){var a=0;a=i;if((ha(5160|0,1,0,0)|0|0)==0?(Ja(5160)|0)!=0:0){Xi()|0;ia(1288*4|0,5144|0,4,0);Ta(5160)}i=a;return ha(1288*4|0,4,0,0)|0|0}function Ti(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;Lc(b);e=a+8|0;f=ha(e|0,4,0,0)|0|0;if((ha(a+12|0,4,0,0)|0|0)-f>>2>>>0>c>>>0)g=f;else{Am(e,c+1|0);g=ha(e|0,4,0,0)|0|0}f=ha(g+(c<<2)|0,4,0,0)|0|0;if(!f){h=g;j=h+(c<<2)|0;ia(j|0,b|0,4,0);i=d;return}Mc(f)|0;h=ha(e|0,4,0,0)|0|0;j=h+(c<<2)|0;ia(j|0,b|0,4,0);i=d;return}function Ui(a){a=a|0;var b=0;b=i;Vi(a);Gn(a);i=b;return}function Vi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;ia(a|0,5128|0,4,0);c=a+8|0;d=a+12|0;e=ha(d|0,4,0,0)|0|0;f=ha(c|0,4,0,0)|0|0;if((e|0)!=(f|0)){g=e;e=f;f=0;while(1){h=ha(e+(f<<2)|0,4,0,0)|0|0;if(!h){j=g;k=e}else{Mc(h)|0;j=ha(d|0,4,0,0)|0|0;k=ha(c|0,4,0,0)|0|0}f=f+1|0;if(f>>>0>=j-k>>2>>>0)break;else{g=j;e=k}}}ed(a+144|0);zm(c);i=b;return}function Wi(a,b){a=a|0;b=b|0;var c=0;c=i;if(Bm(a,b)|0){i=c;return ha((ha(a+8|0,4,0,0)|0|0)+(b<<2)|0,4,0,0)|0|0}else{b=Pa(4)|0;Yn(b);Cb(b|0,13920,103)}return 0}function Xi(){var a=0;a=i;Ri(9552,1);ia(1286*4|0,9552|0,4,0);i=a;return 5144}function Yi(){var a=0,b=0;a=i;b=ha(Si()|0|0,4,0,0)|0|0;ia(1292*4|0,b|0,4,0);Lc(b);i=a;return 5168}function Zi(){var a=0;a=i;if((ha(5184|0,1,0,0)|0|0)==0?(Ja(5184)|0)!=0:0){Yi()|0;ia(1294*4|0,5168|0,4,0);Ta(5184)}i=a;return ha(1294*4|0,4,0,0)|0|0}function _i(a){a=a|0;var b=0,c=0;b=i;c=ha(Zi()|0|0,4,0,0)|0|0;ia(a|0,c|0,4,0);Lc(c);i=b;return}function $i(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;d=ha(b|0,4,0,0)|0|0;ia(a|0,d|0,4,0);Lc(d);i=c;return}function aj(a){a=a|0;var b=0;b=i;Mc(ha(a|0,4,0,0)|0|0)|0;i=b;return}function bj(a){a=a|0;var b=0,c=0;b=i;i=i+16|0;c=b;if((ha(a|0,4,0,0)|0|0)!=-1){ia(c|0,a|0,4,0);ia(c+4|0,112|0,4,0);ia(c+8|0,0|0,4,0);Zc(a,c,113)}i=b;return (ha(a+4|0,4,0,0)|0|0)+-1|0}function cj(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;d=ha(a|0,4,0,0)|0|0;a=Wi(d,bj(b)|0)|0;i=c;return a|0}function dj(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function ej(a){a=a|0;var b=0;b=i;if(!a){i=b;return}Ub[(ja(ha((ha(a|0,4,0,0)|0|0)+4|0,4,0,0)|0|0,127|0)|0)&127](a);i=b;return}function fj(a){a=a|0;var b=0;b=ha(1298*4|0,4,0,0)|0|0;ia(1298*4|0,b+1|0,4,0);ia(a+4|0,b+1|0,4,0);return}function gj(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function hj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a=i;if(c>>>0>=128){d=0;i=a;return d|0}d=((ha((ij()|0)+(c<<1)|0,2,0,0)|0)&b)<<16>>16!=0;i=a;return d|0}function ij(){var a=0,b=0;a=i;b=ha(Ia()|0|0,4,0,0)|0|0;i=a;return b|0}function jj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;a=i;if((b|0)==(c|0)){e=b;i=a;return e|0}f=((c+-4-b|0)>>>2)+1|0;g=b;h=d;while(1){d=ha(g|0,4,0,0)|0|0;if(d>>>0<128)j=ha((ij()|0)+(d<<1)|0,2,0,0)|0|0;else j=0;ia(h|0,j|0,2,0);g=g+4|0;if((g|0)==(c|0))break;else h=h+2|0}e=b+(f<<2)|0;i=a;return e|0}function kj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=i;a:do if((c|0)==(d|0))e=c;else{f=c;while(1){g=ha(f|0,4,0,0)|0|0;if(g>>>0<128?((ha((ij()|0)+(g<<1)|0,2,0,0)|0)&b)<<16>>16!=0:0){e=f;break a}f=f+4|0;if((f|0)==(d|0)){e=d;break}}}while(0);i=a;return e|0}function lj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=i;a:do if((c|0)==(d|0))e=c;else{f=c;while(1){g=ha(f|0,4,0,0)|0|0;if(g>>>0>=128){e=f;break a}if(!(((ha((ij()|0)+(g<<1)|0,2,0,0)|0)&b)<<16>>16)){e=f;break a}f=f+4|0;if((f|0)==(d|0)){e=d;break}}}while(0);i=a;return e|0}function mj(a,b){a=a|0;b=b|0;var c=0;a=i;if(b>>>0>=128){c=b;i=a;return c|0}c=ha((nj()|0)+(b<<2)|0,4,0,0)|0|0;i=a;return c|0}function nj(){var a=0,b=0;a=i;b=ha(Ra()|0|0,4,0,0)|0|0;i=a;return b|0}function oj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;a=i;if((b|0)==(c|0)){d=b;i=a;return d|0}e=((c+-4-b|0)>>>2)+1|0;f=b;do{g=ha(f|0,4,0,0)|0|0;if(g>>>0<128)h=ha((nj()|0)+(g<<2)|0,4,0,0)|0|0;else h=g;ia(f|0,h|0,4,0);f=f+4|0}while((f|0)!=(c|0));d=b+(e<<2)|0;i=a;return d|0}function pj(a,b){a=a|0;b=b|0;var c=0;a=i;if(b>>>0>=128){c=b;i=a;return c|0}c=ha((qj()|0)+(b<<2)|0,4,0,0)|0|0;i=a;return c|0}function qj(){var a=0,b=0;a=i;b=ha(lb()|0|0,4,0,0)|0|0;i=a;return b|0}function rj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;a=i;if((b|0)==(c|0)){d=b;i=a;return d|0}e=((c+-4-b|0)>>>2)+1|0;f=b;do{g=ha(f|0,4,0,0)|0|0;if(g>>>0<128)h=ha((qj()|0)+(g<<2)|0,4,0,0)|0|0;else h=g;ia(f|0,h|0,4,0);f=f+4|0}while((f|0)!=(c|0));d=b+(e<<2)|0;i=a;return d|0}function sj(a,b){a=a|0;b=b|0;return b<<24>>24|0}function tj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=i;if((b|0)==(c|0)){e=b;i=a;return e|0}else{f=b;g=d}while(1){ia(g|0,ha(f>>0|0,1,0,0)|0|0,4,0);f=f+1|0;if((f|0)==(c|0)){e=c;break}else g=g+4|0}i=a;return e|0}function uj(a,b,c){a=a|0;b=b|0;c=c|0;return (b>>>0<128?b&255:c)|0}function vj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;a=i;if((b|0)==(c|0)){f=b;i=a;return f|0}g=((c+-4-b|0)>>>2)+1|0;h=b;j=e;while(1){e=ha(h|0,4,0,0)|0|0;ia(j>>0|0,(e>>>0<128?e&255:d)|0,1,0);h=h+4|0;if((h|0)==(c|0))break;else j=j+1|0}f=b+(g<<2)|0;i=a;return f|0}function wj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=i;ia(a+4|0,d+-1|0,4,0);ia(a|0,5224|0,4,0);d=a+8|0;ia(d|0,b|0,4,0);ia(a+12>>0|0,c&1|0,1,0);if(b){i=e;return}ia(d|0,ij()|0|0,4,0);i=e;return}function xj(a){a=a|0;var b=0;b=i;yj(a);Gn(a);i=b;return}function yj(a){a=a|0;var b=0,c=0;b=i;ia(a|0,5224|0,4,0);c=ha(a+8|0,4,0,0)|0|0;if((c|0)!=0?(ha(a+12>>0|0,1,0,0)|0|0)!=0:0)Hn(c);i=b;return}function zj(a,b){a=a|0;b=b|0;var c=0;a=i;if(b<<24>>24<=-1){c=b;i=a;return c|0}c=(ha((nj()|0)+((b&255)<<2)|0,4,0,0)|0)&255;i=a;return c|0}function Aj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=i;if((b|0)==(c|0)){d=b;i=a;return d|0}else e=b;do{b=ha(e>>0|0,1,0,0)|0|0;if(b<<24>>24>-1)f=(ha((nj()|0)+(b<<24>>24<<2)|0,4,0,0)|0)&255;else f=b;ia(e>>0|0,f|0,1,0);e=e+1|0}while((e|0)!=(c|0));d=c;i=a;return d|0}function Bj(a,b){a=a|0;b=b|0;var c=0;a=i;if(b<<24>>24<=-1){c=b;i=a;return c|0}c=(ha((qj()|0)+(b<<24>>24<<2)|0,4,0,0)|0)&255;i=a;return c|0}function Cj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=i;if((b|0)==(c|0)){d=b;i=a;return d|0}else e=b;do{b=ha(e>>0|0,1,0,0)|0|0;if(b<<24>>24>-1)f=(ha((qj()|0)+(b<<24>>24<<2)|0,4,0,0)|0)&255;else f=b;ia(e>>0|0,f|0,1,0);e=e+1|0}while((e|0)!=(c|0));d=c;i=a;return d|0}function Dj(a,b){a=a|0;b=b|0;return b|0}function Ej(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;a=i;if((b|0)==(c|0))e=b;else{f=b;b=d;while(1){ia(b>>0|0,ha(f>>0|0,1,0,0)|0|0|0,1,0);f=f+1|0;if((f|0)==(c|0)){e=c;break}else b=b+1|0}}i=a;return e|0}function Fj(a,b,c){a=a|0;b=b|0;c=c|0;return (b<<24>>24>-1?b:c)|0}function Gj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=i;if((b|0)==(c|0)){f=b;i=a;return f|0}else{g=b;h=e}while(1){e=ha(g>>0|0,1,0,0)|0|0;ia(h>>0|0,(e<<24>>24>-1?e:d)|0,1,0);g=g+1|0;if((g|0)==(c|0)){f=c;break}else h=h+1|0}i=a;return f|0}function Hj(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Ij(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;ia(e|0,c|0,4,0);ia(h|0,f|0,4,0);return 3}function Jj(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;ia(e|0,c|0,4,0);ia(h|0,f|0,4,0);return 3}function Kj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ia(e|0,c|0,4,0);return 3}function Lj(a){a=a|0;return 1}function Mj(a){a=a|0;return 1}function Nj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;b=d-c|0;return (b>>>0<e>>>0?b:e)|0}function Oj(a){a=a|0;return 1}function Pj(a,b){a=a|0;b=b|0;var c=0;c=i;ia(a+4|0,b+-1|0,4,0);ia(a|0,5296|0,4,0);ia(a+8|0,qf()|0|0,4,0);i=c;return}function Qj(a){a=a|0;var b=0;b=i;Rk(a);Gn(a);i=b;return}function Rj(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;j=i;i=i+16|0;k=j;l=j+8|0;m=(c|0)==(d|0);a:do if(!m){n=c;while(1){if(!(ha(n|0,4,0,0)|0)){o=n;break}n=n+4|0;if((n|0)==(d|0)){o=d;break}}ia(h|0,f|0,4,0);ia(e|0,c|0,4,0);if(!(m|(f|0)==(g|0))){n=g;p=a+8|0;q=c;r=f;s=o;while(1){t=b;u=ha(t+4|0,4,0,0)|0|0;v=k;ia(v|0,ha(t|0,4,0,0)|0|0,4,0);ia(v+4|0,u|0,4,0);u=$a(ha(p|0,4,0,0)|0|0)|0;v=qn(r,e,s-q>>2,n-r|0,b)|0;if(u)$a(u|0)|0;if((v|0)==-1){w=10;break}else if(!v){x=1;w=33;break}u=(ha(h|0,4,0,0)|0|0)+v|0;ia(h|0,u|0,4,0);if((u|0)==(g|0)){w=31;break}if((s|0)==(d|0)){y=ha(e|0,4,0,0)|0|0;z=u;A=d}else{u=$a(ha(p|0,4,0,0)|0|0)|0;v=Wo(l,0,b)|0;if(u)$a(u|0)|0;if((v|0)==-1){x=2;w=33;break}u=ha(h|0,4,0,0)|0|0;if(v>>>0>(n-u|0)>>>0){x=1;w=33;break}b:do if(v){t=u;B=v;C=l;while(1){D=ha(C>>0|0,1,0,0)|0|0;ia(h|0,t+1|0,4,0);ia(t>>0|0,D|0,1,0);D=B+-1|0;if(!D)break b;t=ha(h|0,4,0,0)|0|0;B=D;C=C+1|0}}while(0);v=(ha(e|0,4,0,0)|0|0)+4|0;ia(e|0,v|0,4,0);c:do if((v|0)==(d|0))E=d;else{u=v;while(1){if(!(ha(u|0,4,0,0)|0)){E=u;break c}u=u+4|0;if((u|0)==(d|0)){E=d;break}}}while(0);y=v;z=ha(h|0,4,0,0)|0|0;A=E}if((y|0)==(d|0)|(z|0)==(g|0)){F=y;break a}else{q=y;r=z;s=A}}if((w|0)==10){ia(h|0,r|0,4,0);d:do if((q|0)==(ha(e|0,4,0,0)|0|0))G=q;else{s=q;n=r;while(1){u=ha(s|0,4,0,0)|0|0;C=$a(ha(p|0,4,0,0)|0|0)|0;B=Wo(n,u,k)|0;if(C)$a(C|0)|0;if((B|0)==-1){G=s;break d}n=(ha(h|0,4,0,0)|0|0)+B|0;ia(h|0,n|0,4,0);B=s+4|0;if((B|0)==(ha(e|0,4,0,0)|0|0)){G=B;break}else s=B}}while(0);ia(e|0,G|0,4,0);x=2;i=j;return x|0}else if((w|0)==31){F=ha(e|0,4,0,0)|0|0;break}else if((w|0)==33){i=j;return x|0}}else F=c}else{ia(h|0,f|0,4,0);ia(e|0,c|0,4,0);F=c}while(0);x=(F|0)!=(d|0)&1;i=j;return x|0}function Sj(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;j=i;i=i+16|0;k=j;l=(c|0)==(d|0);a:do if(!l){m=c;while(1){if(!(ha(m>>0|0,1,0,0)|0)){n=m;break}m=m+1|0;if((m|0)==(d|0)){n=d;break}}ia(h|0,f|0,4,0);ia(e|0,c|0,4,0);if(!(l|(f|0)==(g|0))){m=g;o=a+8|0;p=c;q=f;r=n;while(1){s=b;t=ha(s+4|0,4,0,0)|0|0;u=k;ia(u|0,ha(s|0,4,0,0)|0|0,4,0);ia(u+4|0,t|0,4,0);v=r;t=$a(ha(o|0,4,0,0)|0|0)|0;u=nn(q,e,v-p|0,m-q>>2,b)|0;if(t)$a(t|0)|0;if((u|0)==-1){w=10;break}else if(!u){x=2;w=32;break}t=(ha(h|0,4,0,0)|0|0)+(u<<2)|0;ia(h|0,t|0,4,0);if((t|0)==(g|0)){w=30;break}u=ha(e|0,4,0,0)|0|0;if((r|0)==(d|0)){y=u;z=t;A=d}else{s=$a(ha(o|0,4,0,0)|0|0)|0;B=ln(t,u,1,b)|0;if(s)$a(s|0)|0;if(B){x=2;w=32;break}ia(h|0,(ha(h|0,4,0,0)|0|0)+4|0,4,0);B=(ha(e|0,4,0,0)|0|0)+1|0;ia(e|0,B|0,4,0);b:do if((B|0)==(d|0))C=d;else{s=B;while(1){if(!(ha(s>>0|0,1,0,0)|0)){C=s;break b}s=s+1|0;if((s|0)==(d|0)){C=d;break}}}while(0);y=B;z=ha(h|0,4,0,0)|0|0;A=C}if((y|0)==(d|0)|(z|0)==(g|0)){D=y;break a}else{p=y;q=z;r=A}}if((w|0)==10){ia(h|0,q|0,4,0);c:do if((p|0)!=(ha(e|0,4,0,0)|0|0)){r=p;m=q;while(1){s=$a(ha(o|0,4,0,0)|0|0)|0;u=ln(m,r,v-r|0,k)|0;if(s)$a(s|0)|0;if(!u)E=r+1|0;else if((u|0)==-1){w=15;break}else if((u|0)==-2){w=16;break}else E=r+u|0;m=(ha(h|0,4,0,0)|0|0)+4|0;ia(h|0,m|0,4,0);if((E|0)==(ha(e|0,4,0,0)|0|0)){F=E;break c}else r=E}if((w|0)==15){ia(e|0,r|0,4,0);x=2;i=j;return x|0}else if((w|0)==16){ia(e|0,r|0,4,0);x=1;i=j;return x|0}}else F=p;while(0);ia(e|0,F|0,4,0);x=(F|0)!=(d|0)&1;i=j;return x|0}else if((w|0)==30){D=ha(e|0,4,0,0)|0|0;break}else if((w|0)==32){i=j;return x|0}}else D=c}else{ia(h|0,f|0,4,0);ia(e|0,c|0,4,0);D=c}while(0);x=(D|0)!=(d|0)&1;i=j;return x|0}function Tj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;ia(e|0,c|0,4,0);c=$a(ha(a+8|0,4,0,0)|0|0)|0;a=Wo(g,0,b)|0;if(c)$a(c|0)|0;if((a|0)==0|(a|0)==-1){h=2;i=f;return h|0}c=a+-1|0;a=ha(e|0,4,0,0)|0|0;if(c>>>0>(d-a|0)>>>0){h=1;i=f;return h|0}if(!c){h=0;i=f;return h|0}else{j=a;k=c;l=g}while(1){g=ha(l>>0|0,1,0,0)|0|0;ia(e|0,j+1|0,4,0);ia(j>>0|0,g|0,1,0);g=k+-1|0;if(!g){h=0;break}j=ha(e|0,4,0,0)|0|0;k=g;l=l+1|0}i=f;return h|0}function Uj(a){a=a|0;var b=0,c=0,d=0,e=0;b=i;c=a+8|0;a=$a(ha(c|0,4,0,0)|0|0)|0;d=pn(0,0,4)|0;if(a)$a(a|0)|0;if(!d){d=ha(c|0,4,0,0)|0|0;if(d){c=$a(d|0)|0;if(!c)e=0;else{$a(c|0)|0;e=0}}else e=1}else e=-1;i=b;return e|0}function Vj(a){a=a|0;return 0}function Wj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;f=i;if((e|0)==0|(c|0)==(d|0)){g=0;i=f;return g|0}h=d;j=a+8|0;a=c;c=0;k=0;while(1){l=$a(ha(j|0,4,0,0)|0|0)|0;m=kn(a,h-a|0,b)|0;if(l)$a(l|0)|0;if((m|0)==-2|(m|0)==-1){g=c;n=9;break}else if(!m){o=a+1|0;p=1}else{o=a+m|0;p=m}m=p+c|0;k=k+1|0;if(k>>>0>=e>>>0|(o|0)==(d|0)){g=m;n=9;break}else{a=o;c=m}}if((n|0)==9){i=f;return g|0}return 0}function Xj(a){a=a|0;var b=0,c=0,d=0;b=i;c=ha(a+8|0,4,0,0)|0|0;if(c){a=$a(c|0)|0;if(!a)d=4;else{$a(a|0)|0;d=4}}else d=1;i=b;return d|0}function Yj(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Zj(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0;b=i;i=i+16|0;a=b+4|0;j=b;ia(a|0,c|0,4,0);ia(j|0,f|0,4,0);k=Dm(c,d,a,f,g,j,1114111,0)|0;ia(e|0,c+((ha(a|0,4,0,0)|0|0)-c>>1<<1)|0,4,0);ia(h|0,f+((ha(j|0,4,0,0)|0|0)-f)|0,4,0);i=b;return k|0}function _j(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0;b=i;i=i+16|0;a=b+4|0;j=b;ia(a|0,c|0,4,0);ia(j|0,f|0,4,0);k=Em(c,d,a,f,g,j,1114111,0)|0;ia(e|0,c+((ha(a|0,4,0,0)|0|0)-c)|0,4,0);ia(h|0,f+((ha(j|0,4,0,0)|0|0)-f>>1<<1)|0,4,0);i=b;return k|0}function $j(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ia(e|0,c|0,4,0);return 3}function ak(a){a=a|0;return 0}function bk(a){a=a|0;return 0}function ck(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;b=i;a=Fm(c,d,e,1114111,0)|0;i=b;return a|0}function dk(a){a=a|0;return 4}function ek(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function fk(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0;b=i;i=i+16|0;a=b+4|0;j=b;ia(a|0,c|0,4,0);ia(j|0,f|0,4,0);k=Gm(c,d,a,f,g,j,1114111,0)|0;ia(e|0,c+((ha(a|0,4,0,0)|0|0)-c>>2<<2)|0,4,0);ia(h|0,f+((ha(j|0,4,0,0)|0|0)-f)|0,4,0);i=b;return k|0}function gk(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0;b=i;i=i+16|0;a=b+4|0;j=b;ia(a|0,c|0,4,0);ia(j|0,f|0,4,0);k=Hm(c,d,a,f,g,j,1114111,0)|0;ia(e|0,c+((ha(a|0,4,0,0)|0|0)-c)|0,4,0);ia(h|0,f+((ha(j|0,4,0,0)|0|0)-f>>2<<2)|0,4,0);i=b;return k|0}function hk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ia(e|0,c|0,4,0);return 3}function ik(a){a=a|0;return 0}function jk(a){a=a|0;return 0}function kk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;b=i;a=Im(c,d,e,1114111,0)|0;i=b;return a|0}function lk(a){a=a|0;return 4}function mk(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function nk(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function ok(a){a=a|0;var b=0;b=i;pk(a);Gn(a);i=b;return}function pk(a){a=a|0;var b=0;b=i;ia(a|0,5376|0,4,0);ed(a+12|0);i=b;return}function qk(a){a=a|0;var b=0;b=i;rk(a);Gn(a);i=b;return}function rk(a){a=a|0;var b=0;b=i;ia(a|0,5416|0,4,0);ed(a+16|0);i=b;return}function sk(a){a=a|0;return ha(a+8>>0|0,1,0,0)|0|0}function tk(a){a=a|0;return ha(a+8|0,4,0,0)|0|0}function uk(a){a=a|0;return ha(a+9>>0|0,1,0,0)|0|0}function vk(a){a=a|0;return ha(a+12|0,4,0,0)|0|0}function wk(a,b){a=a|0;b=b|0;var c=0;c=i;ad(a,b+12|0);i=c;return}function xk(a,b){a=a|0;b=b|0;var c=0;c=i;ad(a,b+16|0);i=c;return}function yk(a,b){a=a|0;b=b|0;b=i;bd(a,5448,4);i=b;return}function zk(a,b){a=a|0;b=b|0;b=i;pd(a,5456,xn(5456)|0);i=b;return}function Ak(a,b){a=a|0;b=b|0;b=i;bd(a,5480,5);i=b;return}function Bk(a,b){a=a|0;b=b|0;b=i;pd(a,5488,xn(5488)|0);i=b;return}function Ck(a){a=a|0;var b=0,c=0,d=0;b=i;c=(ha(a+4|0,4,0,0)|0)&74;if(!c)d=0;else if((c|0)==8)d=16;else if((c|0)==64)d=8;else d=10;i=b;return d|0}function Dk(a){a=a|0;var b=0;a=i;if(ha(5520|0,1,0,0)|0){b=ha(1378*4|0,4,0,0)|0|0;i=a;return b|0}if(!(Ja(5520)|0)){b=ha(1378*4|0,4,0,0)|0|0;i=a;return b|0}if((ha(12720|0,1,0,0)|0|0)==0?(Ja(12720)|0)!=0:0){op(12552,0,168)|0;zb(114,0,o|0)|0;Ta(12720)}fd(12552,12728)|0;fd(12564,12736)|0;fd(12576,12744)|0;fd(12588,12752)|0;fd(12600,12768)|0;fd(12612,12784)|0;fd(12624,12792)|0;fd(12636,12808)|0;fd(12648,12816)|0;fd(12660,12824)|0;fd(12672,12832)|0;fd(12684,12840)|0;fd(12696,12848)|0;fd(12708,12856)|0;ia(1378*4|0,12552|0,4,0);Ta(5520);b=ha(1378*4|0,4,0,0)|0|0;i=a;return b|0}function Ek(a){a=a|0;var b=0;a=i;if(ha(5536|0,1,0,0)|0){b=ha(1382*4|0,4,0,0)|0|0;i=a;return b|0}if(!(Ja(5536)|0)){b=ha(1382*4|0,4,0,0)|0|0;i=a;return b|0}if((ha(12184|0,1,0,0)|0|0)==0?(Ja(12184)|0)!=0:0){op(12016,0,168)|0;zb(115,0,o|0)|0;Ta(12184)}td(12016,12192)|0;td(12028,12224)|0;td(12040,12256)|0;td(12052,12288)|0;td(12064,12328)|0;td(12076,12368)|0;td(12088,12400)|0;td(12100,12440)|0;td(12112,12456)|0;td(12124,12472)|0;td(12136,12488)|0;td(12148,12504)|0;td(12160,12520)|0;td(12172,12536)|0;ia(1382*4|0,12016|0,4,0);Ta(5536);b=ha(1382*4|0,4,0,0)|0|0;i=a;return b|0}function Fk(a){a=a|0;var b=0;a=i;if(ha(5552|0,1,0,0)|0){b=ha(1386*4|0,4,0,0)|0|0;i=a;return b|0}if(!(Ja(5552)|0)){b=ha(1386*4|0,4,0,0)|0|0;i=a;return b|0}if((ha(11792|0,1,0,0)|0|0)==0?(Ja(11792)|0)!=0:0){op(11504,0,288)|0;zb(116,0,o|0)|0;Ta(11792)}fd(11504,11800)|0;fd(11516,11808)|0;fd(11528,11824)|0;fd(11540,11832)|0;fd(11552,11840)|0;fd(11564,11848)|0;fd(11576,11856)|0;fd(11588,11864)|0;fd(11600,11872)|0;fd(11612,11888)|0;fd(11624,11896)|0;fd(11636,11912)|0;fd(11648,11928)|0;fd(11660,11936)|0;fd(11672,11944)|0;fd(11684,11952)|0;fd(11696,11840)|0;fd(11708,11960)|0;fd(11720,11968)|0;fd(11732,11976)|0;fd(11744,11984)|0;fd(11756,11992)|0;fd(11768,12e3)|0;fd(11780,12008)|0;ia(1386*4|0,11504|0,4,0);Ta(5552);b=ha(1386*4|0,4,0,0)|0|0;i=a;return b|0}function Gk(a){a=a|0;var b=0;a=i;if(ha(5568|0,1,0,0)|0){b=ha(1390*4|0,4,0,0)|0|0;i=a;return b|0}if(!(Ja(5568)|0)){b=ha(1390*4|0,4,0,0)|0|0;i=a;return b|0}if((ha(10952|0,1,0,0)|0|0)==0?(Ja(10952)|0)!=0:0){op(10664,0,288)|0;zb(117,0,o|0)|0;Ta(10952)}td(10664,10960)|0;td(10676,10992)|0;td(10688,11032)|0;td(10700,11056)|0;td(10712,11376)|0;td(10724,11080)|0;td(10736,11104)|0;td(10748,11128)|0;td(10760,11160)|0;td(10772,11200)|0;td(10784,11232)|0;td(10796,11272)|0;td(10808,11312)|0;td(10820,11328)|0;td(10832,11344)|0;td(10844,11360)|0;td(10856,11376)|0;td(10868,11392)|0;td(10880,11408)|0;td(10892,11424)|0;td(10904,11440)|0;td(10916,11456)|0;td(10928,11472)|0;td(10940,11488)|0;ia(1390*4|0,10664|0,4,0);Ta(5568);b=ha(1390*4|0,4,0,0)|0|0;i=a;return b|0}function Hk(a){a=a|0;var b=0;a=i;if(ha(5584|0,1,0,0)|0){b=ha(1394*4|0,4,0,0)|0|0;i=a;return b|0}if(!(Ja(5584)|0)){b=ha(1394*4|0,4,0,0)|0|0;i=a;return b|0}if((ha(10640|0,1,0,0)|0|0)==0?(Ja(10640)|0)!=0:0){op(10352,0,288)|0;zb(118,0,o|0)|0;Ta(10640)}fd(10352,10648)|0;fd(10364,10656)|0;ia(1394*4|0,10352|0,4,0);Ta(5584);b=ha(1394*4|0,4,0,0)|0|0;i=a;return b|0}function Ik(a){a=a|0;var b=0;a=i;if(ha(5600|0,1,0,0)|0){b=ha(1398*4|0,4,0,0)|0|0;i=a;return b|0}if(!(Ja(5600)|0)){b=ha(1398*4|0,4,0,0)|0|0;i=a;return b|0}if((ha(10312|0,1,0,0)|0|0)==0?(Ja(10312)|0)!=0:0){op(10024,0,288)|0;zb(119,0,o|0)|0;Ta(10312)}td(10024,10320)|0;td(10036,10336)|0;ia(1398*4|0,10024|0,4,0);Ta(5600);b=ha(1398*4|0,4,0,0)|0|0;i=a;return b|0}function Jk(a){a=a|0;a=i;if(ha(5624|0,1,0,0)|0){i=a;return 5608}if(!(Ja(5624)|0)){i=a;return 5608}bd(5608,5632,8);zb(120,5608,o|0)|0;Ta(5624);i=a;return 5608}function Kk(a){a=a|0;a=i;if(ha(5664|0,1,0,0)|0){i=a;return 5648}if(!(Ja(5664)|0)){i=a;return 5648}pd(5648,5672,xn(5672)|0);zb(121,5648,o|0)|0;Ta(5664);i=a;return 5648}function Lk(a){a=a|0;a=i;if(ha(5728|0,1,0,0)|0){i=a;return 5712}if(!(Ja(5728)|0)){i=a;return 5712}bd(5712,5736,8);zb(120,5712,o|0)|0;Ta(5728);i=a;return 5712}function Mk(a){a=a|0;a=i;if(ha(5768|0,1,0,0)|0){i=a;return 5752}if(!(Ja(5768)|0)){i=a;return 5752}pd(5752,5776,xn(5776)|0);zb(121,5752,o|0)|0;Ta(5768);i=a;return 5752}function Nk(a){a=a|0;a=i;if(ha(5832|0,1,0,0)|0){i=a;return 5816}if(!(Ja(5832)|0)){i=a;return 5816}bd(5816,5840,20);zb(120,5816,o|0)|0;Ta(5832);i=a;return 5816}function Ok(a){a=a|0;a=i;if(ha(5880|0,1,0,0)|0){i=a;return 5864}if(!(Ja(5880)|0)){i=a;return 5864}pd(5864,5888,xn(5888)|0);zb(121,5864,o|0)|0;Ta(5880);i=a;return 5864}function Pk(a){a=a|0;a=i;if(ha(5992|0,1,0,0)|0){i=a;return 5976}if(!(Ja(5992)|0)){i=a;return 5976}bd(5976,6e3,11);zb(120,5976,o|0)|0;Ta(5992);i=a;return 5976}function Qk(a){a=a|0;a=i;if(ha(6032|0,1,0,0)|0){i=a;return 6016}if(!(Ja(6032)|0)){i=a;return 6016}pd(6016,6040,xn(6040)|0);zb(121,6016,o|0)|0;Ta(6032);i=a;return 6016}function Rk(a){a=a|0;var b=0,c=0;b=i;ia(a|0,5296|0,4,0);c=a+8|0;a=ha(c|0,4,0,0)|0|0;if((a|0)==(qf()|0)){i=b;return}Db(ha(c|0,4,0,0)|0|0);i=b;return}function Sk(a){a=a|0;var b=0;b=i;Yd(a);Gn(a);i=b;return}function Tk(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](a)|0;d=cj(b,5280)|0;ia(a+36|0,d|0,4,0);ia(a+44>>0|0,(Xb[(ja(ha((ha(d|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](d)|0)&1|0,1,0);i=c;return}function Uk(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;b=i;i=i+16|0;c=b+8|0;d=b;e=a+36|0;f=a+40|0;g=c+8|0;h=c;j=a+32|0;while(1){a=ha(e|0,4,0,0)|0|0;k=fc[(ja(ha((ha(a|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,15|0)|0)&15](a,ha(f|0,4,0,0)|0|0,c,g,d)|0;a=(ha(d|0,4,0,0)|0|0)-h|0;if((Ib(c|0,1,a|0,ha(j|0,4,0,0)|0|0)|0)!=(a|0)){l=-1;m=5;break}if((k|0)==2){l=-1;m=5;break}else if((k|0)!=1){m=4;break}}if((m|0)==4){l=((Sa(ha(j|0,4,0,0)|0|0)|0)!=0)<<31>>31;i=b;return l|0}else if((m|0)==5){i=b;return l|0}return 0}function Vk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;d=i;if(ha(a+44>>0|0,1,0,0)|0){e=Ib(b|0,4,c|0,ha(a+32|0,4,0,0)|0|0)|0;i=d;return e|0}if((c|0)>0){f=b;g=0}else{e=0;i=d;return e|0}while(1){if((ec[(ja(ha((ha(a|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,15|0)|0)&15](a,ha(f|0,4,0,0)|0|0)|0)==-1){e=g;h=6;break}b=g+1|0;if((b|0)<(c|0)){f=f+4|0;g=b}else{e=b;h=6;break}}if((h|0)==6){i=d;return e|0}return 0}function Wk(a,b){a=a|0;b=b|0;var c=0,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;c=i;i=i+32|0;d=c+16|0;e=c+8|0;f=c+4|0;g=c;h=(b|0)==-1;a:do if(!h){ia(e|0,b|0,4,0);if(ha(a+44>>0|0,1,0,0)|0){if((Ib(e|0,4,1,ha(a+32|0,4,0,0)|0|0)|0)==1)break;else j=-1;i=c;return j|0}ia(f|0,d|0,4,0);k=e+4|0;l=a+36|0;m=a+40|0;n=d+8|0;o=d;p=a+32|0;q=e;while(1){r=ha(l|0,4,0,0)|0|0;s=ac[(ja(ha((ha(r|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,15|0)|0)&15](r,ha(m|0,4,0,0)|0|0,q,k,g,d,n,f)|0;if((ha(g|0,4,0,0)|0|0)==(q|0)){j=-1;t=12;break}if((s|0)==3){t=7;break}r=(s|0)==1;if(s>>>0>=2){j=-1;t=12;break}s=(ha(f|0,4,0,0)|0|0)-o|0;if((Ib(d|0,1,s|0,ha(p|0,4,0,0)|0|0)|0)!=(s|0)){j=-1;t=12;break}if(r)q=r?ha(g|0,4,0,0)|0|0:q;else break a}if((t|0)==7){if((Ib(q|0,1,1,ha(p|0,4,0,0)|0|0)|0)==1)break;else j=-1;i=c;return j|0}else if((t|0)==12){i=c;return j|0}}while(0);j=h?0:b;i=c;return j|0}function Xk(a){a=a|0;var b=0;b=i;Yd(a);Gn(a);i=b;return}function Yk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;d=cj(b,5280)|0;b=a+36|0;ia(b|0,d|0,4,0);e=a+44|0;ia(e|0,Xb[(ja(ha((ha(d|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](d)|0|0,4,0);d=ha(b|0,4,0,0)|0|0;ia(a+53>>0|0,(Xb[(ja(ha((ha(d|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](d)|0)&1|0,1,0);if((ha(e|0,4,0,0)|0|0)>8)ki(1904);else{i=c;return}}function Zk(a){a=a|0;var b=0,c=0;b=i;c=Pm(a,0)|0;i=b;return c|0}function _k(a){a=a|0;var b=0,c=0;b=i;c=Pm(a,1)|0;i=b;return c|0}function $k(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;c=i;i=i+32|0;d=c+16|0;e=c+8|0;f=c+4|0;g=c;h=a+52|0;j=(ha(h>>0|0,1,0,0)|0|0)!=0;if((b|0)==-1){if(j){k=-1;i=c;return k|0}l=ha(a+48|0,4,0,0)|0|0;ia(h>>0|0,(l|0)!=-1&1|0,1,0);k=l;i=c;return k|0}l=a+48|0;a:do if(j){ia(f|0,ha(l|0,4,0,0)|0|0,4,0);m=ha(a+36|0,4,0,0)|0|0;n=ac[(ja(ha((ha(m|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,15|0)|0)&15](m,ha(a+40|0,4,0,0)|0|0,f,f+4|0,g,d,d+8|0,e)|0;if((n|0)==1|(n|0)==2){k=-1;i=c;return k|0}else if((n|0)==3){ia(d>>0|0,ha(l|0,4,0,0)|0|0,1,0);ia(e|0,d+1|0,4,0)}n=a+32|0;while(1){m=ha(e|0,4,0,0)|0|0;if(m>>>0<=d>>>0)break a;o=m+-1|0;ia(e|0,o|0,4,0);if((Ma(ha(o>>0|0,1,0,0)|0|0,ha(n|0,4,0,0)|0|0)|0)==-1){k=-1;break}}i=c;return k|0}while(0);ia(l|0,b|0,4,0);ia(h>>0|0,1|0,1,0);k=b;i=c;return k|0}function al(a){a=a|0;var b=0;b=i;Id(a);Gn(a);i=b;return}function bl(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;Xb[(ja(ha((ha(a|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](a)|0;d=cj(b,5272)|0;ia(a+36|0,d|0,4,0);ia(a+44>>0|0,(Xb[(ja(ha((ha(d|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](d)|0)&1|0,1,0);i=c;return}function cl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;b=i;i=i+16|0;c=b+8|0;d=b;e=a+36|0;f=a+40|0;g=c+8|0;h=c;j=a+32|0;while(1){a=ha(e|0,4,0,0)|0|0;k=fc[(ja(ha((ha(a|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,15|0)|0)&15](a,ha(f|0,4,0,0)|0|0,c,g,d)|0;a=(ha(d|0,4,0,0)|0|0)-h|0;if((Ib(c|0,1,a|0,ha(j|0,4,0,0)|0|0)|0)!=(a|0)){l=-1;m=5;break}if((k|0)==2){l=-1;m=5;break}else if((k|0)!=1){m=4;break}}if((m|0)==4){l=((Sa(ha(j|0,4,0,0)|0|0)|0)!=0)<<31>>31;i=b;return l|0}else if((m|0)==5){i=b;return l|0}return 0}function dl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;d=i;if(ha(a+44>>0|0,1,0,0)|0){e=Ib(b|0,1,c|0,ha(a+32|0,4,0,0)|0|0)|0;i=d;return e|0}if((c|0)>0){f=b;g=0}else{e=0;i=d;return e|0}while(1){if((ec[(ja(ha((ha(a|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,15|0)|0)&15](a,ha(f>>0|0,1,0,1)|0|0)|0)==-1){e=g;h=6;break}b=g+1|0;if((b|0)<(c|0)){f=f+1|0;g=b}else{e=b;h=6;break}}if((h|0)==6){i=d;return e|0}return 0}function el(a,b){a=a|0;b=b|0;var c=0,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;c=i;i=i+32|0;d=c+16|0;e=c+8|0;f=c+4|0;g=c;h=(b|0)==-1;a:do if(!h){ia(e>>0|0,b|0,1,0);if(ha(a+44>>0|0,1,0,0)|0){if((Ib(e|0,1,1,ha(a+32|0,4,0,0)|0|0)|0)==1)break;else j=-1;i=c;return j|0}ia(f|0,d|0,4,0);k=e+1|0;l=a+36|0;m=a+40|0;n=d+8|0;o=d;p=a+32|0;q=e;while(1){r=ha(l|0,4,0,0)|0|0;s=ac[(ja(ha((ha(r|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,15|0)|0)&15](r,ha(m|0,4,0,0)|0|0,q,k,g,d,n,f)|0;if((ha(g|0,4,0,0)|0|0)==(q|0)){j=-1;t=12;break}if((s|0)==3){t=7;break}r=(s|0)==1;if(s>>>0>=2){j=-1;t=12;break}s=(ha(f|0,4,0,0)|0|0)-o|0;if((Ib(d|0,1,s|0,ha(p|0,4,0,0)|0|0)|0)!=(s|0)){j=-1;t=12;break}if(r)q=r?ha(g|0,4,0,0)|0|0:q;else break a}if((t|0)==7){if((Ib(q|0,1,1,ha(p|0,4,0,0)|0|0)|0)==1)break;else j=-1;i=c;return j|0}else if((t|0)==12){i=c;return j|0}}while(0);j=h?0:b;i=c;return j|0}function fl(a){a=a|0;var b=0;b=i;Id(a);Gn(a);i=b;return}function gl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;d=cj(b,5272)|0;b=a+36|0;ia(b|0,d|0,4,0);e=a+44|0;ia(e|0,Xb[(ja(ha((ha(d|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,63|0)|0)&63](d)|0|0,4,0);d=ha(b|0,4,0,0)|0|0;ia(a+53>>0|0,(Xb[(ja(ha((ha(d|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](d)|0)&1|0,1,0);if((ha(e|0,4,0,0)|0|0)>8)ki(1904);else{i=c;return}}function hl(a){a=a|0;var b=0,c=0;b=i;c=Qm(a,0)|0;i=b;return c|0}function il(a){a=a|0;var b=0,c=0;b=i;c=Qm(a,1)|0;i=b;return c|0}function jl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;c=i;i=i+32|0;d=c+16|0;e=c+4|0;f=c+8|0;g=c;h=a+52|0;j=(ha(h>>0|0,1,0,0)|0|0)!=0;if((b|0)==-1){if(j){k=-1;i=c;return k|0}l=ha(a+48|0,4,0,0)|0|0;ia(h>>0|0,(l|0)!=-1&1|0,1,0);k=l;i=c;return k|0}l=a+48|0;a:do if(j){ia(f>>0|0,ha(l|0,4,0,0)|0|0,1,0);m=ha(a+36|0,4,0,0)|0|0;n=ac[(ja(ha((ha(m|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,15|0)|0)&15](m,ha(a+40|0,4,0,0)|0|0,f,f+1|0,g,d,d+8|0,e)|0;if((n|0)==3){ia(d>>0|0,ha(l|0,4,0,0)|0|0,1,0);ia(e|0,d+1|0,4,0)}else if((n|0)==1|(n|0)==2){k=-1;i=c;return k|0}n=a+32|0;while(1){m=ha(e|0,4,0,0)|0|0;if(m>>>0<=d>>>0)break a;o=m+-1|0;ia(e|0,o|0,4,0);if((Ma(ha(o>>0|0,1,0,0)|0|0,ha(n|0,4,0,0)|0|0)|0)==-1){k=-1;break}}i=c;return k|0}while(0);ia(l|0,b|0,4,0);ia(h>>0|0,1|0,1,0);k=b;i=c;return k|0}function kl(){var a=0;a=i;Ic(0);zb(122,1328,o|0)|0;i=a;return}function ll(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;e=d;Jd(a);ia(a|0,2064|0,4,0);ia(a+32|0,b|0,4,0);ia(a+40|0,c|0,4,0);ia(a+48|0,-1|0,4,0);ia(a+52>>0|0,0|0,1,0);$i(e,a+4|0);gl(a,e);aj(e);i=d;return}function nl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;e=d;Jd(a);ia(a|0,1952|0,4,0);ia(a+32|0,b|0,4,0);$i(e,a+4|0);b=cj(e,5272)|0;aj(e);ia(a+36|0,b|0,4,0);ia(a+40|0,c|0,4,0);ia(a+44>>0|0,(Xb[(ja(ha((ha(b|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](b)|0)&1|0,1,0);i=d;return}function ol(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;e=d;Zd(a);ia(a|0,1808|0,4,0);ia(a+32|0,b|0,4,0);ia(a+40|0,c|0,4,0);ia(a+48|0,-1|0,4,0);ia(a+52>>0|0,0|0,1,0);$i(e,a+4|0);Yk(a,e);aj(e);i=d;return}function pl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;e=d;Zd(a);ia(a|0,1696|0,4,0);ia(a+32|0,b|0,4,0);$i(e,a+4|0);b=cj(e,5280)|0;aj(e);ia(a+36|0,b|0,4,0);ia(a+40|0,c|0,4,0);ia(a+44>>0|0,(Xb[(ja(ha((ha(b|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,63|0)|0)&63](b)|0)&1|0,1,0);i=d;return}function ql(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=i;d=pp(b|0)|0;e=En(d+13|0)|0;ia(e|0,d|0,4,0);ia(e+4|0,d|0,4,0);ia(e+8|0,0|0,4,0);f=e+12|0;tp(f|0,b|0,d+1|0)|0;ia(a|0,f|0,4,0);i=c;return}function rl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;e=b;f=c-e|0;if(f>>>0>4294967279)_c(a);if(f>>>0<11){ia(a>>0|0,f<<1|0,1,0);g=a+1|0}else{h=f+16&-16;j=En(h)|0;ia(a+8|0,j|0,4,0);ia(a|0,h|1|0,4,0);ia(a+4|0,f|0,4,0);g=j}if((b|0)==(c|0)){k=g;ia(k>>0|0,0|0,1,0);i=d;return}j=c-e|0;e=b;b=g;while(1){ia(b>>0|0,ha(e>>0|0,1,0,0)|0|0|0,1,0);e=e+1|0;if((e|0)==(c|0))break;else b=b+1|0}k=g+j|0;ia(k>>0|0,0|0,1,0);i=d;return}function sl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;e=b;f=c-e|0;g=f>>2;if(g>>>0>1073741807)_c(a);if(g>>>0<2){ia(a>>0|0,f>>>1|0,1,0);h=a+4|0}else{f=g+4&-4;j=En(f<<2)|0;ia(a+8|0,j|0,4,0);ia(a|0,f|1|0,4,0);ia(a+4|0,g|0,4,0);h=j}if((b|0)==(c|0)){k=h;ia(k|0,0|0,4,0);i=d;return}j=((c+-4-e|0)>>>2)+1|0;e=b;b=h;while(1){ia(b|0,ha(e|0,4,0,0)|0|0,4,0);e=e+4|0;if((e|0)==(c|0))break;else b=b+4|0}k=h+(j<<2)|0;ia(k|0,0|0,4,0);i=d;return}function tl(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;var 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;h=i;i=i+112|0;j=h;k=(d-c|0)/12|0;if(k>>>0>100){l=Eo(k)|0;if(!l)zo();else{m=l;n=l}}else{m=0;n=j}j=(c|0)==(d|0);if(j){o=0;p=k}else{l=c;q=0;r=k;k=n;while(1){s=ha(l>>0|0,1,0,0)|0|0;if(!(s&1))t=(s&255)>>>1;else t=ha(l+4|0,4,0,0)|0|0;if(!t){ia(k>>0|0,2|0,1,0);u=q+1|0;v=r+-1|0}else{ia(k>>0|0,1|0,1,0);u=q;v=r}l=l+12|0;if((l|0)==(d|0)){o=u;p=v;break}else{q=u;r=v;k=k+1|0}}}k=0;v=o;o=p;a:while(1){p=ha(a|0,4,0,0)|0|0;do if(p)if((ha(p+12|0,4,0,0)|0|0)==(ha(p+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(p|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](p)|0)==-1){ia(a|0,0|0,4,0);w=0;break}else{w=ha(a|0,4,0,0)|0|0;break}else w=p;else w=0;while(0);p=(w|0)==0;r=ha(b|0,4,0,0)|0|0;if(r)if((ha(r+12|0,4,0,0)|0|0)==(ha(r+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(r|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](r)|0)==-1:0){ia(b|0,0|0,4,0);x=0}else x=r;else x=0;y=(x|0)==0;z=ha(a|0,4,0,0)|0|0;if(!((p^y)&(o|0)!=0))break;p=ha(z+12|0,4,0,0)|0|0;if((p|0)==(ha(z+16|0,4,0,0)|0|0))A=Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0;else A=ha(p>>0|0,1,0,1)|0|0;p=A&255;if(g)B=p;else B=ec[(ja(ha((ha(e|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,15|0)|0)&15](e,p)|0;p=k+1|0;if(j){k=p;continue}else{C=0;D=c;E=v;F=o;G=n}while(1){do if((ha(G>>0|0,1,0,0)|0|0)==1){if(!((ha(D>>0|0,1,0,0)|0)&1))H=D+1|0;else H=ha(D+8|0,4,0,0)|0|0;r=ha(H+k>>0|0,1,0,0)|0|0;if(g)I=r;else I=ec[(ja(ha((ha(e|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,15|0)|0)&15](e,r)|0;if(B<<24>>24!=I<<24>>24){ia(G>>0|0,0|0,1,0);J=C;K=E;L=F+-1|0;break}r=ha(D>>0|0,1,0,0)|0|0;if(!(r&1))M=(r&255)>>>1;else M=ha(D+4|0,4,0,0)|0|0;if((M|0)==(p|0)){ia(G>>0|0,2|0,1,0);J=1;K=E+1|0;L=F+-1|0}else{J=1;K=E;L=F}}else{J=C;K=E;L=F}while(0);D=D+12|0;if((D|0)==(d|0))break;else{C=J;E=K;F=L;G=G+1|0}}if(!J){k=p;v=K;o=L;continue}r=ha(a|0,4,0,0)|0|0;u=r+12|0;q=ha(u|0,4,0,0)|0|0;if((q|0)==(ha(r+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(r|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](r)|0;else ia(u|0,q+1|0,4,0);if((K+L|0)>>>0<2){k=p;v=K;o=L;continue}else{N=c;O=K;P=n}while(1){if((ha(P>>0|0,1,0,0)|0|0)==2){q=ha(N>>0|0,1,0,0)|0|0;if(!(q&1))Q=(q&255)>>>1;else Q=ha(N+4|0,4,0,0)|0|0;if((Q|0)!=(p|0)){ia(P>>0|0,0|0,1,0);R=O+-1|0}else R=O}else R=O;q=N+12|0;if((q|0)==(d|0)){k=p;v=R;o=L;continue a}else{N=q;O=R;P=P+1|0}}}do if(z)if((ha(z+12|0,4,0,0)|0|0)==(ha(z+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0)==-1){ia(a|0,0|0,4,0);S=0;break}else{S=ha(a|0,4,0,0)|0|0;break}else S=z;else S=0;while(0);z=(S|0)==0;do if(!y){if((ha(x+12|0,4,0,0)|0|0)!=(ha(x+16|0,4,0,0)|0|0))if(z)break;else{T=67;break}if((Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0)!=-1)if(z)break;else{T=67;break}else{ia(b|0,0|0,4,0);T=65;break}}else T=65;while(0);if((T|0)==65?z:0)T=67;if((T|0)==67)ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);b:do if(j)T=71;else{z=c;b=n;while(1){if((ha(b>>0|0,1,0,0)|0|0)==2){U=z;break b}z=z+12|0;if((z|0)==(d|0)){T=71;break}else b=b+1|0}}while(0);if((T|0)==71){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);U=d}if(!m){i=h;return U|0}Fo(m);i=h;return U|0}function ul(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;var 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;b=i;i=i+224|0;h=b+198|0;j=b+196|0;k=b+16|0;l=b+4|0;m=b+192|0;n=b+32|0;o=b;p=b+28|0;q=Ck(e)|0;Ff(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j>>0|0,1,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j)if((ha(j+12|0,4,0,0)|0|0)==(ha(j+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0)==-1:0){ia(c|0,0|0,4,0);w=0}else w=j;else w=0;t=(w|0)==0;x=ha(d|0,4,0,0)|0|0;do if(x){if((ha(x+12|0,4,0,0)|0|0)!=(ha(x+16|0,4,0,0)|0|0))if(t){y=x;break}else{z=x;A=v;break a}if((Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0)!=-1)if(t){y=x;break}else{z=x;A=v;break a}else{ia(d|0,0|0,4,0);B=14;break}}else B=14;while(0);if((B|0)==14){B=0;if(t){z=0;A=v;break}else y=0}x=ha(l>>0|0,1,0,0)|0|0;C=(x&1)==0;if(C)D=(x&255)>>>1;else D=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+D|0)){if(C){E=(x&255)>>>1;F=(x&255)>>>1}else{x=ha(e|0,4,0,0)|0|0;E=x;F=x}hd(l,E<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))G=10;else G=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,G,0);if(!((ha(l>>0|0,1,0,0)|0)&1))H=r;else H=ha(s|0,4,0,0)|0|0;ia(m|0,H+F|0,4,0);I=H}else I=v;x=w+12|0;C=ha(x|0,4,0,0)|0|0;J=w+16|0;if((C|0)==(ha(J|0,4,0,0)|0|0))K=Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0;else K=ha(C>>0|0,1,0,1)|0|0;if(pf(K&255,q,I,m,p,u,k,n,o,h)|0){z=y;A=I;break}C=ha(x|0,4,0,0)|0|0;if((C|0)==(ha(J|0,4,0,0)|0|0)){Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](w)|0;j=w;v=I;continue}else{ia(x|0,C+1|0,4,0);j=w;v=I;continue}}I=ha(k>>0|0,1,0,0)|0|0;if(!(I&1))L=(I&255)>>>1;else L=ha(k+4|0,4,0,0)|0|0;if((L|0)!=0?(L=ha(o|0,4,0,0)|0|0,(L-n|0)<160):0){I=ha(p|0,4,0,0)|0|0;ia(o|0,L+4|0,4,0);ia(L|0,I|0,4,0)}ia(g|0,Rm(A,ha(m|0,4,0,0)|0|0,f,q)|0|0,4,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(w)if((ha(w+12|0,4,0,0)|0|0)==(ha(w+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0)==-1:0){ia(c|0,0|0,4,0);M=0}else M=w;else M=0;w=(M|0)==0;do if(z){if((ha(z+12|0,4,0,0)|0|0)!=(ha(z+16|0,4,0,0)|0|0)){if(!w)break;ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}if((Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0)==-1){ia(d|0,0|0,4,0);B=50;break}if(w^(z|0)==0){ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}}else B=50;while(0);if((B|0)==50?!w:0){ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}function vl(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;var 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,I=0,J=0,K=0,L=0,M=0,N=0;b=i;i=i+224|0;h=b+198|0;j=b+196|0;k=b+16|0;l=b+4|0;m=b+192|0;n=b+32|0;o=b;p=b+28|0;q=Ck(e)|0;Ff(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j>>0|0,1,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j)if((ha(j+12|0,4,0,0)|0|0)==(ha(j+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0)==-1:0){ia(c|0,0|0,4,0);w=0}else w=j;else w=0;t=(w|0)==0;x=ha(d|0,4,0,0)|0|0;do if(x){if((ha(x+12|0,4,0,0)|0|0)!=(ha(x+16|0,4,0,0)|0|0))if(t){y=x;break}else{z=x;A=v;break a}if((Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0)!=-1)if(t){y=x;break}else{z=x;A=v;break a}else{ia(d|0,0|0,4,0);B=14;break}}else B=14;while(0);if((B|0)==14){B=0;if(t){z=0;A=v;break}else y=0}x=ha(l>>0|0,1,0,0)|0|0;C=(x&1)==0;if(C)D=(x&255)>>>1;else D=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+D|0)){if(C){E=(x&255)>>>1;F=(x&255)>>>1}else{x=ha(e|0,4,0,0)|0|0;E=x;F=x}hd(l,E<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))G=10;else G=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,G,0);if(!((ha(l>>0|0,1,0,0)|0)&1))I=r;else I=ha(s|0,4,0,0)|0|0;ia(m|0,I+F|0,4,0);J=I}else J=v;x=w+12|0;C=ha(x|0,4,0,0)|0|0;K=w+16|0;if((C|0)==(ha(K|0,4,0,0)|0|0))L=Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0;else L=ha(C>>0|0,1,0,1)|0|0;if(pf(L&255,q,J,m,p,u,k,n,o,h)|0){z=y;A=J;break}C=ha(x|0,4,0,0)|0|0;if((C|0)==(ha(K|0,4,0,0)|0|0)){Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](w)|0;j=w;v=J;continue}else{ia(x|0,C+1|0,4,0);j=w;v=J;continue}}J=ha(k>>0|0,1,0,0)|0|0;if(!(J&1))M=(J&255)>>>1;else M=ha(k+4|0,4,0,0)|0|0;if((M|0)!=0?(M=ha(o|0,4,0,0)|0|0,(M-n|0)<160):0){J=ha(p|0,4,0,0)|0|0;ia(o|0,M+4|0,4,0);ia(M|0,J|0,4,0)}J=Sm(A,ha(m|0,4,0,0)|0|0,f,q)|0;q=g;ia(q|0,J|0,4,0);ia(q+4|0,H|0,4,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(w)if((ha(w+12|0,4,0,0)|0|0)==(ha(w+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0)==-1:0){ia(c|0,0|0,4,0);N=0}else N=w;else N=0;w=(N|0)==0;do if(z){if((ha(z+12|0,4,0,0)|0|0)!=(ha(z+16|0,4,0,0)|0|0)){if(!w)break;ia(a|0,N|0,4,0);ed(l);ed(k);i=b;return}if((Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0)==-1){ia(d|0,0|0,4,0);B=50;break}if(w^(z|0)==0){ia(a|0,N|0,4,0);ed(l);ed(k);i=b;return}}else B=50;while(0);if((B|0)==50?!w:0){ia(a|0,N|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,N|0,4,0);ed(l);ed(k);i=b;return}function wl(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;var 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;b=i;i=i+224|0;h=b+198|0;j=b+196|0;k=b+16|0;l=b+4|0;m=b+192|0;n=b+32|0;o=b;p=b+28|0;q=Ck(e)|0;Ff(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j>>0|0,1,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j)if((ha(j+12|0,4,0,0)|0|0)==(ha(j+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0)==-1:0){ia(c|0,0|0,4,0);w=0}else w=j;else w=0;t=(w|0)==0;x=ha(d|0,4,0,0)|0|0;do if(x){if((ha(x+12|0,4,0,0)|0|0)!=(ha(x+16|0,4,0,0)|0|0))if(t){y=x;break}else{z=x;A=v;break a}if((Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0)!=-1)if(t){y=x;break}else{z=x;A=v;break a}else{ia(d|0,0|0,4,0);B=14;break}}else B=14;while(0);if((B|0)==14){B=0;if(t){z=0;A=v;break}else y=0}x=ha(l>>0|0,1,0,0)|0|0;C=(x&1)==0;if(C)D=(x&255)>>>1;else D=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+D|0)){if(C){E=(x&255)>>>1;F=(x&255)>>>1}else{x=ha(e|0,4,0,0)|0|0;E=x;F=x}hd(l,E<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))G=10;else G=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,G,0);if(!((ha(l>>0|0,1,0,0)|0)&1))H=r;else H=ha(s|0,4,0,0)|0|0;ia(m|0,H+F|0,4,0);I=H}else I=v;x=w+12|0;C=ha(x|0,4,0,0)|0|0;J=w+16|0;if((C|0)==(ha(J|0,4,0,0)|0|0))K=Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0;else K=ha(C>>0|0,1,0,1)|0|0;if(pf(K&255,q,I,m,p,u,k,n,o,h)|0){z=y;A=I;break}C=ha(x|0,4,0,0)|0|0;if((C|0)==(ha(J|0,4,0,0)|0|0)){Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](w)|0;j=w;v=I;continue}else{ia(x|0,C+1|0,4,0);j=w;v=I;continue}}I=ha(k>>0|0,1,0,0)|0|0;if(!(I&1))L=(I&255)>>>1;else L=ha(k+4|0,4,0,0)|0|0;if((L|0)!=0?(L=ha(o|0,4,0,0)|0|0,(L-n|0)<160):0){I=ha(p|0,4,0,0)|0|0;ia(o|0,L+4|0,4,0);ia(L|0,I|0,4,0)}ia(g|0,Tm(A,ha(m|0,4,0,0)|0|0,f,q)|0|0,2,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(w)if((ha(w+12|0,4,0,0)|0|0)==(ha(w+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0)==-1:0){ia(c|0,0|0,4,0);M=0}else M=w;else M=0;w=(M|0)==0;do if(z){if((ha(z+12|0,4,0,0)|0|0)!=(ha(z+16|0,4,0,0)|0|0)){if(!w)break;ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}if((Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0)==-1){ia(d|0,0|0,4,0);B=50;break}if(w^(z|0)==0){ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}}else B=50;while(0);if((B|0)==50?!w:0){ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}function xl(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;var 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;b=i;i=i+224|0;h=b+198|0;j=b+196|0;k=b+16|0;l=b+4|0;m=b+192|0;n=b+32|0;o=b;p=b+28|0;q=Ck(e)|0;Ff(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j>>0|0,1,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j)if((ha(j+12|0,4,0,0)|0|0)==(ha(j+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0)==-1:0){ia(c|0,0|0,4,0);w=0}else w=j;else w=0;t=(w|0)==0;x=ha(d|0,4,0,0)|0|0;do if(x){if((ha(x+12|0,4,0,0)|0|0)!=(ha(x+16|0,4,0,0)|0|0))if(t){y=x;break}else{z=x;A=v;break a}if((Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0)!=-1)if(t){y=x;break}else{z=x;A=v;break a}else{ia(d|0,0|0,4,0);B=14;break}}else B=14;while(0);if((B|0)==14){B=0;if(t){z=0;A=v;break}else y=0}x=ha(l>>0|0,1,0,0)|0|0;C=(x&1)==0;if(C)D=(x&255)>>>1;else D=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+D|0)){if(C){E=(x&255)>>>1;F=(x&255)>>>1}else{x=ha(e|0,4,0,0)|0|0;E=x;F=x}hd(l,E<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))G=10;else G=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,G,0);if(!((ha(l>>0|0,1,0,0)|0)&1))H=r;else H=ha(s|0,4,0,0)|0|0;ia(m|0,H+F|0,4,0);I=H}else I=v;x=w+12|0;C=ha(x|0,4,0,0)|0|0;J=w+16|0;if((C|0)==(ha(J|0,4,0,0)|0|0))K=Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0;else K=ha(C>>0|0,1,0,1)|0|0;if(pf(K&255,q,I,m,p,u,k,n,o,h)|0){z=y;A=I;break}C=ha(x|0,4,0,0)|0|0;if((C|0)==(ha(J|0,4,0,0)|0|0)){Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](w)|0;j=w;v=I;continue}else{ia(x|0,C+1|0,4,0);j=w;v=I;continue}}I=ha(k>>0|0,1,0,0)|0|0;if(!(I&1))L=(I&255)>>>1;else L=ha(k+4|0,4,0,0)|0|0;if((L|0)!=0?(L=ha(o|0,4,0,0)|0|0,(L-n|0)<160):0){I=ha(p|0,4,0,0)|0|0;ia(o|0,L+4|0,4,0);ia(L|0,I|0,4,0)}ia(g|0,Um(A,ha(m|0,4,0,0)|0|0,f,q)|0|0,4,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(w)if((ha(w+12|0,4,0,0)|0|0)==(ha(w+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0)==-1:0){ia(c|0,0|0,4,0);M=0}else M=w;else M=0;w=(M|0)==0;do if(z){if((ha(z+12|0,4,0,0)|0|0)!=(ha(z+16|0,4,0,0)|0|0)){if(!w)break;ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}if((Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0)==-1){ia(d|0,0|0,4,0);B=50;break}if(w^(z|0)==0){ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}}else B=50;while(0);if((B|0)==50?!w:0){ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}function yl(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;var 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;b=i;i=i+224|0;h=b+198|0;j=b+196|0;k=b+16|0;l=b+4|0;m=b+192|0;n=b+32|0;o=b;p=b+28|0;q=Ck(e)|0;Ff(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j>>0|0,1,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j)if((ha(j+12|0,4,0,0)|0|0)==(ha(j+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0)==-1:0){ia(c|0,0|0,4,0);w=0}else w=j;else w=0;t=(w|0)==0;x=ha(d|0,4,0,0)|0|0;do if(x){if((ha(x+12|0,4,0,0)|0|0)!=(ha(x+16|0,4,0,0)|0|0))if(t){y=x;break}else{z=x;A=v;break a}if((Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0)!=-1)if(t){y=x;break}else{z=x;A=v;break a}else{ia(d|0,0|0,4,0);B=14;break}}else B=14;while(0);if((B|0)==14){B=0;if(t){z=0;A=v;break}else y=0}x=ha(l>>0|0,1,0,0)|0|0;C=(x&1)==0;if(C)D=(x&255)>>>1;else D=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+D|0)){if(C){E=(x&255)>>>1;F=(x&255)>>>1}else{x=ha(e|0,4,0,0)|0|0;E=x;F=x}hd(l,E<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))G=10;else G=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,G,0);if(!((ha(l>>0|0,1,0,0)|0)&1))H=r;else H=ha(s|0,4,0,0)|0|0;ia(m|0,H+F|0,4,0);I=H}else I=v;x=w+12|0;C=ha(x|0,4,0,0)|0|0;J=w+16|0;if((C|0)==(ha(J|0,4,0,0)|0|0))K=Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0;else K=ha(C>>0|0,1,0,1)|0|0;if(pf(K&255,q,I,m,p,u,k,n,o,h)|0){z=y;A=I;break}C=ha(x|0,4,0,0)|0|0;if((C|0)==(ha(J|0,4,0,0)|0|0)){Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](w)|0;j=w;v=I;continue}else{ia(x|0,C+1|0,4,0);j=w;v=I;continue}}I=ha(k>>0|0,1,0,0)|0|0;if(!(I&1))L=(I&255)>>>1;else L=ha(k+4|0,4,0,0)|0|0;if((L|0)!=0?(L=ha(o|0,4,0,0)|0|0,(L-n|0)<160):0){I=ha(p|0,4,0,0)|0|0;ia(o|0,L+4|0,4,0);ia(L|0,I|0,4,0)}ia(g|0,Vm(A,ha(m|0,4,0,0)|0|0,f,q)|0|0,4,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(w)if((ha(w+12|0,4,0,0)|0|0)==(ha(w+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0)==-1:0){ia(c|0,0|0,4,0);M=0}else M=w;else M=0;w=(M|0)==0;do if(z){if((ha(z+12|0,4,0,0)|0|0)!=(ha(z+16|0,4,0,0)|0|0)){if(!w)break;ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}if((Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0)==-1){ia(d|0,0|0,4,0);B=50;break}if(w^(z|0)==0){ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}}else B=50;while(0);if((B|0)==50?!w:0){ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,M|0,4,0);ed(l);ed(k);i=b;return}function zl(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;var 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,I=0,J=0,K=0,L=0,M=0,N=0;b=i;i=i+224|0;h=b+198|0;j=b+196|0;k=b+16|0;l=b+4|0;m=b+192|0;n=b+32|0;o=b;p=b+28|0;q=Ck(e)|0;Ff(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j>>0|0,1,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j)if((ha(j+12|0,4,0,0)|0|0)==(ha(j+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0)==-1:0){ia(c|0,0|0,4,0);w=0}else w=j;else w=0;t=(w|0)==0;x=ha(d|0,4,0,0)|0|0;do if(x){if((ha(x+12|0,4,0,0)|0|0)!=(ha(x+16|0,4,0,0)|0|0))if(t){y=x;break}else{z=x;A=v;break a}if((Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0)!=-1)if(t){y=x;break}else{z=x;A=v;break a}else{ia(d|0,0|0,4,0);B=14;break}}else B=14;while(0);if((B|0)==14){B=0;if(t){z=0;A=v;break}else y=0}x=ha(l>>0|0,1,0,0)|0|0;C=(x&1)==0;if(C)D=(x&255)>>>1;else D=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+D|0)){if(C){E=(x&255)>>>1;F=(x&255)>>>1}else{x=ha(e|0,4,0,0)|0|0;E=x;F=x}hd(l,E<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))G=10;else G=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,G,0);if(!((ha(l>>0|0,1,0,0)|0)&1))I=r;else I=ha(s|0,4,0,0)|0|0;ia(m|0,I+F|0,4,0);J=I}else J=v;x=w+12|0;C=ha(x|0,4,0,0)|0|0;K=w+16|0;if((C|0)==(ha(K|0,4,0,0)|0|0))L=Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0;else L=ha(C>>0|0,1,0,1)|0|0;if(pf(L&255,q,J,m,p,u,k,n,o,h)|0){z=y;A=J;break}C=ha(x|0,4,0,0)|0|0;if((C|0)==(ha(K|0,4,0,0)|0|0)){Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](w)|0;j=w;v=J;continue}else{ia(x|0,C+1|0,4,0);j=w;v=J;continue}}J=ha(k>>0|0,1,0,0)|0|0;if(!(J&1))M=(J&255)>>>1;else M=ha(k+4|0,4,0,0)|0|0;if((M|0)!=0?(M=ha(o|0,4,0,0)|0|0,(M-n|0)<160):0){J=ha(p|0,4,0,0)|0|0;ia(o|0,M+4|0,4,0);ia(M|0,J|0,4,0)}J=Wm(A,ha(m|0,4,0,0)|0|0,f,q)|0;q=g;ia(q|0,J|0,4,0);ia(q+4|0,H|0,4,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(w)if((ha(w+12|0,4,0,0)|0|0)==(ha(w+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(w|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](w)|0)==-1:0){ia(c|0,0|0,4,0);N=0}else N=w;else N=0;w=(N|0)==0;do if(z){if((ha(z+12|0,4,0,0)|0|0)!=(ha(z+16|0,4,0,0)|0|0)){if(!w)break;ia(a|0,N|0,4,0);ed(l);ed(k);i=b;return}if((Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0)==-1){ia(d|0,0|0,4,0);B=50;break}if(w^(z|0)==0){ia(a|0,N|0,4,0);ed(l);ed(k);i=b;return}}else B=50;while(0);if((B|0)==50?!w:0){ia(a|0,N|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,N|0,4,0);ed(l);ed(k);i=b;return}function Al(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;var 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;b=i;i=i+256|0;h=b+208|0;j=b+200|0;k=b+240|0;l=b;m=b+188|0;n=b+184|0;o=b+16|0;p=b+176|0;q=b+180|0;r=b+241|0;s=b+242|0;Gf(l,e,h,j,k);ia(m+0|0,0|0,4,0);ia(m+4|0,0|0,4,0);ia(m+8|0,0|0,4,0);hd(m,10,0);if(!((ha(m>>0|0,1,0,0)|0)&1)){e=m+1|0;t=e;u=m+8|0;v=e}else{e=m+8|0;t=m+1|0;u=e;v=ha(e|0,4,0,0)|0|0}ia(n|0,v|0,4,0);ia(p|0,o|0,4,0);ia(q|0,0|0,4,0);ia(r>>0|0,1|0,1,0);ia(s>>0|0,69|0,1,0);e=m+4|0;w=ha(j>>0|0,1,0,0)|0|0;j=ha(k>>0|0,1,0,0)|0|0;k=ha(c|0,4,0,0)|0|0;x=v;a:while(1){if(k)if((ha(k+12|0,4,0,0)|0|0)==(ha(k+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0)==-1:0){ia(c|0,0|0,4,0);y=0}else y=k;else y=0;v=(y|0)==0;z=ha(d|0,4,0,0)|0|0;do if(z){if((ha(z+12|0,4,0,0)|0|0)!=(ha(z+16|0,4,0,0)|0|0))if(v){A=z;break}else{B=z;C=x;break a}if((Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0)!=-1)if(v){A=z;break}else{B=z;C=x;break a}else{ia(d|0,0|0,4,0);D=14;break}}else D=14;while(0);if((D|0)==14){D=0;if(v){B=0;C=x;break}else A=0}z=ha(m>>0|0,1,0,0)|0|0;E=(z&1)==0;if(E)F=(z&255)>>>1;else F=ha(e|0,4,0,0)|0|0;if((ha(n|0,4,0,0)|0|0)==(x+F|0)){if(E){G=(z&255)>>>1;H=(z&255)>>>1}else{z=ha(e|0,4,0,0)|0|0;G=z;H=z}hd(m,G<<1,0);if(!((ha(m>>0|0,1,0,0)|0)&1))I=10;else I=((ha(m|0,4,0,0)|0)&-2)+-1|0;hd(m,I,0);if(!((ha(m>>0|0,1,0,0)|0)&1))J=t;else J=ha(u|0,4,0,0)|0|0;ia(n|0,J+H|0,4,0);K=J}else K=x;z=y+12|0;E=ha(z|0,4,0,0)|0|0;L=y+16|0;if((E|0)==(ha(L|0,4,0,0)|0|0))M=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else M=ha(E>>0|0,1,0,1)|0|0;if(Hf(M&255,r,s,K,n,w,j,l,o,p,q,h)|0){B=A;C=K;break}E=ha(z|0,4,0,0)|0|0;if((E|0)==(ha(L|0,4,0,0)|0|0)){Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](y)|0;k=y;x=K;continue}else{ia(z|0,E+1|0,4,0);k=y;x=K;continue}}K=ha(l>>0|0,1,0,0)|0|0;if(!(K&1))N=(K&255)>>>1;else N=ha(l+4|0,4,0,0)|0|0;if(!((N|0)==0|(ha(r>>0|0,1,0,0)|0|0)==0)?(r=ha(p|0,4,0,0)|0|0,(r-o|0)<160):0){N=ha(q|0,4,0,0)|0|0;ia(p|0,r+4|0,4,0);ia(r|0,N|0,4,0)}ia(g|0,+(+Xm(C,ha(n|0,4,0,0)|0|0,f)),4,1);ni(l,o,ha(p|0,4,0,0)|0|0,f);if(y)if((ha(y+12|0,4,0,0)|0|0)==(ha(y+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0)==-1:0){ia(c|0,0|0,4,0);O=0}else O=y;else O=0;y=(O|0)==0;do if(B){if((ha(B+12|0,4,0,0)|0|0)!=(ha(B+16|0,4,0,0)|0|0)){if(!y)break;ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}if((Xb[(ja(ha((ha(B|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](B)|0)==-1){ia(d|0,0|0,4,0);D=50;break}if(y^(B|0)==0){ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}}else D=50;while(0);if((D|0)==50?!y:0){ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}function Bl(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;var 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;b=i;i=i+256|0;h=b+208|0;j=b+200|0;k=b+240|0;l=b;m=b+188|0;n=b+184|0;o=b+16|0;p=b+176|0;q=b+180|0;r=b+241|0;s=b+242|0;Gf(l,e,h,j,k);ia(m+0|0,0|0,4,0);ia(m+4|0,0|0,4,0);ia(m+8|0,0|0,4,0);hd(m,10,0);if(!((ha(m>>0|0,1,0,0)|0)&1)){e=m+1|0;t=e;u=m+8|0;v=e}else{e=m+8|0;t=m+1|0;u=e;v=ha(e|0,4,0,0)|0|0}ia(n|0,v|0,4,0);ia(p|0,o|0,4,0);ia(q|0,0|0,4,0);ia(r>>0|0,1|0,1,0);ia(s>>0|0,69|0,1,0);e=m+4|0;w=ha(j>>0|0,1,0,0)|0|0;j=ha(k>>0|0,1,0,0)|0|0;k=ha(c|0,4,0,0)|0|0;x=v;a:while(1){if(k)if((ha(k+12|0,4,0,0)|0|0)==(ha(k+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0)==-1:0){ia(c|0,0|0,4,0);y=0}else y=k;else y=0;v=(y|0)==0;z=ha(d|0,4,0,0)|0|0;do if(z){if((ha(z+12|0,4,0,0)|0|0)!=(ha(z+16|0,4,0,0)|0|0))if(v){A=z;break}else{B=z;C=x;break a}if((Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0)!=-1)if(v){A=z;break}else{B=z;C=x;break a}else{ia(d|0,0|0,4,0);D=14;break}}else D=14;while(0);if((D|0)==14){D=0;if(v){B=0;C=x;break}else A=0}z=ha(m>>0|0,1,0,0)|0|0;E=(z&1)==0;if(E)F=(z&255)>>>1;else F=ha(e|0,4,0,0)|0|0;if((ha(n|0,4,0,0)|0|0)==(x+F|0)){if(E){G=(z&255)>>>1;H=(z&255)>>>1}else{z=ha(e|0,4,0,0)|0|0;G=z;H=z}hd(m,G<<1,0);if(!((ha(m>>0|0,1,0,0)|0)&1))I=10;else I=((ha(m|0,4,0,0)|0)&-2)+-1|0;hd(m,I,0);if(!((ha(m>>0|0,1,0,0)|0)&1))J=t;else J=ha(u|0,4,0,0)|0|0;ia(n|0,J+H|0,4,0);K=J}else K=x;z=y+12|0;E=ha(z|0,4,0,0)|0|0;L=y+16|0;if((E|0)==(ha(L|0,4,0,0)|0|0))M=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else M=ha(E>>0|0,1,0,1)|0|0;if(Hf(M&255,r,s,K,n,w,j,l,o,p,q,h)|0){B=A;C=K;break}E=ha(z|0,4,0,0)|0|0;if((E|0)==(ha(L|0,4,0,0)|0|0)){Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](y)|0;k=y;x=K;continue}else{ia(z|0,E+1|0,4,0);k=y;x=K;continue}}K=ha(l>>0|0,1,0,0)|0|0;if(!(K&1))N=(K&255)>>>1;else N=ha(l+4|0,4,0,0)|0|0;if(!((N|0)==0|(ha(r>>0|0,1,0,0)|0|0)==0)?(r=ha(p|0,4,0,0)|0|0,(r-o|0)<160):0){N=ha(q|0,4,0,0)|0|0;ia(p|0,r+4|0,4,0);ia(r|0,N|0,4,0)}ia(g|0,+(+Ym(C,ha(n|0,4,0,0)|0|0,f)),8,1);ni(l,o,ha(p|0,4,0,0)|0|0,f);if(y)if((ha(y+12|0,4,0,0)|0|0)==(ha(y+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0)==-1:0){ia(c|0,0|0,4,0);O=0}else O=y;else O=0;y=(O|0)==0;do if(B){if((ha(B+12|0,4,0,0)|0|0)!=(ha(B+16|0,4,0,0)|0|0)){if(!y)break;ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}if((Xb[(ja(ha((ha(B|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](B)|0)==-1){ia(d|0,0|0,4,0);D=50;break}if(y^(B|0)==0){ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}}else D=50;while(0);if((D|0)==50?!y:0){ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}function Cl(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;var 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;b=i;i=i+256|0;h=b+208|0;j=b+200|0;k=b+240|0;l=b;m=b+188|0;n=b+184|0;o=b+16|0;p=b+176|0;q=b+180|0;r=b+241|0;s=b+242|0;Gf(l,e,h,j,k);ia(m+0|0,0|0,4,0);ia(m+4|0,0|0,4,0);ia(m+8|0,0|0,4,0);hd(m,10,0);if(!((ha(m>>0|0,1,0,0)|0)&1)){e=m+1|0;t=e;u=m+8|0;v=e}else{e=m+8|0;t=m+1|0;u=e;v=ha(e|0,4,0,0)|0|0}ia(n|0,v|0,4,0);ia(p|0,o|0,4,0);ia(q|0,0|0,4,0);ia(r>>0|0,1|0,1,0);ia(s>>0|0,69|0,1,0);e=m+4|0;w=ha(j>>0|0,1,0,0)|0|0;j=ha(k>>0|0,1,0,0)|0|0;k=ha(c|0,4,0,0)|0|0;x=v;a:while(1){if(k)if((ha(k+12|0,4,0,0)|0|0)==(ha(k+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0)==-1:0){ia(c|0,0|0,4,0);y=0}else y=k;else y=0;v=(y|0)==0;z=ha(d|0,4,0,0)|0|0;do if(z){if((ha(z+12|0,4,0,0)|0|0)!=(ha(z+16|0,4,0,0)|0|0))if(v){A=z;break}else{B=z;C=x;break a}if((Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0)!=-1)if(v){A=z;break}else{B=z;C=x;break a}else{ia(d|0,0|0,4,0);D=14;break}}else D=14;while(0);if((D|0)==14){D=0;if(v){B=0;C=x;break}else A=0}z=ha(m>>0|0,1,0,0)|0|0;E=(z&1)==0;if(E)F=(z&255)>>>1;else F=ha(e|0,4,0,0)|0|0;if((ha(n|0,4,0,0)|0|0)==(x+F|0)){if(E){G=(z&255)>>>1;H=(z&255)>>>1}else{z=ha(e|0,4,0,0)|0|0;G=z;H=z}hd(m,G<<1,0);if(!((ha(m>>0|0,1,0,0)|0)&1))I=10;else I=((ha(m|0,4,0,0)|0)&-2)+-1|0;hd(m,I,0);if(!((ha(m>>0|0,1,0,0)|0)&1))J=t;else J=ha(u|0,4,0,0)|0|0;ia(n|0,J+H|0,4,0);K=J}else K=x;z=y+12|0;E=ha(z|0,4,0,0)|0|0;L=y+16|0;if((E|0)==(ha(L|0,4,0,0)|0|0))M=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else M=ha(E>>0|0,1,0,1)|0|0;if(Hf(M&255,r,s,K,n,w,j,l,o,p,q,h)|0){B=A;C=K;break}E=ha(z|0,4,0,0)|0|0;if((E|0)==(ha(L|0,4,0,0)|0|0)){Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](y)|0;k=y;x=K;continue}else{ia(z|0,E+1|0,4,0);k=y;x=K;continue}}K=ha(l>>0|0,1,0,0)|0|0;if(!(K&1))N=(K&255)>>>1;else N=ha(l+4|0,4,0,0)|0|0;if(!((N|0)==0|(ha(r>>0|0,1,0,0)|0|0)==0)?(r=ha(p|0,4,0,0)|0|0,(r-o|0)<160):0){N=ha(q|0,4,0,0)|0|0;ia(p|0,r+4|0,4,0);ia(r|0,N|0,4,0)}ia(g|0,+(+Zm(C,ha(n|0,4,0,0)|0|0,f)),8,1);ni(l,o,ha(p|0,4,0,0)|0|0,f);if(y)if((ha(y+12|0,4,0,0)|0|0)==(ha(y+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0)==-1:0){ia(c|0,0|0,4,0);O=0}else O=y;else O=0;y=(O|0)==0;do if(B){if((ha(B+12|0,4,0,0)|0|0)!=(ha(B+16|0,4,0,0)|0|0)){if(!y)break;ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}if((Xb[(ja(ha((ha(B|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](B)|0)==-1){ia(d|0,0|0,4,0);D=50;break}if(y^(B|0)==0){ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}}else D=50;while(0);if((D|0)==50?!y:0){ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,O|0,4,0);ed(m);ed(l);i=b;return}function Dl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;ia(f|0,d|0,4,0);d=$a(b|0)|0;b=wn(a,c,f)|0;if(!d){i=e;return b|0}$a(d|0)|0;i=e;return b|0}function El(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;var 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;h=i;i=i+112|0;j=h;k=(d-c|0)/12|0;if(k>>>0>100){l=Eo(k)|0;if(!l)zo();else{m=l;n=l}}else{m=0;n=j}j=(c|0)==(d|0);if(j){o=0;p=k}else{l=c;q=0;r=k;k=n;while(1){s=ha(l>>0|0,1,0,0)|0|0;if(!(s&1))t=(s&255)>>>1;else t=ha(l+4|0,4,0,0)|0|0;if(!t){ia(k>>0|0,2|0,1,0);u=q+1|0;v=r+-1|0}else{ia(k>>0|0,1|0,1,0);u=q;v=r}l=l+12|0;if((l|0)==(d|0)){o=u;p=v;break}else{q=u;r=v;k=k+1|0}}}k=0;v=o;o=p;a:while(1){p=ha(a|0,4,0,0)|0|0;do if(p){r=ha(p+12|0,4,0,0)|0|0;if((r|0)==(ha(p+16|0,4,0,0)|0|0))w=Xb[(ja(ha((ha(p|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](p)|0;else w=ha(r|0,4,0,0)|0|0;if((w|0)==-1){ia(a|0,0|0,4,0);x=1;break}else{x=(ha(a|0,4,0,0)|0|0)==0;break}}else x=1;while(0);p=ha(b|0,4,0,0)|0|0;if(p){r=ha(p+12|0,4,0,0)|0|0;if((r|0)==(ha(p+16|0,4,0,0)|0|0))y=Xb[(ja(ha((ha(p|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](p)|0;else y=ha(r|0,4,0,0)|0|0;if((y|0)==-1){ia(b|0,0|0,4,0);z=0;A=1}else{z=p;A=0}}else{z=0;A=1}B=ha(a|0,4,0,0)|0|0;if(!((x^A)&(o|0)!=0))break;p=ha(B+12|0,4,0,0)|0|0;if((p|0)==(ha(B+16|0,4,0,0)|0|0))C=Xb[(ja(ha((ha(B|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](B)|0;else C=ha(p|0,4,0,0)|0|0;if(g)D=C;else D=ec[(ja(ha((ha(e|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](e,C)|0;p=k+1|0;if(j){k=p;continue}else{E=0;F=c;G=v;H=o;I=n}while(1){do if((ha(I>>0|0,1,0,0)|0|0)==1){if(!((ha(F>>0|0,1,0,0)|0)&1))J=F+4|0;else J=ha(F+8|0,4,0,0)|0|0;r=ha(J+(k<<2)|0,4,0,0)|0|0;if(g)K=r;else K=ec[(ja(ha((ha(e|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,15|0)|0)&15](e,r)|0;if((D|0)!=(K|0)){ia(I>>0|0,0|0,1,0);L=E;M=G;N=H+-1|0;break}r=ha(F>>0|0,1,0,0)|0|0;if(!(r&1))O=(r&255)>>>1;else O=ha(F+4|0,4,0,0)|0|0;if((O|0)==(p|0)){ia(I>>0|0,2|0,1,0);L=1;M=G+1|0;N=H+-1|0}else{L=1;M=G;N=H}}else{L=E;M=G;N=H}while(0);F=F+12|0;if((F|0)==(d|0))break;else{E=L;G=M;H=N;I=I+1|0}}if(!L){k=p;v=M;o=N;continue}r=ha(a|0,4,0,0)|0|0;u=r+12|0;q=ha(u|0,4,0,0)|0|0;if((q|0)==(ha(r+16|0,4,0,0)|0|0))Xb[(ja(ha((ha(r|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](r)|0;else ia(u|0,q+4|0,4,0);if((M+N|0)>>>0<2){k=p;v=M;o=N;continue}else{P=c;Q=M;R=n}while(1){if((ha(R>>0|0,1,0,0)|0|0)==2){q=ha(P>>0|0,1,0,0)|0|0;if(!(q&1))S=(q&255)>>>1;else S=ha(P+4|0,4,0,0)|0|0;if((S|0)!=(p|0)){ia(R>>0|0,0|0,1,0);T=Q+-1|0}else T=Q}else T=Q;q=P+12|0;if((q|0)==(d|0)){k=p;v=T;o=N;continue a}else{P=q;Q=T;R=R+1|0}}}do if(B){R=ha(B+12|0,4,0,0)|0|0;if((R|0)==(ha(B+16|0,4,0,0)|0|0))U=Xb[(ja(ha((ha(B|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](B)|0;else U=ha(R|0,4,0,0)|0|0;if((U|0)==-1){ia(a|0,0|0,4,0);V=1;break}else{V=(ha(a|0,4,0,0)|0|0)==0;break}}else V=1;while(0);do if(z){a=ha(z+12|0,4,0,0)|0|0;if((a|0)==(ha(z+16|0,4,0,0)|0|0))W=Xb[(ja(ha((ha(z|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](z)|0;else W=ha(a|0,4,0,0)|0|0;if((W|0)!=-1)if(V)break;else{X=74;break}else{ia(b|0,0|0,4,0);X=72;break}}else X=72;while(0);if((X|0)==72?V:0)X=74;if((X|0)==74)ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);b:do if(j)X=78;else{V=c;b=n;while(1){if((ha(b>>0|0,1,0,0)|0|0)==2){Y=V;break b}V=V+12|0;if((V|0)==(d|0)){X=78;break}else b=b+1|0}}while(0);if((X|0)==78){ia(f|0,ha(f|0,4,0,0)|0|4|0,4,0);Y=d}if(!m){i=h;return Y|0}Fo(m);i=h;return Y|0}function Fl(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;var 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;b=i;i=i+304|0;h=b+160|0;j=b+280|0;k=b+264|0;l=b+284|0;m=b+300|0;n=b;o=b+276|0;p=b+296|0;q=Ck(e)|0;If(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j|0,4,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j){t=ha(j+12|0,4,0,0)|0|0;if((t|0)==(ha(j+16|0,4,0,0)|0|0))w=Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0;else w=ha(t|0,4,0,0)|0|0;if((w|0)==-1){ia(c|0,0|0,4,0);x=1;y=0}else{x=0;y=j}}else{x=1;y=0}t=ha(d|0,4,0,0)|0|0;do if(t){z=ha(t+12|0,4,0,0)|0|0;if((z|0)==(ha(t+16|0,4,0,0)|0|0))A=Xb[(ja(ha((ha(t|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](t)|0;else A=ha(z|0,4,0,0)|0|0;if((A|0)!=-1)if(x){B=t;break}else{C=t;D=v;break a}else{ia(d|0,0|0,4,0);E=17;break}}else E=17;while(0);if((E|0)==17){E=0;if(x){C=0;D=v;break}else B=0}t=ha(l>>0|0,1,0,0)|0|0;z=(t&1)==0;if(z)F=(t&255)>>>1;else F=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+F|0)){if(z){G=(t&255)>>>1;H=(t&255)>>>1}else{t=ha(e|0,4,0,0)|0|0;G=t;H=t}hd(l,G<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))I=10;else I=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,I,0);if(!((ha(l>>0|0,1,0,0)|0)&1))J=r;else J=ha(s|0,4,0,0)|0|0;ia(m|0,J+H|0,4,0);K=J}else K=v;t=y+12|0;z=ha(t|0,4,0,0)|0|0;L=y+16|0;if((z|0)==(ha(L|0,4,0,0)|0|0))M=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else M=ha(z|0,4,0,0)|0|0;if(Ef(M,q,K,m,p,u,k,n,o,h)|0){C=B;D=K;break}z=ha(t|0,4,0,0)|0|0;if((z|0)==(ha(L|0,4,0,0)|0|0)){Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](y)|0;j=y;v=K;continue}else{ia(t|0,z+4|0,4,0);j=y;v=K;continue}}K=ha(k>>0|0,1,0,0)|0|0;if(!(K&1))N=(K&255)>>>1;else N=ha(k+4|0,4,0,0)|0|0;if((N|0)!=0?(N=ha(o|0,4,0,0)|0|0,(N-n|0)<160):0){K=ha(p|0,4,0,0)|0|0;ia(o|0,N+4|0,4,0);ia(N|0,K|0,4,0)}ia(g|0,Rm(D,ha(m|0,4,0,0)|0|0,f,q)|0|0,4,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(y){o=ha(y+12|0,4,0,0)|0|0;if((o|0)==(ha(y+16|0,4,0,0)|0|0))O=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else O=ha(o|0,4,0,0)|0|0;if((O|0)==-1){ia(c|0,0|0,4,0);P=0;Q=1}else{P=y;Q=0}}else{P=0;Q=1}do if(C){y=ha(C+12|0,4,0,0)|0|0;if((y|0)==(ha(C+16|0,4,0,0)|0|0))R=Xb[(ja(ha((ha(C|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](C)|0;else R=ha(y|0,4,0,0)|0|0;if((R|0)==-1){ia(d|0,0|0,4,0);E=56;break}if(Q){ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}}else E=56;while(0);if((E|0)==56?!Q:0){ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}function Gl(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;var 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,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;b=i;i=i+304|0;h=b+160|0;j=b+280|0;k=b+264|0;l=b+284|0;m=b+300|0;n=b;o=b+276|0;p=b+296|0;q=Ck(e)|0;If(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j|0,4,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j){t=ha(j+12|0,4,0,0)|0|0;if((t|0)==(ha(j+16|0,4,0,0)|0|0))w=Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0;else w=ha(t|0,4,0,0)|0|0;if((w|0)==-1){ia(c|0,0|0,4,0);x=1;y=0}else{x=0;y=j}}else{x=1;y=0}t=ha(d|0,4,0,0)|0|0;do if(t){z=ha(t+12|0,4,0,0)|0|0;if((z|0)==(ha(t+16|0,4,0,0)|0|0))A=Xb[(ja(ha((ha(t|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](t)|0;else A=ha(z|0,4,0,0)|0|0;if((A|0)!=-1)if(x){B=t;break}else{C=t;D=v;break a}else{ia(d|0,0|0,4,0);E=17;break}}else E=17;while(0);if((E|0)==17){E=0;if(x){C=0;D=v;break}else B=0}t=ha(l>>0|0,1,0,0)|0|0;z=(t&1)==0;if(z)F=(t&255)>>>1;else F=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+F|0)){if(z){G=(t&255)>>>1;I=(t&255)>>>1}else{t=ha(e|0,4,0,0)|0|0;G=t;I=t}hd(l,G<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))J=10;else J=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,J,0);if(!((ha(l>>0|0,1,0,0)|0)&1))K=r;else K=ha(s|0,4,0,0)|0|0;ia(m|0,K+I|0,4,0);L=K}else L=v;t=y+12|0;z=ha(t|0,4,0,0)|0|0;M=y+16|0;if((z|0)==(ha(M|0,4,0,0)|0|0))N=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else N=ha(z|0,4,0,0)|0|0;if(Ef(N,q,L,m,p,u,k,n,o,h)|0){C=B;D=L;break}z=ha(t|0,4,0,0)|0|0;if((z|0)==(ha(M|0,4,0,0)|0|0)){Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](y)|0;j=y;v=L;continue}else{ia(t|0,z+4|0,4,0);j=y;v=L;continue}}L=ha(k>>0|0,1,0,0)|0|0;if(!(L&1))O=(L&255)>>>1;else O=ha(k+4|0,4,0,0)|0|0;if((O|0)!=0?(O=ha(o|0,4,0,0)|0|0,(O-n|0)<160):0){L=ha(p|0,4,0,0)|0|0;ia(o|0,O+4|0,4,0);ia(O|0,L|0,4,0)}L=Sm(D,ha(m|0,4,0,0)|0|0,f,q)|0;q=g;ia(q|0,L|0,4,0);ia(q+4|0,H|0,4,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(y){o=ha(y+12|0,4,0,0)|0|0;if((o|0)==(ha(y+16|0,4,0,0)|0|0))P=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else P=ha(o|0,4,0,0)|0|0;if((P|0)==-1){ia(c|0,0|0,4,0);Q=0;R=1}else{Q=y;R=0}}else{Q=0;R=1}do if(C){y=ha(C+12|0,4,0,0)|0|0;if((y|0)==(ha(C+16|0,4,0,0)|0|0))S=Xb[(ja(ha((ha(C|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](C)|0;else S=ha(y|0,4,0,0)|0|0;if((S|0)==-1){ia(d|0,0|0,4,0);E=56;break}if(R){ia(a|0,Q|0,4,0);ed(l);ed(k);i=b;return}}else E=56;while(0);if((E|0)==56?!R:0){ia(a|0,Q|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,Q|0,4,0);ed(l);ed(k);i=b;return}function Hl(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;var 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;b=i;i=i+304|0;h=b+160|0;j=b+280|0;k=b+264|0;l=b+284|0;m=b+300|0;n=b;o=b+276|0;p=b+296|0;q=Ck(e)|0;If(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j|0,4,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j){t=ha(j+12|0,4,0,0)|0|0;if((t|0)==(ha(j+16|0,4,0,0)|0|0))w=Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0;else w=ha(t|0,4,0,0)|0|0;if((w|0)==-1){ia(c|0,0|0,4,0);x=1;y=0}else{x=0;y=j}}else{x=1;y=0}t=ha(d|0,4,0,0)|0|0;do if(t){z=ha(t+12|0,4,0,0)|0|0;if((z|0)==(ha(t+16|0,4,0,0)|0|0))A=Xb[(ja(ha((ha(t|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](t)|0;else A=ha(z|0,4,0,0)|0|0;if((A|0)!=-1)if(x){B=t;break}else{C=t;D=v;break a}else{ia(d|0,0|0,4,0);E=17;break}}else E=17;while(0);if((E|0)==17){E=0;if(x){C=0;D=v;break}else B=0}t=ha(l>>0|0,1,0,0)|0|0;z=(t&1)==0;if(z)F=(t&255)>>>1;else F=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+F|0)){if(z){G=(t&255)>>>1;H=(t&255)>>>1}else{t=ha(e|0,4,0,0)|0|0;G=t;H=t}hd(l,G<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))I=10;else I=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,I,0);if(!((ha(l>>0|0,1,0,0)|0)&1))J=r;else J=ha(s|0,4,0,0)|0|0;ia(m|0,J+H|0,4,0);K=J}else K=v;t=y+12|0;z=ha(t|0,4,0,0)|0|0;L=y+16|0;if((z|0)==(ha(L|0,4,0,0)|0|0))M=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else M=ha(z|0,4,0,0)|0|0;if(Ef(M,q,K,m,p,u,k,n,o,h)|0){C=B;D=K;break}z=ha(t|0,4,0,0)|0|0;if((z|0)==(ha(L|0,4,0,0)|0|0)){Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](y)|0;j=y;v=K;continue}else{ia(t|0,z+4|0,4,0);j=y;v=K;continue}}K=ha(k>>0|0,1,0,0)|0|0;if(!(K&1))N=(K&255)>>>1;else N=ha(k+4|0,4,0,0)|0|0;if((N|0)!=0?(N=ha(o|0,4,0,0)|0|0,(N-n|0)<160):0){K=ha(p|0,4,0,0)|0|0;ia(o|0,N+4|0,4,0);ia(N|0,K|0,4,0)}ia(g|0,Tm(D,ha(m|0,4,0,0)|0|0,f,q)|0|0,2,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(y){o=ha(y+12|0,4,0,0)|0|0;if((o|0)==(ha(y+16|0,4,0,0)|0|0))O=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else O=ha(o|0,4,0,0)|0|0;if((O|0)==-1){ia(c|0,0|0,4,0);P=0;Q=1}else{P=y;Q=0}}else{P=0;Q=1}do if(C){y=ha(C+12|0,4,0,0)|0|0;if((y|0)==(ha(C+16|0,4,0,0)|0|0))R=Xb[(ja(ha((ha(C|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](C)|0;else R=ha(y|0,4,0,0)|0|0;if((R|0)==-1){ia(d|0,0|0,4,0);E=56;break}if(Q){ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}}else E=56;while(0);if((E|0)==56?!Q:0){ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}function Il(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;var 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;b=i;i=i+304|0;h=b+160|0;j=b+280|0;k=b+264|0;l=b+284|0;m=b+300|0;n=b;o=b+276|0;p=b+296|0;q=Ck(e)|0;If(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j|0,4,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j){t=ha(j+12|0,4,0,0)|0|0;if((t|0)==(ha(j+16|0,4,0,0)|0|0))w=Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0;else w=ha(t|0,4,0,0)|0|0;if((w|0)==-1){ia(c|0,0|0,4,0);x=1;y=0}else{x=0;y=j}}else{x=1;y=0}t=ha(d|0,4,0,0)|0|0;do if(t){z=ha(t+12|0,4,0,0)|0|0;if((z|0)==(ha(t+16|0,4,0,0)|0|0))A=Xb[(ja(ha((ha(t|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](t)|0;else A=ha(z|0,4,0,0)|0|0;if((A|0)!=-1)if(x){B=t;break}else{C=t;D=v;break a}else{ia(d|0,0|0,4,0);E=17;break}}else E=17;while(0);if((E|0)==17){E=0;if(x){C=0;D=v;break}else B=0}t=ha(l>>0|0,1,0,0)|0|0;z=(t&1)==0;if(z)F=(t&255)>>>1;else F=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+F|0)){if(z){G=(t&255)>>>1;H=(t&255)>>>1}else{t=ha(e|0,4,0,0)|0|0;G=t;H=t}hd(l,G<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))I=10;else I=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,I,0);if(!((ha(l>>0|0,1,0,0)|0)&1))J=r;else J=ha(s|0,4,0,0)|0|0;ia(m|0,J+H|0,4,0);K=J}else K=v;t=y+12|0;z=ha(t|0,4,0,0)|0|0;L=y+16|0;if((z|0)==(ha(L|0,4,0,0)|0|0))M=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else M=ha(z|0,4,0,0)|0|0;if(Ef(M,q,K,m,p,u,k,n,o,h)|0){C=B;D=K;break}z=ha(t|0,4,0,0)|0|0;if((z|0)==(ha(L|0,4,0,0)|0|0)){Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](y)|0;j=y;v=K;continue}else{ia(t|0,z+4|0,4,0);j=y;v=K;continue}}K=ha(k>>0|0,1,0,0)|0|0;if(!(K&1))N=(K&255)>>>1;else N=ha(k+4|0,4,0,0)|0|0;if((N|0)!=0?(N=ha(o|0,4,0,0)|0|0,(N-n|0)<160):0){K=ha(p|0,4,0,0)|0|0;ia(o|0,N+4|0,4,0);ia(N|0,K|0,4,0)}ia(g|0,Um(D,ha(m|0,4,0,0)|0|0,f,q)|0|0,4,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(y){o=ha(y+12|0,4,0,0)|0|0;if((o|0)==(ha(y+16|0,4,0,0)|0|0))O=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else O=ha(o|0,4,0,0)|0|0;if((O|0)==-1){ia(c|0,0|0,4,0);P=0;Q=1}else{P=y;Q=0}}else{P=0;Q=1}do if(C){y=ha(C+12|0,4,0,0)|0|0;if((y|0)==(ha(C+16|0,4,0,0)|0|0))R=Xb[(ja(ha((ha(C|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](C)|0;else R=ha(y|0,4,0,0)|0|0;if((R|0)==-1){ia(d|0,0|0,4,0);E=56;break}if(Q){ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}}else E=56;while(0);if((E|0)==56?!Q:0){ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}function Jl(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;var 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;b=i;i=i+304|0;h=b+160|0;j=b+280|0;k=b+264|0;l=b+284|0;m=b+300|0;n=b;o=b+276|0;p=b+296|0;q=Ck(e)|0;If(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j|0,4,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j){t=ha(j+12|0,4,0,0)|0|0;if((t|0)==(ha(j+16|0,4,0,0)|0|0))w=Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0;else w=ha(t|0,4,0,0)|0|0;if((w|0)==-1){ia(c|0,0|0,4,0);x=1;y=0}else{x=0;y=j}}else{x=1;y=0}t=ha(d|0,4,0,0)|0|0;do if(t){z=ha(t+12|0,4,0,0)|0|0;if((z|0)==(ha(t+16|0,4,0,0)|0|0))A=Xb[(ja(ha((ha(t|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](t)|0;else A=ha(z|0,4,0,0)|0|0;if((A|0)!=-1)if(x){B=t;break}else{C=t;D=v;break a}else{ia(d|0,0|0,4,0);E=17;break}}else E=17;while(0);if((E|0)==17){E=0;if(x){C=0;D=v;break}else B=0}t=ha(l>>0|0,1,0,0)|0|0;z=(t&1)==0;if(z)F=(t&255)>>>1;else F=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+F|0)){if(z){G=(t&255)>>>1;H=(t&255)>>>1}else{t=ha(e|0,4,0,0)|0|0;G=t;H=t}hd(l,G<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))I=10;else I=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,I,0);if(!((ha(l>>0|0,1,0,0)|0)&1))J=r;else J=ha(s|0,4,0,0)|0|0;ia(m|0,J+H|0,4,0);K=J}else K=v;t=y+12|0;z=ha(t|0,4,0,0)|0|0;L=y+16|0;if((z|0)==(ha(L|0,4,0,0)|0|0))M=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else M=ha(z|0,4,0,0)|0|0;if(Ef(M,q,K,m,p,u,k,n,o,h)|0){C=B;D=K;break}z=ha(t|0,4,0,0)|0|0;if((z|0)==(ha(L|0,4,0,0)|0|0)){Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](y)|0;j=y;v=K;continue}else{ia(t|0,z+4|0,4,0);j=y;v=K;continue}}K=ha(k>>0|0,1,0,0)|0|0;if(!(K&1))N=(K&255)>>>1;else N=ha(k+4|0,4,0,0)|0|0;if((N|0)!=0?(N=ha(o|0,4,0,0)|0|0,(N-n|0)<160):0){K=ha(p|0,4,0,0)|0|0;ia(o|0,N+4|0,4,0);ia(N|0,K|0,4,0)}ia(g|0,Vm(D,ha(m|0,4,0,0)|0|0,f,q)|0|0,4,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(y){o=ha(y+12|0,4,0,0)|0|0;if((o|0)==(ha(y+16|0,4,0,0)|0|0))O=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else O=ha(o|0,4,0,0)|0|0;if((O|0)==-1){ia(c|0,0|0,4,0);P=0;Q=1}else{P=y;Q=0}}else{P=0;Q=1}do if(C){y=ha(C+12|0,4,0,0)|0|0;if((y|0)==(ha(C+16|0,4,0,0)|0|0))R=Xb[(ja(ha((ha(C|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](C)|0;else R=ha(y|0,4,0,0)|0|0;if((R|0)==-1){ia(d|0,0|0,4,0);E=56;break}if(Q){ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}}else E=56;while(0);if((E|0)==56?!Q:0){ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,P|0,4,0);ed(l);ed(k);i=b;return}function Kl(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;var 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,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;b=i;i=i+304|0;h=b+160|0;j=b+280|0;k=b+264|0;l=b+284|0;m=b+300|0;n=b;o=b+276|0;p=b+296|0;q=Ck(e)|0;If(k,e,h,j);ia(l+0|0,0|0,4,0);ia(l+4|0,0|0,4,0);ia(l+8|0,0|0,4,0);hd(l,10,0);if(!((ha(l>>0|0,1,0,0)|0)&1)){e=l+1|0;r=e;s=l+8|0;t=e}else{e=l+8|0;r=l+1|0;s=e;t=ha(e|0,4,0,0)|0|0}ia(m|0,t|0,4,0);ia(o|0,n|0,4,0);ia(p|0,0|0,4,0);e=l+4|0;u=ha(j|0,4,0,0)|0|0;j=ha(c|0,4,0,0)|0|0;v=t;a:while(1){if(j){t=ha(j+12|0,4,0,0)|0|0;if((t|0)==(ha(j+16|0,4,0,0)|0|0))w=Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0;else w=ha(t|0,4,0,0)|0|0;if((w|0)==-1){ia(c|0,0|0,4,0);x=1;y=0}else{x=0;y=j}}else{x=1;y=0}t=ha(d|0,4,0,0)|0|0;do if(t){z=ha(t+12|0,4,0,0)|0|0;if((z|0)==(ha(t+16|0,4,0,0)|0|0))A=Xb[(ja(ha((ha(t|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](t)|0;else A=ha(z|0,4,0,0)|0|0;if((A|0)!=-1)if(x){B=t;break}else{C=t;D=v;break a}else{ia(d|0,0|0,4,0);E=17;break}}else E=17;while(0);if((E|0)==17){E=0;if(x){C=0;D=v;break}else B=0}t=ha(l>>0|0,1,0,0)|0|0;z=(t&1)==0;if(z)F=(t&255)>>>1;else F=ha(e|0,4,0,0)|0|0;if((ha(m|0,4,0,0)|0|0)==(v+F|0)){if(z){G=(t&255)>>>1;I=(t&255)>>>1}else{t=ha(e|0,4,0,0)|0|0;G=t;I=t}hd(l,G<<1,0);if(!((ha(l>>0|0,1,0,0)|0)&1))J=10;else J=((ha(l|0,4,0,0)|0)&-2)+-1|0;hd(l,J,0);if(!((ha(l>>0|0,1,0,0)|0)&1))K=r;else K=ha(s|0,4,0,0)|0|0;ia(m|0,K+I|0,4,0);L=K}else L=v;t=y+12|0;z=ha(t|0,4,0,0)|0|0;M=y+16|0;if((z|0)==(ha(M|0,4,0,0)|0|0))N=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else N=ha(z|0,4,0,0)|0|0;if(Ef(N,q,L,m,p,u,k,n,o,h)|0){C=B;D=L;break}z=ha(t|0,4,0,0)|0|0;if((z|0)==(ha(M|0,4,0,0)|0|0)){Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](y)|0;j=y;v=L;continue}else{ia(t|0,z+4|0,4,0);j=y;v=L;continue}}L=ha(k>>0|0,1,0,0)|0|0;if(!(L&1))O=(L&255)>>>1;else O=ha(k+4|0,4,0,0)|0|0;if((O|0)!=0?(O=ha(o|0,4,0,0)|0|0,(O-n|0)<160):0){L=ha(p|0,4,0,0)|0|0;ia(o|0,O+4|0,4,0);ia(O|0,L|0,4,0)}L=Wm(D,ha(m|0,4,0,0)|0|0,f,q)|0;q=g;ia(q|0,L|0,4,0);ia(q+4|0,H|0,4,0);ni(k,n,ha(o|0,4,0,0)|0|0,f);if(y){o=ha(y+12|0,4,0,0)|0|0;if((o|0)==(ha(y+16|0,4,0,0)|0|0))P=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else P=ha(o|0,4,0,0)|0|0;if((P|0)==-1){ia(c|0,0|0,4,0);Q=0;R=1}else{Q=y;R=0}}else{Q=0;R=1}do if(C){y=ha(C+12|0,4,0,0)|0|0;if((y|0)==(ha(C+16|0,4,0,0)|0|0))S=Xb[(ja(ha((ha(C|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](C)|0;else S=ha(y|0,4,0,0)|0|0;if((S|0)==-1){ia(d|0,0|0,4,0);E=56;break}if(R){ia(a|0,Q|0,4,0);ed(l);ed(k);i=b;return}}else E=56;while(0);if((E|0)==56?!R:0){ia(a|0,Q|0,4,0);ed(l);ed(k);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,Q|0,4,0);ed(l);ed(k);i=b;return}function Ll(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;var 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;b=i;i=i+352|0;h=b+208|0;j=b+184|0;k=b+4|0;l=b+8|0;m=b+196|0;n=b;o=b+24|0;p=b+192|0;q=b+188|0;r=b+337|0;s=b+336|0;Jf(l,e,h,j,k);ia(m+0|0,0|0,4,0);ia(m+4|0,0|0,4,0);ia(m+8|0,0|0,4,0);hd(m,10,0);if(!((ha(m>>0|0,1,0,0)|0)&1)){e=m+1|0;t=e;u=m+8|0;v=e}else{e=m+8|0;t=m+1|0;u=e;v=ha(e|0,4,0,0)|0|0}ia(n|0,v|0,4,0);ia(p|0,o|0,4,0);ia(q|0,0|0,4,0);ia(r>>0|0,1|0,1,0);ia(s>>0|0,69|0,1,0);e=m+4|0;w=ha(j|0,4,0,0)|0|0;j=ha(k|0,4,0,0)|0|0;k=ha(c|0,4,0,0)|0|0;x=v;a:while(1){if(k){v=ha(k+12|0,4,0,0)|0|0;if((v|0)==(ha(k+16|0,4,0,0)|0|0))y=Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0;else y=ha(v|0,4,0,0)|0|0;if((y|0)==-1){ia(c|0,0|0,4,0);z=1;A=0}else{z=0;A=k}}else{z=1;A=0}v=ha(d|0,4,0,0)|0|0;do if(v){B=ha(v+12|0,4,0,0)|0|0;if((B|0)==(ha(v+16|0,4,0,0)|0|0))C=Xb[(ja(ha((ha(v|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](v)|0;else C=ha(B|0,4,0,0)|0|0;if((C|0)!=-1)if(z){D=v;break}else{E=v;F=x;break a}else{ia(d|0,0|0,4,0);G=17;break}}else G=17;while(0);if((G|0)==17){G=0;if(z){E=0;F=x;break}else D=0}v=ha(m>>0|0,1,0,0)|0|0;B=(v&1)==0;if(B)H=(v&255)>>>1;else H=ha(e|0,4,0,0)|0|0;if((ha(n|0,4,0,0)|0|0)==(x+H|0)){if(B){I=(v&255)>>>1;J=(v&255)>>>1}else{v=ha(e|0,4,0,0)|0|0;I=v;J=v}hd(m,I<<1,0);if(!((ha(m>>0|0,1,0,0)|0)&1))K=10;else K=((ha(m|0,4,0,0)|0)&-2)+-1|0;hd(m,K,0);if(!((ha(m>>0|0,1,0,0)|0)&1))L=t;else L=ha(u|0,4,0,0)|0|0;ia(n|0,L+J|0,4,0);M=L}else M=x;v=A+12|0;B=ha(v|0,4,0,0)|0|0;N=A+16|0;if((B|0)==(ha(N|0,4,0,0)|0|0))O=Xb[(ja(ha((ha(A|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](A)|0;else O=ha(B|0,4,0,0)|0|0;if(Kf(O,r,s,M,n,w,j,l,o,p,q,h)|0){E=D;F=M;break}B=ha(v|0,4,0,0)|0|0;if((B|0)==(ha(N|0,4,0,0)|0|0)){Xb[(ja(ha((ha(A|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](A)|0;k=A;x=M;continue}else{ia(v|0,B+4|0,4,0);k=A;x=M;continue}}M=ha(l>>0|0,1,0,0)|0|0;if(!(M&1))P=(M&255)>>>1;else P=ha(l+4|0,4,0,0)|0|0;if(!((P|0)==0|(ha(r>>0|0,1,0,0)|0|0)==0)?(r=ha(p|0,4,0,0)|0|0,(r-o|0)<160):0){P=ha(q|0,4,0,0)|0|0;ia(p|0,r+4|0,4,0);ia(r|0,P|0,4,0)}ia(g|0,+(+Xm(F,ha(n|0,4,0,0)|0|0,f)),4,1);ni(l,o,ha(p|0,4,0,0)|0|0,f);if(A){p=ha(A+12|0,4,0,0)|0|0;if((p|0)==(ha(A+16|0,4,0,0)|0|0))Q=Xb[(ja(ha((ha(A|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](A)|0;else Q=ha(p|0,4,0,0)|0|0;if((Q|0)==-1){ia(c|0,0|0,4,0);R=0;S=1}else{R=A;S=0}}else{R=0;S=1}do if(E){A=ha(E+12|0,4,0,0)|0|0;if((A|0)==(ha(E+16|0,4,0,0)|0|0))T=Xb[(ja(ha((ha(E|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](E)|0;else T=ha(A|0,4,0,0)|0|0;if((T|0)==-1){ia(d|0,0|0,4,0);G=56;break}if(S){ia(a|0,R|0,4,0);ed(m);ed(l);i=b;return}}else G=56;while(0);if((G|0)==56?!S:0){ia(a|0,R|0,4,0);ed(m);ed(l);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,R|0,4,0);ed(m);ed(l);i=b;return}function Ml(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;var 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;b=i;i=i+352|0;h=b+208|0;j=b+184|0;k=b+4|0;l=b+8|0;m=b+196|0;n=b;o=b+24|0;p=b+192|0;q=b+188|0;r=b+337|0;s=b+336|0;Jf(l,e,h,j,k);ia(m+0|0,0|0,4,0);ia(m+4|0,0|0,4,0);ia(m+8|0,0|0,4,0);hd(m,10,0);if(!((ha(m>>0|0,1,0,0)|0)&1)){e=m+1|0;t=e;u=m+8|0;v=e}else{e=m+8|0;t=m+1|0;u=e;v=ha(e|0,4,0,0)|0|0}ia(n|0,v|0,4,0);ia(p|0,o|0,4,0);ia(q|0,0|0,4,0);ia(r>>0|0,1|0,1,0);ia(s>>0|0,69|0,1,0);e=m+4|0;w=ha(j|0,4,0,0)|0|0;j=ha(k|0,4,0,0)|0|0;k=ha(c|0,4,0,0)|0|0;x=v;a:while(1){if(k){v=ha(k+12|0,4,0,0)|0|0;if((v|0)==(ha(k+16|0,4,0,0)|0|0))y=Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0;else y=ha(v|0,4,0,0)|0|0;if((y|0)==-1){ia(c|0,0|0,4,0);z=1;A=0}else{z=0;A=k}}else{z=1;A=0}v=ha(d|0,4,0,0)|0|0;do if(v){B=ha(v+12|0,4,0,0)|0|0;if((B|0)==(ha(v+16|0,4,0,0)|0|0))C=Xb[(ja(ha((ha(v|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](v)|0;else C=ha(B|0,4,0,0)|0|0;if((C|0)!=-1)if(z){D=v;break}else{E=v;F=x;break a}else{ia(d|0,0|0,4,0);G=17;break}}else G=17;while(0);if((G|0)==17){G=0;if(z){E=0;F=x;break}else D=0}v=ha(m>>0|0,1,0,0)|0|0;B=(v&1)==0;if(B)H=(v&255)>>>1;else H=ha(e|0,4,0,0)|0|0;if((ha(n|0,4,0,0)|0|0)==(x+H|0)){if(B){I=(v&255)>>>1;J=(v&255)>>>1}else{v=ha(e|0,4,0,0)|0|0;I=v;J=v}hd(m,I<<1,0);if(!((ha(m>>0|0,1,0,0)|0)&1))K=10;else K=((ha(m|0,4,0,0)|0)&-2)+-1|0;hd(m,K,0);if(!((ha(m>>0|0,1,0,0)|0)&1))L=t;else L=ha(u|0,4,0,0)|0|0;ia(n|0,L+J|0,4,0);M=L}else M=x;v=A+12|0;B=ha(v|0,4,0,0)|0|0;N=A+16|0;if((B|0)==(ha(N|0,4,0,0)|0|0))O=Xb[(ja(ha((ha(A|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](A)|0;else O=ha(B|0,4,0,0)|0|0;if(Kf(O,r,s,M,n,w,j,l,o,p,q,h)|0){E=D;F=M;break}B=ha(v|0,4,0,0)|0|0;if((B|0)==(ha(N|0,4,0,0)|0|0)){Xb[(ja(ha((ha(A|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](A)|0;k=A;x=M;continue}else{ia(v|0,B+4|0,4,0);k=A;x=M;continue}}M=ha(l>>0|0,1,0,0)|0|0;if(!(M&1))P=(M&255)>>>1;else P=ha(l+4|0,4,0,0)|0|0;if(!((P|0)==0|(ha(r>>0|0,1,0,0)|0|0)==0)?(r=ha(p|0,4,0,0)|0|0,(r-o|0)<160):0){P=ha(q|0,4,0,0)|0|0;ia(p|0,r+4|0,4,0);ia(r|0,P|0,4,0)}ia(g|0,+(+Ym(F,ha(n|0,4,0,0)|0|0,f)),8,1);ni(l,o,ha(p|0,4,0,0)|0|0,f);if(A){p=ha(A+12|0,4,0,0)|0|0;if((p|0)==(ha(A+16|0,4,0,0)|0|0))Q=Xb[(ja(ha((ha(A|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](A)|0;else Q=ha(p|0,4,0,0)|0|0;if((Q|0)==-1){ia(c|0,0|0,4,0);R=0;S=1}else{R=A;S=0}}else{R=0;S=1}do if(E){A=ha(E+12|0,4,0,0)|0|0;if((A|0)==(ha(E+16|0,4,0,0)|0|0))T=Xb[(ja(ha((ha(E|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](E)|0;else T=ha(A|0,4,0,0)|0|0;if((T|0)==-1){ia(d|0,0|0,4,0);G=56;break}if(S){ia(a|0,R|0,4,0);ed(m);ed(l);i=b;return}}else G=56;while(0);if((G|0)==56?!S:0){ia(a|0,R|0,4,0);ed(m);ed(l);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,R|0,4,0);ed(m);ed(l);i=b;return}function Nl(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;var 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;b=i;i=i+352|0;h=b+208|0;j=b+184|0;k=b+4|0;l=b+8|0;m=b+196|0;n=b;o=b+24|0;p=b+192|0;q=b+188|0;r=b+337|0;s=b+336|0;Jf(l,e,h,j,k);ia(m+0|0,0|0,4,0);ia(m+4|0,0|0,4,0);ia(m+8|0,0|0,4,0);hd(m,10,0);if(!((ha(m>>0|0,1,0,0)|0)&1)){e=m+1|0;t=e;u=m+8|0;v=e}else{e=m+8|0;t=m+1|0;u=e;v=ha(e|0,4,0,0)|0|0}ia(n|0,v|0,4,0);ia(p|0,o|0,4,0);ia(q|0,0|0,4,0);ia(r>>0|0,1|0,1,0);ia(s>>0|0,69|0,1,0);e=m+4|0;w=ha(j|0,4,0,0)|0|0;j=ha(k|0,4,0,0)|0|0;k=ha(c|0,4,0,0)|0|0;x=v;a:while(1){if(k){v=ha(k+12|0,4,0,0)|0|0;if((v|0)==(ha(k+16|0,4,0,0)|0|0))y=Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0;else y=ha(v|0,4,0,0)|0|0;if((y|0)==-1){ia(c|0,0|0,4,0);z=1;A=0}else{z=0;A=k}}else{z=1;A=0}v=ha(d|0,4,0,0)|0|0;do if(v){B=ha(v+12|0,4,0,0)|0|0;if((B|0)==(ha(v+16|0,4,0,0)|0|0))C=Xb[(ja(ha((ha(v|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](v)|0;else C=ha(B|0,4,0,0)|0|0;if((C|0)!=-1)if(z){D=v;break}else{E=v;F=x;break a}else{ia(d|0,0|0,4,0);G=17;break}}else G=17;while(0);if((G|0)==17){G=0;if(z){E=0;F=x;break}else D=0}v=ha(m>>0|0,1,0,0)|0|0;B=(v&1)==0;if(B)H=(v&255)>>>1;else H=ha(e|0,4,0,0)|0|0;if((ha(n|0,4,0,0)|0|0)==(x+H|0)){if(B){I=(v&255)>>>1;J=(v&255)>>>1}else{v=ha(e|0,4,0,0)|0|0;I=v;J=v}hd(m,I<<1,0);if(!((ha(m>>0|0,1,0,0)|0)&1))K=10;else K=((ha(m|0,4,0,0)|0)&-2)+-1|0;hd(m,K,0);if(!((ha(m>>0|0,1,0,0)|0)&1))L=t;else L=ha(u|0,4,0,0)|0|0;ia(n|0,L+J|0,4,0);M=L}else M=x;v=A+12|0;B=ha(v|0,4,0,0)|0|0;N=A+16|0;if((B|0)==(ha(N|0,4,0,0)|0|0))O=Xb[(ja(ha((ha(A|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](A)|0;else O=ha(B|0,4,0,0)|0|0;if(Kf(O,r,s,M,n,w,j,l,o,p,q,h)|0){E=D;F=M;break}B=ha(v|0,4,0,0)|0|0;if((B|0)==(ha(N|0,4,0,0)|0|0)){Xb[(ja(ha((ha(A|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](A)|0;k=A;x=M;continue}else{ia(v|0,B+4|0,4,0);k=A;x=M;continue}}M=ha(l>>0|0,1,0,0)|0|0;if(!(M&1))P=(M&255)>>>1;else P=ha(l+4|0,4,0,0)|0|0;if(!((P|0)==0|(ha(r>>0|0,1,0,0)|0|0)==0)?(r=ha(p|0,4,0,0)|0|0,(r-o|0)<160):0){P=ha(q|0,4,0,0)|0|0;ia(p|0,r+4|0,4,0);ia(r|0,P|0,4,0)}ia(g|0,+(+Zm(F,ha(n|0,4,0,0)|0|0,f)),8,1);ni(l,o,ha(p|0,4,0,0)|0|0,f);if(A){p=ha(A+12|0,4,0,0)|0|0;if((p|0)==(ha(A+16|0,4,0,0)|0|0))Q=Xb[(ja(ha((ha(A|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](A)|0;else Q=ha(p|0,4,0,0)|0|0;if((Q|0)==-1){ia(c|0,0|0,4,0);R=0;S=1}else{R=A;S=0}}else{R=0;S=1}do if(E){A=ha(E+12|0,4,0,0)|0|0;if((A|0)==(ha(E+16|0,4,0,0)|0|0))T=Xb[(ja(ha((ha(E|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](E)|0;else T=ha(A|0,4,0,0)|0|0;if((T|0)==-1){ia(d|0,0|0,4,0);G=56;break}if(S){ia(a|0,R|0,4,0);ed(m);ed(l);i=b;return}}else G=56;while(0);if((G|0)==56?!S:0){ia(a|0,R|0,4,0);ed(m);ed(l);i=b;return}ia(f|0,ha(f|0,4,0,0)|0|2|0,4,0);ia(a|0,R|0,4,0);ed(m);ed(l);i=b;return}function Ol(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;ia(g|0,e|0,4,0);e=$a(c|0)|0;c=bp(a,b,d,g)|0;if(!e){i=f;return c|0}$a(e|0)|0;i=f;return c|0}function Pl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;ia(f|0,d|0,4,0);d=$a(b|0)|0;b=un(a,c,f)|0;if(!d){i=e;return b|0}$a(d|0)|0;i=e;return b|0}function Ql(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;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;i=i+16|0;j=h;k=ha(b|0,4,0,0)|0|0;if(!k){ia(a|0,0|0,4,0);i=h;return}l=e;e=c;m=l-e>>2;n=f+12|0;f=ha(n|0,4,0,0)|0|0;o=(f|0)>(m|0)?f-m|0:0;m=d;f=m-e|0;e=f>>2;if((f|0)>0?(Rb[(ja(ha((ha(k|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,31|0)|0)&31](k,c,e)|0)!=(e|0):0){ia(b|0,0|0,4,0);ia(a|0,0|0,4,0);i=h;return}do if((o|0)>0){qd(j,o,g);if(!((ha(j>>0|0,1,0,0)|0)&1))p=j+4|0;else p=ha(j+8|0,4,0,0)|0|0;if((Rb[(ja(ha((ha(k|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,31|0)|0)&31](k,p,o)|0)==(o|0)){sd(j);break}ia(b|0,0|0,4,0);ia(a|0,0|0,4,0);sd(j);i=h;return}while(0);j=l-m|0;m=j>>2;if((j|0)>0?(Rb[(ja(ha((ha(k|0,4,0,0)|0|0)+48|0,4,0,0)|0|0,31|0)|0)&31](k,d,m)|0)!=(m|0):0){ia(b|0,0|0,4,0);ia(a|0,0|0,4,0);i=h;return}ia(n|0,0|0,4,0);ia(a|0,k|0,4,0);i=h;return}function Rl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;f=i;g=ha(a|0,4,0,0)|0|0;do if(g)if((ha(g+12|0,4,0,0)|0|0)==(ha(g+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(g|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](g)|0)==-1){ia(a|0,0|0,4,0);h=0;break}else{h=ha(a|0,4,0,0)|0|0;break}else h=g;else h=0;while(0);g=(h|0)==0;h=ha(b|0,4,0,0)|0|0;do if(h){if((ha(h+12|0,4,0,0)|0|0)==(ha(h+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(h|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](h)|0)==-1:0){ia(b|0,0|0,4,0);j=11;break}if(g)k=h;else j=12}else j=11;while(0);if((j|0)==11)if(g)j=12;else k=0;if((j|0)==12){ia(c|0,ha(c|0,4,0,0)|0|6|0,4,0);l=0;i=f;return l|0}g=ha(a|0,4,0,0)|0|0;h=ha(g+12|0,4,0,0)|0|0;if((h|0)==(ha(g+16|0,4,0,0)|0|0))m=Xb[(ja(ha((ha(g|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](g)|0;else m=ha(h>>0|0,1,0,1)|0|0;h=m&255;if(h<<24>>24>-1?(g=d+8|0,((ha((ha(g|0,4,0,0)|0|0)+(m<<24>>24<<1)|0,2,0,0)|0)&2048)!=0):0){m=(Rb[(ja(ha((ha(d|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,31|0)|0)&31](d,h,0)|0)<<24>>24;h=ha(a|0,4,0,0)|0|0;n=h+12|0;o=ha(n|0,4,0,0)|0|0;if((o|0)==(ha(h+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(h|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](h)|0;p=e;q=k;r=k;s=m}else{ia(n|0,o+1|0,4,0);p=e;q=k;r=k;s=m}while(1){t=s+-48|0;m=p+-1|0;k=ha(a|0,4,0,0)|0|0;do if(k)if((ha(k+12|0,4,0,0)|0|0)==(ha(k+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0)==-1){ia(a|0,0|0,4,0);u=0;break}else{u=ha(a|0,4,0,0)|0|0;break}else u=k;else u=0;while(0);k=(u|0)==0;if(r)if((ha(r+12|0,4,0,0)|0|0)==(ha(r+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(r|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](r)|0)==-1){ia(b|0,0|0,4,0);v=0;w=0}else{v=q;w=q}else{v=q;w=r}else{v=q;w=0}x=ha(a|0,4,0,0)|0|0;if(!((k^(w|0)==0)&(m|0)>0)){j=40;break}k=ha(x+12|0,4,0,0)|0|0;if((k|0)==(ha(x+16|0,4,0,0)|0|0))y=Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0;else y=ha(k>>0|0,1,0,1)|0|0;k=y&255;if(k<<24>>24<=-1){l=t;j=52;break}if(!((ha((ha(g|0,4,0,0)|0|0)+(y<<24>>24<<1)|0,2,0,0)|0)&2048)){l=t;j=52;break}e=((Rb[(ja(ha((ha(d|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,31|0)|0)&31](d,k,0)|0)<<24>>24)+(t*10|0)|0;k=ha(a|0,4,0,0)|0|0;o=k+12|0;n=ha(o|0,4,0,0)|0|0;if((n|0)==(ha(k+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](k)|0;p=m;q=v;r=w;s=e;continue}else{ia(o|0,n+1|0,4,0);p=m;q=v;r=w;s=e;continue}}if((j|0)==40){do if(x)if((ha(x+12|0,4,0,0)|0|0)==(ha(x+16|0,4,0,0)|0|0))if((Xb[(ja(ha((ha(x|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](x)|0)==-1){ia(a|0,0|0,4,0);z=0;break}else{z=ha(a|0,4,0,0)|0|0;break}else z=x;else z=0;while(0);x=(z|0)==0;do if(v){if((ha(v+12|0,4,0,0)|0|0)==(ha(v+16|0,4,0,0)|0|0)?(Xb[(ja(ha((ha(v|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](v)|0)==-1:0){ia(b|0,0|0,4,0);j=50;break}if(x){l=t;i=f;return l|0}}else j=50;while(0);if((j|0)==50?!x:0){l=t;i=f;return l|0}ia(c|0,ha(c|0,4,0,0)|0|2|0,4,0);l=t;i=f;return l|0}else if((j|0)==52){i=f;return l|0}}ia(c|0,ha(c|0,4,0,0)|0|4|0,4,0);l=0;i=f;return l|0}function Sl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;f=i;g=ha(a|0,4,0,0)|0|0;do if(g){h=ha(g+12|0,4,0,0)|0|0;if((h|0)==(ha(g+16|0,4,0,0)|0|0))j=Xb[(ja(ha((ha(g|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](g)|0;else j=ha(h|0,4,0,0)|0|0;if((j|0)==-1){ia(a|0,0|0,4,0);k=1;break}else{k=(ha(a|0,4,0,0)|0|0)==0;break}}else k=1;while(0);j=ha(b|0,4,0,0)|0|0;do if(j){g=ha(j+12|0,4,0,0)|0|0;if((g|0)==(ha(j+16|0,4,0,0)|0|0))l=Xb[(ja(ha((ha(j|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](j)|0;else l=ha(g|0,4,0,0)|0|0;if((l|0)!=-1)if(k){m=j;break}else{n=16;break}else{ia(b|0,0|0,4,0);n=14;break}}else n=14;while(0);if((n|0)==14)if(k)n=16;else m=0;if((n|0)==16){ia(c|0,ha(c|0,4,0,0)|0|6|0,4,0);o=0;i=f;return o|0}k=ha(a|0,4,0,0)|0|0;j=ha(k+12|0,4,0,0)|0|0;if((j|0)==(ha(k+16|0,4,0,0)|0|0))p=Xb[(ja(ha((ha(k|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](k)|0;else p=ha(j|0,4,0,0)|0|0;if(!(Rb[(ja(ha((ha(d|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](d,2048,p)|0)){ia(c|0,ha(c|0,4,0,0)|0|4|0,4,0);o=0;i=f;return o|0}j=(Rb[(ja(ha((ha(d|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,31|0)|0)&31](d,p,0)|0)<<24>>24;p=ha(a|0,4,0,0)|0|0;k=p+12|0;l=ha(k|0,4,0,0)|0|0;if((l|0)==(ha(p+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(p|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](p)|0;q=e;r=m;s=m;t=j}else{ia(k|0,l+4|0,4,0);q=e;r=m;s=m;t=j}while(1){u=t+-48|0;j=q+-1|0;m=ha(a|0,4,0,0)|0|0;do if(m){e=ha(m+12|0,4,0,0)|0|0;if((e|0)==(ha(m+16|0,4,0,0)|0|0))v=Xb[(ja(ha((ha(m|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](m)|0;else v=ha(e|0,4,0,0)|0|0;if((v|0)==-1){ia(a|0,0|0,4,0);w=1;break}else{w=(ha(a|0,4,0,0)|0|0)==0;break}}else w=1;while(0);do if(s){m=ha(s+12|0,4,0,0)|0|0;if((m|0)==(ha(s+16|0,4,0,0)|0|0))x=Xb[(ja(ha((ha(s|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](s)|0;else x=ha(m|0,4,0,0)|0|0;if((x|0)==-1){ia(b|0,0|0,4,0);y=0;z=0;A=1;break}else{y=r;z=r;A=(r|0)==0;break}}else{y=r;z=0;A=1}while(0);B=ha(a|0,4,0,0)|0|0;if(!((w^A)&(j|0)>0))break;m=ha(B+12|0,4,0,0)|0|0;if((m|0)==(ha(B+16|0,4,0,0)|0|0))C=Xb[(ja(ha((ha(B|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](B)|0;else C=ha(m|0,4,0,0)|0|0;if(!(Rb[(ja(ha((ha(d|0,4,0,0)|0|0)+12|0,4,0,0)|0|0,31|0)|0)&31](d,2048,C)|0)){o=u;n=63;break}m=((Rb[(ja(ha((ha(d|0,4,0,0)|0|0)+52|0,4,0,0)|0|0,31|0)|0)&31](d,C,0)|0)<<24>>24)+(u*10|0)|0;e=ha(a|0,4,0,0)|0|0;l=e+12|0;k=ha(l|0,4,0,0)|0|0;if((k|0)==(ha(e+16|0,4,0,0)|0|0)){Xb[(ja(ha((ha(e|0,4,0,0)|0|0)+40|0,4,0,0)|0|0,63|0)|0)&63](e)|0;q=j;r=y;s=z;t=m;continue}else{ia(l|0,k+4|0,4,0);q=j;r=y;s=z;t=m;continue}}if((n|0)==63){i=f;return o|0}do if(B){t=ha(B+12|0,4,0,0)|0|0;if((t|0)==(ha(B+16|0,4,0,0)|0|0))D=Xb[(ja(ha((ha(B|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](B)|0;else D=ha(t|0,4,0,0)|0|0;if((D|0)==-1){ia(a|0,0|0,4,0);E=1;break}else{E=(ha(a|0,4,0,0)|0|0)==0;break}}else E=1;while(0);do if(y){a=ha(y+12|0,4,0,0)|0|0;if((a|0)==(ha(y+16|0,4,0,0)|0|0))F=Xb[(ja(ha((ha(y|0,4,0,0)|0|0)+36|0,4,0,0)|0|0,63|0)|0)&63](y)|0;else F=ha(a|0,4,0,0)|0|0;if((F|0)==-1){ia(b|0,0|0,4,0);n=60;break}if(E){o=u;i=f;return o|0}}else n=60;while(0);if((n|0)==60?!E:0){o=u;i=f;return o|0}ia(c|0,ha(c|0,4,0,0)|0|2|0,4,0);o=u;i=f;return o|0}function Tl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=a+4|0;f=(ha(e|0,4,0,0)|0|0)!=111;g=ha(a|0,4,0,0)|0|0;h=g;j=(ha(c|0,4,0,0)|0|0)-h|0;k=j>>>0<2147483647?j<<1:-1;j=(ha(b|0,4,0,0)|0|0)-h|0;h=Go(f?g:0,k)|0;if(!h)zo();if(!f){f=ha(a|0,4,0,0)|0|0;ia(a|0,h|0,4,0);if(!f)l=h;else{Ub[(ja(ha(e|0,4,0,0)|0|0,127|0)|0)&127](f);l=ha(a|0,4,0,0)|0|0}}else{ia(a|0,h|0,4,0);l=h}ia(e|0,123|0,4,0);ia(b|0,l+j|0,4,0);ia(c|0,(ha(a|0,4,0,0)|0|0)+k|0,4,0);i=d;return}function Ul(a,b,c){a=a|0;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;d=i;e=a+4|0;f=(ha(e|0,4,0,0)|0|0)!=111;g=ha(a|0,4,0,0)|0|0;h=g;j=(ha(c|0,4,0,0)|0|0)-h|0;k=j>>>0<2147483647?j<<1:-1;j=(ha(b|0,4,0,0)|0|0)-h>>2;if(f)l=g;else l=0;g=Go(l,k)|0;if(!g)zo();if(!f){f=ha(a|0,4,0,0)|0|0;ia(a|0,g|0,4,0);if(!f)m=g;else{Ub[(ja(ha(e|0,4,0,0)|0|0,127|0)|0)&127](f);m=ha(a|0,4,0,0)|0|0}}else{ia(a|0,g|0,4,0);m=g}ia(e|0,123|0,4,0);ia(b|0,m+(j<<2)|0,4,0);ia(c|0,(ha(a|0,4,0,0)|0|0)+(k>>>2<<2)|0,4,0);i=d;return}function Vl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=b;f=ha(a>>0|0,1,0,0)|0|0;if(!(f&1)){g=10;h=(f&255)>>>1;j=f}else{f=ha(a|0,4,0,0)|0|0;g=(f&-2)+-1|0;h=ha(a+4|0,4,0,0)|0|0;j=f&255}f=c-e|0;if((c|0)==(b|0)){i=d;return a|0}if((g-h|0)>>>0<f>>>0){od(a,g,h+f-g|0,h,h,0,0);k=ha(a>>0|0,1,0,0)|0|0}else k=j;if(!(k&1))l=a+1|0;else l=ha(a+8|0,4,0,0)|0|0;k=c+(h-e)|0;e=b;b=l+h|0;while(1){ia(b>>0|0,ha(e>>0|0,1,0,0)|0|0|0,1,0);e=e+1|0;if((e|0)==(c|0))break;else b=b+1|0}ia(l+k>>0|0,0|0,1,0);k=h+f|0;if(!((ha(a>>0|0,1,0,0)|0)&1)){ia(a>>0|0,k<<1|0,1,0);i=d;return a|0}else{ia(a+4|0,k|0,4,0);i=d;return a|0}return 0}function Wl(a,b,c){a=a|0;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;d=i;e=a+4|0;f=(ha(e|0,4,0,0)|0|0)!=111;g=ha(a|0,4,0,0)|0|0;h=g;j=(ha(c|0,4,0,0)|0|0)-h|0;k=j>>>0<2147483647?j<<1:-1;j=(ha(b|0,4,0,0)|0|0)-h>>2;if(f)l=g;else l=0;g=Go(l,k)|0;if(!g)zo();if(!f){f=ha(a|0,4,0,0)|0|0;ia(a|0,g|0,4,0);if(!f)m=g;else{Ub[(ja(ha(e|0,4,0,0)|0|0,127|0)|0)&127](f);m=ha(a|0,4,0,0)|0|0}}else{ia(a|0,g|0,4,0);m=g}ia(e|0,123|0,4,0);ia(b|0,m+(j<<2)|0,4,0);ia(c|0,(ha(a|0,4,0,0)|0|0)+(k>>>2<<2)|0,4,0);i=d;return}function Xl(a,b,c){a=a|0;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;d=i;e=b;f=ha(a>>0|0,1,0,0)|0|0;if(!(f&1)){g=1;h=(f&255)>>>1;j=f}else{f=ha(a|0,4,0,0)|0|0;g=(f&-2)+-1|0;h=ha(a+4|0,4,0,0)|0|0;j=f&255}f=c-e>>2;if(!f){i=d;return a|0}if((g-h|0)>>>0<f>>>0){yd(a,g,h+f-g|0,h,h,0,0);k=ha(a>>0|0,1,0,0)|0|0}else k=j;if(!(k&1))l=a+4|0;else l=ha(a+8|0,4,0,0)|0|0;k=l+(h<<2)|0;if((b|0)==(c|0))m=k;else{j=h+((c+-4-e|0)>>>2)+1|0;e=b;b=k;while(1){ia(b|0,ha(e|0,4,0,0)|0|0,4,0);e=e+4|0;if((e|0)==(c|0))break;else b=b+4|0}m=l+(j<<2)|0}ia(m|0,0|0,4,0);m=h+f|0;if(!((ha(a>>0|0,1,0,0)|0)&1)){ia(a>>0|0,m<<1|0,1,0);i=d;return a|0}else{ia(a+4|0,m|0,4,0);i=d;return a|0}return 0}function Yl(a,b){a=a|0;b=b|0;var c=0;c=i;ia(a|0,0|0,4,0);ia(a+4|0,0|0,4,0);ia(a+8|0,0|0,4,0);ia(a+128>>0|0,0|0,1,0);if(!b){i=c;return}_m(a,b);$m(a,b);i=c;return}function Zl(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(3600)|0);i=c;return}function _l(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(3640)|0);i=c;return}function $l(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5208)|0);i=c;return}function am(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5200)|0);i=c;return}function bm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5272)|0);i=c;return}function cm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5280)|0);i=c;return}function dm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5336)|0);i=c;return}function em(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5344)|0);i=c;return}function fm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5352)|0);i=c;return}function gm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5360)|0);i=c;return}function hm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(3712)|0);i=c;return}function im(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(3832)|0);i=c;return}function jm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(3896)|0);i=c;return}function km(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(3992)|0);i=c;return}function lm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4584)|0);i=c;return}function mm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4648)|0);i=c;return}function nm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4712)|0);i=c;return}function om(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4776)|0);i=c;return}function pm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4816)|0);i=c;return}function qm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4896)|0);i=c;return}function rm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4952)|0);i=c;return}function sm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5e3)|0);i=c;return}function tm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4104)|0);i=c;return}function um(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4256)|0);i=c;return}function vm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4488)|0);i=c;return}function wm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(4520)|0);i=c;return}function xm(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5040)|0);i=c;return}function ym(a,b){a=a|0;b=b|0;var c=0;c=i;Ti(a,b,bj(5080)|0);i=c;return}function zm(a){a=a|0;var b=0,c=0,d=0,e=0;b=i;c=ha(a|0,4,0,0)|0|0;if(!c){i=b;return}d=a+4|0;e=ha(d|0,4,0,0)|0|0;if((e|0)!=(c|0))ia(d|0,e+(~((e+-4-c|0)>>>2)<<2)|0,4,0);if((a+16|0)==(c|0)){ia(a+128>>0|0,0|0,1,0);i=b;return}else{Gn(c);i=b;return}}function Am(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=i;d=a+4|0;e=ha(d|0,4,0,0)|0|0;f=ha(a|0,4,0,0)|0|0;g=e-f>>2;if(g>>>0<b>>>0){an(a,b-g|0);i=c;return}if(g>>>0<=b>>>0){i=c;return}g=f+(b<<2)|0;if((e|0)==(g|0)){i=c;return}ia(d|0,e+(~((e+-4-g|0)>>>2)<<2)|0,4,0);i=c;return}function Bm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;d=ha(a+8|0,4,0,0)|0|0;if((ha(a+12|0,4,0,0)|0|0)-d>>2>>>0<=b>>>0){e=0;i=c;return e|0}e=(ha(d+(b<<2)|0,4,0,0)|0|0)!=0;i=c;return e|0}function Cm(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=i;c=a+4|0;d=ha(c>>0|0,1,0,1)|0|(ha(c+1>>0|0,1,0,1)|0)<<8|(ha(c+2>>0|0,1,0,1)|0)<<16|(ha(c+3>>0|0,1,0,1)|0)<<24;e=c+4|0;c=ha(e>>0|0,1,0,1)|0|(ha(e+1>>0|0,1,0,1)|0)<<8|(ha(e+2>>0|0,1,0,1)|0)<<16|(ha(e+3>>0|0,1,0,1)|0)<<24;e=(ha(a|0,4,0,0)|0|0)+(c>>1)|0;if(!(c&1)){f=d;Ub[(ja(f|0,127|0)|0)&127](e);i=b;return}else{f=ha((ha(e|0,4,0,0)|0|0)+d|0,4,0,0)|0|0;Ub[(ja(f|0,127|0)|0)&127](e);i=b;return}}function Dm(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;j=i;ia(c|0,a|0,4,0);ia(f|0,d|0,4,0);do if(h&2)if((e-d|0)<3){k=1;i=j;return k|0}else{ia(f|0,d+1|0,4,0);ia(d>>0|0,-17|0,1,0);a=ha(f|0,4,0,0)|0|0;ia(f|0,a+1|0,4,0);ia(a>>0|0,-69|0,1,0);a=ha(f|0,4,0,0)|0|0;ia(f|0,a+1|0,4,0);ia(a>>0|0,-65|0,1,0);break}while(0);d=b;h=ha(c|0,4,0,0)|0|0;if(h>>>0>=b>>>0){k=0;i=j;return k|0}a=e;e=h;a:while(1){h=ha(e|0,2,0,0)|0|0;l=h&65535;if(l>>>0>g>>>0){k=2;m=26;break}do if((h&65535)<128){n=ha(f|0,4,0,0)|0|0;if((a-n|0)<1){k=1;m=26;break a}ia(f|0,n+1|0,4,0);ia(n>>0|0,h|0,1,0)}else{if((h&65535)<2048){n=ha(f|0,4,0,0)|0|0;if((a-n|0)<2){k=1;m=26;break a}ia(f|0,n+1|0,4,0);ia(n>>0|0,l>>>6|192|0,1,0);n=ha(f|0,4,0,0)|0|0;ia(f|0,n+1|0,4,0);ia(n>>0|0,l&63|128|0,1,0);break}if((h&65535)<55296){n=ha(f|0,4,0,0)|0|0;if((a-n|0)<3){k=1;m=26;break a}ia(f|0,n+1|0,4,0);ia(n>>0|0,l>>>12|224|0,1,0);n=ha(f|0,4,0,0)|0|0;ia(f|0,n+1|0,4,0);ia(n>>0|0,l>>>6&63|128|0,1,0);n=ha(f|0,4,0,0)|0|0;ia(f|0,n+1|0,4,0);ia(n>>0|0,l&63|128|0,1,0);break}if((h&65535)>=56320){if((h&65535)<57344){k=2;m=26;break a}n=ha(f|0,4,0,0)|0|0;if((a-n|0)<3){k=1;m=26;break a}ia(f|0,n+1|0,4,0);ia(n>>0|0,l>>>12|224|0,1,0);n=ha(f|0,4,0,0)|0|0;ia(f|0,n+1|0,4,0);ia(n>>0|0,l>>>6&63|128|0,1,0);n=ha(f|0,4,0,0)|0|0;ia(f|0,n+1|0,4,0);ia(n>>0|0,l&63|128|0,1,0);break}if((d-e|0)<4){k=1;m=26;break a}n=e+2|0;o=ha(n|0,2,0,1)|0|0;if((o&64512|0)!=56320){k=2;m=26;break a}if((a-(ha(f|0,4,0,0)|0|0)|0)<4){k=1;m=26;break a}p=l&960;if(((p<<10)+65536|l<<10&64512|o&1023)>>>0>g>>>0){k=2;m=26;break a}ia(c|0,n|0,4,0);n=(p>>>6)+1|0;p=ha(f|0,4,0,0)|0|0;ia(f|0,p+1|0,4,0);ia(p>>0|0,n>>>2|240|0,1,0);p=ha(f|0,4,0,0)|0|0;ia(f|0,p+1|0,4,0);ia(p>>0|0,l>>>2&15|n<<4&48|128|0,1,0);n=ha(f|0,4,0,0)|0|0;ia(f|0,n+1|0,4,0);ia(n>>0|0,l<<4&48|o>>>6&15|128|0,1,0);n=ha(f|0,4,0,0)|0|0;ia(f|0,n+1|0,4,0);ia(n>>0|0,o&63|128|0,1,0)}while(0);e=(ha(c|0,4,0,0)|0|0)+2|0;ia(c|0,e|0,4,0);if(e>>>0>=b>>>0){k=0;m=26;break}}if((m|0)==26){i=j;return k|0}return 0}function Em(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;j=i;ia(c|0,a|0,4,0);ia(f|0,d|0,4,0);d=ha(c|0,4,0,0)|0|0;if(((((h&4|0)!=0?(b-d|0)>2:0)?(ha(d>>0|0,1,0,0)|0|0)==-17:0)?(ha(d+1>>0|0,1,0,0)|0|0)==-69:0)?(ha(d+2>>0|0,1,0,0)|0|0)==-65:0){h=d+3|0;ia(c|0,h|0,4,0);k=h}else k=d;a:do if(k>>>0<b>>>0){d=b;h=e;a=ha(f|0,4,0,0)|0|0;l=k;b:while(1){if(a>>>0>=e>>>0){m=l;break a}n=ha(l>>0|0,1,0,0)|0|0;o=n&255;if(o>>>0>g>>>0){p=2;q=41;break}do if(n<<24>>24>-1){ia(a|0,n&255|0,2,0);ia(c|0,l+1|0,4,0)}else{if((n&255)<194){p=2;q=41;break b}if((n&255)<224){if((d-l|0)<2){p=1;q=41;break b}r=ha(l+1>>0|0,1,0,1)|0|0;if((r&192|0)!=128){p=2;q=41;break b}s=r&63|o<<6&1984;if(s>>>0>g>>>0){p=2;q=41;break b}ia(a|0,s|0,2,0);ia(c|0,l+2|0,4,0);break}if((n&255)<240){if((d-l|0)<3){p=1;q=41;break b}s=ha(l+1>>0|0,1,0,0)|0|0;r=ha(l+2>>0|0,1,0,0)|0|0;if((o|0)==237){if((s&-32)<<24>>24!=-128){p=2;q=41;break b}}else if((o|0)==224){if((s&-32)<<24>>24!=-96){p=2;q=41;break b}}else if((s&-64)<<24>>24!=-128){p=2;q=41;break b}t=r&255;if((t&192|0)!=128){p=2;q=41;break b}r=(s&255)<<6&4032|o<<12|t&63;if((r&65535)>>>0>g>>>0){p=2;q=41;break b}ia(a|0,r|0,2,0);ia(c|0,l+3|0,4,0);break}if((n&255)>=245){p=2;q=41;break b}if((d-l|0)<4){p=1;q=41;break b}r=ha(l+1>>0|0,1,0,0)|0|0;t=ha(l+2>>0|0,1,0,0)|0|0;s=ha(l+3>>0|0,1,0,0)|0|0;if((o|0)==240){if((r+112<<24>>24&255)>=48){p=2;q=41;break b}}else if((o|0)==244){if((r&-16)<<24>>24!=-128){p=2;q=41;break b}}else if((r&-64)<<24>>24!=-128){p=2;q=41;break b}u=t&255;if((u&192|0)!=128){p=2;q=41;break b}t=s&255;if((t&192|0)!=128){p=2;q=41;break b}if((h-a|0)<4){p=1;q=41;break b}s=o&7;v=r&255;r=u<<6;w=t&63;if((v<<12&258048|s<<18|r&4032|w)>>>0>g>>>0){p=2;q=41;break b}ia(a|0,v<<2&60|u>>>4&3|((v>>>4&3|s<<2)<<6)+16320|55296|0,2,0);s=a+2|0;ia(f|0,s|0,4,0);ia(s|0,w|r&960|56320|0,2,0);ia(c|0,(ha(c|0,4,0,0)|0|0)+4|0,4,0)}while(0);a=(ha(f|0,4,0,0)|0|0)+2|0;ia(f|0,a|0,4,0);o=ha(c|0,4,0,0)|0|0;if(o>>>0>=b>>>0){m=o;break a}else l=o}if((q|0)==41){i=j;return p|0}}else m=k;while(0);p=m>>>0<b>>>0&1;i=j;return p|0}
function Fm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;f=i;if((((e&4|0)!=0?(b-a|0)>2:0)?(ha(a>>0|0,1,0,0)|0|0)==-17:0)?(ha(a+1>>0|0,1,0,0)|0|0)==-69:0)g=(ha(a+2>>0|0,1,0,0)|0|0)==-65?a+3|0:a;else g=a;a:do if(g>>>0<b>>>0&(c|0)!=0){e=b;h=g;j=0;b:while(1){k=ha(h>>0|0,1,0,0)|0|0;l=k&255;if(l>>>0>d>>>0){m=h;break a}do if(k<<24>>24>-1){n=h+1|0;o=j}else{if((k&255)<194){m=h;break a}if((k&255)<224){if((e-h|0)<2){m=h;break a}p=ha(h+1>>0|0,1,0,1)|0|0;if((p&192|0)!=128){m=h;break a}if((p&63|l<<6&1984)>>>0>d>>>0){m=h;break a}n=h+2|0;o=j;break}if((k&255)<240){q=h;if((e-q|0)<3){m=h;break a}p=ha(h+1>>0|0,1,0,0)|0|0;r=ha(h+2>>0|0,1,0,0)|0|0;if((l|0)==237){if((p&-32)<<24>>24!=-128){s=23;break b}}else if((l|0)==224){if((p&-32)<<24>>24!=-96){s=21;break b}}else if((p&-64)<<24>>24!=-128){s=25;break b}t=r&255;if((t&192|0)!=128){m=h;break a}if(((p&255)<<6&4032|l<<12&61440|t&63)>>>0>d>>>0){m=h;break a}n=h+3|0;o=j;break}if((k&255)>=245){m=h;break a}u=h;if((e-u|0)<4|(c-j|0)>>>0<2){m=h;break a}t=ha(h+1>>0|0,1,0,0)|0|0;p=ha(h+2>>0|0,1,0,0)|0|0;r=ha(h+3>>0|0,1,0,0)|0|0;if((l|0)==244){if((t&-16)<<24>>24!=-128){s=35;break b}}else if((l|0)==240){if((t+112<<24>>24&255)>=48){s=33;break b}}else if((t&-64)<<24>>24!=-128){s=37;break b}v=p&255;if((v&192|0)!=128){m=h;break a}p=r&255;if((p&192|0)!=128){m=h;break a}if(((t&255)<<12&258048|l<<18&1835008|v<<6&4032|p&63)>>>0>d>>>0){m=h;break a}n=h+4|0;o=j+1|0}while(0);j=o+1|0;if(!(n>>>0<b>>>0&j>>>0<c>>>0)){m=n;break a}else h=n}if((s|0)==21){w=q-a|0;i=f;return w|0}else if((s|0)==23){w=q-a|0;i=f;return w|0}else if((s|0)==25){w=q-a|0;i=f;return w|0}else if((s|0)==33){w=u-a|0;i=f;return w|0}else if((s|0)==35){w=u-a|0;i=f;return w|0}else if((s|0)==37){w=u-a|0;i=f;return w|0}}else m=g;while(0);w=m-a|0;i=f;return w|0}function Gm(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;ia(c|0,a|0,4,0);ia(f|0,d|0,4,0);do if(h&2)if((e-d|0)<3){k=1;i=j;return k|0}else{ia(f|0,d+1|0,4,0);ia(d>>0|0,-17|0,1,0);a=ha(f|0,4,0,0)|0|0;ia(f|0,a+1|0,4,0);ia(a>>0|0,-69|0,1,0);a=ha(f|0,4,0,0)|0|0;ia(f|0,a+1|0,4,0);ia(a>>0|0,-65|0,1,0);break}while(0);d=ha(c|0,4,0,0)|0|0;if(d>>>0>=b>>>0){k=0;i=j;return k|0}h=e;e=d;a:while(1){d=ha(e|0,4,0,0)|0|0;if((d&-2048|0)==55296|d>>>0>g>>>0){k=2;l=19;break}do if(d>>>0>=128){if(d>>>0<2048){a=ha(f|0,4,0,0)|0|0;if((h-a|0)<2){k=1;l=19;break a}ia(f|0,a+1|0,4,0);ia(a>>0|0,d>>>6|192|0,1,0);a=ha(f|0,4,0,0)|0|0;ia(f|0,a+1|0,4,0);ia(a>>0|0,d&63|128|0,1,0);break}a=ha(f|0,4,0,0)|0|0;m=h-a|0;if(d>>>0<65536){if((m|0)<3){k=1;l=19;break a}ia(f|0,a+1|0,4,0);ia(a>>0|0,d>>>12|224|0,1,0);n=ha(f|0,4,0,0)|0|0;ia(f|0,n+1|0,4,0);ia(n>>0|0,d>>>6&63|128|0,1,0);n=ha(f|0,4,0,0)|0|0;ia(f|0,n+1|0,4,0);ia(n>>0|0,d&63|128|0,1,0);break}else{if((m|0)<4){k=1;l=19;break a}ia(f|0,a+1|0,4,0);ia(a>>0|0,d>>>18|240|0,1,0);a=ha(f|0,4,0,0)|0|0;ia(f|0,a+1|0,4,0);ia(a>>0|0,d>>>12&63|128|0,1,0);a=ha(f|0,4,0,0)|0|0;ia(f|0,a+1|0,4,0);ia(a>>0|0,d>>>6&63|128|0,1,0);a=ha(f|0,4,0,0)|0|0;ia(f|0,a+1|0,4,0);ia(a>>0|0,d&63|128|0,1,0);break}}else{a=ha(f|0,4,0,0)|0|0;if((h-a|0)<1){k=1;l=19;break a}ia(f|0,a+1|0,4,0);ia(a>>0|0,d|0,1,0)}while(0);e=(ha(c|0,4,0,0)|0|0)+4|0;ia(c|0,e|0,4,0);if(e>>>0>=b>>>0){k=0;l=19;break}}if((l|0)==19){i=j;return k|0}return 0}function Hm(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|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;j=i;ia(c|0,a|0,4,0);ia(f|0,d|0,4,0);d=ha(c|0,4,0,0)|0|0;if(((((h&4|0)!=0?(b-d|0)>2:0)?(ha(d>>0|0,1,0,0)|0|0)==-17:0)?(ha(d+1>>0|0,1,0,0)|0|0)==-69:0)?(ha(d+2>>0|0,1,0,0)|0|0)==-65:0){h=d+3|0;ia(c|0,h|0,4,0);k=h}else k=d;a:do if(k>>>0<b>>>0){d=b;h=ha(f|0,4,0,0)|0|0;a=k;while(1){if(h>>>0>=e>>>0){l=a;m=39;break a}n=ha(a>>0|0,1,0,0)|0|0;o=n&255;do if(n<<24>>24>-1){if(o>>>0>g>>>0){p=2;break a}ia(h|0,o|0,4,0);ia(c|0,a+1|0,4,0)}else{if((n&255)<194){p=2;break a}if((n&255)<224){if((d-a|0)<2){p=1;break a}q=ha(a+1>>0|0,1,0,1)|0|0;if((q&192|0)!=128){p=2;break a}r=q&63|o<<6&1984;if(r>>>0>g>>>0){p=2;break a}ia(h|0,r|0,4,0);ia(c|0,a+2|0,4,0);break}if((n&255)<240){if((d-a|0)<3){p=1;break a}r=ha(a+1>>0|0,1,0,0)|0|0;q=ha(a+2>>0|0,1,0,0)|0|0;if((o|0)==237){if((r&-32)<<24>>24!=-128){p=2;break a}}else if((o|0)==224){if((r&-32)<<24>>24!=-96){p=2;break a}}else if((r&-64)<<24>>24!=-128){p=2;break a}s=q&255;if((s&192|0)!=128){p=2;break a}q=(r&255)<<6&4032|o<<12&61440|s&63;if(q>>>0>g>>>0){p=2;break a}ia(h|0,q|0,4,0);ia(c|0,a+3|0,4,0);break}if((n&255)>=245){p=2;break a}if((d-a|0)<4){p=1;break a}q=ha(a+1>>0|0,1,0,0)|0|0;s=ha(a+2>>0|0,1,0,0)|0|0;r=ha(a+3>>0|0,1,0,0)|0|0;if((o|0)==244){if((q&-16)<<24>>24!=-128){p=2;break a}}else if((o|0)==240){if((q+112<<24>>24&255)>=48){p=2;break a}}else if((q&-64)<<24>>24!=-128){p=2;break a}t=s&255;if((t&192|0)!=128){p=2;break a}s=r&255;if((s&192|0)!=128){p=2;break a}r=(q&255)<<12&258048|o<<18&1835008|t<<6&4032|s&63;if(r>>>0>g>>>0){p=2;break a}ia(h|0,r|0,4,0);ia(c|0,a+4|0,4,0)}while(0);h=(ha(f|0,4,0,0)|0|0)+4|0;ia(f|0,h|0,4,0);o=ha(c|0,4,0,0)|0|0;if(o>>>0>=b>>>0){l=o;m=39;break}else a=o}}else{l=k;m=39}while(0);if((m|0)==39)p=l>>>0<b>>>0&1;i=j;return p|0}function Im(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;f=i;if((((e&4|0)!=0?(b-a|0)>2:0)?(ha(a>>0|0,1,0,0)|0|0)==-17:0)?(ha(a+1>>0|0,1,0,0)|0|0)==-69:0)g=(ha(a+2>>0|0,1,0,0)|0|0)==-65?a+3|0:a;else g=a;a:do if(g>>>0<b>>>0&(c|0)!=0){e=b;h=g;j=0;b:while(1){k=ha(h>>0|0,1,0,0)|0|0;l=k&255;do if(k<<24>>24>-1){if(l>>>0>d>>>0){m=h;break a}n=h+1|0}else{if((k&255)<194){m=h;break a}if((k&255)<224){if((e-h|0)<2){m=h;break a}o=ha(h+1>>0|0,1,0,1)|0|0;if((o&192|0)!=128){m=h;break a}if((o&63|l<<6&1984)>>>0>d>>>0){m=h;break a}n=h+2|0;break}if((k&255)<240){p=h;if((e-p|0)<3){m=h;break a}o=ha(h+1>>0|0,1,0,0)|0|0;q=ha(h+2>>0|0,1,0,0)|0|0;if((l|0)==237){if((o&-32)<<24>>24!=-128){r=23;break b}}else if((l|0)==224){if((o&-32)<<24>>24!=-96){r=21;break b}}else if((o&-64)<<24>>24!=-128){r=25;break b}s=q&255;if((s&192|0)!=128){m=h;break a}if(((o&255)<<6&4032|l<<12&61440|s&63)>>>0>d>>>0){m=h;break a}n=h+3|0;break}if((k&255)>=245){m=h;break a}t=h;if((e-t|0)<4){m=h;break a}s=ha(h+1>>0|0,1,0,0)|0|0;o=ha(h+2>>0|0,1,0,0)|0|0;q=ha(h+3>>0|0,1,0,0)|0|0;if((l|0)==244){if((s&-16)<<24>>24!=-128){r=35;break b}}else if((l|0)==240){if((s+112<<24>>24&255)>=48){r=33;break b}}else if((s&-64)<<24>>24!=-128){r=37;break b}u=o&255;if((u&192|0)!=128){m=h;break a}o=q&255;if((o&192|0)!=128){m=h;break a}if(((s&255)<<12&258048|l<<18&1835008|u<<6&4032|o&63)>>>0>d>>>0){m=h;break a}n=h+4|0}while(0);j=j+1|0;if(!(n>>>0<b>>>0&j>>>0<c>>>0)){m=n;break a}else h=n}if((r|0)==21){v=p-a|0;i=f;return v|0}else if((r|0)==23){v=p-a|0;i=f;return v|0}else if((r|0)==25){v=p-a|0;i=f;return v|0}else if((r|0)==33){v=t-a|0;i=f;return v|0}else if((r|0)==35){v=t-a|0;i=f;return v|0}else if((r|0)==37){v=t-a|0;i=f;return v|0}}else m=g;while(0);v=m-a|0;i=f;return v|0}function Jm(a){a=a|0;a=i;ed(12708|0);ed(12696|0);ed(12684|0);ed(12672|0);ed(12660|0);ed(12648|0);ed(12636|0);ed(12624|0);ed(12612|0);ed(12600|0);ed(12588|0);ed(12576|0);ed(12564|0);ed(12552);i=a;return}function Km(a){a=a|0;a=i;sd(12172|0);sd(12160|0);sd(12148|0);sd(12136|0);sd(12124|0);sd(12112|0);sd(12100|0);sd(12088|0);sd(12076|0);sd(12064|0);sd(12052|0);sd(12040|0);sd(12028|0);sd(12016);i=a;return}function Lm(a){a=a|0;a=i;ed(11780|0);ed(11768|0);ed(11756|0);ed(11744|0);ed(11732|0);ed(11720|0);ed(11708|0);ed(11696|0);ed(11684|0);ed(11672|0);ed(11660|0);ed(11648|0);ed(11636|0);ed(11624|0);ed(11612|0);ed(11600|0);ed(11588|0);ed(11576|0);ed(11564|0);ed(11552|0);ed(11540|0);ed(11528|0);ed(11516|0);ed(11504);i=a;return}function Mm(a){a=a|0;a=i;sd(10940|0);sd(10928|0);sd(10916|0);sd(10904|0);sd(10892|0);sd(10880|0);sd(10868|0);sd(10856|0);sd(10844|0);sd(10832|0);sd(10820|0);sd(10808|0);sd(10796|0);sd(10784|0);sd(10772|0);sd(10760|0);sd(10748|0);sd(10736|0);sd(10724|0);sd(10712|0);sd(10700|0);sd(10688|0);sd(10676|0);sd(10664);i=a;return}function Nm(a){a=a|0;a=i;ed(10628|0);ed(10616|0);ed(10604|0);ed(10592|0);ed(10580|0);ed(10568|0);ed(10556|0);ed(10544|0);ed(10532|0);ed(10520|0);ed(10508|0);ed(10496|0);ed(10484|0);ed(10472|0);ed(10460|0);ed(10448|0);ed(10436|0);ed(10424|0);ed(10412|0);ed(10400|0);ed(10388|0);ed(10376|0);ed(10364|0);ed(10352);i=a;return}function Om(a){a=a|0;a=i;sd(10300|0);sd(10288|0);sd(10276|0);sd(10264|0);sd(10252|0);sd(10240|0);sd(10228|0);sd(10216|0);sd(10204|0);sd(10192|0);sd(10180|0);sd(10168|0);sd(10156|0);sd(10144|0);sd(10132|0);sd(10120|0);sd(10108|0);sd(10096|0);sd(10084|0);sd(10072|0);sd(10060|0);sd(10048|0);sd(10036|0);sd(10024);i=a;return}function Pm(a,b){a=a|0;b=b|0;var c=0,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;c=i;i=i+32|0;d=c+16|0;e=c+8|0;f=c+4|0;g=c;h=a+52|0;if(ha(h>>0|0,1,0,0)|0){j=a+48|0;k=ha(j|0,4,0,0)|0|0;if(!b){l=k;i=c;return l|0}ia(j|0,-1|0,4,0);ia(h>>0|0,0|0,1,0);l=k;i=c;return l|0}k=ha(a+44|0,4,0,0)|0|0;h=(k|0)>1?k:1;a:do if((h|0)>0){k=a+32|0;j=0;while(1){m=sb(ha(k|0,4,0,0)|0|0)|0;if((m|0)==-1){l=-1;break}ia(d+j>>0|0,m|0,1,0);j=j+1|0;if((j|0)>=(h|0))break a}i=c;return l|0}while(0);b:do if(!(ha(a+53>>0|0,1,0,0)|0)){j=a+40|0;k=a+36|0;m=e+4|0;n=a+32|0;o=h;while(1){p=ha(j|0,4,0,0)|0|0;q=p;r=ha(q|0,4,0,0)|0|0;s=ha(q+4|0,4,0,0)|0|0;q=ha(k|0,4,0,0)|0|0;t=d+o|0;u=ac[(ja(ha((ha(q|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,15|0)|0)&15](q,p,d,t,f,e,m,g)|0;if((u|0)==3){v=14;break}else if((u|0)==2){l=-1;v=22;break}else if((u|0)!=1){w=o;break b}u=ha(j|0,4,0,0)|0|0;ia(u|0,r|0,4,0);ia(u+4|0,s|0,4,0);if((o|0)==8){l=-1;v=22;break}s=sb(ha(n|0,4,0,0)|0|0)|0;if((s|0)==-1){l=-1;v=22;break}ia(t>>0|0,s|0,1,0);o=o+1|0}if((v|0)==14){ia(e|0,ha(d>>0|0,1,0,0)|0|0,4,0);w=o;break}else if((v|0)==22){i=c;return l|0}}else{ia(e|0,ha(d>>0|0,1,0,0)|0|0,4,0);w=h}while(0);if(b){b=ha(e|0,4,0,0)|0|0;ia(a+48|0,b|0,4,0);l=b;i=c;return l|0}b=a+32|0;a=w;while(1){if((a|0)<=0)break;a=a+-1|0;if((Ma(ha(d+a>>0|0,1,0,0)|0|0,ha(b|0,4,0,0)|0|0)|0)==-1){l=-1;v=22;break}}if((v|0)==22){i=c;return l|0}l=ha(e|0,4,0,0)|0|0;i=c;return l|0}function Qm(a,b){a=a|0;b=b|0;var c=0,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;c=i;i=i+32|0;d=c+16|0;e=c+8|0;f=c+4|0;g=c;h=a+52|0;if(ha(h>>0|0,1,0,0)|0){j=a+48|0;k=ha(j|0,4,0,0)|0|0;if(!b){l=k;i=c;return l|0}ia(j|0,-1|0,4,0);ia(h>>0|0,0|0,1,0);l=k;i=c;return l|0}k=ha(a+44|0,4,0,0)|0|0;h=(k|0)>1?k:1;a:do if((h|0)>0){k=a+32|0;j=0;while(1){m=sb(ha(k|0,4,0,0)|0|0)|0;if((m|0)==-1){l=-1;break}ia(d+j>>0|0,m|0,1,0);j=j+1|0;if((j|0)>=(h|0))break a}i=c;return l|0}while(0);b:do if(!(ha(a+53>>0|0,1,0,0)|0)){j=a+40|0;k=a+36|0;m=e+1|0;n=a+32|0;o=h;while(1){p=ha(j|0,4,0,0)|0|0;q=p;r=ha(q|0,4,0,0)|0|0;s=ha(q+4|0,4,0,0)|0|0;q=ha(k|0,4,0,0)|0|0;t=d+o|0;u=ac[(ja(ha((ha(q|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,15|0)|0)&15](q,p,d,t,f,e,m,g)|0;if((u|0)==3){v=14;break}else if((u|0)==2){l=-1;v=23;break}else if((u|0)!=1){w=o;break b}u=ha(j|0,4,0,0)|0|0;ia(u|0,r|0,4,0);ia(u+4|0,s|0,4,0);if((o|0)==8){l=-1;v=23;break}s=sb(ha(n|0,4,0,0)|0|0)|0;if((s|0)==-1){l=-1;v=23;break}ia(t>>0|0,s|0,1,0);o=o+1|0}if((v|0)==14){ia(e>>0|0,ha(d>>0|0,1,0,0)|0|0|0,1,0);w=o;break}else if((v|0)==23){i=c;return l|0}}else{ia(e>>0|0,ha(d>>0|0,1,0,0)|0|0|0,1,0);w=h}while(0);do if(!b){h=a+32|0;g=w;while(1){if((g|0)<=0){v=21;break}g=g+-1|0;if((Ma(ha(d+g>>0|0,1,0,1)|0|0,ha(h|0,4,0,0)|0|0)|0)==-1){l=-1;v=23;break}}if((v|0)==21){x=ha(e>>0|0,1,0,0)|0|0;break}else if((v|0)==23){i=c;return l|0}}else{h=ha(e>>0|0,1,0,0)|0|0;ia(a+48|0,h&255|0,4,0);x=h}while(0);l=x&255;i=c;return l|0}function Rm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;if((a|0)==(b|0)){ia(c|0,4|0,4,0);g=0;i=e;return g|0}h=wb()|0;j=ha(h|0,4,0,0)|0|0;ia(h|0,0|0,4,0);k=gn(a,f,d,qf()|0)|0;d=H;a=ha(h|0,4,0,0)|0|0;if(!a)ia(h|0,j|0,4,0);if((ha(f|0,4,0,0)|0|0)!=(b|0)){ia(c|0,4|0,4,0);g=0;i=e;return g|0}do if((a|0)==34){ia(c|0,4|0,4,0);if((d|0)>0|(d|0)==0&k>>>0>0){g=2147483647;i=e;return g|0}}else{if((d|0)<-1|(d|0)==-1&k>>>0<2147483648){ia(c|0,4|0,4,0);break}if((d|0)>0|(d|0)==0&k>>>0>2147483647){ia(c|0,4|0,4,0);g=2147483647;i=e;return g|0}else{g=k;i=e;return g|0}}while(0);g=-2147483648;i=e;return g|0}function Sm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+16|0;f=e;if((a|0)==(b|0)){ia(c|0,4|0,4,0);g=0;h=0;H=g;i=e;return h|0}j=wb()|0;k=ha(j|0,4,0,0)|0|0;ia(j|0,0|0,4,0);l=gn(a,f,d,qf()|0)|0;d=H;a=ha(j|0,4,0,0)|0|0;if(!a)ia(j|0,k|0,4,0);if((ha(f|0,4,0,0)|0|0)!=(b|0)){ia(c|0,4|0,4,0);g=0;h=0;H=g;i=e;return h|0}if((a|0)==34){ia(c|0,4|0,4,0);c=(d|0)>0|(d|0)==0&l>>>0>0;H=c?2147483647:-2147483648;i=e;return (c?-1:0)|0}else{g=d;h=l;H=g;i=e;return h|0}return 0}function Tm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;if((a|0)==(b|0)){ia(c|0,4|0,4,0);g=0;i=e;return g|0}if((ha(a>>0|0,1,0,0)|0|0)==45){ia(c|0,4|0,4,0);g=0;i=e;return g|0}h=wb()|0;j=ha(h|0,4,0,0)|0|0;ia(h|0,0|0,4,0);k=fn(a,f,d,qf()|0)|0;d=H;a=ha(h|0,4,0,0)|0|0;if(!a)ia(h|0,j|0,4,0);if((ha(f|0,4,0,0)|0|0)!=(b|0)){ia(c|0,4|0,4,0);g=0;i=e;return g|0}if((a|0)==34|(d>>>0>0|(d|0)==0&k>>>0>65535)){ia(c|0,4|0,4,0);g=-1;i=e;return g|0}else{g=k&65535;i=e;return g|0}return 0}function Um(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;if((a|0)==(b|0)){ia(c|0,4|0,4,0);g=0;i=e;return g|0}if((ha(a>>0|0,1,0,0)|0|0)==45){ia(c|0,4|0,4,0);g=0;i=e;return g|0}h=wb()|0;j=ha(h|0,4,0,0)|0|0;ia(h|0,0|0,4,0);k=fn(a,f,d,qf()|0)|0;d=H;a=ha(h|0,4,0,0)|0|0;if(!a)ia(h|0,j|0,4,0);if((ha(f|0,4,0,0)|0|0)!=(b|0)){ia(c|0,4|0,4,0);g=0;i=e;return g|0}if((a|0)==34|(d>>>0>0|(d|0)==0&k>>>0>4294967295)){ia(c|0,4|0,4,0);g=-1;i=e;return g|0}else{g=k;i=e;return g|0}return 0}function Vm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e;if((a|0)==(b|0)){ia(c|0,4|0,4,0);g=0;i=e;return g|0}if((ha(a>>0|0,1,0,0)|0|0)==45){ia(c|0,4|0,4,0);g=0;i=e;return g|0}h=wb()|0;j=ha(h|0,4,0,0)|0|0;ia(h|0,0|0,4,0);k=fn(a,f,d,qf()|0)|0;d=H;a=ha(h|0,4,0,0)|0|0;if(!a)ia(h|0,j|0,4,0);if((ha(f|0,4,0,0)|0|0)!=(b|0)){ia(c|0,4|0,4,0);g=0;i=e;return g|0}if((a|0)==34|(d>>>0>0|(d|0)==0&k>>>0>4294967295)){ia(c|0,4|0,4,0);g=-1;i=e;return g|0}else{g=k;i=e;return g|0}return 0}function Wm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;e=i;i=i+16|0;f=e;do if((a|0)!=(b|0)){if((ha(a>>0|0,1,0,0)|0|0)==45){ia(c|0,4|0,4,0);g=0;h=0;break}j=wb()|0;k=ha(j|0,4,0,0)|0|0;ia(j|0,0|0,4,0);l=fn(a,f,d,qf()|0)|0;m=ha(j|0,4,0,0)|0|0;if(!m)ia(j|0,k|0,4,0);if((ha(f|0,4,0,0)|0|0)!=(b|0)){ia(c|0,4|0,4,0);g=0;h=0;break}if((m|0)==34){ia(c|0,4|0,4,0);g=-1;h=-1}else{g=H;h=l}}else{ia(c|0,4|0,4,0);g=0;h=0}while(0);H=g;i=e;return h|0}function Xm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0,g=0,h=0,j=0.0;d=i;i=i+16|0;e=d;if((a|0)==(b|0)){ia(c|0,4|0,4,0);f=0.0;i=d;return +f}g=wb()|0;h=ha(g|0,4,0,0)|0|0;ia(g|0,0|0,4,0);j=+cp(a,e,qf()|0);a=ha(g|0,4,0,0)|0|0;if(!a)ia(g|0,h|0,4,0);if((ha(e|0,4,0,0)|0|0)!=(b|0)){ia(c|0,4|0,4,0);f=0.0;i=d;return +f}if((a|0)==34)ia(c|0,4|0,4,0);f=j;i=d;return +f}function Ym(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0.0,j=0,k=0.0;d=i;i=i+16|0;e=d;do if((a|0)!=(b|0)){f=wb()|0;g=ha(f|0,4,0,0)|0|0;ia(f|0,0|0,4,0);h=+cp(a,e,qf()|0);j=ha(f|0,4,0,0)|0|0;if(!j)ia(f|0,g|0,4,0);if((ha(e|0,4,0,0)|0|0)!=(b|0)){ia(c|0,4|0,4,0);k=0.0;break}if((j|0)==34){ia(c|0,4|0,4,0);k=h}else k=h}else{ia(c|0,4|0,4,0);k=0.0}while(0);i=d;return +k}function Zm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0.0,j=0,k=0.0;d=i;i=i+16|0;e=d;do if((a|0)!=(b|0)){f=wb()|0;g=ha(f|0,4,0,0)|0|0;ia(f|0,0|0,4,0);h=+cp(a,e,qf()|0);j=ha(f|0,4,0,0)|0|0;if(!j)ia(f|0,g|0,4,0);if((ha(e|0,4,0,0)|0|0)!=(b|0)){ia(c|0,4|0,4,0);k=0.0;break}if((j|0)==34){ia(c|0,4|0,4,0);k=h}else k=h}else{ia(c|0,4|0,4,0);k=0.0}while(0);i=d;return +k}function _m(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;if(b>>>0>1073741823)Qi(a);d=a+128|0;if((ha(d>>0|0,1,0,0)|0|0)==0&b>>>0<29){ia(d>>0|0,1|0,1,0);e=a+16|0}else e=En(b<<2)|0;ia(a+4|0,e|0,4,0);ia(a|0,e|0,4,0);ia(a+8|0,e+(b<<2)|0,4,0);i=c;return}function $m(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;d=a+4|0;a=b;b=ha(d|0,4,0,0)|0|0;do{if(!b)e=0;else{ia(b|0,0|0,4,0);e=ha(d|0,4,0,0)|0|0}b=e+4|0;ia(d|0,b|0,4,0);a=a+-1|0}while((a|0)!=0);i=c;return}function an(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;c=i;i=i+32|0;d=c;e=ha(a+8|0,4,0,0)|0|0;f=ha(a+4|0,4,0,0)|0|0;if(e-f>>2>>>0>=b>>>0){$m(a,b);i=c;return}g=ha(a|0,4,0,0)|0|0;h=f-g>>2;f=h+b|0;if(f>>>0>1073741823)Qi(a);j=e-g|0;if(j>>2>>>0<536870911){g=j>>1;k=g>>>0<f>>>0?f:g}else k=1073741823;bn(d,k,h,a+16|0);cn(d,b);dn(a,d);en(d);i=c;return}function bn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=a+12|0;ia(f|0,0|0,4,0);ia(a+16|0,d|0,4,0);do if(b){g=d+112|0;if((ha(g>>0|0,1,0,0)|0|0)==0&b>>>0<29){ia(g>>0|0,1|0,1,0);h=d;break}else{h=En(b<<2)|0;break}}else h=0;while(0);ia(a|0,h|0,4,0);d=h+(c<<2)|0;ia(a+8|0,d|0,4,0);ia(a+4|0,d|0,4,0);ia(f|0,h+(b<<2)|0,4,0);i=e;return}function cn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;d=a+8|0;a=b;b=ha(d|0,4,0,0)|0|0;do{if(!b)e=0;else{ia(b|0,0|0,4,0);e=ha(d|0,4,0,0)|0|0}b=e+4|0;ia(d|0,b|0,4,0);a=a+-1|0}while((a|0)!=0);i=c;return}function dn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=i;d=ha(a|0,4,0,0)|0|0;e=a+4|0;f=b+4|0;g=(ha(e|0,4,0,0)|0|0)-d|0;h=(ha(f|0,4,0,0)|0|0)+(0-(g>>2)<<2)|0;ia(f|0,h|0,4,0);tp(h|0,d|0,g|0)|0;g=ha(a|0,4,0,0)|0|0;ia(a|0,ha(f|0,4,0,0)|0|0,4,0);ia(f|0,g|0,4,0);g=b+8|0;d=ha(e|0,4,0,0)|0|0;ia(e|0,ha(g|0,4,0,0)|0|0,4,0);ia(g|0,d|0,4,0);d=a+8|0;a=b+12|0;g=ha(d|0,4,0,0)|0|0;ia(d|0,ha(a|0,4,0,0)|0|0,4,0);ia(a|0,g|0,4,0);ia(b|0,ha(f|0,4,0,0)|0|0,4,0);i=c;return}function en(a){a=a|0;var b=0,c=0,d=0,e=0;b=i;c=ha(a+4|0,4,0,0)|0|0;d=a+8|0;e=ha(d|0,4,0,0)|0|0;if((e|0)!=(c|0))ia(d|0,e+(~((e+-4-c|0)>>>2)<<2)|0,4,0);c=ha(a|0,4,0,0)|0|0;if(!c){i=b;return}e=ha(a+16|0,4,0,0)|0|0;if((e|0)==(c|0)){ia(e+112>>0|0,0|0,1,0);i=b;return}else{Gn(c);i=b;return}}function fn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;d=i;e=dp(a,b,c)|0;i=d;return e|0}function gn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;d=i;e=ep(a,b,c)|0;i=d;return e|0}function hn(a,b){a=a|0;b=b|0;return (a+-48|0)>>>0<10|0}function jn(a,b){a=a|0;b=b|0;var c=0;b=i;c=Io(a)|0;i=b;return c|0}function kn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;e=ln(0,a,b,(c|0)!=0?c:13072)|0;i=d;return e|0}function ln(a,b,c,d){a=a|0;b=b|0;c=c|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;e=i;i=i+16|0;f=e;ia(f|0,a|0,4,0);g=(d|0)==0?13080:d;d=ha(g|0,4,0,0)|0|0;a:do if(!b){if(!d){h=0;i=e;return h|0}}else{if(!a){ia(f|0,f|0,4,0);j=f}else j=a;if(!c){h=-2;i=e;return h|0}do if(!d){k=ha(b>>0|0,1,0,0)|0|0;l=k&255;if(k<<24>>24>-1){ia(j|0,l|0,4,0);h=k<<24>>24!=0&1;i=e;return h|0}else{k=l+-194|0;if(k>>>0>50)break a;m=c+-1|0;n=ha(12864+(k<<2)|0,4,0,0)|0|0;o=b+1|0;break}}else{m=c;n=d;o=b}while(0);b:do if(!m)p=n;else{k=ha(o>>0|0,1,0,0)|0|0;l=(k&255)>>>3;if((l+-16|l+(n>>26))>>>0>7)break a;else{q=m;r=k;s=n;t=o}while(1){t=t+1|0;s=(r&255)+-128|s<<6;q=q+-1|0;if((s|0)>=0)break;if(!q){p=s;break b}r=ha(t>>0|0,1,0,0)|0|0;if((r&-64)<<24>>24!=-128)break a}ia(g|0,0|0,4,0);ia(j|0,s|0,4,0);h=c-q|0;i=e;return h|0}while(0);ia(g|0,p|0,4,0);h=-2;i=e;return h|0}while(0);ia(g|0,0|0,4,0);ia(wb()|0|0,84|0,4,0);h=-1;i=e;return h|0}function mn(a){a=a|0;var b=0;if(!a)b=1;else b=(ha(a|0,4,0,0)|0|0)==0;return b&1|0}function nn(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;f=i;i=i+1040|0;g=f+8|0;h=f;j=ha(b|0,4,0,0)|0|0;ia(h|0,j|0,4,0);k=(a|0)!=0;l=k?d:256;d=k?a:g;a:do if((j|0)!=0&(l|0)!=0){a=l;m=c;n=j;o=0;p=d;while(1){q=m>>>2;r=q>>>0>=a>>>0;if(!(r|m>>>0>131)){s=m;t=a;u=n;v=o;w=p;x=7;break a}y=r?a:q;q=m-y|0;r=on(p,h,y,e)|0;if((r|0)==-1){z=-1;break a}if((p|0)==(g|0)){A=a;B=g}else{A=a-r|0;B=p+(r<<2)|0}y=r+o|0;r=ha(h|0,4,0,0)|0|0;if((r|0)!=0&(A|0)!=0){a=A;m=q;n=r;o=y;p=B}else{s=q;t=A;u=r;v=y;w=B;x=7;break}}}else{s=c;t=l;u=j;v=0;w=d;x=7}while(0);b:do if((x|0)==7)if((u|0)!=0&(t|0)!=0&(s|0)!=0){d=s;j=t;l=u;c=v;B=w;while(1){C=ln(B,l,d,e)|0;if((C+2|0)>>>0<3)break;l=(ha(h|0,4,0,0)|0|0)+C|0;ia(h|0,l|0,4,0);j=j+-1|0;A=c+1|0;if(!((j|0)!=0&(d|0)!=(C|0))){z=A;break b}else{d=d-C|0;c=A;B=B+4|0}}if((C|0)==-1){z=-1;break}else if(!C){ia(h|0,0|0,4,0);z=c;break}else{ia(e|0,0|0,4,0);z=c;break}}else z=v;while(0);if(!k){i=f;return z|0}ia(b|0,ha(h|0,4,0,0)|0|0,4,0);i=f;return z|0}function on(a,b,c,d){a=a|0;b=b|0;c=c|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,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;e=i;f=ha(b|0,4,0,0)|0|0;if((d|0)!=0?(g=ha(d|0,4,0,0)|0|0,(g|0)!=0):0)if(!a){h=c;j=g;k=f;l=16}else{ia(d|0,0|0,4,0);m=a;n=c;o=g;p=f;l=36}else if(!a){q=c;r=f;l=7}else{s=a;t=c;u=f;l=6}a:while(1)if((l|0)==6){l=0;if(!t){v=u;l=26;break}else{w=s;x=t;y=u}while(1){f=ha(y>>0|0,1,0,0)|0|0;b:do if(((f&255)+-1|0)>>>0<127?(y&3|0)==0&x>>>0>4:0){g=w;d=x;z=y;do{A=ha(z|0,4,0,0)|0|0;if((A+-16843009|A)&-2139062144){B=g;C=d;D=A&255;E=z;break b}ia(g|0,A&255|0,4,0);ia(g+4|0,ha(z+1>>0|0,1,0,1)|0|0,4,0);ia(g+8|0,ha(z+2>>0|0,1,0,1)|0|0,4,0);A=z;z=z+4|0;F=g;g=g+16|0;ia(F+12|0,ha(A+3>>0|0,1,0,1)|0|0,4,0);d=d+-4|0}while(d>>>0>4);B=g;C=d;D=ha(z>>0|0,1,0,0)|0|0;E=z}else{B=w;C=x;D=f;E=y}while(0);G=D&255;if((G+-1|0)>>>0>=127)break;f=E+1|0;ia(B|0,G|0,4,0);x=C+-1|0;if(!x){v=f;l=26;break a}else{w=B+4|0;y=f}}f=G+-194|0;if(f>>>0>50){H=B;I=C;J=E;l=47;break}m=B;n=C;o=ha(12864+(f<<2)|0,4,0,0)|0|0;p=E+1|0;l=36;continue}else if((l|0)==7){l=0;f=ha(r>>0|0,1,0,0)|0|0;if(((f&255)+-1|0)>>>0<127?(r&3|0)==0:0){A=ha(r|0,4,0,0)|0|0;if(!((A+-16843009|A)&-2139062144)){F=q;K=r;while(1){L=K+4|0;M=F+-4|0;N=ha(L|0,4,0,0)|0|0;if(!((N+-16843009|N)&-2139062144)){F=M;K=L}else{O=M;P=N;Q=L;break}}}else{O=q;P=A;Q=r}R=O;S=P&255;T=Q}else{R=q;S=f;T=r}K=S&255;if((K+-1|0)>>>0<127){q=R+-1|0;r=T+1|0;l=7;continue}F=K+-194|0;if(F>>>0>50){H=a;I=R;J=T;l=47;break}h=R;j=ha(12864+(F<<2)|0,4,0,0)|0|0;k=T+1|0;l=16;continue}else if((l|0)==16){l=0;F=(ha(k>>0|0,1,0,1)|0|0)>>>3;if((F+-16|F+(j>>26))>>>0>7){l=17;break}F=k+1|0;if(j&33554432){if(((ha(F>>0|0,1,0,0)|0)&-64)<<24>>24!=-128){l=20;break}K=k+2|0;if(!(j&524288))U=K;else{if(((ha(K>>0|0,1,0,0)|0)&-64)<<24>>24!=-128){l=23;break}U=k+3|0}}else U=F;q=h+-1|0;r=U;l=7;continue}else if((l|0)==36){l=0;F=ha(p>>0|0,1,0,1)|0|0;K=F>>>3;if((K+-16|K+(o>>26))>>>0>7){l=37;break}K=p+1|0;V=F+-128|o<<6;if((V|0)<0){F=ha(K>>0|0,1,0,1)|0|0;if((F&192|0)!=128){l=40;break}L=p+2|0;W=F+-128|V<<6;if((W|0)<0){F=ha(L>>0|0,1,0,1)|0|0;if((F&192|0)!=128){l=43;break}X=F+-128|W<<6;Y=p+3|0}else{X=W;Y=L}}else{X=V;Y=K}ia(m|0,X|0,4,0);s=m+4|0;t=n+-1|0;u=Y;l=6;continue}if((l|0)==17){Z=a;_=h;$=j;aa=k+-1|0;l=46}else if((l|0)==20){Z=a;_=h;$=j;aa=k+-1|0;l=46}else if((l|0)==23){Z=a;_=h;$=j;aa=k+-1|0;l=46}else if((l|0)==26){ia(b|0,v|0,4,0);ba=c;i=e;return ba|0}else if((l|0)==37){Z=m;_=n;$=o;aa=p+-1|0;l=46}else if((l|0)==40){Z=m;_=n;$=V;aa=p+-1|0;l=46}else if((l|0)==43){Z=m;_=n;$=W;aa=p+-1|0;l=46}if((l|0)==46)if(!$){H=Z;I=_;J=aa;l=47}else{ca=Z;da=aa}if((l|0)==47)if(!(ha(J>>0|0,1,0,0)|0)){if(H){ia(H|0,0|0,4,0);ia(b|0,0|0,4,0)}ba=c-I|0;i=e;return ba|0}else{ca=H;da=J}ia(wb()|0|0,84|0,4,0);if(!ca){ba=-1;i=e;return ba|0}ia(b|0,da|0,4,0);ba=-1;i=e;return ba|0}function pn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+16|0;e=d;ia(e|0,a|0,4,0);if(!b){f=0;i=d;return f|0}do if(c){if(!a){ia(e|0,e|0,4,0);g=e}else g=a;h=ha(b>>0|0,1,0,0)|0|0;j=h&255;if(h<<24>>24>-1){ia(g|0,j|0,4,0);f=h<<24>>24!=0&1;i=d;return f|0}h=j+-194|0;if(h>>>0<=50){j=b+1|0;k=ha(12864+(h<<2)|0,4,0,0)|0|0;if(c>>>0<4?(k&-2147483648>>>((c*6|0)+-6|0)|0)!=0:0)break;h=ha(j>>0|0,1,0,1)|0|0;j=h>>>3;if((j+-16|j+(k>>26))>>>0<=7){j=h+-128|k<<6;if((j|0)>=0){ia(g|0,j|0,4,0);f=2;i=d;return f|0}k=ha(b+2>>0|0,1,0,1)|0|0;if((k&192|0)==128){h=k+-128|j<<6;if((h|0)>=0){ia(g|0,h|0,4,0);f=3;i=d;return f|0}j=ha(b+3>>0|0,1,0,1)|0|0;if((j&192|0)==128){ia(g|0,j+-128|h<<6|0,4,0);f=4;i=d;return f|0}}}}}while(0);ia(wb()|0|0,84|0,4,0);f=-1;i=d;return f|0}function qn(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;e=i;i=i+272|0;f=e+8|0;g=e;h=ha(b|0,4,0,0)|0|0;ia(g|0,h|0,4,0);j=(a|0)!=0;k=j?d:256;d=j?a:f;a:do if((h|0)!=0&(k|0)!=0){a=k;l=c;m=h;n=0;o=d;while(1){p=l>>>0>=a>>>0;if(!(p|l>>>0>32)){q=l;r=a;s=m;t=n;u=o;v=7;break a}w=p?a:l;p=l-w|0;x=rn(o,g,w,0)|0;if((x|0)==-1){y=-1;break a}if((o|0)==(f|0)){z=a;A=f}else{z=a-x|0;A=o+x|0}w=x+n|0;x=ha(g|0,4,0,0)|0|0;if((x|0)!=0&(z|0)!=0){a=z;l=p;m=x;n=w;o=A}else{q=p;r=z;s=x;t=w;u=A;v=7;break}}}else{q=c;r=k;s=h;t=0;u=d;v=7}while(0);b:do if((v|0)==7)if((s|0)!=0&(r|0)!=0&(q|0)!=0){d=q;h=r;k=s;c=t;A=u;while(1){B=Wo(A,ha(k|0,4,0,0)|0|0,0)|0;if((B+1|0)>>>0<2)break;k=(ha(g|0,4,0,0)|0|0)+4|0;ia(g|0,k|0,4,0);d=d+-1|0;z=c+1|0;if(!((h|0)!=(B|0)&(d|0)!=0)){y=z;break b}else{h=h-B|0;c=z;A=A+B|0}}if(!B){ia(g|0,0|0,4,0);y=c}else y=-1}else y=t;while(0);if(!j){i=e;return y|0}ia(b|0,ha(g|0,4,0,0)|0|0,4,0);i=e;return y|0}function rn(a,b,c,d){a=a|0;b=b|0;c=c|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;d=i;i=i+16|0;e=d;if(!a){f=ha(b|0,4,0,0)|0|0;g=ha(f|0,4,0,0)|0|0;if(!g){h=0;i=d;return h|0}else{j=0;k=g;l=f}while(1){if(k>>>0>127){f=Wo(e,k,0)|0;if((f|0)==-1){h=-1;m=26;break}else n=f}else n=1;f=n+j|0;l=l+4|0;k=ha(l|0,4,0,0)|0|0;if(!k){h=f;m=26;break}else j=f}if((m|0)==26){i=d;return h|0}}a:do if(c>>>0>3){j=a;k=c;l=ha(b|0,4,0,0)|0|0;while(1){n=ha(l|0,4,0,0)|0|0;if((n+-1|0)>>>0>126){if(!n)break;f=Wo(j,n,0)|0;if((f|0)==-1){h=-1;m=26;break}o=j+f|0;p=k-f|0;q=l}else{ia(j>>0|0,n|0,1,0);o=j+1|0;p=k+-1|0;q=ha(b|0,4,0,0)|0|0}l=q+4|0;ia(b|0,l|0,4,0);if(p>>>0<=3){r=o;s=p;break a}else{j=o;k=p}}if((m|0)==26){i=d;return h|0}ia(j>>0|0,0|0,1,0);ia(b|0,0|0,4,0);h=c-k|0;i=d;return h|0}else{r=a;s=c}while(0);if(!s){h=c;i=d;return h|0}a=r;r=s;s=ha(b|0,4,0,0)|0|0;while(1){p=ha(s|0,4,0,0)|0|0;if((p+-1|0)>>>0>126){if(!p){m=19;break}o=Wo(e,p,0)|0;if((o|0)==-1){h=-1;m=26;break}if(r>>>0<o>>>0){m=22;break}Wo(a,ha(s|0,4,0,0)|0|0,0)|0;t=a+o|0;u=r-o|0;v=s}else{ia(a>>0|0,p|0,1,0);t=a+1|0;u=r+-1|0;v=ha(b|0,4,0,0)|0|0}s=v+4|0;ia(b|0,s|0,4,0);if(!u){h=c;m=26;break}else{a=t;r=u}}if((m|0)==19){ia(a>>0|0,0|0,1,0);ia(b|0,0|0,4,0);h=c-r|0;i=d;return h|0}else if((m|0)==22){h=c-r|0;i=d;return h|0}else if((m|0)==26){i=d;return h|0}return 0}function sn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=a+84|0;f=ha(e|0,4,0,0)|0|0;g=c+256|0;h=fp(f,0,g)|0;if(!h)j=g;else j=h-f|0;h=j>>>0<c>>>0?j:c;tp(b|0,f|0,h|0)|0;ia(a+4|0,f+h|0,4,0);b=f+j|0;ia(a+8|0,b|0,4,0);ia(e|0,b|0,4,0);i=d;return h|0}function tn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;e=d;ia(e|0,c|0,4,0);c=wn(a,b,e)|0;i=d;return c|0}function un(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+16|0;e=d;f=Eo(240)|0;do if(f){ia(e|0,ha(c|0,4,0,0)|0|0,4,0);g=bp(f,240,b,e)|0;if(g>>>0<240){h=Go(f,g+1|0)|0;ia(a|0,((h|0)!=0?h:f)|0,4,0);j=g;break}Fo(f);if((g|0)>=0?(h=g+1|0,g=Eo(h)|0,ia(a|0,g|0,4,0),(g|0)!=0):0)j=bp(g,h,b,c)|0;else j=-1}else j=-1;while(0);i=d;return j|0}function vn(a,b,c){a=a|0;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,E=0,F=0,G=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,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0.0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0;d=i;i=i+304|0;e=d+16|0;f=d+8|0;g=d+33|0;h=d;j=d+32|0;k=ha(b>>0|0,1,0,0)|0|0;if(!(k<<24>>24)){l=0;i=d;return l|0}m=a+4|0;n=a+100|0;o=a+108|0;p=a+8|0;q=g+10|0;r=g+33|0;s=f+4|0;t=g+46|0;u=g+94|0;v=k;k=0;w=b;b=0;x=0;y=0;a:while(1){b:do if(!(Ho(v&255)|0)){z=(ha(w>>0|0,1,0,0)|0|0)==37;c:do if(z){A=w+1|0;B=ha(A>>0|0,1,0,0)|0|0;do if(B<<24>>24==42){C=0;D=w+2|0}else if(B<<24>>24==37)break c;else{E=(B&255)+-48|0;if(E>>>0<10?(ha(w+2>>0|0,1,0,0)|0|0)==36:0){ia(e|0,ha(c|0,4,0,0)|0|0,4,0);F=E;while(1){E=ha(e|0,4,0,0)|0|0;G=ha(E|0,4,0,0)|0|0;ia(e|0,E+4|0,4,0);if(F>>>0>1)F=F+-1|0;else break}C=G;D=w+3|0;break}F=ha(c|0,4,0,0)|0|0;E=ha(F|0,4,0,0)|0|0;ia(c|0,F+4|0,4,0);C=E;D=A}while(0);A=ha(D>>0|0,1,0,0)|0|0;B=A&255;if((B+-48|0)>>>0<10){E=B;B=D;F=0;while(1){I=(F*10|0)+-48+E|0;J=B+1|0;K=ha(J>>0|0,1,0,0)|0|0;E=K&255;if((E+-48|0)>>>0>=10){L=K;M=J;N=I;break}else{B=J;F=I}}}else{L=A;M=D;N=0}if(L<<24>>24==109){F=M+1|0;O=ha(F>>0|0,1,0,0)|0|0;P=(C|0)!=0&1;Q=F;R=0;S=0}else{O=L;P=0;Q=M;R=x;S=y}F=Q+1|0;switch(O&255|0){case 106:{T=F;U=3;break}case 104:{B=(ha(F>>0|0,1,0,0)|0|0)==104;T=B?Q+2|0:F;U=B?-2:-1;break}case 108:{B=(ha(F>>0|0,1,0,0)|0|0)==108;T=B?Q+2|0:F;U=B?3:1;break}case 116:case 122:{T=F;U=1;break}case 76:{T=F;U=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{T=Q;U=0;break}default:{V=P;W=R;X=S;Y=162;break a}}F=ha(T>>0|0,1,0,1)|0|0;B=(F&47|0)==3;E=B?F|32:F;F=B?1:U;if((E|0)==99){Z=b;_=(N|0)<1?1:N}else if((E|0)==110){if(!C){$=k;aa=T;ba=b;ca=R;da=S;break b}switch(F|0){case -1:{ia(C|0,b|0,2,0);$=k;aa=T;ba=b;ca=R;da=S;break b;break}case 0:{ia(C|0,b|0,4,0);$=k;aa=T;ba=b;ca=R;da=S;break b;break}case 1:{ia(C|0,b|0,4,0);$=k;aa=T;ba=b;ca=R;da=S;break b;break}case 3:{B=C;ia(B|0,b|0,4,0);ia(B+4|0,((b|0)<0)<<31>>31|0,4,0);$=k;aa=T;ba=b;ca=R;da=S;break b;break}case -2:{ia(C>>0|0,b|0,1,0);$=k;aa=T;ba=b;ca=R;da=S;break b;break}default:{$=k;aa=T;ba=b;ca=R;da=S;break b}}}else if((E|0)==91){Z=b;_=N}else{Lo(a,0);do{B=ha(m|0,4,0,0)|0|0;if(B>>>0<(ha(n|0,4,0,0)|0|0)>>>0){ia(m|0,B+1|0,4,0);ea=ha(B>>0|0,1,0,1)|0|0}else ea=Mo(a)|0}while((Ho(ea)|0)!=0);A=ha(m|0,4,0,0)|0|0;if(!(ha(n|0,4,0,0)|0))fa=A;else{B=A+-1|0;ia(m|0,B|0,4,0);fa=B}Z=(ha(o|0,4,0,0)|0|0)+b+fa-(ha(p|0,4,0,0)|0|0)|0;_=N}Lo(a,_);B=ha(m|0,4,0,0)|0|0;A=ha(n|0,4,0,0)|0|0;if(B>>>0<A>>>0){ia(m|0,B+1|0,4,0);ga=A}else{if((Mo(a)|0)<0){V=P;W=R;X=S;Y=162;break a}ga=ha(n|0,4,0,0)|0|0}if(ga)ia(m|0,(ha(m|0,4,0,0)|0|0)+-1|0,4,0);d:do switch(E|0){case 91:case 99:case 115:{A=(E|0)==99;e:do if((E&239|0)==99){op(g|0,-1,257)|0;ia(g>>0|0,0|0,1,0);if((E|0)==115){ia(r>>0|0,0|0,1,0);ia(q+0>>0|0,0|0,1,0);ia(q+1>>0|0,0|0,1,0);ia(q+2>>0|0,0|0,1,0);ia(q+3>>0|0,0|0,1,0);ia(q+4>>0|0,0|0,1,0);ja=T}else ja=T}else{B=T+1|0;I=(ha(B>>0|0,1,0,0)|0|0)==94;J=I&1;K=I?T+2|0:B;op(g|0,I&1|0,257)|0;ia(g>>0|0,0|0,1,0);I=ha(K>>0|0,1,0,0)|0|0;if(I<<24>>24==45){B=(J^1)&255;ia(t>>0|0,B|0,1,0);ka=B;la=K+1|0}else if(I<<24>>24==93){I=(J^1)&255;ia(u>>0|0,I|0,1,0);ka=I;la=K+1|0}else{ka=(J^1)&255;la=K}K=la;while(1){J=ha(K>>0|0,1,0,0)|0|0;if(J<<24>>24==93){ja=K;break e}else if(J<<24>>24==45){I=K+1|0;B=ha(I>>0|0,1,0,0)|0|0;if(!(B<<24>>24==93|B<<24>>24==0)){ma=ha(K+-1>>0|0,1,0,0)|0|0;if((ma&255)<(B&255)){na=ma&255;do{na=na+1|0;ia(g+na>>0|0,ka|0,1,0);ma=ha(I>>0|0,1,0,0)|0|0}while((na|0)<(ma&255|0));oa=ma;pa=I}else{oa=B;pa=I}}else{oa=45;pa=K}}else if(!(J<<24>>24)){V=P;W=R;X=S;Y=162;break a}else{oa=J;pa=K}ia(g+((oa&255)+1)>>0|0,ka|0,1,0);K=pa+1|0}}while(0);K=A?_+1|0:31;na=(F|0)==1;ma=(P|0)!=0;f:do if(na){if(ma){qa=Eo(K<<2)|0;if(!qa){V=P;W=0;X=qa;Y=162;break a}else ra=qa}else ra=C;ia(f|0,0|0,4,0);ia(s|0,0|0,4,0);qa=0;sa=K;ta=ra;g:while(1){if(!ta)while(1){ua=ha(m|0,4,0,0)|0|0;if(ua>>>0<(ha(n|0,4,0,0)|0|0)>>>0){ia(m|0,ua+1|0,4,0);va=ha(ua>>0|0,1,0,1)|0|0}else va=Mo(a)|0;if(!(ha(g+(va+1)>>0|0,1,0,0)|0)){wa=qa;xa=0;break g}ia(j>>0|0,va|0,1,0);ua=ln(h,j,1,f)|0;if((ua|0)==-2)continue;else if((ua|0)==-1){V=P;W=0;X=0;Y=162;break a}if(ma&(qa|0)==(sa|0)){ya=qa;break}}else{if(ma)za=qa;else{Aa=qa;Y=98;break}while(1){while(1){J=ha(m|0,4,0,0)|0|0;if(J>>>0<(ha(n|0,4,0,0)|0|0)>>>0){ia(m|0,J+1|0,4,0);Ba=ha(J>>0|0,1,0,1)|0|0}else Ba=Mo(a)|0;if(!(ha(g+(Ba+1)>>0|0,1,0,0)|0)){wa=za;xa=ta;break g}ia(j>>0|0,Ba|0,1,0);J=ln(h,j,1,f)|0;if((J|0)==-1){V=P;W=0;X=ta;Y=162;break a}else if((J|0)!=-2)break}ia(ta+(za<<2)|0,ha(h|0,4,0,0)|0|0,4,0);za=za+1|0;if((za|0)==(sa|0)){ya=sa;break}}}J=sa<<1|1;I=Go(ta,J<<2)|0;if(!I){V=P;W=0;X=ta;Y=162;break a}qa=ya;sa=J;ta=I}h:do if((Y|0)==98)while(1){Y=0;while(1){sa=ha(m|0,4,0,0)|0|0;if(sa>>>0<(ha(n|0,4,0,0)|0|0)>>>0){ia(m|0,sa+1|0,4,0);Ca=ha(sa>>0|0,1,0,1)|0|0}else Ca=Mo(a)|0;if(!(ha(g+(Ca+1)>>0|0,1,0,0)|0)){wa=Aa;xa=ta;break h}ia(j>>0|0,Ca|0,1,0);sa=ln(h,j,1,f)|0;if((sa|0)==-1){V=0;W=0;X=ta;Y=162;break a}else if((sa|0)!=-2)break}ia(ta+(Aa<<2)|0,ha(h|0,4,0,0)|0|0,4,0);Aa=Aa+1|0;Y=98}while(0);if(!(mn(f)|0)){V=P;W=0;X=xa;Y=162;break a}else{Da=wa;Ea=0;Fa=xa}}else{if(ma){ta=Eo(K)|0;if(!ta){V=P;W=0;X=0;Y=162;break a}else{Ga=0;Ha=K;Ia=ta}while(1){ta=Ga;do{sa=ha(m|0,4,0,0)|0|0;if(sa>>>0<(ha(n|0,4,0,0)|0|0)>>>0){ia(m|0,sa+1|0,4,0);Ja=ha(sa>>0|0,1,0,1)|0|0}else Ja=Mo(a)|0;if(!(ha(g+(Ja+1)>>0|0,1,0,0)|0)){Da=ta;Ea=Ia;Fa=0;break f}ia(Ia+ta>>0|0,Ja|0,1,0);ta=ta+1|0}while((ta|0)!=(Ha|0));ta=Ha<<1|1;sa=Go(Ia,ta)|0;if(!sa){V=P;W=Ia;X=0;Y=162;break a}else{qa=Ha;Ha=ta;Ia=sa;Ga=qa}}}if(!C){qa=ga;while(1){sa=ha(m|0,4,0,0)|0|0;if(sa>>>0<qa>>>0){ia(m|0,sa+1|0,4,0);Ka=ha(sa>>0|0,1,0,1)|0|0}else Ka=Mo(a)|0;if(!(ha(g+(Ka+1)>>0|0,1,0,0)|0)){Da=0;Ea=0;Fa=0;break f}qa=ha(n|0,4,0,0)|0|0}}else{qa=ga;sa=0;while(1){ta=ha(m|0,4,0,0)|0|0;if(ta>>>0<qa>>>0){ia(m|0,ta+1|0,4,0);La=ha(ta>>0|0,1,0,1)|0|0}else La=Mo(a)|0;if(!(ha(g+(La+1)>>0|0,1,0,0)|0)){Da=sa;Ea=C;Fa=0;break f}ia(C+sa>>0|0,La|0,1,0);qa=ha(n|0,4,0,0)|0|0;sa=sa+1|0}}}while(0);K=ha(m|0,4,0,0)|0|0;if(!(ha(n|0,4,0,0)|0))Ma=K;else{sa=K+-1|0;ia(m|0,sa|0,4,0);Ma=sa}sa=Ma-(ha(p|0,4,0,0)|0|0)+(ha(o|0,4,0,0)|0|0)|0;if(!sa){Na=P;Oa=k;Pa=Ea;Qa=Fa;break a}if(!((sa|0)==(_|0)|A^1)){Na=P;Oa=k;Pa=Ea;Qa=Fa;break a}do if(ma)if(na){ia(C|0,Fa|0,4,0);break}else{ia(C|0,Ea|0,4,0);break}while(0);if(!A){if(Fa)ia(Fa+(Da<<2)|0,0|0,4,0);if(!Ea){Ra=ja;Sa=0;Ta=Fa}else{ia(Ea+Da>>0|0,0|0,1,0);Ra=ja;Sa=Ea;Ta=Fa}}else{Ra=ja;Sa=Ea;Ta=Fa}break}case 111:{Ua=8;Y=144;break}case 117:case 100:{Ua=10;Y=144;break}case 105:{Ua=0;Y=144;break}case 120:case 88:case 112:{Ua=16;Y=144;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{Va=+Ko(a,F,0);if((ha(o|0,4,0,0)|0|0)==((ha(p|0,4,0,0)|0|0)-(ha(m|0,4,0,0)|0|0)|0)){Na=P;Oa=k;Pa=R;Qa=S;break a}if(C)if(!F){ia(C|0,+Va,4,1);Ra=T;Sa=R;Ta=S;break d}else if((F|0)==1){ia(C|0,+Va,8,1);Ra=T;Sa=R;Ta=S;break d}else if((F|0)==2){ia(C|0,+Va,8,1);Ra=T;Sa=R;Ta=S;break d}else{Ra=T;Sa=R;Ta=S;break d}else{Ra=T;Sa=R;Ta=S}break}default:{Ra=T;Sa=R;Ta=S}}while(0);i:do if((Y|0)==144){Y=0;na=Jo(a,Ua,0,-1,-1)|0;if((ha(o|0,4,0,0)|0|0)==((ha(p|0,4,0,0)|0|0)-(ha(m|0,4,0,0)|0|0)|0)){Na=P;Oa=k;Pa=R;Qa=S;break a}if((E|0)==112&(C|0)!=0){ia(C|0,na|0,4,0);Ra=T;Sa=R;Ta=S;break}if(!C){Ra=T;Sa=R;Ta=S}else switch(F|0){case -2:{ia(C>>0|0,na|0,1,0);Ra=T;Sa=R;Ta=S;break i;break}case -1:{ia(C|0,na|0,2,0);Ra=T;Sa=R;Ta=S;break i;break}case 0:{ia(C|0,na|0,4,0);Ra=T;Sa=R;Ta=S;break i;break}case 1:{ia(C|0,na|0,4,0);Ra=T;Sa=R;Ta=S;break i;break}case 3:{ma=C;ia(ma|0,na|0,4,0);ia(ma+4|0,H|0,4,0);Ra=T;Sa=R;Ta=S;break i;break}default:{Ra=T;Sa=R;Ta=S;break i}}}while(0);$=((C|0)!=0&1)+k|0;aa=Ra;ba=(ha(o|0,4,0,0)|0|0)+Z+(ha(m|0,4,0,0)|0|0)-(ha(p|0,4,0,0)|0|0)|0;ca=Sa;da=Ta;break b}while(0);F=w+(z&1)|0;Lo(a,0);E=ha(m|0,4,0,0)|0|0;if(E>>>0<(ha(n|0,4,0,0)|0|0)>>>0){ia(m|0,E+1|0,4,0);Wa=ha(E>>0|0,1,0,1)|0|0}else Wa=Mo(a)|0;if((Wa|0)!=(ha(F>>0|0,1,0,1)|0|0)){Y=19;break a}$=k;aa=F;ba=b+1|0;ca=x;da=y}else{F=w;while(1){E=F+1|0;if(!(Ho(ha(E>>0|0,1,0,1)|0|0)|0))break;else F=E}Lo(a,0);do{z=ha(m|0,4,0,0)|0|0;if(z>>>0<(ha(n|0,4,0,0)|0|0)>>>0){ia(m|0,z+1|0,4,0);Xa=ha(z>>0|0,1,0,1)|0|0}else Xa=Mo(a)|0}while((Ho(Xa)|0)!=0);z=ha(m|0,4,0,0)|0|0;if(!(ha(n|0,4,0,0)|0))Ya=z;else{E=z+-1|0;ia(m|0,E|0,4,0);Ya=E}$=k;aa=F;ba=(ha(o|0,4,0,0)|0|0)+b+Ya-(ha(p|0,4,0,0)|0|0)|0;ca=x;da=y}while(0);w=aa+1|0;v=ha(w>>0|0,1,0,0)|0|0;if(!(v<<24>>24)){l=$;Y=166;break}else{k=$;b=ba;x=ca;y=da}}if((Y|0)==19){if(ha(n|0,4,0,0)|0)ia(m|0,(ha(m|0,4,0,0)|0|0)+-1|0,4,0);if((Wa|0)>-1|(k|0)!=0){l=k;i=d;return l|0}else{Za=0;_a=x;$a=y;Y=163}}else if((Y|0)==162)if(!k){Za=V;_a=W;$a=X;Y=163}else{Na=V;Oa=k;Pa=W;Qa=X}else if((Y|0)==166){i=d;return l|0}if((Y|0)==163){Na=Za;Oa=-1;Pa=_a;Qa=$a}if(!Na){l=Oa;i=d;return l|0}Fo(Pa);Fo(Qa);l=Oa;i=d;return l|0}function wn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;i=i+112|0;e=d;f=e+0|0;g=f+112|0;do{ia(f|0,0|0,4,0);f=f+4|0}while((f|0)<(g|0));ia(e+32|0,24|0,4,0);ia(e+44|0,a|0,4,0);ia(e+76|0,-1|0,4,0);ia(e+84|0,a|0,4,0);a=vn(e,b,c)|0;i=d;return a|0}function xn(a){a=a|0;var b=0,c=0;b=i;c=a;while(1)if(!(ha(c|0,4,0,0)|0))break;else c=c+4|0;i=b;return c-a>>2|0}function yn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;if(!c){i=d;return a|0}else{e=c;f=b;g=a}while(1){e=e+-1|0;ia(g|0,ha(f|0,4,0,0)|0|0,4,0);if(!e)break;else{f=f+4|0;g=g+4|0}}i=d;return a|0}function zn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i;e=(c|0)==0;if(a-b>>2>>>0<c>>>0){if(!e){f=c;do{f=f+-1|0;ia(a+(f<<2)|0,ha(b+(f<<2)|0,4,0,0)|0|0,4,0)}while((f|0)!=0)}}else if(!e){e=b;b=a;f=c;while(1){f=f+-1|0;ia(b|0,ha(e|0,4,0,0)|0|0,4,0);if(!f)break;else{e=e+4|0;b=b+4|0}}}i=d;return a|0}function An(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;if(c){e=c;c=a;while(1){e=e+-1|0;ia(c|0,b|0,4,0);if(!e)break;else c=c+4|0}}i=d;return a|0}function Bn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=i;e=sn(a,b,c)|0;i=d;return e|0}function Cn(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;i=i+16|0;d=c;ia(d|0,b|0,4,0);b=ha(p|0,4,0,0)|0|0;La(b|0,a|0,d|0)|0;Bb(10,b|0)|0;Gb()}function Dn(){var a=0,b=0;a=i;i=i+16|0;if(!(ob(13280,2)|0)){b=jb(ha(3318*4|0,4,0,0)|0|0)|0;i=a;return b|0}else Cn(13288,a);return 0}function En(a){a=a|0;var b=0,c=0,d=0,e=0;b=i;c=(a|0)==0?1:a;a=Eo(c)|0;if(a){d=a;i=b;return d|0}while(1){a=On()|0;if(!a){e=4;break}$b[(ja(a|0,3|0)|0)&3]();a=Eo(c)|0;if(a){d=a;e=5;break}}if((e|0)==4){c=Pa(4)|0;ia(c|0,13464|0,4,0);Cb(c|0,13512,96)}else if((e|0)==5){i=b;return d|0}return 0}function Fn(a){a=a|0;var b=0,c=0;b=i;c=En(a)|0;i=b;return c|0}function Gn(a){a=a|0;var b=0;b=i;Fo(a);i=b;return}function Hn(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function In(a){a=a|0;ia(a|0,13464|0,4,0);return}function Jn(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function Kn(a){a=a|0;return}function Ln(a){a=a|0;return 13480}function Mn(a){a=a|0;var b=0;b=i;i=i+16|0;$b[(ja(a|0,3|0)|0)&3]();Cn(13528,b)}function Nn(){var a=0,b=0;a=Dn()|0;if(((a|0)!=0?(b=ha(a|0,4,0,0)|0|0,(b|0)!=0):0)?(a=b+48|0,((ha(a|0,4,0,0)|0)&-256|0)==1126902528?(ha(a+4|0,4,0,0)|0|0)==1129074247:0):0)Mn(ha(b+12|0,4,0,0)|0|0);b=ha(3272*4|0,4,0,0)|0|0;ia(3272*4|0,b+0|0,4,0);Mn(b)}function On(){var a=0;a=ha(3406*4|0,4,0,0)|0|0;ia(3406*4|0,a+0|0,4,0);return a|0}function Pn(a){a=a|0;return}function Qn(a){a=a|0;var b=0;b=i;Rn(a);Gn(a);i=b;return}function Rn(a){a=a|0;var b=0;b=i;ia(a|0,13664|0,4,0);Co(a+4|0);i=b;return}function Sn(a){a=a|0;return ha(a+4|0,4,0,0)|0|0}function Tn(a){a=a|0;var b=0;b=i;Un(a);Gn(a);i=b;return}function Un(a){a=a|0;var b=0;b=i;ia(a|0,13688|0,4,0);Co(a+4|0);i=b;return}function Vn(a){a=a|0;return ha(a+4|0,4,0,0)|0|0}function Wn(a){a=a|0;var b=0;b=i;Rn(a);Gn(a);i=b;return}function Xn(a){a=a|0;return}function Yn(a){a=a|0;ia(a|0,13848|0,4,0);return}function Zn(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function _n(a){a=a|0;return}function $n(a){a=a|0;return 13864}function ao(a){a=a|0;return}function bo(a){a=a|0;return}function co(a){a=a|0;return}function eo(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function fo(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function go(a){a=a|0;var b=0;b=i;Gn(a);i=b;return}function ho(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+64|0;e=d;if((a|0)==(b|0)){f=1;i=d;return f|0}if(!b){f=0;i=d;return f|0}g=no(b,13976,14032,0)|0;if(!g){f=0;i=d;return f|0}b=e+0|0;h=b+56|0;do{ia(b|0,0|0,4,0);b=b+4|0}while((b|0)<(h|0));ia(e|0,g|0,4,0);ia(e+8|0,a|0,4,0);ia(e+12|0,-1|0,4,0);ia(e+48|0,1|0,4,0);gc[(ja(ha((ha(g|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,7|0)|0)&7](g,e,ha(c|0,4,0,0)|0|0,1);if((ha(e+24|0,4,0,0)|0|0)!=1){f=0;i=d;return f|0}ia(c|0,ha(e+16|0,4,0,0)|0|0,4,0);f=1;i=d;return f|0}function io(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;a=i;e=b+16|0;f=ha(e|0,4,0,0)|0|0;if(!f){ia(e|0,c|0,4,0);ia(b+24|0,d|0,4,0);ia(b+36|0,1|0,4,0);i=a;return}if((f|0)!=(c|0)){c=b+36|0;ia(c|0,(ha(c|0,4,0,0)|0|0)+1|0,4,0);ia(b+24|0,2|0,4,0);ia(b+54>>0|0,1|0,1,0);i=a;return}c=b+24|0;if((ha(c|0,4,0,0)|0|0)!=2){i=a;return}ia(c|0,d|0,4,0);i=a;return}function jo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=i;if((ha(b+8|0,4,0,0)|0|0)!=(a|0)){i=e;return}io(0,b,c,d);i=e;return}function ko(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=i;if((a|0)==(ha(b+8|0,4,0,0)|0|0)){io(0,b,c,d);i=e;return}else{f=ha(a+8|0,4,0,0)|0|0;gc[(ja(ha((ha(f|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,7|0)|0)&7](f,b,c,d);i=e;return}}function lo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;f=ha(a+4|0,4,0,0)|0|0;g=f>>8;if(!(f&1))h=g;else h=ha((ha(c|0,4,0,0)|0|0)+g|0,4,0,0)|0|0;g=ha(a|0,4,0,0)|0|0;gc[(ja(ha((ha(g|0,4,0,0)|0|0)+28|0,4,0,0)|0|0,7|0)|0)&7](g,b,c+h|0,(f&2|0)!=0?d:2);i=e;return}function mo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;if((a|0)==(ha(b+8|0,4,0,0)|0|0)){io(0,b,c,d);i=e;return}f=ha(a+12|0,4,0,0)|0|0;g=a+(f<<3)+16|0;lo(a+16|0,b,c,d);if((f|0)<=1){i=e;return}f=b+54|0;h=a+24|0;while(1){lo(h,b,c,d);if(ha(f>>0|0,1,0,0)|0){j=7;break}h=h+8|0;if(h>>>0>=g>>>0){j=7;break}}if((j|0)==7){i=e;return}}function no(a,b,c,d){a=a|0;b=b|0;c=c|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;e=i;i=i+64|0;f=e;g=ha(a|0,4,0,0)|0|0;h=a+(ha(g+-8|0,4,0,0)|0|0)|0;j=ha(g+-4|0,4,0,0)|0|0;ia(f|0,c|0,4,0);ia(f+4|0,a|0,4,0);ia(f+8|0,b|0,4,0);ia(f+12|0,d|0,4,0);d=f+16|0;b=f+20|0;a=f+24|0;g=f+28|0;k=f+32|0;l=f+40|0;m=(j|0)==(c|0);c=d+0|0;n=c+36|0;do{ia(c|0,0|0,4,0);c=c+4|0}while((c|0)<(n|0));ia(d+36|0,0|0,2,0);ia(d+38>>0|0,0|0,1,0);if(m){ia(f+48|0,1|0,4,0);dc[(ja(ha((ha(j|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,15|0)|0)&15](j,f,h,h,1,0);o=(ha(a|0,4,0,0)|0|0)==1?h:0;i=e;return o|0}Tb[(ja(ha((ha(j|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,3|0)|0)&3](j,f,h,1,0);h=ha(f+36|0,4,0,0)|0|0;if(!h){o=(ha(l|0,4,0,0)|0|0)==1&(ha(g|0,4,0,0)|0|0)==1&(ha(k|0,4,0,0)|0|0)==1?ha(b|0,4,0,0)|0|0:0;i=e;return o|0}else if((h|0)==1){if((ha(a|0,4,0,0)|0|0)!=1?!((ha(l|0,4,0,0)|0|0)==0&(ha(g|0,4,0,0)|0|0)==1&(ha(k|0,4,0,0)|0|0)==1):0){o=0;i=e;return o|0}o=ha(d|0,4,0,0)|0|0;i=e;return o|0}else{o=0;i=e;return o|0}return 0}function oo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;a=i;ia(b+53>>0|0,1|0,1,0);if((ha(b+4|0,4,0,0)|0|0)!=(d|0)){i=a;return}ia(b+52>>0|0,1|0,1,0);d=b+16|0;f=ha(d|0,4,0,0)|0|0;if(!f){ia(d|0,c|0,4,0);ia(b+24|0,e|0,4,0);ia(b+36|0,1|0,4,0);if(!((e|0)==1?(ha(b+48|0,4,0,0)|0|0)==1:0)){i=a;return}ia(b+54>>0|0,1|0,1,0);i=a;return}if((f|0)!=(c|0)){c=b+36|0;ia(c|0,(ha(c|0,4,0,0)|0|0)+1|0,4,0);ia(b+54>>0|0,1|0,1,0);i=a;return}c=b+24|0;f=ha(c|0,4,0,0)|0|0;if((f|0)==2){ia(c|0,e|0,4,0);g=e}else g=f;if(!((g|0)==1?(ha(b+48|0,4,0,0)|0|0)==1:0)){i=a;return}ia(b+54>>0|0,1|0,1,0);i=a;return}function po(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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;f=i;if((a|0)==(ha(b+8|0,4,0,0)|0|0)){if((ha(b+4|0,4,0,0)|0|0)!=(c|0)){i=f;return}g=b+28|0;if((ha(g|0,4,0,0)|0|0)==1){i=f;return}ia(g|0,d|0,4,0);i=f;return}if((a|0)!=(ha(b|0,4,0,0)|0|0)){g=ha(a+12|0,4,0,0)|0|0;h=a+(g<<3)+16|0;ro(a+16|0,b,c,d,e);j=a+24|0;if((g|0)<=1){i=f;return}g=ha(a+8|0,4,0,0)|0|0;if((g&2|0)==0?(k=b+36|0,(ha(k|0,4,0,0)|0|0)!=1):0){if(!(g&1)){g=b+54|0;l=j;while(1){if(ha(g>>0|0,1,0,0)|0){m=43;break}if((ha(k|0,4,0,0)|0|0)==1){m=43;break}ro(l,b,c,d,e);l=l+8|0;if(l>>>0>=h>>>0){m=43;break}}if((m|0)==43){i=f;return}}l=b+24|0;g=b+54|0;n=j;while(1){if(ha(g>>0|0,1,0,0)|0){m=43;break}if((ha(k|0,4,0,0)|0|0)==1?(ha(l|0,4,0,0)|0|0)==1:0){m=43;break}ro(n,b,c,d,e);n=n+8|0;if(n>>>0>=h>>>0){m=43;break}}if((m|0)==43){i=f;return}}n=b+54|0;l=j;while(1){if(ha(n>>0|0,1,0,0)|0){m=43;break}ro(l,b,c,d,e);l=l+8|0;if(l>>>0>=h>>>0){m=43;break}}if((m|0)==43){i=f;return}}if((ha(b+16|0,4,0,0)|0|0)!=(c|0)?(h=b+20|0,(ha(h|0,4,0,0)|0|0)!=(c|0)):0){ia(b+32|0,d|0,4,0);l=b+44|0;if((ha(l|0,4,0,0)|0|0)==4){i=f;return}n=ha(a+12|0,4,0,0)|0|0;j=a+(n<<3)+16|0;a:do if((n|0)>0){k=b+52|0;g=b+53|0;o=b+54|0;p=a+8|0;q=b+24|0;r=0;s=0;t=a+16|0;b:while(1){ia(k>>0|0,0|0,1,0);ia(g>>0|0,0|0,1,0);qo(t,b,c,c,1,e);if(ha(o>>0|0,1,0,0)|0){u=r;v=s;break}do if(ha(g>>0|0,1,0,0)|0){if(!(ha(k>>0|0,1,0,0)|0))if(!((ha(p|0,4,0,0)|0)&1)){u=r;v=1;break b}else{w=r;x=1;break}if((ha(q|0,4,0,0)|0|0)==1){m=25;break a}if(!((ha(p|0,4,0,0)|0)&2)){m=25;break a}else{w=1;x=1}}else{w=r;x=s}while(0);t=t+8|0;if(t>>>0>=j>>>0){u=w;v=x;break}else{r=w;s=x}}if(u){y=v;m=24}else{z=v;m=21}}else{z=0;m=21}while(0);if((m|0)==21){ia(h|0,c|0,4,0);c=b+40|0;ia(c|0,(ha(c|0,4,0,0)|0|0)+1|0,4,0);if((ha(b+36|0,4,0,0)|0|0)==1?(ha(b+24|0,4,0,0)|0|0)==2:0){ia(b+54>>0|0,1|0,1,0);if(z)m=25;else m=26}else{y=z;m=24}}if((m|0)==24)if(y)m=25;else m=26;if((m|0)==25){ia(l|0,3|0,4,0);i=f;return}else if((m|0)==26){ia(l|0,4|0,4,0);i=f;return}}if((d|0)!=1){i=f;return}ia(b+32|0,1|0,4,0);i=f;return}function qo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;h=ha(a+4|0,4,0,0)|0|0;j=h>>8;if(!(h&1))k=j;else k=ha((ha(d|0,4,0,0)|0|0)+j|0,4,0,0)|0|0;j=ha(a|0,4,0,0)|0|0;dc[(ja(ha((ha(j|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,15|0)|0)&15](j,b,c,d+k|0,(h&2|0)!=0?e:2,f);i=g;return}function ro(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;g=ha(a+4|0,4,0,0)|0|0;h=g>>8;if(!(g&1))j=h;else j=ha((ha(c|0,4,0,0)|0|0)+h|0,4,0,0)|0|0;h=ha(a|0,4,0,0)|0|0;Tb[(ja(ha((ha(h|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,3|0)|0)&3](h,b,c+j|0,(g&2|0)!=0?d:2,e);i=f;return}function so(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;if((a|0)==(ha(b+8|0,4,0,0)|0|0)){if((ha(b+4|0,4,0,0)|0|0)!=(c|0)){i=f;return}g=b+28|0;if((ha(g|0,4,0,0)|0|0)==1){i=f;return}ia(g|0,d|0,4,0);i=f;return}if((a|0)!=(ha(b|0,4,0,0)|0|0)){g=ha(a+8|0,4,0,0)|0|0;Tb[(ja(ha((ha(g|0,4,0,0)|0|0)+24|0,4,0,0)|0|0,3|0)|0)&3](g,b,c,d,e);i=f;return}if((ha(b+16|0,4,0,0)|0|0)!=(c|0)?(g=b+20|0,(ha(g|0,4,0,0)|0|0)!=(c|0)):0){ia(b+32|0,d|0,4,0);h=b+44|0;if((ha(h|0,4,0,0)|0|0)==4){i=f;return}j=b+52|0;ia(j>>0|0,0|0,1,0);k=b+53|0;ia(k>>0|0,0|0,1,0);l=ha(a+8|0,4,0,0)|0|0;dc[(ja(ha((ha(l|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,15|0)|0)&15](l,b,c,c,1,e);if(ha(k>>0|0,1,0,0)|0){if(!(ha(j>>0|0,1,0,0)|0)){m=1;n=13}}else{m=0;n=13}do if((n|0)==13){ia(g|0,c|0,4,0);j=b+40|0;ia(j|0,(ha(j|0,4,0,0)|0|0)+1|0,4,0);if((ha(b+36|0,4,0,0)|0|0)==1?(ha(b+24|0,4,0,0)|0|0)==2:0){ia(b+54>>0|0,1|0,1,0);if(m)break}else n=16;if((n|0)==16?m:0)break;ia(h|0,4|0,4,0);i=f;return}while(0);ia(h|0,3|0,4,0);i=f;return}if((d|0)!=1){i=f;return}ia(b+32|0,1|0,4,0);i=f;return}function to(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;e=i;if((ha(b+8|0,4,0,0)|0|0)==(a|0)){if((ha(b+4|0,4,0,0)|0|0)!=(c|0)){i=e;return}f=b+28|0;if((ha(f|0,4,0,0)|0|0)==1){i=e;return}ia(f|0,d|0,4,0);i=e;return}if((ha(b|0,4,0,0)|0|0)!=(a|0)){i=e;return}if((ha(b+16|0,4,0,0)|0|0)!=(c|0)?(a=b+20|0,(ha(a|0,4,0,0)|0|0)!=(c|0)):0){ia(b+32|0,d|0,4,0);ia(a|0,c|0,4,0);c=b+40|0;ia(c|0,(ha(c|0,4,0,0)|0|0)+1|0,4,0);if((ha(b+36|0,4,0,0)|0|0)==1?(ha(b+24|0,4,0,0)|0|0)==2:0)ia(b+54>>0|0,1|0,1,0);ia(b+44|0,4|0,4,0);i=e;return}if((d|0)!=1){i=e;return}ia(b+32|0,1|0,4,0);i=e;return}function uo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;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;g=i;if((a|0)==(ha(b+8|0,4,0,0)|0|0)){oo(0,b,c,d,e);i=g;return}h=b+52|0;j=ha(h>>0|0,1,0,0)|0|0;k=b+53|0;l=ha(k>>0|0,1,0,0)|0|0;m=ha(a+12|0,4,0,0)|0|0;n=a+(m<<3)+16|0;ia(h>>0|0,0|0,1,0);ia(k>>0|0,0|0,1,0);qo(a+16|0,b,c,d,e,f);a:do if((m|0)>1){o=b+24|0;p=a+8|0;q=b+54|0;r=a+24|0;do{if(ha(q>>0|0,1,0,0)|0)break a;if(!(ha(h>>0|0,1,0,0)|0)){if((ha(k>>0|0,1,0,0)|0|0)!=0?((ha(p|0,4,0,0)|0)&1|0)==0:0)break a}else{if((ha(o|0,4,0,0)|0|0)==1)break a;if(!((ha(p|0,4,0,0)|0)&2))break a}ia(h>>0|0,0|0,1,0);ia(k>>0|0,0|0,1,0);qo(r,b,c,d,e,f);r=r+8|0}while(r>>>0<n>>>0)}while(0);ia(h>>0|0,j|0,1,0);ia(k>>0|0,l|0,1,0);i=g;return}function vo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;if((a|0)==(ha(b+8|0,4,0,0)|0|0)){oo(0,b,c,d,e);i=g;return}else{h=ha(a+8|0,4,0,0)|0|0;dc[(ja(ha((ha(h|0,4,0,0)|0|0)+20|0,4,0,0)|0|0,15|0)|0)&15](h,b,c,d,e,f);i=g;return}}function wo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;f=i;if((ha(b+8|0,4,0,0)|0|0)!=(a|0)){i=f;return}oo(0,b,c,d,e);i=f;return}function xo(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d;ia(e|0,ha(c|0,4,0,0)|0|0,4,0);f=Rb[(ja(ha((ha(a|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,31|0)|0)&31](a,b,e)|0;b=f&1;if(!f){i=d;return b|0}ia(c|0,ha(e|0,4,0,0)|0|0,4,0);i=d;return b|0}function yo(a){a=a|0;var b=0,c=0;b=i;if(!a)c=0;else c=(no(a,13976,14144,0)|0)!=0;i=b;return c&1|0}function zo(){var a=0;a=Pa(4)|0;In(a);Cb(a|0,13512,96)}function Ao(){var a=0,b=0,c=0,d=0,e=0,f=0,g=0;a=i;i=i+16|0;b=a;c=a+12|0;a=Dn()|0;if(!a)Cn(13256,b);d=ha(a|0,4,0,0)|0|0;if(!d)Cn(13256,b);a=d+48|0;e=ha(a|0,4,0,0)|0|0;f=ha(a+4|0,4,0,0)|0|0;if(!((e&-256|0)==1126902528&(f|0)==1129074247)){ia(b|0,ha(3274*4|0,4,0,0)|0|0,4,0);Cn(13216,b)}if((e|0)==1126902529&(f|0)==1129074247)g=ha(d+44|0,4,0,0)|0|0;else g=d+80|0;ia(c|0,g|0,4,0);g=ha(d|0,4,0,0)|0|0;d=ha(g+4|0,4,0,0)|0|0;if(Rb[(ja(ha((ha(13648|0,4,0,0)|0|0)+16|0,4,0,0)|0|0,31|0)|0)&31](13648,g,c)|0){g=ha(c|0,4,0,0)|0|0;c=ha(3274*4|0,4,0,0)|0|0;f=Xb[(ja(ha((ha(g|0,4,0,0)|0|0)+8|0,4,0,0)|0|0,63|0)|0)&63](g)|0;ia(b|0,c|0,4,0);ia(b+4|0,d|0,4,0);ia(b+8|0,f|0,4,0);Cn(13120,b)}else{ia(b|0,ha(3274*4|0,4,0,0)|0|0,4,0);ia(b+4|0,d|0,4,0);Cn(13168,b)}}function Bo(){var a=0;a=i;i=i+16|0;if(!(Ga(13272,124)|0)){i=a;return}else Cn(13344,a)}function Co(a){a=a|0;var b=0,c=0,d=0;b=i;c=(ha(a|0,4,0,0)|0|0)+-4|0;d=ha(c|0,4,0,0)|0|0;ia(c|0,d+-1|0,4,0);if((d+-1|0)>=0){i=b;return}Gn((ha(a|0,4,0,0)|0|0)+-12|0);i=b;return}function Do(a){a=a|0;var b=0;b=i;i=i+16|0;Fo(a);if(!(yb(ha(3318*4|0,4,0,0)|0|0,0)|0)){i=b;return}else Cn(13400,b)}function Eo(a){a=a|0;var b=0,c=0,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,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,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0;b=i;do if(a>>>0<245){if(a>>>0<11)c=16;else c=a+11&-8;d=c>>>3;e=ha(3598*4|0,4,0,0)|0|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;j=14432+(h<<2)|0;k=14432+(h+2<<2)|0;h=ha(k|0,4,0,0)|0|0;l=h+8|0;m=ha(l|0,4,0,0)|0|0;do if((j|0)!=(m|0)){if(m>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();n=m+12|0;if((ha(n|0,4,0,0)|0|0)==(h|0)){ia(n|0,j|0,4,0);ia(k|0,m|0,4,0);break}else Gb()}else ia(3598*4|0,e&~(1<<g)|0,4,0);while(0);m=g<<3;ia(h+4|0,m|3|0,4,0);k=h+(m|4)|0;ia(k|0,ha(k|0,4,0,0)|0|1|0,4,0);o=l;i=b;return o|0}k=ha(3600*4|0,4,0,0)|0|0;if(c>>>0>k>>>0){if(f){m=2<<d;j=f<<d&(m|0-m);m=(j&0-j)+-1|0;j=m>>>12&16;n=m>>>j;m=n>>>5&8;p=n>>>m;n=p>>>2&4;q=p>>>n;p=q>>>1&2;r=q>>>p;q=r>>>1&1;s=(m|j|n|p|q)+(r>>>q)|0;q=s<<1;r=14432+(q<<2)|0;p=14432+(q+2<<2)|0;q=ha(p|0,4,0,0)|0|0;n=q+8|0;j=ha(n|0,4,0,0)|0|0;do if((r|0)!=(j|0)){if(j>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();m=j+12|0;if((ha(m|0,4,0,0)|0|0)==(q|0)){ia(m|0,r|0,4,0);ia(p|0,j|0,4,0);t=ha(3600*4|0,4,0,0)|0|0;break}else Gb()}else{ia(3598*4|0,e&~(1<<s)|0,4,0);t=k}while(0);k=s<<3;e=k-c|0;ia(q+4|0,c|3|0,4,0);j=q+c|0;ia(q+(c|4)|0,e|1|0,4,0);ia(q+k|0,e|0,4,0);if(t){k=ha(3603*4|0,4,0,0)|0|0;p=t>>>3;r=p<<1;d=14432+(r<<2)|0;f=ha(3598*4|0,4,0,0)|0|0;l=1<<p;if(f&l){p=14432+(r+2<<2)|0;h=ha(p|0,4,0,0)|0|0;if(h>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{u=p;v=h}}else{ia(3598*4|0,f|l|0,4,0);u=14432+(r+2<<2)|0;v=d}ia(u|0,k|0,4,0);ia(v+12|0,k|0,4,0);ia(k+8|0,v|0,4,0);ia(k+12|0,d|0,4,0)}ia(3600*4|0,e|0,4,0);ia(3603*4|0,j|0,4,0);o=n;i=b;return o|0}j=ha(3599*4|0,4,0,0)|0|0;if(j){e=(j&0-j)+-1|0;j=e>>>12&16;d=e>>>j;e=d>>>5&8;k=d>>>e;d=k>>>2&4;r=k>>>d;k=r>>>1&2;l=r>>>k;r=l>>>1&1;f=ha(14696+((e|j|d|k|r)+(l>>>r)<<2)|0,4,0,0)|0|0;r=((ha(f+4|0,4,0,0)|0)&-8)-c|0;l=f;k=f;while(1){f=ha(l+16|0,4,0,0)|0|0;if(!f){d=ha(l+20|0,4,0,0)|0|0;if(!d)break;else w=d}else w=f;f=((ha(w+4|0,4,0,0)|0)&-8)-c|0;d=f>>>0<r>>>0;r=d?f:r;l=w;k=d?w:k}l=ha(3602*4|0,4,0,0)|0|0;if(k>>>0<l>>>0)Gb();n=k+c|0;if(k>>>0>=n>>>0)Gb();q=ha(k+24|0,4,0,0)|0|0;s=ha(k+12|0,4,0,0)|0|0;do if((s|0)==(k|0)){d=k+20|0;f=ha(d|0,4,0,0)|0|0;if(!f){j=k+16|0;e=ha(j|0,4,0,0)|0|0;if(!e){x=0;break}else{y=e;z=j}}else{y=f;z=d}while(1){d=y+20|0;f=ha(d|0,4,0,0)|0|0;if(f){y=f;z=d;continue}d=y+16|0;f=ha(d|0,4,0,0)|0|0;if(!f)break;else{y=f;z=d}}if(z>>>0<l>>>0)Gb();else{ia(z|0,0|0,4,0);x=y;break}}else{d=ha(k+8|0,4,0,0)|0|0;if(d>>>0<l>>>0)Gb();f=d+12|0;if((ha(f|0,4,0,0)|0|0)!=(k|0))Gb();j=s+8|0;if((ha(j|0,4,0,0)|0|0)==(k|0)){ia(f|0,s|0,4,0);ia(j|0,d|0,4,0);x=s;break}else Gb()}while(0);do if(q){s=ha(k+28|0,4,0,0)|0|0;l=14696+(s<<2)|0;if((k|0)==(ha(l|0,4,0,0)|0|0)){ia(l|0,x|0,4,0);if(!x){ia(3599*4|0,(ha(3599*4|0,4,0,0)|0)&~(1<<s)|0,4,0);break}}else{if(q>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();s=q+16|0;if((ha(s|0,4,0,0)|0|0)==(k|0))ia(s|0,x|0,4,0);else ia(q+20|0,x|0,4,0);if(!x)break}s=ha(3602*4|0,4,0,0)|0|0;if(x>>>0<s>>>0)Gb();ia(x+24|0,q|0,4,0);l=ha(k+16|0,4,0,0)|0|0;do if(l)if(l>>>0<s>>>0)Gb();else{ia(x+16|0,l|0,4,0);ia(l+24|0,x|0,4,0);break}while(0);l=ha(k+20|0,4,0,0)|0|0;if(l)if(l>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(x+20|0,l|0,4,0);ia(l+24|0,x|0,4,0);break}}while(0);if(r>>>0<16){q=r+c|0;ia(k+4|0,q|3|0,4,0);l=k+(q+4)|0;ia(l|0,ha(l|0,4,0,0)|0|1|0,4,0)}else{ia(k+4|0,c|3|0,4,0);ia(k+(c|4)|0,r|1|0,4,0);ia(k+(r+c)|0,r|0,4,0);l=ha(3600*4|0,4,0,0)|0|0;if(l){q=ha(3603*4|0,4,0,0)|0|0;s=l>>>3;l=s<<1;d=14432+(l<<2)|0;j=ha(3598*4|0,4,0,0)|0|0;f=1<<s;if(j&f){s=14432+(l+2<<2)|0;e=ha(s|0,4,0,0)|0|0;if(e>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{A=s;B=e}}else{ia(3598*4|0,j|f|0,4,0);A=14432+(l+2<<2)|0;B=d}ia(A|0,q|0,4,0);ia(B+12|0,q|0,4,0);ia(q+8|0,B|0,4,0);ia(q+12|0,d|0,4,0)}ia(3600*4|0,r|0,4,0);ia(3603*4|0,n|0,4,0)}o=k+8|0;i=b;return o|0}else C=c}else C=c}else if(a>>>0<=4294967231){d=a+11|0;q=d&-8;l=ha(3599*4|0,4,0,0)|0|0;if(l){f=0-q|0;j=d>>>8;if(j)if(q>>>0>16777215)D=31;else{d=(j+1048320|0)>>>16&8;e=j<<d;j=(e+520192|0)>>>16&4;s=e<<j;e=(s+245760|0)>>>16&2;h=14-(j|d|e)+(s<<e>>>15)|0;D=q>>>(h+7|0)&1|h<<1}else D=0;h=ha(14696+(D<<2)|0,4,0,0)|0|0;a:do if(!h){E=f;F=0;G=0}else{if((D|0)==31)H=0;else H=25-(D>>>1)|0;e=f;s=0;d=q<<H;j=h;p=0;while(1){g=(ha(j+4|0,4,0,0)|0)&-8;m=g-q|0;if(m>>>0<e>>>0)if((g|0)==(q|0)){E=m;F=j;G=j;break a}else{I=m;J=j}else{I=e;J=p}m=ha(j+20|0,4,0,0)|0|0;j=ha(j+(d>>>31<<2)+16|0,4,0,0)|0|0;g=(m|0)==0|(m|0)==(j|0)?s:m;if(!j){E=I;F=g;G=J;break}else{e=I;s=g;d=d<<1;p=J}}}while(0);if((F|0)==0&(G|0)==0){h=2<<D;f=l&(h|0-h);if(!f){C=q;break}h=(f&0-f)+-1|0;f=h>>>12&16;k=h>>>f;h=k>>>5&8;n=k>>>h;k=n>>>2&4;r=n>>>k;n=r>>>1&2;p=r>>>n;r=p>>>1&1;K=ha(14696+((h|f|k|n|r)+(p>>>r)<<2)|0,4,0,0)|0|0}else K=F;if(!K){L=E;M=G}else{r=E;p=K;n=G;while(1){k=((ha(p+4|0,4,0,0)|0)&-8)-q|0;f=k>>>0<r>>>0;h=f?k:r;k=f?p:n;f=ha(p+16|0,4,0,0)|0|0;if(f){r=h;p=f;n=k;continue}p=ha(p+20|0,4,0,0)|0|0;if(!p){L=h;M=k;break}else{r=h;n=k}}}if((M|0)!=0?L>>>0<((ha(3600*4|0,4,0,0)|0|0)-q|0)>>>0:0){n=ha(3602*4|0,4,0,0)|0|0;if(M>>>0<n>>>0)Gb();r=M+q|0;if(M>>>0>=r>>>0)Gb();p=ha(M+24|0,4,0,0)|0|0;l=ha(M+12|0,4,0,0)|0|0;do if((l|0)==(M|0)){k=M+20|0;h=ha(k|0,4,0,0)|0|0;if(!h){f=M+16|0;d=ha(f|0,4,0,0)|0|0;if(!d){N=0;break}else{O=d;P=f}}else{O=h;P=k}while(1){k=O+20|0;h=ha(k|0,4,0,0)|0|0;if(h){O=h;P=k;continue}k=O+16|0;h=ha(k|0,4,0,0)|0|0;if(!h)break;else{O=h;P=k}}if(P>>>0<n>>>0)Gb();else{ia(P|0,0|0,4,0);N=O;break}}else{k=ha(M+8|0,4,0,0)|0|0;if(k>>>0<n>>>0)Gb();h=k+12|0;if((ha(h|0,4,0,0)|0|0)!=(M|0))Gb();f=l+8|0;if((ha(f|0,4,0,0)|0|0)==(M|0)){ia(h|0,l|0,4,0);ia(f|0,k|0,4,0);N=l;break}else Gb()}while(0);do if(p){l=ha(M+28|0,4,0,0)|0|0;n=14696+(l<<2)|0;if((M|0)==(ha(n|0,4,0,0)|0|0)){ia(n|0,N|0,4,0);if(!N){ia(3599*4|0,(ha(3599*4|0,4,0,0)|0)&~(1<<l)|0,4,0);break}}else{if(p>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();l=p+16|0;if((ha(l|0,4,0,0)|0|0)==(M|0))ia(l|0,N|0,4,0);else ia(p+20|0,N|0,4,0);if(!N)break}l=ha(3602*4|0,4,0,0)|0|0;if(N>>>0<l>>>0)Gb();ia(N+24|0,p|0,4,0);n=ha(M+16|0,4,0,0)|0|0;do if(n)if(n>>>0<l>>>0)Gb();else{ia(N+16|0,n|0,4,0);ia(n+24|0,N|0,4,0);break}while(0);n=ha(M+20|0,4,0,0)|0|0;if(n)if(n>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(N+20|0,n|0,4,0);ia(n+24|0,N|0,4,0);break}}while(0);b:do if(L>>>0>=16){ia(M+4|0,q|3|0,4,0);ia(M+(q|4)|0,L|1|0,4,0);ia(M+(L+q)|0,L|0,4,0);p=L>>>3;if(L>>>0<256){n=p<<1;l=14432+(n<<2)|0;k=ha(3598*4|0,4,0,0)|0|0;f=1<<p;do if(!(k&f)){ia(3598*4|0,k|f|0,4,0);Q=14432+(n+2<<2)|0;R=l}else{p=14432+(n+2<<2)|0;h=ha(p|0,4,0,0)|0|0;if(h>>>0>=(ha(3602*4|0,4,0,0)|0|0)>>>0){Q=p;R=h;break}Gb()}while(0);ia(Q|0,r|0,4,0);ia(R+12|0,r|0,4,0);ia(M+(q+8)|0,R|0,4,0);ia(M+(q+12)|0,l|0,4,0);break}n=L>>>8;if(n)if(L>>>0>16777215)S=31;else{f=(n+1048320|0)>>>16&8;k=n<<f;n=(k+520192|0)>>>16&4;h=k<<n;k=(h+245760|0)>>>16&2;p=14-(n|f|k)+(h<<k>>>15)|0;S=L>>>(p+7|0)&1|p<<1}else S=0;p=14696+(S<<2)|0;ia(M+(q+28)|0,S|0,4,0);ia(M+(q+20)|0,0|0,4,0);ia(M+(q+16)|0,0|0,4,0);k=ha(3599*4|0,4,0,0)|0|0;h=1<<S;if(!(k&h)){ia(3599*4|0,k|h|0,4,0);ia(p|0,r|0,4,0);ia(M+(q+24)|0,p|0,4,0);ia(M+(q+12)|0,r|0,4,0);ia(M+(q+8)|0,r|0,4,0);break}h=ha(p|0,4,0,0)|0|0;if((S|0)==31)T=0;else T=25-(S>>>1)|0;c:do if(((ha(h+4|0,4,0,0)|0)&-8|0)!=(L|0)){p=L<<T;k=h;while(1){U=k+(p>>>31<<2)+16|0;f=ha(U|0,4,0,0)|0|0;if(!f)break;if(((ha(f+4|0,4,0,0)|0)&-8|0)==(L|0)){V=f;break c}else{p=p<<1;k=f}}if(U>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(U|0,r|0,4,0);ia(M+(q+24)|0,k|0,4,0);ia(M+(q+12)|0,r|0,4,0);ia(M+(q+8)|0,r|0,4,0);break b}}else V=h;while(0);h=V+8|0;l=ha(h|0,4,0,0)|0|0;p=ha(3602*4|0,4,0,0)|0|0;if(V>>>0>=p>>>0&l>>>0>=p>>>0){ia(l+12|0,r|0,4,0);ia(h|0,r|0,4,0);ia(M+(q+8)|0,l|0,4,0);ia(M+(q+12)|0,V|0,4,0);ia(M+(q+24)|0,0|0,4,0);break}else Gb()}else{l=L+q|0;ia(M+4|0,l|3|0,4,0);h=M+(l+4)|0;ia(h|0,ha(h|0,4,0,0)|0|1|0,4,0)}while(0);o=M+8|0;i=b;return o|0}else C=q}else C=q}else C=-1;while(0);M=ha(3600*4|0,4,0,0)|0|0;if(M>>>0>=C>>>0){L=M-C|0;V=ha(3603*4|0,4,0,0)|0|0;if(L>>>0>15){ia(3603*4|0,V+C|0,4,0);ia(3600*4|0,L|0,4,0);ia(V+(C+4)|0,L|1|0,4,0);ia(V+M|0,L|0,4,0);ia(V+4|0,C|3|0,4,0)}else{ia(3600*4|0,0|0,4,0);ia(3603*4|0,0|0,4,0);ia(V+4|0,M|3|0,4,0);L=V+(M+4)|0;ia(L|0,ha(L|0,4,0,0)|0|1|0,4,0)}o=V+8|0;i=b;return o|0}V=ha(3601*4|0,4,0,0)|0|0;if(V>>>0>C>>>0){L=V-C|0;ia(3601*4|0,L|0,4,0);V=ha(3604*4|0,4,0,0)|0|0;ia(3604*4|0,V+C|0,4,0);ia(V+(C+4)|0,L|1|0,4,0);ia(V+4|0,C|3|0,4,0);o=V+8|0;i=b;return o|0}do if(!(ha(3716*4|0,4,0,0)|0)){V=hb(30)|0;if(!(V+-1&V)){ia(3718*4|0,V|0,4,0);ia(3717*4|0,V|0,4,0);ia(3719*4|0,-1|0,4,0);ia(3720*4|0,-1|0,4,0);ia(3721*4|0,0|0,4,0);ia(3709*4|0,0|0,4,0);ia(3716*4|0,(Jb(0)|0)&-16^1431655768|0,4,0);break}else Gb()}while(0);V=C+48|0;L=ha(3718*4|0,4,0,0)|0|0;M=C+47|0;U=L+M|0;T=0-L|0;L=U&T;if(L>>>0<=C>>>0){o=0;i=b;return o|0}S=ha(3708*4|0,4,0,0)|0|0;if((S|0)!=0?(R=ha(3706*4|0,4,0,0)|0|0,Q=R+L|0,Q>>>0<=R>>>0|Q>>>0>S>>>0):0){o=0;i=b;return o|0}d:do if(!((ha(3709*4|0,4,0,0)|0)&4)){S=ha(3604*4|0,4,0,0)|0|0;e:do if(S){Q=14840|0;while(1){R=ha(Q|0,4,0,0)|0|0;if(R>>>0<=S>>>0?(W=Q+4|0,(R+(ha(W|0,4,0,0)|0|0)|0)>>>0>S>>>0):0)break;R=ha(Q+8|0,4,0,0)|0|0;if(!R){X=181;break e}else Q=R}if(Q){R=U-(ha(3601*4|0,4,0,0)|0|0)&T;if(R>>>0<2147483647){N=_a(R|0)|0;if((N|0)==((ha(Q|0,4,0,0)|0|0)+(ha(W|0,4,0,0)|0|0)|0)){Y=N;Z=R;X=190}else{_=N;$=R;X=191}}else aa=0}else X=181}else X=181;while(0);do if((X|0)==181){S=_a(0)|0;if((S|0)!=(-1|0)){q=S;R=ha(3717*4|0,4,0,0)|0|0;N=R+-1|0;if(!(N&q))ba=L;else ba=L-q+(N+q&0-R)|0;R=ha(3706*4|0,4,0,0)|0|0;q=R+ba|0;if(ba>>>0>C>>>0&ba>>>0<2147483647){N=ha(3708*4|0,4,0,0)|0|0;if((N|0)!=0?q>>>0<=R>>>0|q>>>0>N>>>0:0){aa=0;break}N=_a(ba|0)|0;if((N|0)==(S|0)){Y=S;Z=ba;X=190}else{_=N;$=ba;X=191}}else aa=0}else aa=0}while(0);f:do if((X|0)==190)if((Y|0)==(-1|0))aa=Z;else{ca=Y;da=Z;X=201;break d}else if((X|0)==191){N=0-$|0;do if((_|0)!=(-1|0)&$>>>0<2147483647&V>>>0>$>>>0?(S=ha(3718*4|0,4,0,0)|0|0,q=M-$+S&0-S,q>>>0<2147483647):0)if((_a(q|0)|0)==(-1|0)){_a(N|0)|0;aa=0;break f}else{ea=q+$|0;break}else ea=$;while(0);if((_|0)==(-1|0))aa=0;else{ca=_;da=ea;X=201;break d}}while(0);ia(3709*4|0,ha(3709*4|0,4,0,0)|0|4|0,4,0);fa=aa;X=198}else{fa=0;X=198}while(0);if((((X|0)==198?L>>>0<2147483647:0)?(aa=_a(L|0)|0,L=_a(0)|0,(aa|0)!=(-1|0)&(L|0)!=(-1|0)&aa>>>0<L>>>0):0)?(ea=L-aa|0,L=ea>>>0>(C+40|0)>>>0,L):0){ca=aa;da=L?ea:fa;X=201}if((X|0)==201){fa=(ha(3706*4|0,4,0,0)|0|0)+da|0;ia(3706*4|0,fa|0,4,0);if(fa>>>0>(ha(3707*4|0,4,0,0)|0|0)>>>0)ia(3707*4|0,fa|0,4,0);fa=ha(3604*4|0,4,0,0)|0|0;g:do if(fa){ea=14840|0;while(1){ga=ha(ea|0,4,0,0)|0|0;ja=ea+4|0;ka=ha(ja|0,4,0,0)|0|0;if((ca|0)==(ga+ka|0)){X=213;break}L=ha(ea+8|0,4,0,0)|0|0;if(!L)break;else ea=L}if(((X|0)==213?((ha(ea+12|0,4,0,0)|0)&8|0)==0:0)?fa>>>0>=ga>>>0&fa>>>0<ca>>>0:0){ia(ja|0,ka+da|0,4,0);L=(ha(3601*4|0,4,0,0)|0|0)+da|0;aa=fa+8|0;if(!(aa&7))la=0;else la=0-aa&7;aa=L-la|0;ia(3604*4|0,fa+la|0,4,0);ia(3601*4|0,aa|0,4,0);ia(fa+(la+4)|0,aa|1|0,4,0);ia(fa+(L+4)|0,40|0,4,0);ia(3605*4|0,ha(3720*4|0,4,0,0)|0|0,4,0);break}L=ha(3602*4|0,4,0,0)|0|0;if(ca>>>0<L>>>0){ia(3602*4|0,ca|0,4,0);ma=ca}else ma=L;L=ca+da|0;aa=14840|0;while(1){if((ha(aa|0,4,0,0)|0|0)==(L|0)){X=223;break}_=ha(aa+8|0,4,0,0)|0|0;if(!_)break;else aa=_}if((X|0)==223?((ha(aa+12|0,4,0,0)|0)&8|0)==0:0){ia(aa|0,ca|0,4,0);L=aa+4|0;ia(L|0,(ha(L|0,4,0,0)|0|0)+da|0,4,0);L=ca+8|0;if(!(L&7))na=0;else na=0-L&7;L=ca+(da+8)|0;if(!(L&7))oa=0;else oa=0-L&7;L=ca+(oa+da)|0;ea=na+C|0;_=ca+ea|0;$=L-(ca+na)-C|0;ia(ca+(na+4)|0,C|3|0,4,0);h:do if((L|0)!=(fa|0)){if((L|0)==(ha(3603*4|0,4,0,0)|0|0)){M=(ha(3600*4|0,4,0,0)|0|0)+$|0;ia(3600*4|0,M|0,4,0);ia(3603*4|0,_|0,4,0);ia(ca+(ea+4)|0,M|1|0,4,0);ia(ca+(M+ea)|0,M|0,4,0);break}M=da+4|0;V=ha(ca+(M+oa)|0,4,0,0)|0|0;if((V&3|0)==1){Z=V&-8;Y=V>>>3;i:do if(V>>>0>=256){ba=ha(ca+((oa|24)+da)|0,4,0,0)|0|0;W=ha(ca+(da+12+oa)|0,4,0,0)|0|0;do if((W|0)==(L|0)){T=oa|16;U=ca+(M+T)|0;N=ha(U|0,4,0,0)|0|0;if(!N){Q=ca+(T+da)|0;T=ha(Q|0,4,0,0)|0|0;if(!T){pa=0;break}else{qa=T;ra=Q}}else{qa=N;ra=U}while(1){U=qa+20|0;N=ha(U|0,4,0,0)|0|0;if(N){qa=N;ra=U;continue}U=qa+16|0;N=ha(U|0,4,0,0)|0|0;if(!N)break;else{qa=N;ra=U}}if(ra>>>0<ma>>>0)Gb();else{ia(ra|0,0|0,4,0);pa=qa;break}}else{U=ha(ca+((oa|8)+da)|0,4,0,0)|0|0;if(U>>>0<ma>>>0)Gb();N=U+12|0;if((ha(N|0,4,0,0)|0|0)!=(L|0))Gb();Q=W+8|0;if((ha(Q|0,4,0,0)|0|0)==(L|0)){ia(N|0,W|0,4,0);ia(Q|0,U|0,4,0);pa=W;break}else Gb()}while(0);if(!ba)break;W=ha(ca+(da+28+oa)|0,4,0,0)|0|0;k=14696+(W<<2)|0;do if((L|0)!=(ha(k|0,4,0,0)|0|0)){if(ba>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();U=ba+16|0;if((ha(U|0,4,0,0)|0|0)==(L|0))ia(U|0,pa|0,4,0);else ia(ba+20|0,pa|0,4,0);if(!pa)break i}else{ia(k|0,pa|0,4,0);if(pa)break;ia(3599*4|0,(ha(3599*4|0,4,0,0)|0)&~(1<<W)|0,4,0);break i}while(0);W=ha(3602*4|0,4,0,0)|0|0;if(pa>>>0<W>>>0)Gb();ia(pa+24|0,ba|0,4,0);k=oa|16;U=ha(ca+(k+da)|0,4,0,0)|0|0;do if(U)if(U>>>0<W>>>0)Gb();else{ia(pa+16|0,U|0,4,0);ia(U+24|0,pa|0,4,0);break}while(0);U=ha(ca+(M+k)|0,4,0,0)|0|0;if(!U)break;if(U>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(pa+20|0,U|0,4,0);ia(U+24|0,pa|0,4,0);break}}else{U=ha(ca+((oa|8)+da)|0,4,0,0)|0|0;W=ha(ca+(da+12+oa)|0,4,0,0)|0|0;ba=14432+(Y<<1<<2)|0;do if((U|0)!=(ba|0)){if(U>>>0<ma>>>0)Gb();if((ha(U+12|0,4,0,0)|0|0)==(L|0))break;Gb()}while(0);if((W|0)==(U|0)){ia(3598*4|0,(ha(3598*4|0,4,0,0)|0)&~(1<<Y)|0,4,0);break}do if((W|0)==(ba|0))sa=W+8|0;else{if(W>>>0<ma>>>0)Gb();k=W+8|0;if((ha(k|0,4,0,0)|0|0)==(L|0)){sa=k;break}Gb()}while(0);ia(U+12|0,W|0,4,0);ia(sa|0,U|0,4,0)}while(0);ta=ca+((Z|oa)+da)|0;ua=Z+$|0}else{ta=L;ua=$}Y=ta+4|0;ia(Y|0,(ha(Y|0,4,0,0)|0)&-2|0,4,0);ia(ca+(ea+4)|0,ua|1|0,4,0);ia(ca+(ua+ea)|0,ua|0,4,0);Y=ua>>>3;if(ua>>>0<256){M=Y<<1;V=14432+(M<<2)|0;ba=ha(3598*4|0,4,0,0)|0|0;k=1<<Y;do if(!(ba&k)){ia(3598*4|0,ba|k|0,4,0);va=14432+(M+2<<2)|0;wa=V}else{Y=14432+(M+2<<2)|0;Q=ha(Y|0,4,0,0)|0|0;if(Q>>>0>=(ha(3602*4|0,4,0,0)|0|0)>>>0){va=Y;wa=Q;break}Gb()}while(0);ia(va|0,_|0,4,0);ia(wa+12|0,_|0,4,0);ia(ca+(ea+8)|0,wa|0,4,0);ia(ca+(ea+12)|0,V|0,4,0);break}M=ua>>>8;do if(!M)xa=0;else{if(ua>>>0>16777215){xa=31;break}k=(M+1048320|0)>>>16&8;ba=M<<k;Z=(ba+520192|0)>>>16&4;Q=ba<<Z;ba=(Q+245760|0)>>>16&2;Y=14-(Z|k|ba)+(Q<<ba>>>15)|0;xa=ua>>>(Y+7|0)&1|Y<<1}while(0);M=14696+(xa<<2)|0;ia(ca+(ea+28)|0,xa|0,4,0);ia(ca+(ea+20)|0,0|0,4,0);ia(ca+(ea+16)|0,0|0,4,0);V=ha(3599*4|0,4,0,0)|0|0;Y=1<<xa;if(!(V&Y)){ia(3599*4|0,V|Y|0,4,0);ia(M|0,_|0,4,0);ia(ca+(ea+24)|0,M|0,4,0);ia(ca+(ea+12)|0,_|0,4,0);ia(ca+(ea+8)|0,_|0,4,0);break}Y=ha(M|0,4,0,0)|0|0;if((xa|0)==31)ya=0;else ya=25-(xa>>>1)|0;j:do if(((ha(Y+4|0,4,0,0)|0)&-8|0)!=(ua|0)){M=ua<<ya;V=Y;while(1){za=V+(M>>>31<<2)+16|0;ba=ha(za|0,4,0,0)|0|0;if(!ba)break;if(((ha(ba+4|0,4,0,0)|0)&-8|0)==(ua|0)){Aa=ba;break j}else{M=M<<1;V=ba}}if(za>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(za|0,_|0,4,0);ia(ca+(ea+24)|0,V|0,4,0);ia(ca+(ea+12)|0,_|0,4,0);ia(ca+(ea+8)|0,_|0,4,0);break h}}else Aa=Y;while(0);Y=Aa+8|0;M=ha(Y|0,4,0,0)|0|0;U=ha(3602*4|0,4,0,0)|0|0;if(Aa>>>0>=U>>>0&M>>>0>=U>>>0){ia(M+12|0,_|0,4,0);ia(Y|0,_|0,4,0);ia(ca+(ea+8)|0,M|0,4,0);ia(ca+(ea+12)|0,Aa|0,4,0);ia(ca+(ea+24)|0,0|0,4,0);break}else Gb()}else{M=(ha(3601*4|0,4,0,0)|0|0)+$|0;ia(3601*4|0,M|0,4,0);ia(3604*4|0,_|0,4,0);ia(ca+(ea+4)|0,M|1|0,4,0)}while(0);o=ca+(na|8)|0;i=b;return o|0}ea=14840|0;while(1){Ba=ha(ea|0,4,0,0)|0|0;if(Ba>>>0<=fa>>>0?(Ca=ha(ea+4|0,4,0,0)|0|0,Da=Ba+Ca|0,Da>>>0>fa>>>0):0)break;ea=ha(ea+8|0,4,0,0)|0|0}ea=Ba+(Ca+-39)|0;if(!(ea&7))Ea=0;else Ea=0-ea&7;ea=Ba+(Ca+-47+Ea)|0;_=ea>>>0<(fa+16|0)>>>0?fa:ea;ea=_+8|0;$=ca+8|0;if(!($&7))Fa=0;else Fa=0-$&7;$=da+-40-Fa|0;ia(3604*4|0,ca+Fa|0,4,0);ia(3601*4|0,$|0,4,0);ia(ca+(Fa+4)|0,$|1|0,4,0);ia(ca+(da+-36)|0,40|0,4,0);ia(3605*4|0,ha(3720*4|0,4,0,0)|0|0,4,0);ia(_+4|0,27|0,4,0);ia(ea+0|0,ha(3710*4|0,4,0,0)|0|0,4,0);ia(ea+4|0,ha(3711*4|0,4,0,0)|0|0,4,0);ia(ea+8|0,ha(3712*4|0,4,0,0)|0|0,4,0);ia(ea+12|0,ha(3713*4|0,4,0,0)|0|0,4,0);ia(3710*4|0,ca|0,4,0);ia(3711*4|0,da|0,4,0);ia(3713*4|0,0|0,4,0);ia(3712*4|0,ea|0,4,0);ea=_+28|0;ia(ea|0,7|0,4,0);if((_+32|0)>>>0<Da>>>0){$=ea;do{ea=$;$=$+4|0;ia($|0,7|0,4,0)}while((ea+8|0)>>>0<Da>>>0)}if((_|0)!=(fa|0)){$=_-fa|0;ea=fa+($+4)|0;ia(ea|0,(ha(ea|0,4,0,0)|0)&-2|0,4,0);ia(fa+4|0,$|1|0,4,0);ia(fa+$|0,$|0,4,0);ea=$>>>3;if($>>>0<256){L=ea<<1;aa=14432+(L<<2)|0;M=ha(3598*4|0,4,0,0)|0|0;Y=1<<ea;do if(!(M&Y)){ia(3598*4|0,M|Y|0,4,0);Ga=14432+(L+2<<2)|0;Ha=aa}else{ea=14432+(L+2<<2)|0;U=ha(ea|0,4,0,0)|0|0;if(U>>>0>=(ha(3602*4|0,4,0,0)|0|0)>>>0){Ga=ea;Ha=U;break}Gb()}while(0);ia(Ga|0,fa|0,4,0);ia(Ha+12|0,fa|0,4,0);ia(fa+8|0,Ha|0,4,0);ia(fa+12|0,aa|0,4,0);break}L=$>>>8;if(L)if($>>>0>16777215)Ia=31;else{Y=(L+1048320|0)>>>16&8;M=L<<Y;L=(M+520192|0)>>>16&4;_=M<<L;M=(_+245760|0)>>>16&2;U=14-(L|Y|M)+(_<<M>>>15)|0;Ia=$>>>(U+7|0)&1|U<<1}else Ia=0;U=14696+(Ia<<2)|0;ia(fa+28|0,Ia|0,4,0);ia(fa+20|0,0|0,4,0);ia(fa+16|0,0|0,4,0);M=ha(3599*4|0,4,0,0)|0|0;_=1<<Ia;if(!(M&_)){ia(3599*4|0,M|_|0,4,0);ia(U|0,fa|0,4,0);ia(fa+24|0,U|0,4,0);ia(fa+12|0,fa|0,4,0);ia(fa+8|0,fa|0,4,0);break}_=ha(U|0,4,0,0)|0|0;if((Ia|0)==31)Ja=0;else Ja=25-(Ia>>>1)|0;k:do if(((ha(_+4|0,4,0,0)|0)&-8|0)!=($|0)){U=$<<Ja;M=_;while(1){Ka=M+(U>>>31<<2)+16|0;Y=ha(Ka|0,4,0,0)|0|0;if(!Y)break;if(((ha(Y+4|0,4,0,0)|0)&-8|0)==($|0)){La=Y;break k}else{U=U<<1;M=Y}}if(Ka>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(Ka|0,fa|0,4,0);ia(fa+24|0,M|0,4,0);ia(fa+12|0,fa|0,4,0);ia(fa+8|0,fa|0,4,0);break g}}else La=_;while(0);_=La+8|0;$=ha(_|0,4,0,0)|0|0;aa=ha(3602*4|0,4,0,0)|0|0;if(La>>>0>=aa>>>0&$>>>0>=aa>>>0){ia($+12|0,fa|0,4,0);ia(_|0,fa|0,4,0);ia(fa+8|0,$|0,4,0);ia(fa+12|0,La|0,4,0);ia(fa+24|0,0|0,4,0);break}else Gb()}}else{$=ha(3602*4|0,4,0,0)|0|0;if(($|0)==0|ca>>>0<$>>>0)ia(3602*4|0,ca|0,4,0);ia(3710*4|0,ca|0,4,0);ia(3711*4|0,da|0,4,0);ia(3713*4|0,0|0,4,0);ia(3607*4|0,ha(3716*4|0,4,0,0)|0|0,4,0);ia(3606*4|0,-1|0,4,0);$=0;do{_=$<<1;aa=14432+(_<<2)|0;ia(14432+(_+3<<2)|0,aa|0,4,0);ia(14432+(_+2<<2)|0,aa|0,4,0);$=$+1|0}while(($|0)!=32);$=ca+8|0;if(!($&7))Ma=0;else Ma=0-$&7;$=da+-40-Ma|0;ia(3604*4|0,ca+Ma|0,4,0);ia(3601*4|0,$|0,4,0);ia(ca+(Ma+4)|0,$|1|0,4,0);ia(ca+(da+-36)|0,40|0,4,0);ia(3605*4|0,ha(3720*4|0,4,0,0)|0|0,4,0)}while(0);da=ha(3601*4|0,4,0,0)|0|0;if(da>>>0>C>>>0){ca=da-C|0;ia(3601*4|0,ca|0,4,0);da=ha(3604*4|0,4,0,0)|0|0;ia(3604*4|0,da+C|0,4,0);ia(da+(C+4)|0,ca|1|0,4,0);ia(da+4|0,C|3|0,4,0);o=da+8|0;i=b;return o|0}}ia(wb()|0|0,12|0,4,0);o=0;i=b;return o|0}function Fo(a){a=a|0;var b=0,c=0,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,E=0,F=0,G=0,H=0,I=0,J=0;b=i;if(!a){i=b;return}c=a+-8|0;d=ha(3602*4|0,4,0,0)|0|0;if(c>>>0<d>>>0)Gb();e=ha(a+-4|0,4,0,0)|0|0;f=e&3;if((f|0)==1)Gb();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){j=ha(c|0,4,0,0)|0|0;if(!f){i=b;return}k=-8-j|0;l=a+k|0;m=j+g|0;if(l>>>0<d>>>0)Gb();if((l|0)==(ha(3603*4|0,4,0,0)|0|0)){n=a+(g+-4)|0;o=ha(n|0,4,0,0)|0|0;if((o&3|0)!=3){p=l;q=m;break}ia(3600*4|0,m|0,4,0);ia(n|0,o&-2|0,4,0);ia(a+(k+4)|0,m|1|0,4,0);ia(h|0,m|0,4,0);i=b;return}o=j>>>3;if(j>>>0<256){j=ha(a+(k+8)|0,4,0,0)|0|0;n=ha(a+(k+12)|0,4,0,0)|0|0;r=14432+(o<<1<<2)|0;if((j|0)!=(r|0)){if(j>>>0<d>>>0)Gb();if((ha(j+12|0,4,0,0)|0|0)!=(l|0))Gb()}if((n|0)==(j|0)){ia(3598*4|0,(ha(3598*4|0,4,0,0)|0)&~(1<<o)|0,4,0);p=l;q=m;break}if((n|0)!=(r|0)){if(n>>>0<d>>>0)Gb();r=n+8|0;if((ha(r|0,4,0,0)|0|0)==(l|0))s=r;else Gb()}else s=n+8|0;ia(j+12|0,n|0,4,0);ia(s|0,j|0,4,0);p=l;q=m;break}j=ha(a+(k+24)|0,4,0,0)|0|0;n=ha(a+(k+12)|0,4,0,0)|0|0;do if((n|0)==(l|0)){r=a+(k+20)|0;o=ha(r|0,4,0,0)|0|0;if(!o){t=a+(k+16)|0;u=ha(t|0,4,0,0)|0|0;if(!u){v=0;break}else{w=u;x=t}}else{w=o;x=r}while(1){r=w+20|0;o=ha(r|0,4,0,0)|0|0;if(o){w=o;x=r;continue}r=w+16|0;o=ha(r|0,4,0,0)|0|0;if(!o)break;else{w=o;x=r}}if(x>>>0<d>>>0)Gb();else{ia(x|0,0|0,4,0);v=w;break}}else{r=ha(a+(k+8)|0,4,0,0)|0|0;if(r>>>0<d>>>0)Gb();o=r+12|0;if((ha(o|0,4,0,0)|0|0)!=(l|0))Gb();t=n+8|0;if((ha(t|0,4,0,0)|0|0)==(l|0)){ia(o|0,n|0,4,0);ia(t|0,r|0,4,0);v=n;break}else Gb()}while(0);if(j){n=ha(a+(k+28)|0,4,0,0)|0|0;r=14696+(n<<2)|0;if((l|0)==(ha(r|0,4,0,0)|0|0)){ia(r|0,v|0,4,0);if(!v){ia(3599*4|0,(ha(3599*4|0,4,0,0)|0)&~(1<<n)|0,4,0);p=l;q=m;break}}else{if(j>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();n=j+16|0;if((ha(n|0,4,0,0)|0|0)==(l|0))ia(n|0,v|0,4,0);else ia(j+20|0,v|0,4,0);if(!v){p=l;q=m;break}}n=ha(3602*4|0,4,0,0)|0|0;if(v>>>0<n>>>0)Gb();ia(v+24|0,j|0,4,0);r=ha(a+(k+16)|0,4,0,0)|0|0;do if(r)if(r>>>0<n>>>0)Gb();else{ia(v+16|0,r|0,4,0);ia(r+24|0,v|0,4,0);break}while(0);r=ha(a+(k+20)|0,4,0,0)|0|0;if(r)if(r>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(v+20|0,r|0,4,0);ia(r+24|0,v|0,4,0);p=l;q=m;break}else{p=l;q=m}}else{p=l;q=m}}else{p=c;q=g}while(0);if(p>>>0>=h>>>0)Gb();c=a+(g+-4)|0;v=ha(c|0,4,0,0)|0|0;if(!(v&1))Gb();if(!(v&2)){if((h|0)==(ha(3604*4|0,4,0,0)|0|0)){d=(ha(3601*4|0,4,0,0)|0|0)+q|0;ia(3601*4|0,d|0,4,0);ia(3604*4|0,p|0,4,0);ia(p+4|0,d|1|0,4,0);if((p|0)!=(ha(3603*4|0,4,0,0)|0|0)){i=b;return}ia(3603*4|0,0|0,4,0);ia(3600*4|0,0|0,4,0);i=b;return}if((h|0)==(ha(3603*4|0,4,0,0)|0|0)){d=(ha(3600*4|0,4,0,0)|0|0)+q|0;ia(3600*4|0,d|0,4,0);ia(3603*4|0,p|0,4,0);ia(p+4|0,d|1|0,4,0);ia(p+d|0,d|0,4,0);i=b;return}d=(v&-8)+q|0;w=v>>>3;do if(v>>>0>=256){x=ha(a+(g+16)|0,4,0,0)|0|0;s=ha(a+(g|4)|0,4,0,0)|0|0;do if((s|0)==(h|0)){f=a+(g+12)|0;e=ha(f|0,4,0,0)|0|0;if(!e){r=a+(g+8)|0;n=ha(r|0,4,0,0)|0|0;if(!n){y=0;break}else{z=n;A=r}}else{z=e;A=f}while(1){f=z+20|0;e=ha(f|0,4,0,0)|0|0;if(e){z=e;A=f;continue}f=z+16|0;e=ha(f|0,4,0,0)|0|0;if(!e)break;else{z=e;A=f}}if(A>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(A|0,0|0,4,0);y=z;break}}else{f=ha(a+g|0,4,0,0)|0|0;if(f>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();e=f+12|0;if((ha(e|0,4,0,0)|0|0)!=(h|0))Gb();r=s+8|0;if((ha(r|0,4,0,0)|0|0)==(h|0)){ia(e|0,s|0,4,0);ia(r|0,f|0,4,0);y=s;break}else Gb()}while(0);if(x){s=ha(a+(g+20)|0,4,0,0)|0|0;m=14696+(s<<2)|0;if((h|0)==(ha(m|0,4,0,0)|0|0)){ia(m|0,y|0,4,0);if(!y){ia(3599*4|0,(ha(3599*4|0,4,0,0)|0)&~(1<<s)|0,4,0);break}}else{if(x>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();s=x+16|0;if((ha(s|0,4,0,0)|0|0)==(h|0))ia(s|0,y|0,4,0);else ia(x+20|0,y|0,4,0);if(!y)break}s=ha(3602*4|0,4,0,0)|0|0;if(y>>>0<s>>>0)Gb();ia(y+24|0,x|0,4,0);m=ha(a+(g+8)|0,4,0,0)|0|0;do if(m)if(m>>>0<s>>>0)Gb();else{ia(y+16|0,m|0,4,0);ia(m+24|0,y|0,4,0);break}while(0);m=ha(a+(g+12)|0,4,0,0)|0|0;if(m)if(m>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(y+20|0,m|0,4,0);ia(m+24|0,y|0,4,0);break}}}else{m=ha(a+g|0,4,0,0)|0|0;s=ha(a+(g|4)|0,4,0,0)|0|0;x=14432+(w<<1<<2)|0;if((m|0)!=(x|0)){if(m>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();if((ha(m+12|0,4,0,0)|0|0)!=(h|0))Gb()}if((s|0)==(m|0)){ia(3598*4|0,(ha(3598*4|0,4,0,0)|0)&~(1<<w)|0,4,0);break}if((s|0)!=(x|0)){if(s>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();x=s+8|0;if((ha(x|0,4,0,0)|0|0)==(h|0))B=x;else Gb()}else B=s+8|0;ia(m+12|0,s|0,4,0);ia(B|0,m|0,4,0)}while(0);ia(p+4|0,d|1|0,4,0);ia(p+d|0,d|0,4,0);if((p|0)==(ha(3603*4|0,4,0,0)|0|0)){ia(3600*4|0,d|0,4,0);i=b;return}else C=d}else{ia(c|0,v&-2|0,4,0);ia(p+4|0,q|1|0,4,0);ia(p+q|0,q|0,4,0);C=q}q=C>>>3;if(C>>>0<256){v=q<<1;c=14432+(v<<2)|0;d=ha(3598*4|0,4,0,0)|0|0;B=1<<q;if(d&B){q=14432+(v+2<<2)|0;h=ha(q|0,4,0,0)|0|0;if(h>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{D=q;E=h}}else{ia(3598*4|0,d|B|0,4,0);D=14432+(v+2<<2)|0;E=c}ia(D|0,p|0,4,0);ia(E+12|0,p|0,4,0);ia(p+8|0,E|0,4,0);ia(p+12|0,c|0,4,0);i=b;return}c=C>>>8;if(c)if(C>>>0>16777215)F=31;else{E=(c+1048320|0)>>>16&8;D=c<<E;c=(D+520192|0)>>>16&4;v=D<<c;D=(v+245760|0)>>>16&2;B=14-(c|E|D)+(v<<D>>>15)|0;F=C>>>(B+7|0)&1|B<<1}else F=0;B=14696+(F<<2)|0;ia(p+28|0,F|0,4,0);ia(p+20|0,0|0,4,0);ia(p+16|0,0|0,4,0);D=ha(3599*4|0,4,0,0)|0|0;v=1<<F;a:do if(D&v){E=ha(B|0,4,0,0)|0|0;if((F|0)==31)G=0;else G=25-(F>>>1)|0;b:do if(((ha(E+4|0,4,0,0)|0)&-8|0)!=(C|0)){c=C<<G;d=E;while(1){H=d+(c>>>31<<2)+16|0;h=ha(H|0,4,0,0)|0|0;if(!h)break;if(((ha(h+4|0,4,0,0)|0)&-8|0)==(C|0)){I=h;break b}else{c=c<<1;d=h}}if(H>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(H|0,p|0,4,0);ia(p+24|0,d|0,4,0);ia(p+12|0,p|0,4,0);ia(p+8|0,p|0,4,0);break a}}else I=E;while(0);E=I+8|0;c=ha(E|0,4,0,0)|0|0;h=ha(3602*4|0,4,0,0)|0|0;if(I>>>0>=h>>>0&c>>>0>=h>>>0){ia(c+12|0,p|0,4,0);ia(E|0,p|0,4,0);ia(p+8|0,c|0,4,0);ia(p+12|0,I|0,4,0);ia(p+24|0,0|0,4,0);break}else Gb()}else{ia(3599*4|0,D|v|0,4,0);ia(B|0,p|0,4,0);ia(p+24|0,B|0,4,0);ia(p+12|0,p|0,4,0);ia(p+8|0,p|0,4,0)}while(0);p=(ha(3606*4|0,4,0,0)|0|0)+-1|0;ia(3606*4|0,p|0,4,0);if(!p)J=14848|0;else{i=b;return}while(1){p=ha(J|0,4,0,0)|0|0;if(!p)break;else J=p+8|0}ia(3606*4|0,-1|0,4,0);i=b;return}function Go(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=i;do if(a){if(b>>>0>4294967231){ia(wb()|0|0,12|0,4,0);d=0;break}if(b>>>0<11)e=16;else e=b+11&-8;f=ip(a+-8|0,e)|0;if(f){d=f+8|0;break}f=Eo(b)|0;if(!f)d=0;else{g=ha(a+-4|0,4,0,0)|0|0;h=(g&-8)-((g&3|0)==0?8:4)|0;tp(f|0,a|0,(h>>>0<b>>>0?h:b)|0)|0;Fo(a);d=f}}else d=Eo(b)|0;while(0);i=c;return d|0}function Ho(a){a=a|0;var b=0;if((a|0)==32)b=1;else b=(a+-9|0)>>>0<5;return b&1|0}function Io(a){a=a|0;var b=0;if((a+-48|0)>>>0<10)b=1;else b=((a|32)+-97|0)>>>0<6;return b&1|0}function Jo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|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,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;f=i;if(b>>>0>36){ia(wb()|0|0,22|0,4,0);g=0;h=0;H=g;i=f;return h|0}j=a+4|0;k=a+100|0;do{l=ha(j|0,4,0,0)|0|0;if(l>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,l+1|0,4,0);m=ha(l>>0|0,1,0,1)|0|0}else m=Mo(a)|0}while((Ho(m)|0)!=0);do if((m|0)==43|(m|0)==45){l=((m|0)==45)<<31>>31;n=ha(j|0,4,0,0)|0|0;if(n>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,n+1|0,4,0);o=ha(n>>0|0,1,0,1)|0|0;p=l;break}else{o=Mo(a)|0;p=l;break}}else{o=m;p=0}while(0);m=(b|0)==0;do if((b&-17|0)==0&(o|0)==48){l=ha(j|0,4,0,0)|0|0;if(l>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,l+1|0,4,0);q=ha(l>>0|0,1,0,1)|0|0}else q=Mo(a)|0;if((q|32|0)!=120)if(m){r=8;s=q;t=46;break}else{u=b;v=q;t=32;break}l=ha(j|0,4,0,0)|0|0;if(l>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,l+1|0,4,0);w=ha(l>>0|0,1,0,1)|0|0}else w=Mo(a)|0;if((ha(w+14889>>0|0,1,0,1)|0|0)>15){l=(ha(k|0,4,0,0)|0|0)==0;if(!l)ia(j|0,(ha(j|0,4,0,0)|0|0)+-1|0,4,0);if(!c){Lo(a,0);g=0;h=0;H=g;i=f;return h|0}if(l){g=0;h=0;H=g;i=f;return h|0}ia(j|0,(ha(j|0,4,0,0)|0|0)+-1|0,4,0);g=0;h=0;H=g;i=f;return h|0}else{r=16;s=w;t=46}}else{l=m?10:b;if((ha(o+14889>>0|0,1,0,1)|0|0)>>>0<l>>>0){u=l;v=o;t=32}else{if(ha(k|0,4,0,0)|0)ia(j|0,(ha(j|0,4,0,0)|0|0)+-1|0,4,0);Lo(a,0);ia(wb()|0|0,22|0,4,0);g=0;h=0;H=g;i=f;return h|0}}while(0);if((t|0)==32)if((u|0)==10){o=v+-48|0;if(o>>>0<10){b=o;o=0;do{o=(o*10|0)+b|0;m=ha(j|0,4,0,0)|0|0;if(m>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,m+1|0,4,0);x=ha(m>>0|0,1,0,1)|0|0}else x=Mo(a)|0;b=x+-48|0}while(b>>>0<10&o>>>0<429496729);y=o;z=0;A=x}else{y=0;z=0;A=v}x=A+-48|0;if(x>>>0<10){o=y;b=z;m=x;x=A;while(1){A=Bp(o|0,b|0,10,0)|0;w=H;c=((m|0)<0)<<31>>31;q=~c;if(w>>>0>q>>>0|(w|0)==(q|0)&A>>>0>~m>>>0){B=m;C=o;D=b;E=x;break}q=qp(A|0,w|0,m|0,c|0)|0;c=H;w=ha(j|0,4,0,0)|0|0;if(w>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,w+1|0,4,0);F=ha(w>>0|0,1,0,1)|0|0}else F=Mo(a)|0;w=F+-48|0;if(w>>>0<10&(c>>>0<429496729|(c|0)==429496729&q>>>0<2576980378)){o=q;b=c;m=w;x=F}else{B=w;C=q;D=c;E=F;break}}if(B>>>0>9){G=D;I=C}else{J=10;K=C;L=D;M=E;t=72}}else{G=z;I=y}}else{r=u;s=v;t=46}a:do if((t|0)==46){if(!(r+-1&r)){v=ha(15152+((r*23|0)>>>5&7)>>0|0,1,0,0)|0|0;u=ha(s+14889>>0|0,1,0,0)|0|0;y=u&255;if(y>>>0<r>>>0){z=y;y=0;do{y=z|y<<v;E=ha(j|0,4,0,0)|0|0;if(E>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,E+1|0,4,0);N=ha(E>>0|0,1,0,1)|0|0}else N=Mo(a)|0;O=ha(N+14889>>0|0,1,0,0)|0|0;z=O&255}while(z>>>0<r>>>0&y>>>0<134217728);P=O;Q=0;R=y;S=N}else{P=u;Q=0;R=0;S=s}z=rp(-1,-1,v|0)|0;E=H;if((P&255)>>>0>=r>>>0|(Q>>>0>E>>>0|(Q|0)==(E|0)&R>>>0>z>>>0)){J=r;K=R;L=Q;M=S;t=72;break}else{T=R;U=Q;V=P}while(1){D=sp(T|0,U|0,v|0)|0;C=H;B=V&255|D;D=ha(j|0,4,0,0)|0|0;if(D>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,D+1|0,4,0);W=ha(D>>0|0,1,0,1)|0|0}else W=Mo(a)|0;V=ha(W+14889>>0|0,1,0,0)|0|0;if((V&255)>>>0>=r>>>0|(C>>>0>E>>>0|(C|0)==(E|0)&B>>>0>z>>>0)){J=r;K=B;L=C;M=W;t=72;break a}else{T=B;U=C}}}z=ha(s+14889>>0|0,1,0,0)|0|0;E=z&255;if(E>>>0<r>>>0){v=E;E=0;do{E=v+(da(E,r)|0)|0;u=ha(j|0,4,0,0)|0|0;if(u>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,u+1|0,4,0);X=ha(u>>0|0,1,0,1)|0|0}else X=Mo(a)|0;Y=ha(X+14889>>0|0,1,0,0)|0|0;v=Y&255}while(v>>>0<r>>>0&E>>>0<119304647);Z=Y;_=E;$=0;aa=X}else{Z=z;_=0;$=0;aa=s}if((Z&255)>>>0<r>>>0){v=Cp(-1,-1,r|0,0)|0;u=H;y=$;C=_;B=Z;D=aa;while(1){if(y>>>0>u>>>0|(y|0)==(u|0)&C>>>0>v>>>0){J=r;K=C;L=y;M=D;t=72;break a}F=Bp(C|0,y|0,r|0,0)|0;x=H;m=B&255;if(x>>>0>4294967295|(x|0)==-1&F>>>0>~m>>>0){J=r;K=C;L=y;M=D;t=72;break a}b=qp(m|0,0,F|0,x|0)|0;x=H;F=ha(j|0,4,0,0)|0|0;if(F>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,F+1|0,4,0);ba=ha(F>>0|0,1,0,1)|0|0}else ba=Mo(a)|0;B=ha(ba+14889>>0|0,1,0,0)|0|0;if((B&255)>>>0>=r>>>0){J=r;K=b;L=x;M=ba;t=72;break}else{y=x;C=b;D=ba}}}else{J=r;K=_;L=$;M=aa;t=72}}while(0);if((t|0)==72)if((ha(M+14889>>0|0,1,0,1)|0|0)>>>0<J>>>0){do{M=ha(j|0,4,0,0)|0|0;if(M>>>0<(ha(k|0,4,0,0)|0|0)>>>0){ia(j|0,M+1|0,4,0);ca=ha(M>>0|0,1,0,1)|0|0}else ca=Mo(a)|0}while((ha(ca+14889>>0|0,1,0,1)|0|0)>>>0<J>>>0);ia(wb()|0|0,34|0,4,0);G=e;I=d}else{G=L;I=K}if(ha(k|0,4,0,0)|0)ia(j|0,(ha(j|0,4,0,0)|0|0)+-1|0,4,0);if(!(G>>>0<e>>>0|(G|0)==(e|0)&I>>>0<d>>>0)){if(!((d&1|0)!=0|0!=0|(p|0)!=0)){ia(wb()|0|0,34|0,4,0);j=qp(d|0,e|0,-1,-1)|0;g=H;h=j;H=g;i=f;return h|0}if(G>>>0>e>>>0|(G|0)==(e|0)&I>>>0>d>>>0){ia(wb()|0|0,34|0,4,0);g=e;h=d;H=g;i=f;return h|0}}d=((p|0)<0)<<31>>31;e=np(I^p|0,G^d|0,p|0,d|0)|0;g=H;h=e;H=g;i=f;return h|0}function Ko(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0.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,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0,R=0.0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0,ca=0,ea=0.0,fa=0,ga=0.0,ja=0,ka=0.0,la=0,ma=0.0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0.0,ua=0,va=0.0,wa=0,xa=0,ya=0,za=0,Aa=0.0,Ba=0,Ca=0,Da=0,Ea=0.0,Fa=0.0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0.0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0.0,Lc=0,Mc=0.0,Nc=0.0,Oc=0.0,Pc=0.0,Qc=0.0,Rc=0,Sc=0,Tc=0.0,Uc=0,Vc=0.0;d=i;i=i+512|0;e=d;if((b|0)==1){f=53;g=-1074}else if((b|0)==2){f=53;g=-1074}else if(!b){f=24;g=-149}else{h=0.0;i=d;return +h}b=a+4|0;j=a+100|0;do{k=ha(b|0,4,0,0)|0|0;if(k>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,k+1|0,4,0);l=ha(k>>0|0,1,0,1)|0|0}else l=Mo(a)|0}while((Ho(l)|0)!=0);do if((l|0)==43|(l|0)==45){k=1-(((l|0)==45&1)<<1)|0;m=ha(b|0,4,0,0)|0|0;if(m>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,m+1|0,4,0);n=ha(m>>0|0,1,0,1)|0|0;o=k;break}else{n=Mo(a)|0;o=k;break}}else{n=l;o=1}while(0);l=n;n=0;while(1){if((l|32|0)!=(ha(15168+n>>0|0,1,0,0)|0|0)){p=l;q=n;break}do if(n>>>0<7){k=ha(b|0,4,0,0)|0|0;if(k>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,k+1|0,4,0);r=ha(k>>0|0,1,0,1)|0|0;break}else{r=Mo(a)|0;break}}else r=l;while(0);k=n+1|0;if(k>>>0<8){l=r;n=k}else{p=r;q=k;break}}do if((q|0)==3)s=23;else if((q|0)!=8){r=(c|0)!=0;if(q>>>0>3&r)if((q|0)==8)break;else{s=23;break}a:do if(!q){n=p;l=0;while(1){if((n|32|0)!=(ha(15184+l>>0|0,1,0,0)|0|0)){t=n;u=l;break a}do if(l>>>0<2){k=ha(b|0,4,0,0)|0|0;if(k>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,k+1|0,4,0);v=ha(k>>0|0,1,0,1)|0|0;break}else{v=Mo(a)|0;break}}else v=n;while(0);k=l+1|0;if(k>>>0<3){n=v;l=k}else{t=v;u=k;break}}}else{t=p;u=q}while(0);if((u|0)==3){l=ha(b|0,4,0,0)|0|0;if(l>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,l+1|0,4,0);y=ha(l>>0|0,1,0,1)|0|0}else y=Mo(a)|0;if((y|0)==40)z=1;else{if(!(ha(j|0,4,0,0)|0)){h=w;i=d;return +h}ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);h=w;i=d;return +h}while(1){l=ha(b|0,4,0,0)|0|0;if(l>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,l+1|0,4,0);A=ha(l>>0|0,1,0,1)|0|0}else A=Mo(a)|0;if(!((A+-48|0)>>>0<10|(A+-65|0)>>>0<26)?!((A+-97|0)>>>0<26|(A|0)==95):0)break;z=z+1|0}if((A|0)==41){h=w;i=d;return +h}l=(ha(j|0,4,0,0)|0|0)==0;if(!l)ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);if(!r){ia(wb()|0|0,22|0,4,0);Lo(a,0);h=0.0;i=d;return +h}if((z|0)==0|l){h=w;i=d;return +h}else B=z;do{B=B+-1|0;ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0)}while((B|0)!=0);h=w;i=d;return +h}else if(!u){do if((t|0)==48){r=ha(b|0,4,0,0)|0|0;if(r>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,r+1|0,4,0);C=ha(r>>0|0,1,0,1)|0|0}else C=Mo(a)|0;if((C|32|0)!=120){if(!(ha(j|0,4,0,0)|0)){D=48;break}ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);D=48;break}r=ha(b|0,4,0,0)|0|0;if(r>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,r+1|0,4,0);E=ha(r>>0|0,1,0,1)|0|0;F=0}else{E=Mo(a)|0;F=0}while(1){if((E|0)==46){s=70;break}else if((E|0)!=48){G=0;I=0;J=0;K=0;L=E;M=F;N=0;O=0;P=1.0;Q=0;R=0.0;break}r=ha(b|0,4,0,0)|0|0;if(r>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,r+1|0,4,0);E=ha(r>>0|0,1,0,1)|0|0;F=1;continue}else{E=Mo(a)|0;F=1;continue}}if((s|0)==70){r=ha(b|0,4,0,0)|0|0;if(r>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,r+1|0,4,0);T=ha(r>>0|0,1,0,1)|0|0}else T=Mo(a)|0;if((T|0)==48){r=0;l=0;while(1){n=ha(b|0,4,0,0)|0|0;if(n>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,n+1|0,4,0);U=ha(n>>0|0,1,0,1)|0|0}else U=Mo(a)|0;n=qp(r|0,l|0,-1,-1)|0;k=H;if((U|0)==48){r=n;l=k}else{G=0;I=0;J=n;K=k;L=U;M=1;N=1;O=0;P=1.0;Q=0;R=0.0;break}}}else{G=0;I=0;J=0;K=0;L=T;M=F;N=1;O=0;P=1.0;Q=0;R=0.0}}b:while(1){l=L+-48|0;do if(l>>>0>=10){r=L|32;k=(L|0)==46;if(!((r+-97|0)>>>0<6|k)){V=L;break b}if(k)if(!N){W=I;X=G;Y=I;Z=G;_=M;$=1;aa=O;ba=P;ca=Q;ea=R;break}else{V=46;break b}else{fa=(L|0)>57?r+-87|0:l;s=83;break}}else{fa=l;s=83}while(0);if((s|0)==83){s=0;do if(!((G|0)<0|(G|0)==0&I>>>0<8)){if((G|0)<0|(G|0)==0&I>>>0<14){ga=P*.0625;ja=O;ka=ga;la=Q;ma=R+ga*+(fa|0);break}if((fa|0)==0|(O|0)!=0){ja=O;ka=P;la=Q;ma=R}else{ja=1;ka=P;la=Q;ma=R+P*.5}}else{ja=O;ka=P;la=fa+(Q<<4)|0;ma=R}while(0);l=qp(I|0,G|0,1,0)|0;W=J;X=K;Y=l;Z=H;_=1;$=N;aa=ja;ba=ka;ca=la;ea=ma}l=ha(b|0,4,0,0)|0|0;if(l>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,l+1|0,4,0);G=Z;I=Y;J=W;K=X;L=ha(l>>0|0,1,0,1)|0|0;M=_;N=$;O=aa;P=ba;Q=ca;R=ea;continue}else{G=Z;I=Y;J=W;K=X;L=Mo(a)|0;M=_;N=$;O=aa;P=ba;Q=ca;R=ea;continue}}if(!M){l=(ha(j|0,4,0,0)|0|0)==0;if(!l)ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);if(c){if(!l?(l=ha(b|0,4,0,0)|0|0,ia(b|0,l+-1|0,4,0),(N|0)!=0):0)ia(b|0,l+-2|0,4,0)}else Lo(a,0);h=+(o|0)*0.0;i=d;return +h}l=(N|0)==0;r=l?I:J;k=l?G:K;if((G|0)<0|(G|0)==0&I>>>0<8){l=I;n=G;m=Q;while(1){na=m<<4;l=qp(l|0,n|0,1,0)|0;n=H;if(!((n|0)<0|(n|0)==0&l>>>0<8)){oa=na;break}else m=na}}else oa=Q;do if((V|32|0)==112){m=kp(a,c)|0;l=H;if((m|0)==0&(l|0)==-2147483648)if(!c){Lo(a,0);h=0.0;i=d;return +h}else{if(!(ha(j|0,4,0,0)|0)){pa=0;qa=0;break}ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);pa=0;qa=0;break}else{pa=m;qa=l}}else if(!(ha(j|0,4,0,0)|0)){pa=0;qa=0}else{ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);pa=0;qa=0}while(0);l=sp(r|0,k|0,2)|0;m=qp(l|0,H|0,-32,-1)|0;l=qp(m|0,H|0,pa|0,qa|0)|0;m=H;if(!oa){h=+(o|0)*0.0;i=d;return +h}if((m|0)>0|(m|0)==0&l>>>0>(0-g|0)>>>0){ia(wb()|0|0,34|0,4,0);h=+(o|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;i=d;return +h}n=g+-106|0;na=((n|0)<0)<<31>>31;if((m|0)<(na|0)|(m|0)==(na|0)&l>>>0<n>>>0){ia(wb()|0|0,34|0,4,0);h=+(o|0)*2.2250738585072014e-308*2.2250738585072014e-308;i=d;return +h}if((oa|0)>-1){n=l;na=m;ra=oa;ga=R;while(1){sa=ra<<1;if(!(ga>=.5)){ta=ga;ua=sa}else{ta=ga+-1.0;ua=sa|1}va=ga+ta;sa=qp(n|0,na|0,-1,-1)|0;wa=H;if((ua|0)>-1){n=sa;na=wa;ra=ua;ga=va}else{xa=sa;ya=wa;za=ua;Aa=va;break}}}else{xa=l;ya=m;za=oa;Aa=R}ra=np(32,0,g|0,((g|0)<0)<<31>>31|0)|0;na=qp(xa|0,ya|0,ra|0,H|0)|0;ra=H;if(0>(ra|0)|0==(ra|0)&f>>>0>na>>>0)if((na|0)<0){Ba=0;s=126}else{Ca=na;s=124}else{Ca=f;s=124}if((s|0)==124)if((Ca|0)<53){Ba=Ca;s=126}else{Da=Ca;Ea=+(o|0);Fa=0.0}if((s|0)==126){ga=+(o|0);Da=Ba;Ea=ga;Fa=+Oo(+To(1.0,84-Ba|0),ga)}na=(Da|0)<32&Aa!=0.0&(za&1|0)==0;ga=Ea*(na?0.0:Aa)+(Fa+Ea*+(((na&1)+za|0)>>>0))-Fa;if(!(ga!=0.0))ia(wb()|0|0,34|0,4,0);h=+Uo(ga,xa);i=d;return +h}else D=t;while(0);na=g+f|0;ra=0-na|0;n=D;k=0;while(1){if((n|0)==46){s=137;break}else if((n|0)!=48){Ga=n;Ha=0;Ia=0;Ja=k;Ka=0;break}r=ha(b|0,4,0,0)|0|0;if(r>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,r+1|0,4,0);n=ha(r>>0|0,1,0,1)|0|0;k=1;continue}else{n=Mo(a)|0;k=1;continue}}if((s|0)==137){n=ha(b|0,4,0,0)|0|0;if(n>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,n+1|0,4,0);La=ha(n>>0|0,1,0,1)|0|0}else La=Mo(a)|0;if((La|0)==48){n=0;r=0;while(1){wa=qp(n|0,r|0,-1,-1)|0;sa=H;Ma=ha(b|0,4,0,0)|0|0;if(Ma>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,Ma+1|0,4,0);Na=ha(Ma>>0|0,1,0,1)|0|0}else Na=Mo(a)|0;if((Na|0)==48){n=wa;r=sa}else{Ga=Na;Ha=wa;Ia=sa;Ja=1;Ka=1;break}}}else{Ga=La;Ha=0;Ia=0;Ja=k;Ka=1}}ia(e|0,0|0,4,0);r=Ga+-48|0;n=(Ga|0)==46;c:do if(r>>>0<10|n){sa=e+496|0;wa=Ga;Ma=0;Oa=0;Pa=n;Qa=r;Ra=Ha;Sa=Ia;Ta=Ja;Ua=Ka;Va=0;Wa=0;Xa=0;d:while(1){do if(Pa)if(!Ua){Ya=Ma;Za=Oa;_a=Ma;$a=Oa;ab=Ta;bb=1;cb=Va;db=Wa;eb=Xa}else break d;else{fb=qp(Ma|0,Oa|0,1,0)|0;gb=H;hb=(wa|0)!=48;if((Wa|0)>=125){if(!hb){Ya=Ra;Za=Sa;_a=fb;$a=gb;ab=Ta;bb=Ua;cb=Va;db=Wa;eb=Xa;break}ia(sa|0,ha(sa|0,4,0,0)|0|1|0,4,0);Ya=Ra;Za=Sa;_a=fb;$a=gb;ab=Ta;bb=Ua;cb=Va;db=Wa;eb=Xa;break}ib=e+(Wa<<2)|0;if(!Va)jb=Qa;else jb=wa+-48+((ha(ib|0,4,0,0)|0|0)*10|0)|0;ia(ib|0,jb|0,4,0);ib=Va+1|0;kb=(ib|0)==9;Ya=Ra;Za=Sa;_a=fb;$a=gb;ab=1;bb=Ua;cb=kb?0:ib;db=(kb&1)+Wa|0;eb=hb?fb:Xa}while(0);fb=ha(b|0,4,0,0)|0|0;if(fb>>>0<(ha(j|0,4,0,0)|0|0)>>>0){ia(b|0,fb+1|0,4,0);lb=ha(fb>>0|0,1,0,1)|0|0}else lb=Mo(a)|0;Qa=lb+-48|0;Pa=(lb|0)==46;if(!(Qa>>>0<10|Pa)){mb=lb;nb=_a;ob=Ya;pb=$a;qb=Za;rb=ab;sb=bb;tb=cb;ub=db;vb=eb;s=160;break c}else{wa=lb;Ma=_a;Oa=$a;Ra=Ya;Sa=Za;Ta=ab;Ua=bb;Va=cb;Wa=db;Xa=eb}}xb=Ma;yb=Oa;zb=Ra;Ab=Sa;Bb=(Ta|0)!=0;Cb=Va;Db=Wa;Eb=Xa;s=168}else{mb=Ga;nb=0;ob=Ha;pb=0;qb=Ia;rb=Ja;sb=Ka;tb=0;ub=0;vb=0;s=160}while(0);do if((s|0)==160){r=(sb|0)==0;n=r?nb:ob;k=r?pb:qb;r=(rb|0)!=0;if(!(r&(mb|32|0)==101))if((mb|0)>-1){xb=nb;yb=pb;zb=n;Ab=k;Bb=r;Cb=tb;Db=ub;Eb=vb;s=168;break}else{Fb=nb;Gb=pb;Hb=r;Ib=n;Jb=k;Kb=tb;Lb=ub;Mb=vb;s=170;break}r=kp(a,c)|0;Ua=H;do if((r|0)==0&(Ua|0)==-2147483648)if(!c){Lo(a,0);h=0.0;i=d;return +h}else{if(!(ha(j|0,4,0,0)|0)){Nb=0;Ob=0;break}ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);Nb=0;Ob=0;break}else{Nb=r;Ob=Ua}while(0);Ua=qp(Nb|0,Ob|0,n|0,k|0)|0;Pb=Ua;Qb=nb;Rb=H;Sb=pb;Tb=tb;Ub=ub;Vb=vb}while(0);if((s|0)==168)if(ha(j|0,4,0,0)|0){ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);if(Bb){Pb=zb;Qb=xb;Rb=Ab;Sb=yb;Tb=Cb;Ub=Db;Vb=Eb}else s=171}else{Fb=xb;Gb=yb;Hb=Bb;Ib=zb;Jb=Ab;Kb=Cb;Lb=Db;Mb=Eb;s=170}if((s|0)==170)if(Hb){Pb=Ib;Qb=Fb;Rb=Jb;Sb=Gb;Tb=Kb;Ub=Lb;Vb=Mb}else s=171;if((s|0)==171){ia(wb()|0|0,22|0,4,0);Lo(a,0);h=0.0;i=d;return +h}Ua=ha(e|0,4,0,0)|0|0;if(!Ua){h=+(o|0)*0.0;i=d;return +h}if((Pb|0)==(Qb|0)&(Rb|0)==(Sb|0)&((Sb|0)<0|(Sb|0)==0&Qb>>>0<10)?f>>>0>30|(Ua>>>f|0)==0:0){h=+(o|0)*+(Ua>>>0);i=d;return +h}Ua=(g|0)/-2|0;r=((Ua|0)<0)<<31>>31;if((Rb|0)>(r|0)|(Rb|0)==(r|0)&Pb>>>0>Ua>>>0){ia(wb()|0|0,34|0,4,0);h=+(o|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;i=d;return +h}Ua=g+-106|0;r=((Ua|0)<0)<<31>>31;if((Rb|0)<(r|0)|(Rb|0)==(r|0)&Pb>>>0<Ua>>>0){ia(wb()|0|0,34|0,4,0);h=+(o|0)*2.2250738585072014e-308*2.2250738585072014e-308;i=d;return +h}if(!Tb)Wb=Ub;else{if((Tb|0)<9){Ua=e+(Ub<<2)|0;r=ha(Ua|0,4,0,0)|0|0;Xa=Tb;do{r=r*10|0;Xa=Xa+1|0}while((Xa|0)!=9);ia(Ua|0,r|0,4,0)}Wb=Ub+1|0}if((Vb|0)<9?(Vb|0)<=(Pb|0)&(Pb|0)<18:0){if((Pb|0)==9){h=+(o|0)*+((ha(e|0,4,0,0)|0|0)>>>0);i=d;return +h}if((Pb|0)<9){h=+(o|0)*+((ha(e|0,4,0,0)|0|0)>>>0)/+(ha(15200+(8-Pb<<2)|0,4,0,0)|0|0);i=d;return +h}Xa=f+27+(da(Pb,-3)|0)|0;Wa=ha(e|0,4,0,0)|0|0;if((Xa|0)>30|(Wa>>>Xa|0)==0){h=+(o|0)*+(Wa>>>0)*+(ha(15200+(Pb+-10<<2)|0,4,0,0)|0|0);i=d;return +h}}Wa=(Pb|0)%9|0;if(!Wa){Xb=0;Yb=0;Zb=Pb;_b=Wb}else{Xa=(Pb|0)>-1?Wa:Wa+9|0;Wa=ha(15200+(8-Xa<<2)|0,4,0,0)|0|0;if(Wb){Va=1e9/(Wa|0)|0;Ta=0;Sa=0;Ra=0;Oa=Pb;while(1){Ma=e+(Ra<<2)|0;wa=ha(Ma|0,4,0,0)|0|0;Pa=((wa>>>0)/(Wa>>>0)|0)+Sa|0;ia(Ma|0,Pa|0,4,0);Sa=da((wa>>>0)%(Wa>>>0)|0,Va)|0;wa=Ra;Ra=Ra+1|0;if((wa|0)==(Ta|0)&(Pa|0)==0){$b=Ra&127;ac=Oa+-9|0}else{$b=Ta;ac=Oa}if((Ra|0)==(Wb|0))break;else{Ta=$b;Oa=ac}}if(!Sa){bc=$b;cc=ac;dc=Wb}else{ia(e+(Wb<<2)|0,Sa|0,4,0);bc=$b;cc=ac;dc=Wb+1|0}}else{bc=0;cc=Pb;dc=0}Xb=bc;Yb=0;Zb=9-Xa+cc|0;_b=dc}e:while(1){Oa=e+(Xb<<2)|0;if((Zb|0)<18){Ta=Yb;Ra=_b;while(1){Va=0;Wa=Ra+127|0;r=Ra;while(1){Ua=Wa&127;Pa=e+(Ua<<2)|0;wa=sp(ha(Pa|0,4,0,0)|0|0,0,29)|0;Ma=qp(wa|0,H|0,Va|0,0)|0;wa=H;if(wa>>>0>0|(wa|0)==0&Ma>>>0>1e9){Qa=Cp(Ma|0,wa|0,1e9,0)|0;sa=Dp(Ma|0,wa|0,1e9,0)|0;ec=sa;fc=Qa}else{ec=Ma;fc=0}ia(Pa|0,ec|0,4,0);Pa=(Ua|0)==(Xb|0);if((Ua|0)!=(r+127&127|0)|Pa)gc=r;else gc=(ec|0)==0?Ua:r;if(Pa)break;else{Va=fc;Wa=Ua+-1|0;r=gc}}r=Ta+-29|0;if(!fc){Ta=r;Ra=gc}else{hc=r;ic=fc;jc=gc;break}}}else{if((Zb|0)==18){kc=Yb;lc=_b}else{mc=Xb;nc=Yb;oc=Zb;pc=_b;break}while(1){if((ha(Oa|0,4,0,0)|0|0)>>>0>=9007199){mc=Xb;nc=kc;oc=18;pc=lc;break e}Ra=0;Ta=lc+127|0;k=lc;while(1){n=Ta&127;r=e+(n<<2)|0;Wa=sp(ha(r|0,4,0,0)|0|0,0,29)|0;Va=qp(Wa|0,H|0,Ra|0,0)|0;Wa=H;if(Wa>>>0>0|(Wa|0)==0&Va>>>0>1e9){Ua=Cp(Va|0,Wa|0,1e9,0)|0;Pa=Dp(Va|0,Wa|0,1e9,0)|0;qc=Pa;rc=Ua}else{qc=Va;rc=0}ia(r|0,qc|0,4,0);r=(n|0)==(Xb|0);if((n|0)!=(k+127&127|0)|r)sc=k;else sc=(qc|0)==0?n:k;if(r)break;else{Ra=rc;Ta=n+-1|0;k=sc}}k=kc+-29|0;if(!rc){kc=k;lc=sc}else{hc=k;ic=rc;jc=sc;break}}}Oa=Xb+127&127;if((Oa|0)==(jc|0)){k=jc+127&127;Ta=e+((jc+126&127)<<2)|0;ia(Ta|0,ha(Ta|0,4,0,0)|0|(ha(e+(k<<2)|0,4,0,0)|0)|0,4,0);tc=k}else tc=jc;ia(e+(Oa<<2)|0,ic|0,4,0);Xb=Oa;Yb=hc;Zb=Zb+9|0;_b=tc}f:while(1){uc=pc+1&127;Xa=e+((pc+127&127)<<2)|0;Sa=mc;Oa=nc;k=oc;while(1){Ta=(k|0)==18;Ra=(k|0)>27?9:1;vc=Sa;wc=Oa;while(1){n=0;while(1){r=n+vc&127;if((r|0)==(pc|0)){xc=2;break}Va=ha(e+(r<<2)|0,4,0,0)|0|0;r=ha(15192+(n<<2)|0,4,0,0)|0|0;if(Va>>>0<r>>>0){xc=2;break}Ua=n+1|0;if(Va>>>0>r>>>0){xc=n;break}if((Ua|0)<2)n=Ua;else{xc=Ua;break}}if((xc|0)==2&Ta)break f;yc=Ra+wc|0;if((vc|0)==(pc|0)){vc=pc;wc=yc}else break}Ta=(1<<Ra)+-1|0;n=1e9>>>Ra;zc=vc;Ac=0;Ua=vc;Bc=k;do{r=e+(Ua<<2)|0;Va=ha(r|0,4,0,0)|0|0;Pa=(Va>>>Ra)+Ac|0;ia(r|0,Pa|0,4,0);Ac=da(Va&Ta,n)|0;Va=(Ua|0)==(zc|0)&(Pa|0)==0;Ua=Ua+1&127;Bc=Va?Bc+-9|0:Bc;zc=Va?Ua:zc}while((Ua|0)!=(pc|0));if(!Ac){Sa=zc;Oa=yc;k=Bc;continue}if((uc|0)!=(zc|0))break;ia(Xa|0,ha(Xa|0,4,0,0)|0|1|0,4,0);Sa=zc;Oa=yc;k=Bc}ia(e+(pc<<2)|0,Ac|0,4,0);mc=zc;nc=yc;oc=Bc;pc=uc}k=vc&127;if((k|0)==(pc|0)){ia(e+(uc+-1<<2)|0,0|0,4,0);Cc=uc}else Cc=pc;ga=+((ha(e+(k<<2)|0,4,0,0)|0|0)>>>0);k=vc+1&127;if((k|0)==(Cc|0)){Oa=Cc+1&127;ia(e+(Oa+-1<<2)|0,0|0,4,0);Dc=Oa}else Dc=Cc;va=+(o|0);Ec=va*(ga*1.0e9+ +((ha(e+(k<<2)|0,4,0,0)|0|0)>>>0));k=wc+53|0;Oa=k-g|0;if((Oa|0)<(f|0))if((Oa|0)<0){Fc=0;Gc=1;s=244}else{Hc=Oa;Ic=1;s=243}else{Hc=f;Ic=0;s=243}if((s|0)==243)if((Hc|0)<53){Fc=Hc;Gc=Ic;s=244}else{Jc=Hc;Kc=0.0;Lc=Ic;Mc=0.0;Nc=Ec}if((s|0)==244){ga=+Oo(+To(1.0,105-Fc|0),Ec);Oc=+Qo(Ec,+To(1.0,53-Fc|0));Jc=Fc;Kc=ga;Lc=Gc;Mc=Oc;Nc=ga+(Ec-Oc)}Sa=vc+2&127;do if((Sa|0)==(Dc|0))Pc=Mc;else{Xa=ha(e+(Sa<<2)|0,4,0,0)|0|0;do if(Xa>>>0>=5e8){if(Xa>>>0>5e8){Qc=va*.75+Mc;break}if((vc+3&127|0)==(Dc|0)){Qc=va*.5+Mc;break}else{Qc=va*.75+Mc;break}}else{if((Xa|0)==0?(vc+3&127|0)==(Dc|0):0){Qc=Mc;break}Qc=va*.25+Mc}while(0);if((53-Jc|0)<=1){Pc=Qc;break}if(+Qo(Qc,1.0)!=0.0){Pc=Qc;break}Pc=Qc+1.0}while(0);va=Nc+Pc-Kc;do if((k&2147483647|0)>(-2-na|0)){if(!(+S(+va)>=9007199254740992.0)){Rc=Lc;Sc=wc;Tc=va}else{Rc=(Lc|0)!=0&(Jc|0)==(Oa|0)?0:Lc;Sc=wc+1|0;Tc=va*.5}if((Sc+50|0)<=(ra|0)?!((Rc|0)!=0&Pc!=0.0):0){Uc=Sc;Vc=Tc;break}ia(wb()|0|0,34|0,4,0);Uc=Sc;Vc=Tc}else{Uc=wc;Vc=va}while(0);h=+Uo(Vc,Uc);i=d;return +h}else{if(ha(j|0,4,0,0)|0)ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);ia(wb()|0|0,22|0,4,0);Lo(a,0);h=0.0;i=d;return +h}}while(0);if((s|0)==23){s=(ha(j|0,4,0,0)|0|0)==0;if(!s)ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);if(!(q>>>0<4|(c|0)==0|s)){s=q;do{ia(b|0,(ha(b|0,4,0,0)|0|0)+-1|0,4,0);s=s+-1|0}while(s>>>0>3)}}h=+(o|0)*x;i=d;return +h}function Lo(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=i;ia(a+104|0,b|0,4,0);d=ha(a+8|0,4,0,0)|0|0;e=ha(a+4|0,4,0,0)|0|0;f=d-e|0;ia(a+108|0,f|0,4,0);if((b|0)!=0&(f|0)>(b|0)){ia(a+100|0,e+b|0,4,0);i=c;return}else{ia(a+100|0,d|0,4,0);i=c;return}}function Mo(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;b=i;c=a+104|0;d=ha(c|0,4,0,0)|0|0;if(!((d|0)!=0?(ha(a+108|0,4,0,0)|0|0)>=(d|0):0))e=3;if((e|0)==3?(e=Zo(a)|0,(e|0)>=0):0){d=ha(c|0,4,0,0)|0|0;c=ha(a+8|0,4,0,0)|0|0;if((d|0)!=0?(f=ha(a+4|0,4,0,0)|0|0,g=d-(ha(a+108|0,4,0,0)|0|0)+-1|0,(c-f|0)>(g|0)):0)ia(a+100|0,f+g|0,4,0);else ia(a+100|0,c|0,4,0);g=ha(a+4|0,4,0,0)|0|0;if(c){f=a+108|0;ia(f|0,c+1-g+(ha(f|0,4,0,0)|0|0)|0,4,0)}f=g+-1|0;if((ha(f>>0|0,1,0,1)|0|0|0)==(e|0)){h=e;i=b;return h|0}ia(f>>0|0,e|0,1,0);h=e;i=b;return h|0}ia(a+100|0,0|0,4,0);h=-1;i=b;return h|0}function No(a,b){a=+a;b=+b;var c=0,d=0,e=0,f=0;c=i;ia(k|0,+a,8,1);d=ha(k|0,4,0,0)|0|0;e=ha(k+4|0,4,0,0)|0|0;ia(k|0,+b,8,1);f=(ha(k+4|0,4,0,0)|0)&-2147483648|e&2147483647;ia(k|0,d|0,4,0);ia(k+4|0,f|0,4,0);b=+(+ha(k|0,8,1,0));i=c;return +b}function Oo(a,b){a=+a;b=+b;var c=0,d=0.0;c=i;d=+No(a,b);i=c;return +d}function Po(a,b){a=+a;b=+b;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0.0;c=i;ia(k|0,+a,8,1);d=ha(k|0,4,0,0)|0|0;e=ha(k+4|0,4,0,0)|0|0;ia(k|0,+b,8,1);f=ha(k|0,4,0,0)|0|0;g=ha(k+4|0,4,0,0)|0|0;h=rp(d|0,e|0,52)|0;j=h&2047;h=rp(f|0,g|0,52)|0;l=h&2047;h=e&-2147483648;m=sp(f|0,g|0,1)|0;n=H;if(!((m|0)==0&(n|0)==0)?(o=g&2147483647,!(o>>>0>2146435072|(o|0)==2146435072&f>>>0>0|(j|0)==2047)):0){o=sp(d|0,e|0,1)|0;p=H;if(!(p>>>0>n>>>0|(p|0)==(n|0)&o>>>0>m>>>0)){if(!((o|0)==(m|0)&(p|0)==(n|0))){q=a;i=c;return +q}q=a*0.0;i=c;return +q}if(!j){n=sp(d|0,e|0,12)|0;p=H;if((p|0)>-1|(p|0)==-1&n>>>0>4294967295){m=n;n=p;p=0;while(1){o=p+-1|0;m=sp(m|0,n|0,1)|0;n=H;if(!((n|0)>-1|(n|0)==-1&m>>>0>4294967295)){r=o;break}else p=o}}else r=0;p=sp(d|0,e|0,1-r|0)|0;s=p;t=H;u=r}else{s=d;t=e&1048575|1048576;u=j}if(!l){j=sp(f|0,g|0,12)|0;e=H;if((e|0)>-1|(e|0)==-1&j>>>0>4294967295){d=j;j=e;e=0;while(1){r=e+-1|0;d=sp(d|0,j|0,1)|0;j=H;if(!((j|0)>-1|(j|0)==-1&d>>>0>4294967295)){v=r;break}else e=r}}else v=0;e=sp(f|0,g|0,1-v|0)|0;w=e;x=H;y=v}else{w=f;x=g&1048575|1048576;y=l}l=np(s|0,t|0,w|0,x|0)|0;g=H;f=(g|0)>-1|(g|0)==-1&l>>>0>4294967295;a:do if((u|0)>(y|0)){v=f;e=l;d=g;j=s;r=t;p=u;while(1){if(v)if((j|0)==(w|0)&(r|0)==(x|0))break;else{z=e;A=d}else{z=j;A=r}m=sp(z|0,A|0,1)|0;n=H;o=p+-1|0;B=np(m|0,n|0,w|0,x|0)|0;C=H;D=(C|0)>-1|(C|0)==-1&B>>>0>4294967295;if((o|0)>(y|0)){v=D;e=B;d=C;j=m;r=n;p=o}else{E=D;F=m;G=n;I=B;J=C;K=o;break a}}q=a*0.0;i=c;return +q}else{E=f;F=s;G=t;I=l;J=g;K=u}while(0);if(E)if((F|0)==(w|0)&(G|0)==(x|0)){q=a*0.0;i=c;return +q}else{L=J;M=I}else{L=G;M=F}if(L>>>0<1048576|(L|0)==1048576&M>>>0<0){F=M;G=L;I=K;while(1){J=sp(F|0,G|0,1)|0;x=H;w=I+-1|0;if(x>>>0<1048576|(x|0)==1048576&J>>>0<0){F=J;G=x;I=w}else{N=J;O=x;P=w;break}}}else{N=M;O=L;P=K}if((P|0)>0){K=qp(N|0,O|0,0,-1048576)|0;L=H;M=sp(P|0,0,52)|0;Q=L|H;R=K|M}else{M=rp(N|0,O|0,1-P|0)|0;Q=H;R=M}ia(k|0,R|0,4,0);ia(k+4|0,Q|h|0,4,0);q=+(+ha(k|0,8,1,0));i=c;return +q}S=a*b;q=S/S;i=c;return +q}function Qo(a,b){a=+a;b=+b;var c=0,d=0.0;c=i;d=+Po(a,b);i=c;return +d}function Ro(a,b){a=+a;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0.0,j=0.0,l=0,m=0.0;c=i;ia(k|0,+a,8,1);d=ha(k|0,4,0,0)|0|0;e=ha(k+4|0,4,0,0)|0|0;f=rp(d|0,e|0,52)|0;g=f&2047;if(!g){if(a!=0.0){h=+Ro(a*18446744073709551616.0,b);j=h;l=(ha(b|0,4,0,0)|0|0)+-64|0}else{j=a;l=0}ia(b|0,l|0,4,0);m=j;i=c;return +m}else if((g|0)==2047){m=a;i=c;return +m}else{ia(b|0,g+-1022|0,4,0);ia(k|0,d|0,4,0);ia(k+4|0,e&-2146435073|1071644672|0,4,0);m=+(+ha(k|0,8,1,0));i=c;return +m}return +(0.0)}function So(a,b){a=+a;b=b|0;var c=0,d=0.0;c=i;d=+Ro(a,b);i=c;return +d}function To(a,b){a=+a;b=b|0;var c=0,d=0.0,e=0,f=0,g=0,h=0.0;c=i;if((b|0)>1023){d=a*8988465674311579538646525.0e283;e=b+-1023|0;if((e|0)>1023){f=b+-2046|0;g=(f|0)>1023?1023:f;h=d*8988465674311579538646525.0e283}else{g=e;h=d}}else if((b|0)<-1022){d=a*2.2250738585072014e-308;e=b+1022|0;if((e|0)<-1022){f=b+2044|0;g=(f|0)<-1022?-1022:f;h=d*2.2250738585072014e-308}else{g=e;h=d}}else{g=b;h=a}b=sp(g+1023|0,0,52)|0;g=H;ia(k|0,b|0,4,0);ia(k+4|0,g|0,4,0);a=h*+(+ha(k|0,8,1,0));i=c;return +a}function Uo(a,b){a=+a;b=b|0;var c=0,d=0.0;c=i;d=+To(a,b);i=c;return +d}function Vo(a,b){a=a|0;b=b|0;var c=0,d=0;c=i;if(!a)d=0;else d=Wo(a,b,0)|0;i=c;return d|0}function Wo(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;c=i;if(!a){d=1;i=c;return d|0}if(b>>>0<128){ia(a>>0|0,b|0,1,0);d=1;i=c;return d|0}if(b>>>0<2048){ia(a>>0|0,b>>>6|192|0,1,0);ia(a+1>>0|0,b&63|128|0,1,0);d=2;i=c;return d|0}if(b>>>0<55296|(b&-8192|0)==57344){ia(a>>0|0,b>>>12|224|0,1,0);ia(a+1>>0|0,b>>>6&63|128|0,1,0);ia(a+2>>0|0,b&63|128|0,1,0);d=3;i=c;return d|0}if((b+-65536|0)>>>0<1048576){ia(a>>0|0,b>>>18|240|0,1,0);ia(a+1>>0|0,b>>>12&63|128|0,1,0);ia(a+2>>0|0,b>>>6&63|128|0,1,0);ia(a+3>>0|0,b&63|128|0,1,0);d=4;i=c;return d|0}else{ia(wb()|0|0,84|0,4,0);d=-1;i=c;return d|0}return 0}function Xo(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=i;c=a+74|0;d=ha(c>>0|0,1,0,0)|0|0;ia(c>>0|0,d+255|d|0,1,0);d=a+20|0;c=a+44|0;if((ha(d|0,4,0,0)|0|0)>>>0>(ha(c|0,4,0,0)|0|0)>>>0)Rb[(ja(ha(a+36|0,4,0,0)|0|0,31|0)|0)&31](a,0,0)|0;ia(a+16|0,0|0,4,0);ia(a+28|0,0|0,4,0);ia(d|0,0|0,4,0);d=ha(a|0,4,0,0)|0|0;if(!(d&20)){e=ha(c|0,4,0,0)|0|0;ia(a+8|0,e|0,4,0);ia(a+4|0,e|0,4,0);f=0;i=b;return f|0}if(!(d&4)){f=-1;i=b;return f|0}ia(a|0,d|32|0,4,0);f=-1;i=b;return f|0}function Yo(a){a=a|0;var b=0,c=0,d=0,e=0;b=i;c=a+74|0;d=ha(c>>0|0,1,0,0)|0|0;ia(c>>0|0,d+255|d|0,1,0);d=ha(a|0,4,0,0)|0|0;if(!(d&8)){ia(a+8|0,0|0,4,0);ia(a+4|0,0|0,4,0);c=ha(a+44|0,4,0,0)|0|0;ia(a+28|0,c|0,4,0);ia(a+20|0,c|0,4,0);ia(a+16|0,c+(ha(a+48|0,4,0,0)|0|0)|0,4,0);e=0;i=b;return e|0}else{ia(a|0,d|32|0,4,0);e=-1;i=b;return e|0}return 0}function Zo(a){a=a|0;var b=0,c=0,d=0;b=i;i=i+16|0;c=b;if((ha(a+8|0,4,0,0)|0|0)==0?(Xo(a)|0)!=0:0)d=-1;else if((Rb[(ja(ha(a+32|0,4,0,0)|0|0,31|0)|0)&31](a,c,1)|0)==1)d=ha(c>>0|0,1,0,1)|0|0;else d=-1;i=b;return d|0}function _o(a,b,c){a=a|0;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;d=i;e=c+16|0;f=ha(e|0,4,0,0)|0|0;do if(!f)if(!(Yo(c)|0)){g=ha(e|0,4,0,0)|0|0;break}else{h=0;i=d;return h|0}else g=f;while(0);f=c+20|0;e=ha(f|0,4,0,0)|0|0;if((g-e|0)>>>0<b>>>0){h=Rb[(ja(ha(c+36|0,4,0,0)|0|0,31|0)|0)&31](c,a,b)|0;i=d;return h|0}a:do if((ha(c+75>>0|0,1,0,0)|0|0)>-1){g=b;while(1){if(!g){j=b;k=a;l=e;m=0;break a}n=g+-1|0;if((ha(a+n>>0|0,1,0,0)|0|0)==10)break;else g=n}if((Rb[(ja(ha(c+36|0,4,0,0)|0|0,31|0)|0)&31](c,a,g)|0)>>>0<g>>>0){h=g;i=d;return h|0}else{j=b-g|0;k=a+g|0;l=ha(f|0,4,0,0)|0|0;m=g;break}}else{j=b;k=a;l=e;m=0}while(0);tp(l|0,k|0,j|0)|0;ia(f|0,(ha(f|0,4,0,0)|0|0)+j|0,4,0);h=m+j|0;i=d;return h|0}function $o(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;ia(f|0,d|0,4,0);d=bp(a,b,c,f)|0;i=e;return d|0}function ap(a,b,c){a=a|0;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;d=i;i=i+224|0;e=d+120|0;f=d+80|0;g=d;h=d+136|0;j=f+0|0;k=j+40|0;do{ia(j|0,0|0,4,0);j=j+4|0}while((j|0)<(k|0));ia(e|0,ha(c|0,4,0,0)|0|0,4,0);if((lp(0,b,e,g,f)|0)<0){l=-1;i=d;return l|0}c=a+48|0;if(!(ha(c|0,4,0,0)|0)){j=a+44|0;k=ha(j|0,4,0,0)|0|0;ia(j|0,h|0,4,0);m=a+28|0;ia(m|0,h|0,4,0);n=a+20|0;ia(n|0,h|0,4,0);ia(c|0,80|0,4,0);o=a+16|0;ia(o|0,h+80|0,4,0);h=lp(a,b,e,g,f)|0;if(!k)p=h;else{Rb[(ja(ha(a+36|0,4,0,0)|0|0,31|0)|0)&31](a,0,0)|0;q=(ha(n|0,4,0,0)|0|0)==0?-1:h;ia(j|0,k|0,4,0);ia(c|0,0|0,4,0);ia(o|0,0|0,4,0);ia(m|0,0|0,4,0);ia(n|0,0|0,4,0);p=q}}else p=lp(a,b,e,g,f)|0;l=p;i=d;return l|0}function bp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;i=i+128|0;f=e+112|0;g=e;h=g+0|0;j=15800|0;k=h+112|0;do{ia(h|0,ha(j|0,4,0,0)|0|0,4,0);h=h+4|0;j=j+4|0}while((h|0)<(k|0));if((b+-1|0)>>>0>2147483646)if(!b){l=f;m=1}else{ia(wb()|0|0,75|0,4,0);n=-1;i=e;return n|0}else{l=a;m=b}b=-2-l|0;a=m>>>0>b>>>0?b:m;ia(g+48|0,a|0,4,0);m=g+20|0;ia(m|0,l|0,4,0);ia(g+44|0,l|0,4,0);b=l+a|0;l=g+16|0;ia(l|0,b|0,4,0);ia(g+28|0,b|0,4,0);b=ap(g,c,d)|0;if(!a){n=b;i=e;return n|0}a=ha(m|0,4,0,0)|0|0;ia(a+(((a|0)==(ha(l|0,4,0,0)|0|0))<<31>>31)>>0|0,0|0,1,0);n=b;i=e;return n|0}function cp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0.0,h=0,j=0;c=i;i=i+112|0;d=c;e=d+0|0;f=e+112|0;do{ia(e|0,0|0,4,0);e=e+4|0}while((e|0)<(f|0));e=d+4|0;ia(e|0,a|0,4,0);f=d+8|0;ia(f|0,-1|0,4,0);ia(d+44|0,a|0,4,0);ia(d+76|0,-1|0,4,0);Lo(d,0);g=+Ko(d,2,1);h=(ha(e|0,4,0,0)|0|0)-(ha(f|0,4,0,0)|0|0)+(ha(d+108|0,4,0,0)|0|0)|0;if(!b){i=c;return +g}if(!h)j=a;else j=a+h|0;ia(b|0,j|0,4,0);i=c;return +g}function dp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;i=i+112|0;e=d;ia(e|0,0|0,4,0);f=e+4|0;ia(f|0,a|0,4,0);ia(e+44|0,a|0,4,0);if((a|0)<0)ia(e+8|0,-1|0,4,0);else ia(e+8|0,a+2147483647|0,4,0);ia(e+76|0,-1|0,4,0);Lo(e,0);g=Jo(e,c,1,-1,-1)|0;c=H;if(!b){H=c;i=d;return g|0}ia(b|0,a+((ha(f|0,4,0,0)|0|0)+(ha(e+108|0,4,0,0)|0|0)-(ha(e+8|0,4,0,0)|0|0))|0,4,0);H=c;i=d;return g|0}function ep(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;i=i+112|0;e=d;ia(e|0,0|0,4,0);f=e+4|0;ia(f|0,a|0,4,0);ia(e+44|0,a|0,4,0);if((a|0)<0)ia(e+8|0,-1|0,4,0);else ia(e+8|0,a+2147483647|0,4,0);ia(e+76|0,-1|0,4,0);Lo(e,0);g=Jo(e,c,1,0,-2147483648)|0;c=H;if(!b){H=c;i=d;return g|0}ia(b|0,a+((ha(f|0,4,0,0)|0|0)+(ha(e+108|0,4,0,0)|0|0)-(ha(e+8|0,4,0,0)|0|0))|0,4,0);H=c;i=d;return g|0}function fp(a,b,c){a=a|0;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;d=i;e=b&255;f=(c|0)!=0;a:do if((a&3|0)!=0&f){g=b&255;h=c;j=a;while(1){if((ha(j>>0|0,1,0,0)|0|0)==g<<24>>24){k=h;l=j;m=6;break a}n=j+1|0;o=h+-1|0;p=(o|0)!=0;if((n&3|0)!=0&p){h=o;j=n}else{q=o;r=p;s=n;m=5;break}}}else{q=c;r=f;s=a;m=5}while(0);if((m|0)==5)if(r){k=q;l=s;m=6}else{t=0;u=s}b:do if((m|0)==6){s=b&255;if((ha(l>>0|0,1,0,0)|0|0)!=s<<24>>24){q=da(e,16843009)|0;c:do if(k>>>0>3){r=k;a=l;while(1){f=(ha(a|0,4,0,0)|0)^q;if((f&-2139062144^-2139062144)&f+-16843009){v=r;w=a;break c}f=a+4|0;c=r+-4|0;if(c>>>0>3){r=c;a=f}else{v=c;w=f;break}}}else{v=k;w=l}while(0);if(!v){t=0;u=w}else{q=v;a=w;while(1){if((ha(a>>0|0,1,0,0)|0|0)==s<<24>>24){t=q;u=a;break b}r=a+1|0;q=q+-1|0;if(!q){t=0;u=r;break}else a=r}}}else{t=k;u=l}}while(0);i=d;return ((t|0)!=0?u:0)|0}function gp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;a:do if(!c)e=0;else{f=c;g=a;h=b;while(1){j=ha(g>>0|0,1,0,0)|0|0;k=ha(h>>0|0,1,0,0)|0|0;if(j<<24>>24!=k<<24>>24)break;f=f+-1|0;if(!f){e=0;break a}else{g=g+1|0;h=h+1|0}}e=(j&255)-(k&255)|0}while(0);i=d;return e|0}function hp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;e=a+20|0;f=ha(e|0,4,0,0)|0|0;g=(ha(a+16|0,4,0,0)|0|0)-f|0;a=g>>>0>c>>>0?c:g;tp(f|0,b|0,a|0)|0;ia(e|0,(ha(e|0,4,0,0)|0|0)+a|0,4,0);i=d;return c|0}function ip(a,b){a=a|0;b=b|0;var c=0,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;c=i;d=a+4|0;e=ha(d|0,4,0,0)|0|0;f=e&-8;g=a+f|0;h=ha(3602*4|0,4,0,0)|0|0;j=e&3;if(!((j|0)!=1&a>>>0>=h>>>0&a>>>0<g>>>0))Gb();k=a+(f|4)|0;l=ha(k|0,4,0,0)|0|0;if(!(l&1))Gb();if(!j){if(b>>>0<256){m=0;i=c;return m|0}if(f>>>0>=(b+4|0)>>>0?(f-b|0)>>>0<=(ha(3718*4|0,4,0,0)|0)<<1>>>0:0){m=a;i=c;return m|0}m=0;i=c;return m|0}if(f>>>0>=b>>>0){j=f-b|0;if(j>>>0<=15){m=a;i=c;return m|0}ia(d|0,e&1|b|2|0,4,0);ia(a+(b+4)|0,j|3|0,4,0);ia(k|0,ha(k|0,4,0,0)|0|1|0,4,0);jp(a+b|0,j);m=a;i=c;return m|0}if((g|0)==(ha(3604*4|0,4,0,0)|0|0)){j=(ha(3601*4|0,4,0,0)|0|0)+f|0;if(j>>>0<=b>>>0){m=0;i=c;return m|0}k=j-b|0;ia(d|0,e&1|b|2|0,4,0);ia(a+(b+4)|0,k|1|0,4,0);ia(3604*4|0,a+b|0,4,0);ia(3601*4|0,k|0,4,0);m=a;i=c;return m|0}if((g|0)==(ha(3603*4|0,4,0,0)|0|0)){k=(ha(3600*4|0,4,0,0)|0|0)+f|0;if(k>>>0<b>>>0){m=0;i=c;return m|0}j=k-b|0;if(j>>>0>15){ia(d|0,e&1|b|2|0,4,0);ia(a+(b+4)|0,j|1|0,4,0);ia(a+k|0,j|0,4,0);n=a+(k+4)|0;ia(n|0,(ha(n|0,4,0,0)|0)&-2|0,4,0);o=a+b|0;p=j}else{ia(d|0,e&1|k|2|0,4,0);j=a+(k+4)|0;ia(j|0,ha(j|0,4,0,0)|0|1|0,4,0);o=0;p=0}ia(3600*4|0,p|0,4,0);ia(3603*4|0,o|0,4,0);m=a;i=c;return m|0}if(l&2){m=0;i=c;return m|0}o=(l&-8)+f|0;if(o>>>0<b>>>0){m=0;i=c;return m|0}p=o-b|0;j=l>>>3;do if(l>>>0>=256){k=ha(a+(f+24)|0,4,0,0)|0|0;n=ha(a+(f+12)|0,4,0,0)|0|0;do if((n|0)==(g|0)){q=a+(f+20)|0;r=ha(q|0,4,0,0)|0|0;if(!r){s=a+(f+16)|0;t=ha(s|0,4,0,0)|0|0;if(!t){u=0;break}else{v=t;w=s}}else{v=r;w=q}while(1){q=v+20|0;r=ha(q|0,4,0,0)|0|0;if(r){v=r;w=q;continue}q=v+16|0;r=ha(q|0,4,0,0)|0|0;if(!r)break;else{v=r;w=q}}if(w>>>0<h>>>0)Gb();else{ia(w|0,0|0,4,0);u=v;break}}else{q=ha(a+(f+8)|0,4,0,0)|0|0;if(q>>>0<h>>>0)Gb();r=q+12|0;if((ha(r|0,4,0,0)|0|0)!=(g|0))Gb();s=n+8|0;if((ha(s|0,4,0,0)|0|0)==(g|0)){ia(r|0,n|0,4,0);ia(s|0,q|0,4,0);u=n;break}else Gb()}while(0);if(k){n=ha(a+(f+28)|0,4,0,0)|0|0;q=14696+(n<<2)|0;if((g|0)==(ha(q|0,4,0,0)|0|0)){ia(q|0,u|0,4,0);if(!u){ia(3599*4|0,(ha(3599*4|0,4,0,0)|0)&~(1<<n)|0,4,0);break}}else{if(k>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();n=k+16|0;if((ha(n|0,4,0,0)|0|0)==(g|0))ia(n|0,u|0,4,0);else ia(k+20|0,u|0,4,0);if(!u)break}n=ha(3602*4|0,4,0,0)|0|0;if(u>>>0<n>>>0)Gb();ia(u+24|0,k|0,4,0);q=ha(a+(f+16)|0,4,0,0)|0|0;do if(q)if(q>>>0<n>>>0)Gb();else{ia(u+16|0,q|0,4,0);ia(q+24|0,u|0,4,0);break}while(0);q=ha(a+(f+20)|0,4,0,0)|0|0;if(q)if(q>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(u+20|0,q|0,4,0);ia(q+24|0,u|0,4,0);break}}}else{q=ha(a+(f+8)|0,4,0,0)|0|0;n=ha(a+(f+12)|0,4,0,0)|0|0;k=14432+(j<<1<<2)|0;if((q|0)!=(k|0)){if(q>>>0<h>>>0)Gb();if((ha(q+12|0,4,0,0)|0|0)!=(g|0))Gb()}if((n|0)==(q|0)){ia(3598*4|0,(ha(3598*4|0,4,0,0)|0)&~(1<<j)|0,4,0);break}if((n|0)!=(k|0)){if(n>>>0<h>>>0)Gb();k=n+8|0;if((ha(k|0,4,0,0)|0|0)==(g|0))x=k;else Gb()}else x=n+8|0;ia(q+12|0,n|0,4,0);ia(x|0,q|0,4,0)}while(0);if(p>>>0<16){ia(d|0,o|e&1|2|0,4,0);x=a+(o|4)|0;ia(x|0,ha(x|0,4,0,0)|0|1|0,4,0);m=a;i=c;return m|0}else{ia(d|0,e&1|b|2|0,4,0);ia(a+(b+4)|0,p|3|0,4,0);e=a+(o|4)|0;ia(e|0,ha(e|0,4,0,0)|0|1|0,4,0);jp(a+b|0,p);m=a;i=c;return m|0}return 0}function jp(a,b){a=a|0;b=b|0;var c=0,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,E=0,F=0,G=0;c=i;d=a+b|0;e=ha(a+4|0,4,0,0)|0|0;do if(!(e&1)){f=ha(a|0,4,0,0)|0|0;if(!(e&3)){i=c;return}g=a+(0-f)|0;h=f+b|0;j=ha(3602*4|0,4,0,0)|0|0;if(g>>>0<j>>>0)Gb();if((g|0)==(ha(3603*4|0,4,0,0)|0|0)){k=a+(b+4)|0;l=ha(k|0,4,0,0)|0|0;if((l&3|0)!=3){m=g;n=h;break}ia(3600*4|0,h|0,4,0);ia(k|0,l&-2|0,4,0);ia(a+(4-f)|0,h|1|0,4,0);ia(d|0,h|0,4,0);i=c;return}l=f>>>3;if(f>>>0<256){k=ha(a+(8-f)|0,4,0,0)|0|0;o=ha(a+(12-f)|0,4,0,0)|0|0;p=14432+(l<<1<<2)|0;if((k|0)!=(p|0)){if(k>>>0<j>>>0)Gb();if((ha(k+12|0,4,0,0)|0|0)!=(g|0))Gb()}if((o|0)==(k|0)){ia(3598*4|0,(ha(3598*4|0,4,0,0)|0)&~(1<<l)|0,4,0);m=g;n=h;break}if((o|0)!=(p|0)){if(o>>>0<j>>>0)Gb();p=o+8|0;if((ha(p|0,4,0,0)|0|0)==(g|0))q=p;else Gb()}else q=o+8|0;ia(k+12|0,o|0,4,0);ia(q|0,k|0,4,0);m=g;n=h;break}k=ha(a+(24-f)|0,4,0,0)|0|0;o=ha(a+(12-f)|0,4,0,0)|0|0;do if((o|0)==(g|0)){p=16-f|0;l=a+(p+4)|0;r=ha(l|0,4,0,0)|0|0;if(!r){s=a+p|0;p=ha(s|0,4,0,0)|0|0;if(!p){t=0;break}else{u=p;v=s}}else{u=r;v=l}while(1){l=u+20|0;r=ha(l|0,4,0,0)|0|0;if(r){u=r;v=l;continue}l=u+16|0;r=ha(l|0,4,0,0)|0|0;if(!r)break;else{u=r;v=l}}if(v>>>0<j>>>0)Gb();else{ia(v|0,0|0,4,0);t=u;break}}else{l=ha(a+(8-f)|0,4,0,0)|0|0;if(l>>>0<j>>>0)Gb();r=l+12|0;if((ha(r|0,4,0,0)|0|0)!=(g|0))Gb();s=o+8|0;if((ha(s|0,4,0,0)|0|0)==(g|0)){ia(r|0,o|0,4,0);ia(s|0,l|0,4,0);t=o;break}else Gb()}while(0);if(k){o=ha(a+(28-f)|0,4,0,0)|0|0;j=14696+(o<<2)|0;if((g|0)==(ha(j|0,4,0,0)|0|0)){ia(j|0,t|0,4,0);if(!t){ia(3599*4|0,(ha(3599*4|0,4,0,0)|0)&~(1<<o)|0,4,0);m=g;n=h;break}}else{if(k>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();o=k+16|0;if((ha(o|0,4,0,0)|0|0)==(g|0))ia(o|0,t|0,4,0);else ia(k+20|0,t|0,4,0);if(!t){m=g;n=h;break}}o=ha(3602*4|0,4,0,0)|0|0;if(t>>>0<o>>>0)Gb();ia(t+24|0,k|0,4,0);j=16-f|0;l=ha(a+j|0,4,0,0)|0|0;do if(l)if(l>>>0<o>>>0)Gb();else{ia(t+16|0,l|0,4,0);ia(l+24|0,t|0,4,0);break}while(0);l=ha(a+(j+4)|0,4,0,0)|0|0;if(l)if(l>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(t+20|0,l|0,4,0);ia(l+24|0,t|0,4,0);m=g;n=h;break}else{m=g;n=h}}else{m=g;n=h}}else{m=a;n=b}while(0);t=ha(3602*4|0,4,0,0)|0|0;if(d>>>0<t>>>0)Gb();u=a+(b+4)|0;v=ha(u|0,4,0,0)|0|0;if(!(v&2)){if((d|0)==(ha(3604*4|0,4,0,0)|0|0)){q=(ha(3601*4|0,4,0,0)|0|0)+n|0;ia(3601*4|0,q|0,4,0);ia(3604*4|0,m|0,4,0);ia(m+4|0,q|1|0,4,0);if((m|0)!=(ha(3603*4|0,4,0,0)|0|0)){i=c;return}ia(3603*4|0,0|0,4,0);ia(3600*4|0,0|0,4,0);i=c;return}if((d|0)==(ha(3603*4|0,4,0,0)|0|0)){q=(ha(3600*4|0,4,0,0)|0|0)+n|0;ia(3600*4|0,q|0,4,0);ia(3603*4|0,m|0,4,0);ia(m+4|0,q|1|0,4,0);ia(m+q|0,q|0,4,0);i=c;return}q=(v&-8)+n|0;e=v>>>3;do if(v>>>0>=256){l=ha(a+(b+24)|0,4,0,0)|0|0;o=ha(a+(b+12)|0,4,0,0)|0|0;do if((o|0)==(d|0)){f=a+(b+20)|0;k=ha(f|0,4,0,0)|0|0;if(!k){s=a+(b+16)|0;r=ha(s|0,4,0,0)|0|0;if(!r){w=0;break}else{x=r;y=s}}else{x=k;y=f}while(1){f=x+20|0;k=ha(f|0,4,0,0)|0|0;if(k){x=k;y=f;continue}f=x+16|0;k=ha(f|0,4,0,0)|0|0;if(!k)break;else{x=k;y=f}}if(y>>>0<t>>>0)Gb();else{ia(y|0,0|0,4,0);w=x;break}}else{f=ha(a+(b+8)|0,4,0,0)|0|0;if(f>>>0<t>>>0)Gb();k=f+12|0;if((ha(k|0,4,0,0)|0|0)!=(d|0))Gb();s=o+8|0;if((ha(s|0,4,0,0)|0|0)==(d|0)){ia(k|0,o|0,4,0);ia(s|0,f|0,4,0);w=o;break}else Gb()}while(0);if(l){o=ha(a+(b+28)|0,4,0,0)|0|0;h=14696+(o<<2)|0;if((d|0)==(ha(h|0,4,0,0)|0|0)){ia(h|0,w|0,4,0);if(!w){ia(3599*4|0,(ha(3599*4|0,4,0,0)|0)&~(1<<o)|0,4,0);break}}else{if(l>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();o=l+16|0;if((ha(o|0,4,0,0)|0|0)==(d|0))ia(o|0,w|0,4,0);else ia(l+20|0,w|0,4,0);if(!w)break}o=ha(3602*4|0,4,0,0)|0|0;if(w>>>0<o>>>0)Gb();ia(w+24|0,l|0,4,0);h=ha(a+(b+16)|0,4,0,0)|0|0;do if(h)if(h>>>0<o>>>0)Gb();else{ia(w+16|0,h|0,4,0);ia(h+24|0,w|0,4,0);break}while(0);h=ha(a+(b+20)|0,4,0,0)|0|0;if(h)if(h>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{ia(w+20|0,h|0,4,0);ia(h+24|0,w|0,4,0);break}}}else{h=ha(a+(b+8)|0,4,0,0)|0|0;o=ha(a+(b+12)|0,4,0,0)|0|0;l=14432+(e<<1<<2)|0;if((h|0)!=(l|0)){if(h>>>0<t>>>0)Gb();if((ha(h+12|0,4,0,0)|0|0)!=(d|0))Gb()}if((o|0)==(h|0)){ia(3598*4|0,(ha(3598*4|0,4,0,0)|0)&~(1<<e)|0,4,0);break}if((o|0)!=(l|0)){if(o>>>0<t>>>0)Gb();l=o+8|0;if((ha(l|0,4,0,0)|0|0)==(d|0))z=l;else Gb()}else z=o+8|0;ia(h+12|0,o|0,4,0);ia(z|0,h|0,4,0)}while(0);ia(m+4|0,q|1|0,4,0);ia(m+q|0,q|0,4,0);if((m|0)==(ha(3603*4|0,4,0,0)|0|0)){ia(3600*4|0,q|0,4,0);i=c;return}else A=q}else{ia(u|0,v&-2|0,4,0);ia(m+4|0,n|1|0,4,0);ia(m+n|0,n|0,4,0);A=n}n=A>>>3;if(A>>>0<256){v=n<<1;u=14432+(v<<2)|0;q=ha(3598*4|0,4,0,0)|0|0;z=1<<n;if(q&z){n=14432+(v+2<<2)|0;d=ha(n|0,4,0,0)|0|0;if(d>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();else{B=n;C=d}}else{ia(3598*4|0,q|z|0,4,0);B=14432+(v+2<<2)|0;C=u}ia(B|0,m|0,4,0);ia(C+12|0,m|0,4,0);ia(m+8|0,C|0,4,0);ia(m+12|0,u|0,4,0);i=c;return}u=A>>>8;if(u)if(A>>>0>16777215)D=31;else{C=(u+1048320|0)>>>16&8;B=u<<C;u=(B+520192|0)>>>16&4;v=B<<u;B=(v+245760|0)>>>16&2;z=14-(u|C|B)+(v<<B>>>15)|0;D=A>>>(z+7|0)&1|z<<1}else D=0;z=14696+(D<<2)|0;ia(m+28|0,D|0,4,0);ia(m+20|0,0|0,4,0);ia(m+16|0,0|0,4,0);B=ha(3599*4|0,4,0,0)|0|0;v=1<<D;if(!(B&v)){ia(3599*4|0,B|v|0,4,0);ia(z|0,m|0,4,0);ia(m+24|0,z|0,4,0);ia(m+12|0,m|0,4,0);ia(m+8|0,m|0,4,0);i=c;return}v=ha(z|0,4,0,0)|0|0;if((D|0)==31)E=0;else E=25-(D>>>1)|0;a:do if(((ha(v+4|0,4,0,0)|0)&-8|0)==(A|0))F=v;else{D=A<<E;z=v;while(1){G=z+(D>>>31<<2)+16|0;B=ha(G|0,4,0,0)|0|0;if(!B)break;if(((ha(B+4|0,4,0,0)|0)&-8|0)==(A|0)){F=B;break a}else{D=D<<1;z=B}}if(G>>>0<(ha(3602*4|0,4,0,0)|0|0)>>>0)Gb();ia(G|0,m|0,4,0);ia(m+24|0,z|0,4,0);ia(m+12|0,m|0,4,0);ia(m+8|0,m|0,4,0);i=c;return}while(0);G=F+8|0;A=ha(G|0,4,0,0)|0|0;v=ha(3602*4|0,4,0,0)|0|0;if(!(F>>>0>=v>>>0&A>>>0>=v>>>0))Gb();ia(A+12|0,m|0,4,0);ia(G|0,m|0,4,0);ia(m+8|0,A|0,4,0);ia(m+12|0,F|0,4,0);ia(m+24|0,0|0,4,0);i=c;return}function kp(a,b){a=a|0;b=b|0;var c=0,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;c=i;d=a+4|0;e=ha(d|0,4,0,0)|0|0;f=a+100|0;if(e>>>0<(ha(f|0,4,0,0)|0|0)>>>0){ia(d|0,e+1|0,4,0);g=ha(e>>0|0,1,0,1)|0|0}else g=Mo(a)|0;if((g|0)==43|(g|0)==45){e=ha(d|0,4,0,0)|0|0;h=(g|0)==45&1;if(e>>>0<(ha(f|0,4,0,0)|0|0)>>>0){ia(d|0,e+1|0,4,0);j=ha(e>>0|0,1,0,1)|0|0}else j=Mo(a)|0;if((j+-48|0)>>>0>9&(b|0)!=0?(ha(f|0,4,0,0)|0|0)!=0:0){ia(d|0,(ha(d|0,4,0,0)|0|0)+-1|0,4,0);k=j;l=h}else{k=j;l=h}}else{k=g;l=0}if((k+-48|0)>>>0>9){if(!(ha(f|0,4,0,0)|0)){m=-2147483648;n=0;H=m;i=c;return n|0}ia(d|0,(ha(d|0,4,0,0)|0|0)+-1|0,4,0);m=-2147483648;n=0;H=m;i=c;return n|0}else{o=k;p=0}while(1){p=o+-48+(p*10|0)|0;k=ha(d|0,4,0,0)|0|0;if(k>>>0<(ha(f|0,4,0,0)|0|0)>>>0){ia(d|0,k+1|0,4,0);q=ha(k>>0|0,1,0,1)|0|0}else q=Mo(a)|0;if(!((q+-48|0)>>>0<10&(p|0)<214748364))break;else o=q}o=((p|0)<0)<<31>>31;if((q+-48|0)>>>0<10){k=p;g=o;h=q;while(1){j=Bp(k|0,g|0,10,0)|0;b=H;e=qp(h|0,((h|0)<0)<<31>>31|0,-48,-1)|0;r=qp(e|0,H|0,j|0,b|0)|0;b=H;j=ha(d|0,4,0,0)|0|0;if(j>>>0<(ha(f|0,4,0,0)|0|0)>>>0){ia(d|0,j+1|0,4,0);s=ha(j>>0|0,1,0,1)|0|0}else s=Mo(a)|0;if((s+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&r>>>0<2061584302)){k=r;g=b;h=s}else{t=r;u=b;v=s;break}}}else{t=p;u=o;v=q}if((v+-48|0)>>>0<10)do{v=ha(d|0,4,0,0)|0|0;if(v>>>0<(ha(f|0,4,0,0)|0|0)>>>0){ia(d|0,v+1|0,4,0);w=ha(v>>0|0,1,0,1)|0|0}else w=Mo(a)|0}while((w+-48|0)>>>0<10);if(ha(f|0,4,0,0)|0)ia(d|0,(ha(d|0,4,0,0)|0|0)+-1|0,4,0);d=(l|0)!=0;l=np(0,0,t|0,u|0)|0;m=d?H:u;n=d?l:t;H=m;i=c;return n|0}
function lp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,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,ea=0,fa=0,ga=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0.0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0.0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,xb=0,yb=0,zb=0,Ab=0.0,Bb=0.0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0.0,Ib=0,Jb=0,Kb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0.0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0.0,xc=0.0,yc=0.0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0;f=i;i=i+864|0;g=f+16|0;h=f+8|0;j=f+560|0;l=j;m=f+840|0;n=f+584|0;o=f+520|0;p=f;q=f+852|0;r=(a|0)!=0;s=o+40|0;t=s;u=o+39|0;o=p+4|0;v=p;w=m+12|0;x=m+11|0;m=w;y=m-l|0;z=-2-l|0;A=m+2|0;B=g+288|0;C=j+9|0;D=C;E=j+8|0;F=0;G=0;I=0;J=b;b=0;K=0;a:while(1){do if((I|0)>-1)if((b|0)>(2147483647-I|0)){ia(wb()|0|0,75|0,4,0);L=-1;break}else{L=b+I|0;break}else L=I;while(0);M=ha(J>>0|0,1,0,0)|0|0;if(!(M<<24>>24)){N=352;break}else{O=M;P=J}while(1){if(O<<24>>24==37){Q=P;R=P;N=9;break}else if(!(O<<24>>24)){S=P;T=P;break}M=P+1|0;O=ha(M>>0|0,1,0,0)|0|0;P=M}b:do if((N|0)==9)while(1){N=0;if((ha(Q+1>>0|0,1,0,0)|0|0)!=37){S=Q;T=R;break b}M=R+1|0;U=Q+2|0;if((ha(U>>0|0,1,0,0)|0|0)==37){Q=U;R=M;N=9}else{S=U;T=M;break}}while(0);M=T-J|0;if(r)_o(J,M,a)|0;if((T|0)!=(J|0)){I=L;J=S;b=M;continue}U=S+1|0;V=ha(U>>0|0,1,0,0)|0|0;W=(V<<24>>24)+-48|0;if(W>>>0<10?(ha(S+2>>0|0,1,0,0)|0|0)==36:0){X=S+3|0;Y=ha(X>>0|0,1,0,0)|0|0;Z=W;_=1;$=X}else{Y=V;Z=-1;_=K;$=U}U=Y<<24>>24;c:do if((U&-32|0)==32){V=Y;X=U;W=0;aa=$;while(1){ba=1<<X+-32;if(!(ba&75913)){ca=V;ea=W;fa=aa;break c}ga=ba|W;ba=aa+1|0;ja=ha(ba>>0|0,1,0,0)|0|0;X=ja<<24>>24;if((X&-32|0)!=32){ca=ja;ea=ga;fa=ba;break}else{V=ja;W=ga;aa=ba}}}else{ca=Y;ea=0;fa=$}while(0);do if(ca<<24>>24==42){U=fa+1|0;aa=(ha(U>>0|0,1,0,0)|0|0)+-48|0;if(aa>>>0<10?(ha(fa+2>>0|0,1,0,0)|0|0)==36:0){ia(e+(aa<<2)|0,10|0,4,0);ka=1;la=fa+3|0;ma=ha(d+((ha(U>>0|0,1,0,0)|0|0)+-48<<3)|0,4,0,0)|0|0}else{if(_){na=-1;N=370;break a}if(!r){oa=ea;pa=U;qa=0;ra=0;break}aa=ha(c|0,4,0,0)|0|0;W=ha(aa|0,4,0,0)|0|0;ia(c|0,aa+4|0,4,0);ka=0;la=U;ma=W}if((ma|0)<0){oa=ea|8192;pa=la;qa=ka;ra=0-ma|0}else{oa=ea;pa=la;qa=ka;ra=ma}}else{W=ca<<24>>24;if((W+-48|0)>>>0<10){U=W;W=fa;aa=0;do{aa=U+-48+(aa*10|0)|0;W=W+1|0;U=ha(W>>0|0,1,0,0)|0|0}while((U+-48|0)>>>0<10);if((aa|0)<0){na=-1;N=370;break a}else{oa=ea;pa=W;qa=_;ra=aa}}else{oa=ea;pa=fa;qa=_;ra=0}}while(0);d:do if((ha(pa>>0|0,1,0,0)|0|0)==46){U=pa+1|0;V=ha(U>>0|0,1,0,0)|0|0;if(V<<24>>24!=42){X=V<<24>>24;if((X+-48|0)>>>0<10){sa=X;ta=U;ua=0}else{va=U;wa=0;break}while(1){U=sa+-48+(ua*10|0)|0;X=ta+1|0;sa=ha(X>>0|0,1,0,0)|0|0;if((sa+-48|0)>>>0>=10){va=X;wa=U;break d}else{ta=X;ua=U}}}aa=pa+2|0;W=(ha(aa>>0|0,1,0,0)|0|0)+-48|0;if(W>>>0<10?(ha(pa+3>>0|0,1,0,0)|0|0)==36:0){ia(e+(W<<2)|0,10|0,4,0);va=pa+4|0;wa=ha(d+((ha(aa>>0|0,1,0,0)|0|0)+-48<<3)|0,4,0,0)|0|0;break}if(qa){na=-1;N=370;break a}if(r){W=ha(c|0,4,0,0)|0|0;U=ha(W|0,4,0,0)|0|0;ia(c|0,W+4|0,4,0);va=aa;wa=U}else{va=aa;wa=0}}else{va=pa;wa=-1}while(0);aa=va;U=0;while(1){xa=ha(aa>>0|0,1,0,0)|0|0;W=(xa<<24>>24)+-65|0;if(W>>>0>57){na=-1;N=370;break a}ya=aa+1|0;za=ha(15232+(U*58|0)+W>>0|0,1,0,0)|0|0;Aa=za&255;if((Aa+-1|0)>>>0<8){aa=ya;U=Aa}else break}if(!(za<<24>>24)){na=-1;N=370;break}W=(Z|0)>-1;e:do if(za<<24>>24==19)if(W){na=-1;N=370;break a}else{Ba=F;Ca=G;N=63}else{if(W){ia(e+(Z<<2)|0,Aa|0,4,0);X=d+(Z<<3)|0;Ba=ha(X|0,4,0,0)|0|0;Ca=ha(X+4|0,4,0,0)|0|0;N=63;break}if(!r){na=0;N=370;break a}if((za&255)>20){Da=xa;Ea=F;Fa=G}else do switch(Aa|0){case 15:{X=ha(c|0,4,0,0)|0|0;V=ha(X|0,4,0,0)|0|0;ia(c|0,X+4|0,4,0);Ga=(((V&255)<<24>>24|0)<0)<<31>>31;Ha=V<<24>>24;N=64;break e;break}case 16:{V=ha(c|0,4,0,0)|0|0;X=ha(V|0,4,0,0)|0|0;ia(c|0,V+4|0,4,0);Ga=0;Ha=X&255;N=64;break e;break}case 9:{X=ha(c|0,4,0,0)|0|0;V=ha(X|0,4,0,0)|0|0;ia(c|0,X+4|0,4,0);Ga=G;Ha=V;N=64;break e;break}case 17:{V=ha(c|0,4,0,0)|0|0;ia(k|0,ha(V|0,4,0,0)|0|0,4,0);ia(k+4|0,ha(V+4|0,4,0,0)|0|0,4,0);Ia=+(+ha(k|0,8,1,0));ia(c|0,V+8|0,4,0);ia(k|0,+Ia,8,1);Ga=ha(k+4|0,4,0,0)|0|0;Ha=ha(k|0,4,0,0)|0|0;N=64;break e;break}case 18:{V=ha(c|0,4,0,0)|0|0;ia(k|0,ha(V|0,4,0,0)|0|0,4,0);ia(k+4|0,ha(V+4|0,4,0,0)|0|0,4,0);Ia=+(+ha(k|0,8,1,0));ia(c|0,V+8|0,4,0);ia(k|0,+Ia,8,1);Ba=ha(k|0,4,0,0)|0|0;Ca=ha(k+4|0,4,0,0)|0|0;N=63;break e;break}case 11:{V=ha(c|0,4,0,0)|0|0;X=ha(V|0,4,0,0)|0|0;ia(c|0,V+4|0,4,0);Ga=0;Ha=X;N=64;break e;break}case 12:{X=ha(c|0,4,0,0)|0|0;V=X;ba=ha(V|0,4,0,0)|0|0;ga=ha(V+4|0,4,0,0)|0|0;ia(c|0,X+8|0,4,0);Ga=ga;Ha=ba;N=64;break e;break}case 13:{ba=ha(c|0,4,0,0)|0|0;ga=ha(ba|0,4,0,0)|0|0;ia(c|0,ba+4|0,4,0);Ga=(((ga&65535)<<16>>16|0)<0)<<31>>31;Ha=ga<<16>>16;N=64;break e;break}case 14:{ga=ha(c|0,4,0,0)|0|0;ba=ha(ga|0,4,0,0)|0|0;ia(c|0,ga+4|0,4,0);Ga=0;Ha=ba&65535;N=64;break e;break}case 10:{ba=ha(c|0,4,0,0)|0|0;ga=ha(ba|0,4,0,0)|0|0;ia(c|0,ba+4|0,4,0);Ga=((ga|0)<0)<<31>>31;Ha=ga;N=64;break e;break}default:{Ga=G;Ha=F;N=64;break e}}while(0)}while(0);if((N|0)==63){N=0;if(r){Ga=Ca;Ha=Ba;N=64}else{F=Ba;G=Ca;I=L;J=ya;b=M;K=qa;continue}}if((N|0)==64){N=0;Da=ha(aa>>0|0,1,0,0)|0|0;Ea=Ha;Fa=Ga}W=Da<<24>>24;ga=(U|0)!=0&(W&15|0)==3?W&-33:W;W=oa&-65537;ba=(oa&8192|0)==0?oa:W;f:do switch(ga|0){case 99:{ia(u>>0|0,Ea|0,1,0);Ja=Ea;Ka=Fa;La=u;Ma=W;Na=1;Oa=0;Pa=15696;Qa=s;break}case 109:{Ra=Lb(ha(wb()|0|0,4,0,0)|0|0)|0;N=96;break}case 115:{Ra=(Ea|0)==0?15712:Ea;N=96;break}case 67:{ia(p|0,Ea|0,4,0);ia(o|0,0|0,4,0);Sa=p;Ta=v;Ua=-1;N=101;break}case 83:{X=Ea;if(!wa){Va=Ea;Wa=X;Xa=0;N=106}else{Sa=X;Ta=Ea;Ua=wa;N=101}break}case 117:{Ya=Fa;Za=Ea;_a=0;$a=15696;N=86;break}case 112:{ab=ba|8;bb=wa>>>0>8?wa:8;cb=120;N=75;break}case 88:case 120:{ab=ba;bb=wa;cb=ga;N=75;break}case 111:{X=(Ea|0)==0&(Fa|0)==0;if(X)db=s;else{V=s;ja=Ea;eb=Fa;while(1){fb=V+-1|0;ia(fb>>0|0,ja&7|48|0,1,0);ja=rp(ja|0,eb|0,3)|0;eb=H;if((ja|0)==0&(eb|0)==0){db=fb;break}else V=fb}}V=(ba&8|0)==0|X;gb=Ea;hb=Fa;ib=db;jb=ba;kb=wa;lb=V&1^1;mb=V?15696:15701;N=91;break}case 105:case 100:{if((Fa|0)<0){V=np(0,0,Ea|0,Fa|0)|0;Ya=H;Za=V;_a=1;$a=15696;N=86;break f}if(!(ba&2048)){V=ba&1;Ya=Fa;Za=Ea;_a=V;$a=(V|0)==0?15696:15698;N=86}else{Ya=Fa;Za=Ea;_a=1;$a=15697;N=86}break}case 110:{switch(U|0){case 4:{ia(Ea>>0|0,L|0,1,0);F=Ea;G=Fa;I=L;J=ya;b=M;K=qa;continue a;break}case 6:{ia(Ea|0,L|0,4,0);F=Ea;G=Fa;I=L;J=ya;b=M;K=qa;continue a;break}case 7:{V=Ea;ia(V|0,L|0,4,0);ia(V+4|0,((L|0)<0)<<31>>31|0,4,0);F=Ea;G=Fa;I=L;J=ya;b=M;K=qa;continue a;break}case 0:{ia(Ea|0,L|0,4,0);F=Ea;G=Fa;I=L;J=ya;b=M;K=qa;continue a;break}case 1:{ia(Ea|0,L|0,4,0);F=Ea;G=Fa;I=L;J=ya;b=M;K=qa;continue a;break}case 2:{V=Ea;ia(V|0,L|0,4,0);ia(V+4|0,((L|0)<0)<<31>>31|0,4,0);F=Ea;G=Fa;I=L;J=ya;b=M;K=qa;continue a;break}case 3:{ia(Ea|0,L|0,2,0);F=Ea;G=Fa;I=L;J=ya;b=M;K=qa;continue a;break}default:{F=Ea;G=Fa;I=L;J=ya;b=M;K=qa;continue a}}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{ia(k|0,Ea|0,4,0);ia(k+4|0,Fa|0,4,0);Ia=+(+ha(k|0,8,1,0));ia(h|0,0|0,4,0);if((Fa|0)>=0)if(!(ba&2048)){V=ba&1;nb=Ia;ob=V;pb=(V|0)==0?15721:15726}else{nb=Ia;ob=1;pb=15723}else{nb=-Ia;ob=1;pb=15720}ia(k|0,+nb,8,1);V=(ha(k+4|0,4,0,0)|0)&2146435072;if(!(V>>>0<2146435072|(V|0)==2146435072&0<0)){V=(ga&32|0)!=0;if(nb!=nb|0.0!=0.0){qb=0;rb=V?15760:15768}else{qb=ob;rb=V?15744:15752}V=qb+3|0;eb=(ra|0)>(V|0);if((ba&8192|0)==0&eb){ja=ra-V|0;op(n|0,32,(ja>>>0>256?256:ja)|0)|0;if(ja>>>0>255){fb=ja;do{_o(n,256,a)|0;fb=fb+-256|0}while(fb>>>0>255);sb=ja&255}else sb=ja;_o(n,sb,a)|0}_o(pb,qb,a)|0;_o(rb,3,a)|0;if((ba&73728|0)==8192&eb){fb=ra-V|0;op(n|0,32,(fb>>>0>256?256:fb)|0)|0;if(fb>>>0>255){X=fb;do{_o(n,256,a)|0;X=X+-256|0}while(X>>>0>255);tb=fb&255}else tb=fb;_o(n,tb,a)|0}F=Ea;G=Fa;I=L;J=ya;b=eb?ra:V;K=qa;continue a}Ia=+So(nb,h)*2.0;X=Ia!=0.0;if(X)ia(h|0,(ha(h|0,4,0,0)|0|0)+-1|0,4,0);ja=ga|32;if((ja|0)==97){ub=ga&32;vb=(ub|0)==0?pb:pb+9|0;xb=ob|2;yb=wa>>>0>11?0:12-wa|0;do if(yb){zb=yb;Ab=8.0;do{zb=zb+-1|0;Ab=Ab*16.0}while((zb|0)!=0);if((ha(vb>>0|0,1,0,0)|0|0)==45){Bb=-(Ab+(-Ia-Ab));break}else{Bb=Ia+Ab-Ab;break}}else Bb=Ia;while(0);yb=ha(h|0,4,0,0)|0|0;V=(yb|0)<0?0-yb|0:yb;if((V|0)<0){yb=w;eb=V;fb=((V|0)<0)<<31>>31;while(1){zb=Dp(eb|0,fb|0,10,0)|0;yb=yb+-1|0;ia(yb>>0|0,zb|48|0,1,0);zb=eb;eb=Cp(eb|0,fb|0,10,0)|0;if(!(fb>>>0>9|(fb|0)==9&zb>>>0>4294967295))break;else fb=H}Cb=yb;Db=eb}else{Cb=w;Db=V}if(!Db)Eb=Cb;else{fb=Cb;zb=Db;while(1){Fb=fb+-1|0;ia(Fb>>0|0,(zb>>>0)%10|0|48|0,1,0);if(zb>>>0<10){Eb=Fb;break}else{fb=Fb;zb=(zb>>>0)/10|0}}}if((Eb|0)==(w|0)){ia(x>>0|0,48|0,1,0);Gb=x}else Gb=Eb;ia(Gb+-1>>0|0,((ha(h|0,4,0,0)|0)>>31&2)+43|0,1,0);zb=Gb+-2|0;ia(zb>>0|0,ga+15|0,1,0);if((wa|0)<1)if(!(ba&8)){Hb=Bb;fb=j;while(1){V=~~Hb;eb=fb+1|0;ia(fb>>0|0,ha(15776+V>>0|0,1,0,1)|0|ub|0,1,0);Hb=(Hb-+(V|0))*16.0;if((eb-l|0)!=1|Hb==0.0)Ib=eb;else{ia(eb>>0|0,46|0,1,0);Ib=fb+2|0}if(!(Hb!=0.0)){Jb=Ib;break}else fb=Ib}}else{Hb=Bb;fb=j;while(1){eb=~~Hb;V=fb+1|0;ia(fb>>0|0,ha(15776+eb>>0|0,1,0,1)|0|ub|0,1,0);Hb=(Hb-+(eb|0))*16.0;if((V-l|0)==1){ia(V>>0|0,46|0,1,0);Kb=fb+2|0}else Kb=V;if(!(Hb!=0.0)){Jb=Kb;break}else fb=Kb}}else{Hb=Bb;fb=j;while(1){V=~~Hb;eb=fb+1|0;ia(fb>>0|0,ha(15776+V>>0|0,1,0,1)|0|ub|0,1,0);Hb=(Hb-+(V|0))*16.0;if((eb-l|0)==1){ia(eb>>0|0,46|0,1,0);Mb=fb+2|0}else Mb=eb;if(!(Hb!=0.0)){Jb=Mb;break}else fb=Mb}}fb=Jb;ub=zb;if((wa|0)!=0&(z+fb|0)<(wa|0))Nb=A+wa-ub|0;else Nb=y-ub+fb|0;ub=Nb+xb|0;eb=ba&73728;V=(ra|0)>(ub|0);if((eb|0)==0&V){yb=ra-ub|0;op(n|0,32,(yb>>>0>256?256:yb)|0)|0;if(yb>>>0>255){Fb=yb;do{_o(n,256,a)|0;Fb=Fb+-256|0}while(Fb>>>0>255);Ob=yb&255}else Ob=yb;_o(n,Ob,a)|0}_o(vb,xb,a)|0;if((eb|0)==65536&V){Fb=ra-ub|0;op(n|0,48,(Fb>>>0>256?256:Fb)|0)|0;if(Fb>>>0>255){Pb=Fb;do{_o(n,256,a)|0;Pb=Pb+-256|0}while(Pb>>>0>255);Qb=Fb&255}else Qb=Fb;_o(n,Qb,a)|0}Pb=fb-l|0;_o(j,Pb,a)|0;xb=m-zb|0;vb=Nb-xb-Pb|0;if((vb|0)>0){op(n|0,48,(vb>>>0>256?256:vb)|0)|0;if(vb>>>0>255){Pb=vb;do{_o(n,256,a)|0;Pb=Pb+-256|0}while(Pb>>>0>255);Rb=vb&255}else Rb=vb;_o(n,Rb,a)|0}_o(zb,xb,a)|0;if((eb|0)==8192&V){Pb=ra-ub|0;op(n|0,32,(Pb>>>0>256?256:Pb)|0)|0;if(Pb>>>0>255){fb=Pb;do{_o(n,256,a)|0;fb=fb+-256|0}while(fb>>>0>255);Sb=Pb&255}else Sb=Pb;_o(n,Sb,a)|0}F=Ea;G=Fa;I=L;J=ya;b=V?ra:ub;K=qa;continue a}fb=(wa|0)<0?6:wa;if(X){eb=(ha(h|0,4,0,0)|0|0)+-28|0;ia(h|0,eb|0,4,0);Tb=Ia*268435456.0;Ub=eb}else{Tb=Ia;Ub=ha(h|0,4,0,0)|0|0}eb=(Ub|0)<0?g:B;xb=eb;Hb=Tb;zb=eb;do{vb=~~Hb>>>0;ia(zb|0,vb|0,4,0);zb=zb+4|0;Hb=(Hb-+(vb>>>0))*1.0e9}while(Hb!=0.0);X=ha(h|0,4,0,0)|0|0;if((X|0)>0){ub=X;V=eb;Pb=zb;while(1){vb=(ub|0)>29?29:ub;Fb=Pb+-4|0;do if(Fb>>>0<V>>>0)Vb=V;else{yb=0;Wb=Fb;do{Xb=sp(ha(Wb|0,4,0,0)|0|0,0,vb|0)|0;Yb=qp(Xb|0,H|0,yb|0,0)|0;Xb=H;Zb=Dp(Yb|0,Xb|0,1e9,0)|0;ia(Wb|0,Zb|0,4,0);yb=Cp(Yb|0,Xb|0,1e9,0)|0;Wb=Wb+-4|0}while(Wb>>>0>=V>>>0);if(!yb){Vb=V;break}Wb=V+-4|0;ia(Wb|0,yb|0,4,0);Vb=Wb}while(0);Fb=Pb;while(1){if(Fb>>>0<=Vb>>>0)break;Wb=Fb+-4|0;if(!(ha(Wb|0,4,0,0)|0))Fb=Wb;else break}Wb=(ha(h|0,4,0,0)|0|0)-vb|0;ia(h|0,Wb|0,4,0);if((Wb|0)>0){ub=Wb;V=Vb;Pb=Fb}else{_b=Wb;$b=Vb;ac=Fb;break}}}else{_b=X;$b=eb;ac=zb}g:do if((_b|0)<0){Pb=((fb+25|0)/9|0)+1|0;if((ja|0)==102){V=eb+(Pb<<2)|0;ub=_b;Wb=$b;Xb=ac;while(1){Yb=0-ub|0;Zb=(Yb|0)>9?9:Yb;do if(Wb>>>0<Xb>>>0){Yb=(1<<Zb)+-1|0;bc=1e9>>>Zb;cc=0;dc=Wb;do{ec=ha(dc|0,4,0,0)|0|0;ia(dc|0,(ec>>>Zb)+cc|0,4,0);cc=da(ec&Yb,bc)|0;dc=dc+4|0}while(dc>>>0<Xb>>>0);dc=(ha(Wb|0,4,0,0)|0|0)==0?Wb+4|0:Wb;if(!cc){fc=dc;gc=Xb;break}ia(Xb|0,cc|0,4,0);fc=dc;gc=Xb+4|0}else{fc=(ha(Wb|0,4,0,0)|0|0)==0?Wb+4|0:Wb;gc=Xb}while(0);yb=(gc-xb>>2|0)>(Pb|0)?V:gc;ub=(ha(h|0,4,0,0)|0|0)+Zb|0;ia(h|0,ub|0,4,0);if((ub|0)>=0){hc=fc;ic=yb;break g}else{Wb=fc;Xb=yb}}}else{jc=_b;kc=$b;lc=ac}while(1){Xb=0-jc|0;Wb=(Xb|0)>9?9:Xb;do if(kc>>>0<lc>>>0){Xb=(1<<Wb)+-1|0;ub=1e9>>>Wb;V=0;Fb=kc;do{vb=ha(Fb|0,4,0,0)|0|0;ia(Fb|0,(vb>>>Wb)+V|0,4,0);V=da(vb&Xb,ub)|0;Fb=Fb+4|0}while(Fb>>>0<lc>>>0);Fb=(ha(kc|0,4,0,0)|0|0)==0?kc+4|0:kc;if(!V){mc=Fb;nc=lc;break}ia(lc|0,V|0,4,0);mc=Fb;nc=lc+4|0}else{mc=(ha(kc|0,4,0,0)|0|0)==0?kc+4|0:kc;nc=lc}while(0);if((nc-mc>>2|0)>(Pb|0))oc=mc+(Pb<<2)|0;else oc=nc;jc=(ha(h|0,4,0,0)|0|0)+Wb|0;ia(h|0,jc|0,4,0);if((jc|0)>=0){hc=mc;ic=oc;break}else{kc=mc;lc=oc}}}else{hc=$b;ic=ac}while(0);do if(hc>>>0<ic>>>0){zb=(xb-hc>>2)*9|0;X=ha(hc|0,4,0,0)|0|0;if(X>>>0<10){pc=zb;break}else{qc=zb;rc=10}while(1){rc=rc*10|0;zb=qc+1|0;if(X>>>0<rc>>>0){pc=zb;break}else qc=zb}}else pc=0;while(0);X=(ja|0)==103;zb=fb-((ja|0)!=102?pc:0)+((X&(fb|0)!=0)<<31>>31)|0;if((zb|0)<(((ic-xb>>2)*9|0)+-9|0)){Pb=zb+9216|0;zb=(Pb|0)/9|0;Zb=eb+(zb+-1023<<2)|0;Fb=((Pb|0)%9|0)+1|0;if((Fb|0)<9){Pb=10;ub=Fb;while(1){Fb=Pb*10|0;ub=ub+1|0;if((ub|0)==9){sc=Fb;break}else Pb=Fb}}else sc=10;Pb=ha(Zb|0,4,0,0)|0|0;ub=(Pb>>>0)%(sc>>>0)|0;if((ub|0)==0?(eb+(zb+-1022<<2)|0)==(ic|0):0){tc=hc;uc=Zb;vc=pc}else N=232;do if((N|0)==232){N=0;Ab=(((Pb>>>0)/(sc>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;ja=(sc|0)/2|0;do if(ub>>>0<ja>>>0)wc=.5;else{if((ub|0)==(ja|0)?(eb+(zb+-1022<<2)|0)==(ic|0):0){wc=1.0;break}wc=1.5}while(0);do if(!ob){xc=Ab;yc=wc}else{if((ha(pb>>0|0,1,0,0)|0|0)!=45){xc=Ab;yc=wc;break}xc=Ab*-1.0;yc=wc*-1.0}while(0);ja=Pb-ub|0;ia(Zb|0,ja|0,4,0);if(!(xc+yc!=xc)){tc=hc;uc=Zb;vc=pc;break}Fb=ja+sc|0;ia(Zb|0,Fb|0,4,0);if(Fb>>>0>999999999){Fb=hc;ja=Zb;while(1){Xb=ja+-4|0;ia(ja|0,0|0,4,0);if(Xb>>>0<Fb>>>0){cc=Fb+-4|0;ia(cc|0,0|0,4,0);zc=cc}else zc=Fb;cc=(ha(Xb|0,4,0,0)|0|0)+1|0;ia(Xb|0,cc|0,4,0);if(cc>>>0>999999999){Fb=zc;ja=Xb}else{Ac=zc;Bc=Xb;break}}}else{Ac=hc;Bc=Zb}ja=(xb-Ac>>2)*9|0;Fb=ha(Ac|0,4,0,0)|0|0;if(Fb>>>0<10){tc=Ac;uc=Bc;vc=ja;break}else{Cc=ja;Dc=10}while(1){Dc=Dc*10|0;ja=Cc+1|0;if(Fb>>>0<Dc>>>0){tc=Ac;uc=Bc;vc=ja;break}else Cc=ja}}while(0);Zb=uc+4|0;Ec=tc;Fc=vc;Gc=ic>>>0>Zb>>>0?Zb:ic}else{Ec=hc;Fc=pc;Gc=ic}Zb=0-Fc|0;ub=Gc;while(1){if(ub>>>0<=Ec>>>0){Hc=0;break}Pb=ub+-4|0;if(!(ha(Pb|0,4,0,0)|0))ub=Pb;else{Hc=1;break}}do if(X){Pb=((fb|0)==0&1)+fb|0;if((Pb|0)>(Fc|0)&(Fc|0)>-5){Ic=ga+-1|0;Jc=Pb+-1-Fc|0}else{Ic=ga+-2|0;Jc=Pb+-1|0}if(ba&8){Kc=Ic;Lc=Jc;break}do if(Hc){Pb=ha(ub+-4|0,4,0,0)|0|0;if(!Pb){Mc=9;break}if(!((Pb>>>0)%10|0)){Nc=10;Oc=0}else{Mc=0;break}while(1){Nc=Nc*10|0;zb=Oc+1|0;if((Pb>>>0)%(Nc>>>0)|0){Mc=zb;break}else Oc=zb}}else Mc=9;while(0);Pb=((ub-xb>>2)*9|0)+-9|0;if((Ic|32|0)==102){Wb=Pb-Mc|0;zb=(Wb|0)<0?0:Wb;Kc=Ic;Lc=(Jc|0)<(zb|0)?Jc:zb;break}else{zb=Pb+Fc-Mc|0;Pb=(zb|0)<0?0:zb;Kc=Ic;Lc=(Jc|0)<(Pb|0)?Jc:Pb;break}}else{Kc=ga;Lc=fb}while(0);fb=(Lc|0)!=0;if(fb)Pc=1;else Pc=(ba&8|0)!=0;xb=Pc&1;X=(Kc|32|0)==102;if(X){Qc=(Fc|0)>0?Fc:0;Rc=0}else{Pb=(Fc|0)<0?Zb:Fc;if((Pb|0)<0){zb=w;Wb=Pb;Fb=((Pb|0)<0)<<31>>31;while(1){ja=Dp(Wb|0,Fb|0,10,0)|0;zb=zb+-1|0;ia(zb>>0|0,ja|48|0,1,0);ja=Wb;Wb=Cp(Wb|0,Fb|0,10,0)|0;if(!(Fb>>>0>9|(Fb|0)==9&ja>>>0>4294967295))break;else Fb=H}Sc=zb;Tc=Wb}else{Sc=w;Tc=Pb}if(!Tc)Uc=Sc;else{Fb=Sc;Zb=Tc;while(1){ja=Fb+-1|0;ia(ja>>0|0,(Zb>>>0)%10|0|48|0,1,0);if(Zb>>>0<10){Uc=ja;break}else{Fb=ja;Zb=(Zb>>>0)/10|0}}}if((m-Uc|0)<2){Zb=Uc;while(1){Fb=Zb+-1|0;ia(Fb>>0|0,48|0,1,0);if((m-Fb|0)<2)Zb=Fb;else{Vc=Fb;break}}}else Vc=Uc;ia(Vc+-1>>0|0,(Fc>>31&2)+43|0,1,0);Zb=Vc+-2|0;ia(Zb>>0|0,Kc|0,1,0);Qc=m-Zb|0;Rc=Zb}Zb=ob+1+Lc+xb+Qc|0;Fb=ba&73728;Pb=(ra|0)>(Zb|0);if((Fb|0)==0&Pb){Wb=ra-Zb|0;op(n|0,32,(Wb>>>0>256?256:Wb)|0)|0;if(Wb>>>0>255){zb=Wb;do{_o(n,256,a)|0;zb=zb+-256|0}while(zb>>>0>255);Wc=Wb&255}else Wc=Wb;_o(n,Wc,a)|0}_o(pb,ob,a)|0;if((Fb|0)==65536&Pb){zb=ra-Zb|0;op(n|0,48,(zb>>>0>256?256:zb)|0)|0;if(zb>>>0>255){xb=zb;do{_o(n,256,a)|0;xb=xb+-256|0}while(xb>>>0>255);Xc=zb&255}else Xc=zb;_o(n,Xc,a)|0}do if(X){xb=Ec>>>0>eb>>>0?eb:Ec;Wb=xb;do{ja=ha(Wb|0,4,0,0)|0|0;if(!ja)Yc=C;else{Xb=C;cc=ja;while(1){ja=Xb+-1|0;ia(ja>>0|0,(cc>>>0)%10|0|48|0,1,0);if(cc>>>0<10){Yc=ja;break}else{Xb=ja;cc=(cc>>>0)/10|0}}}do if((Wb|0)==(xb|0)){if((Yc|0)!=(C|0)){Zc=Yc;break}ia(E>>0|0,48|0,1,0);Zc=E}else{if(Yc>>>0>j>>>0)_c=Yc;else{Zc=Yc;break}while(1){cc=_c+-1|0;ia(cc>>0|0,48|0,1,0);if(cc>>>0>j>>>0)_c=cc;else{Zc=cc;break}}}while(0);_o(Zc,D-Zc|0,a)|0;Wb=Wb+4|0}while(Wb>>>0<=eb>>>0);if(!((ba&8|0)==0&(fb^1)))_o(15792,1,a)|0;if(Wb>>>0<ub>>>0&(Lc|0)>0){xb=Lc;V=Wb;while(1){cc=ha(V|0,4,0,0)|0|0;if(cc){Xb=C;ja=cc;while(1){Xb=Xb+-1|0;ia(Xb>>0|0,(ja>>>0)%10|0|48|0,1,0);if(ja>>>0<10)break;else ja=(ja>>>0)/10|0}if(Xb>>>0>j>>>0){$c=Xb;N=301}else ad=Xb}else{$c=C;N=301}if((N|0)==301)while(1){N=0;ja=$c+-1|0;ia(ja>>0|0,48|0,1,0);if(ja>>>0>j>>>0){$c=ja;N=301}else{ad=ja;break}}_o(ad,(xb|0)>9?9:xb,a)|0;V=V+4|0;Xb=xb+-9|0;if(!(V>>>0<ub>>>0&(Xb|0)>0)){bd=Xb;break}else xb=Xb}}else bd=Lc;if((bd|0)<=0)break;op(n|0,48,(bd>>>0>256?256:bd)|0)|0;if(bd>>>0>255){xb=bd;do{_o(n,256,a)|0;xb=xb+-256|0}while(xb>>>0>255);cd=bd&255}else cd=bd;_o(n,cd,a)|0}else{xb=Hc?ub:Ec+4|0;do if((Lc|0)>-1){V=(ba&8|0)==0;Wb=Lc;Xb=Ec;do{ja=ha(Xb|0,4,0,0)|0|0;if(ja){cc=C;vb=ja;while(1){cc=cc+-1|0;ia(cc>>0|0,(vb>>>0)%10|0|48|0,1,0);if(vb>>>0<10)break;else vb=(vb>>>0)/10|0}if((cc|0)!=(C|0))dd=cc;else N=313}else N=313;if((N|0)==313){N=0;ia(E>>0|0,48|0,1,0);dd=E}do if((Xb|0)==(Ec|0)){vb=dd+1|0;_o(dd,1,a)|0;if((Wb|0)<1&V){ed=vb;break}_o(15792,1,a)|0;ed=vb}else{if(dd>>>0>j>>>0)fd=dd;else{ed=dd;break}while(1){vb=fd+-1|0;ia(vb>>0|0,48|0,1,0);if(vb>>>0>j>>>0)fd=vb;else{ed=vb;break}}}while(0);cc=D-ed|0;_o(ed,(Wb|0)>(cc|0)?cc:Wb,a)|0;Wb=Wb-cc|0;Xb=Xb+4|0}while(Xb>>>0<xb>>>0&(Wb|0)>-1);if((Wb|0)<=0)break;op(n|0,48,(Wb>>>0>256?256:Wb)|0)|0;if(Wb>>>0>255){Xb=Wb;do{_o(n,256,a)|0;Xb=Xb+-256|0}while(Xb>>>0>255);gd=Wb&255}else gd=Wb;_o(n,gd,a)|0}while(0);_o(Rc,m-Rc|0,a)|0}while(0);if((Fb|0)==8192&Pb){ub=ra-Zb|0;op(n|0,32,(ub>>>0>256?256:ub)|0)|0;if(ub>>>0>255){fb=ub;do{_o(n,256,a)|0;fb=fb+-256|0}while(fb>>>0>255);hd=ub&255}else hd=ub;_o(n,hd,a)|0}F=Ea;G=Fa;I=L;J=ya;b=Pb?ra:Zb;K=qa;continue a;break}default:{Ja=Ea;Ka=Fa;La=J;Ma=ba;Na=wa;Oa=0;Pa=15696;Qa=s}}while(0);do if((N|0)==75){N=0;ga=cb&32;if(!((Ea|0)==0&(Fa|0)==0)){M=s;U=Ea;aa=Fa;do{M=M+-1|0;ia(M>>0|0,ha(15776+(U&15)>>0|0,1,0,1)|0|ga|0,1,0);U=rp(U|0,aa|0,4)|0;aa=H}while(!((U|0)==0&(aa|0)==0));if(!(ab&8)){gb=Ea;hb=Fa;ib=M;jb=ab;kb=bb;lb=0;mb=15696;N=91}else{gb=Ea;hb=Fa;ib=M;jb=ab;kb=bb;lb=2;mb=15696+(cb>>4)|0;N=91}}else{gb=Ea;hb=Fa;ib=s;jb=ab;kb=bb;lb=0;mb=15696;N=91}}else if((N|0)==86){N=0;if(Ya>>>0>0|(Ya|0)==0&Za>>>0>4294967295){aa=s;U=Za;ga=Ya;while(1){Zb=Dp(U|0,ga|0,10,0)|0;aa=aa+-1|0;ia(aa>>0|0,Zb|48|0,1,0);Zb=U;U=Cp(U|0,ga|0,10,0)|0;if(!(ga>>>0>9|(ga|0)==9&Zb>>>0>4294967295))break;else ga=H}id=aa;jd=U}else{id=s;jd=Za}if(!jd){gb=Za;hb=Ya;ib=id;jb=ba;kb=wa;lb=_a;mb=$a;N=91}else{ga=id;M=jd;while(1){Zb=ga+-1|0;ia(Zb>>0|0,(M>>>0)%10|0|48|0,1,0);if(M>>>0<10){gb=Za;hb=Ya;ib=Zb;jb=ba;kb=wa;lb=_a;mb=$a;N=91;break}else{ga=Zb;M=(M>>>0)/10|0}}}}else if((N|0)==96){N=0;M=fp(Ra,0,wa)|0;if(!M){Ja=Ea;Ka=Fa;La=Ra;Ma=W;Na=wa;Oa=0;Pa=15696;Qa=Ra+wa|0;break}else{Ja=Ea;Ka=Fa;La=Ra;Ma=W;Na=M-Ra|0;Oa=0;Pa=15696;Qa=M;break}}else if((N|0)==101){N=0;M=0;ga=0;U=Sa;while(1){aa=ha(U|0,4,0,0)|0|0;if(!aa){kd=M;ld=ga;break}Zb=Vo(q,aa)|0;if((Zb|0)<0|Zb>>>0>(Ua-M|0)>>>0){kd=M;ld=Zb;break}aa=Zb+M|0;if(Ua>>>0>aa>>>0){M=aa;ga=Zb;U=U+4|0}else{kd=aa;ld=Zb;break}}if((ld|0)<0){na=-1;N=370;break a}else{Va=Ta;Wa=Sa;Xa=kd;N=106}}while(0);if((N|0)==91){N=0;W=(kb|0)>-1?jb&-65537:jb;U=(gb|0)!=0|(hb|0)!=0;if(U|(kb|0)!=0){ga=(U&1^1)+(t-ib)|0;Ja=gb;Ka=hb;La=ib;Ma=W;Na=(kb|0)>(ga|0)?kb:ga;Oa=lb;Pa=mb;Qa=s}else{Ja=gb;Ka=hb;La=s;Ma=W;Na=0;Oa=lb;Pa=mb;Qa=s}}else if((N|0)==106){N=0;W=ba&73728;ga=(ra|0)>(Xa|0);if((W|0)==0&ga){U=ra-Xa|0;op(n|0,32,(U>>>0>256?256:U)|0)|0;if(U>>>0>255){M=U;do{_o(n,256,a)|0;M=M+-256|0}while(M>>>0>255);md=U&255}else md=U;_o(n,md,a)|0}h:do if(Xa){M=0;ba=Wa;while(1){Zb=ha(ba|0,4,0,0)|0|0;if(!Zb)break h;aa=Vo(q,Zb)|0;M=aa+M|0;if((M|0)>(Xa|0))break h;_o(q,aa,a)|0;if(M>>>0>=Xa>>>0)break;else ba=ba+4|0}}while(0);if((W|0)==8192&ga){U=ra-Xa|0;op(n|0,32,(U>>>0>256?256:U)|0)|0;if(U>>>0>255){ba=U;do{_o(n,256,a)|0;ba=ba+-256|0}while(ba>>>0>255);nd=U&255}else nd=U;_o(n,nd,a)|0}F=Va;G=Fa;I=L;J=ya;b=ga?ra:Xa;K=qa;continue}ba=Qa-La|0;W=(Na|0)<(ba|0)?ba:Na;M=Oa+W|0;aa=(ra|0)<(M|0)?M:ra;Zb=Ma&73728;Pb=(aa|0)>(M|0);if((Zb|0)==0&Pb){ub=aa-M|0;op(n|0,32,(ub>>>0>256?256:ub)|0)|0;if(ub>>>0>255){fb=ub;do{_o(n,256,a)|0;fb=fb+-256|0}while(fb>>>0>255);od=ub&255}else od=ub;_o(n,od,a)|0}_o(Pa,Oa,a)|0;if((Zb|0)==65536&Pb){fb=aa-M|0;op(n|0,48,(fb>>>0>256?256:fb)|0)|0;if(fb>>>0>255){ga=fb;do{_o(n,256,a)|0;ga=ga+-256|0}while(ga>>>0>255);pd=fb&255}else pd=fb;_o(n,pd,a)|0}if((W|0)>(ba|0)){ga=W-ba|0;op(n|0,48,(ga>>>0>256?256:ga)|0)|0;if(ga>>>0>255){ub=ga;do{_o(n,256,a)|0;ub=ub+-256|0}while(ub>>>0>255);qd=ga&255}else qd=ga;_o(n,qd,a)|0}_o(La,ba,a)|0;if(!((Zb|0)==8192&Pb)){F=Ja;G=Ka;I=L;J=ya;b=aa;K=qa;continue}ub=aa-M|0;op(n|0,32,(ub>>>0>256?256:ub)|0)|0;if(ub>>>0>255){W=ub;do{_o(n,256,a)|0;W=W+-256|0}while(W>>>0>255);rd=ub&255}else rd=ub;_o(n,rd,a)|0;F=Ja;G=Ka;I=L;J=ya;b=aa;K=qa}if((N|0)==352){if(a){na=L;i=f;return na|0}if(!K){na=0;i=f;return na|0}else sd=1;while(1){K=ha(e+(sd<<2)|0,4,0,0)|0|0;if(!K){td=sd;break}L=d+(sd<<3)|0;i:do if(K>>>0<=20)do switch(K|0){case 9:{a=ha(c|0,4,0,0)|0|0;qa=ha(a|0,4,0,0)|0|0;ia(c|0,a+4|0,4,0);ia(L|0,qa|0,4,0);break i;break}case 10:{qa=ha(c|0,4,0,0)|0|0;a=ha(qa|0,4,0,0)|0|0;ia(c|0,qa+4|0,4,0);qa=L;ia(qa|0,a|0,4,0);ia(qa+4|0,((a|0)<0)<<31>>31|0,4,0);break i;break}case 11:{a=ha(c|0,4,0,0)|0|0;qa=ha(a|0,4,0,0)|0|0;ia(c|0,a+4|0,4,0);a=L;ia(a|0,qa|0,4,0);ia(a+4|0,0|0,4,0);break i;break}case 12:{a=ha(c|0,4,0,0)|0|0;qa=a;b=ha(qa|0,4,0,0)|0|0;ya=ha(qa+4|0,4,0,0)|0|0;ia(c|0,a+8|0,4,0);a=L;ia(a|0,b|0,4,0);ia(a+4|0,ya|0,4,0);break i;break}case 13:{ya=ha(c|0,4,0,0)|0|0;a=ha(ya|0,4,0,0)|0|0;ia(c|0,ya+4|0,4,0);ya=(a&65535)<<16>>16;a=L;ia(a|0,ya|0,4,0);ia(a+4|0,((ya|0)<0)<<31>>31|0,4,0);break i;break}case 14:{ya=ha(c|0,4,0,0)|0|0;a=ha(ya|0,4,0,0)|0|0;ia(c|0,ya+4|0,4,0);ya=L;ia(ya|0,a&65535|0,4,0);ia(ya+4|0,0|0,4,0);break i;break}case 15:{ya=ha(c|0,4,0,0)|0|0;a=ha(ya|0,4,0,0)|0|0;ia(c|0,ya+4|0,4,0);ya=(a&255)<<24>>24;a=L;ia(a|0,ya|0,4,0);ia(a+4|0,((ya|0)<0)<<31>>31|0,4,0);break i;break}case 16:{ya=ha(c|0,4,0,0)|0|0;a=ha(ya|0,4,0,0)|0|0;ia(c|0,ya+4|0,4,0);ya=L;ia(ya|0,a&255|0,4,0);ia(ya+4|0,0|0,4,0);break i;break}case 17:{ya=ha(c|0,4,0,0)|0|0;ia(k|0,ha(ya|0,4,0,0)|0|0,4,0);ia(k+4|0,ha(ya+4|0,4,0,0)|0|0,4,0);xc=+(+ha(k|0,8,1,0));ia(c|0,ya+8|0,4,0);ia(L|0,+xc,8,1);break i;break}case 18:{ya=ha(c|0,4,0,0)|0|0;ia(k|0,ha(ya|0,4,0,0)|0|0,4,0);ia(k+4|0,ha(ya+4|0,4,0,0)|0|0,4,0);xc=+(+ha(k|0,8,1,0));ia(c|0,ya+8|0,4,0);ia(L|0,+xc,8,1);break i;break}default:break i}while(0);while(0);sd=sd+1|0;if((sd|0)>=10){na=1;N=370;break}}if((N|0)==370){i=f;return na|0}while(1){if(ha(e+(td<<2)|0,4,0,0)|0){na=-1;N=370;break}td=td+1|0;if((td|0)>=10){na=1;N=370;break}}if((N|0)==370){i=f;return na|0}}else if((N|0)==370){i=f;return na|0}return 0}function mp(){}function np(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (H=e,a-c>>>0|0)|0}function op(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a+c|0;if((c|0)>=20){b=b&255;e=a&3;f=b|b<<8|b<<16|b<<24;g=d&~3;if(e){e=a+4-e|0;while((a|0)<(e|0)){ia(a|0,b|0,1,0)|0;a=a+1|0}}while((a|0)<(g|0)){ia(a|0,f|0,4,0)|0;a=a+4|0}}while((a|0)<(d|0)){ia(a|0,b|0,1,0)|0;a=a+1|0}return a-c|0}function pp(a){a=a|0;var b=0;b=a;while(ha(b|0,1,0,0)|0)b=b+1|0;return b-a|0}function qp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (H=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0}function rp(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){H=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}H=0;return b>>>c-32|0}function sp(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){H=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}H=a<<c-32;return 0}function tp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((c|0)>=4096)return db(a|0,b|0,c|0)|0;d=a|0;if((a&3)==(b&3)){while(a&3){if(!c)return d|0;ia(a|0,ha(b|0,1,0,0)|0,1,0)|0;a=a+1|0;b=b+1|0;c=c-1|0}while((c|0)>=4){ia(a|0,ha(b|0,4,0,0)|0,4,0)|0;a=a+4|0;b=b+4|0;c=c-4|0}}while((c|0)>0){ia(a|0,ha(b|0,1,0,0)|0,1,0)|0;a=a+1|0;b=b+1|0;c=c-1|0}return d|0}function up(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)<(a|0)&(a|0)<(b+c|0)){d=a;b=b+c|0;a=a+c|0;while((c|0)>0){a=a-1|0;b=b-1|0;c=c-1|0;ia(a|0,ha(b|0,1,0,0)|0,1,0)|0}a=d}else tp(a,b,c)|0;return a|0}function vp(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){H=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}H=(b|0)<0?-1:0;return b>>c-32|0}function wp(a){a=a|0;var b=0;b=ha(n+(a>>>24)|0,1,0,0)|0;if((b|0)<8)return b|0;b=ha(n+(a>>16&255)|0,1,0,0)|0;if((b|0)<8)return b+8|0;b=ha(n+(a>>8&255)|0,1,0,0)|0;if((b|0)<8)return b+16|0;return (ha(n+(a&255)|0,1,0,0)|0)+24|0}function xp(a){a=a|0;var b=0;b=ha(m+(a&255)|0,1,0,0)|0;if((b|0)<8)return b|0;b=ha(m+(a>>8&255)|0,1,0,0)|0;if((b|0)<8)return b+8|0;b=ha(m+(a>>16&255)|0,1,0,0)|0;if((b|0)<8)return b+16|0;return (ha(m+(a>>>24)|0,1,0,0)|0)+24|0}function yp(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=da(d,c)|0;f=a>>>16;a=(e>>>16)+(da(d,f)|0)|0;d=b>>>16;b=da(d,c)|0;return (H=(a>>>16)+(da(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function zp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=np(e^a,f^b,e,f)|0;b=H;a=g^e;e=h^f;f=np((Ep(i,b,np(g^c,h^d,g,h)|0,H,0)|0)^a,H^e,a,e)|0;return f|0}function Ap(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+8|0;f=e|0;g=b>>31|((b|0)<0?-1:0)<<1;h=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;j=d>>31|((d|0)<0?-1:0)<<1;k=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;l=np(g^a,h^b,g,h)|0;b=H;Ep(l,b,np(j^c,k^d,j,k)|0,H,f)|0;k=np((ha(f|0,4,0,0)|0)^g,(ha(f+4|0,4,0,0)|0)^h,g,h)|0;h=H;i=e;return (H=h,k)|0}function Bp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=yp(e,a)|0;f=H;return (H=(da(b,a)|0)+(da(d,e)|0)+f|f&0,c|0|0)|0}function Cp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=Ep(a,b,c,d,0)|0;return e|0}function Dp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=i;i=i+8|0;f=e|0;Ep(a,b,c,d,f)|0;i=e;return (H=ha(f+4|0,4,0,0)|0|0,ha(f|0,4,0,0)|0|0)|0}function Ep(a,b,c,d,e){a=a|0;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,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;f=a;g=b;h=g;i=c;j=d;k=j;if(!h){l=(e|0)!=0;if(!k){if(l){ia(e|0,(f>>>0)%(i>>>0)|0,4,0);ia(e+4|0,0|0,4,0)}m=0;n=(f>>>0)/(i>>>0)>>>0;return (H=m,n)|0}else{if(!l){m=0;n=0;return (H=m,n)|0}ia(e|0,a|0|0,4,0);ia(e+4|0,b&0|0,4,0);m=0;n=0;return (H=m,n)|0}}l=(k|0)==0;do if(i){if(!l){o=(wp(k|0)|0)-(wp(h|0)|0)|0;if(o>>>0<=31){p=o+1|0;q=31-o|0;r=o-31>>31;s=p;t=f>>>(p>>>0)&r|h<<q;u=h>>>(p>>>0)&r;v=0;w=f<<q;break}if(!e){m=0;n=0;return (H=m,n)|0}ia(e|0,a|0|0,4,0);ia(e+4|0,g|b&0|0,4,0);m=0;n=0;return (H=m,n)|0}q=i-1|0;if(q&i){r=(wp(i|0)|0)+33-(wp(h|0)|0)|0;p=64-r|0;o=32-r|0;x=o>>31;y=r-32|0;z=y>>31;s=r;t=o-1>>31&h>>>(y>>>0)|(h<<o|f>>>(r>>>0))&z;u=z&h>>>(r>>>0);v=f<<p&x;w=(h<<p|f>>>(y>>>0))&x|f<<o&r-33>>31;break}if(e){ia(e|0,q&f|0,4,0);ia(e+4|0,0|0,4,0)}if((i|0)==1){m=g|b&0;n=a|0|0;return (H=m,n)|0}else{q=xp(i|0)|0;m=h>>>(q>>>0)|0;n=h<<32-q|f>>>(q>>>0)|0;return (H=m,n)|0}}else{if(l){if(e){ia(e|0,(h>>>0)%(i>>>0)|0,4,0);ia(e+4|0,0|0,4,0)}m=0;n=(h>>>0)/(i>>>0)>>>0;return (H=m,n)|0}if(!f){if(e){ia(e|0,0|0,4,0);ia(e+4|0,(h>>>0)%(k>>>0)|0,4,0)}m=0;n=(h>>>0)/(k>>>0)>>>0;return (H=m,n)|0}q=k-1|0;if(!(q&k)){if(e){ia(e|0,a|0|0,4,0);ia(e+4|0,q&h|b&0|0,4,0)}m=0;n=h>>>((xp(k|0)|0)>>>0);return (H=m,n)|0}q=(wp(k|0)|0)-(wp(h|0)|0)|0;if(q>>>0<=30){r=q+1|0;o=31-q|0;s=r;t=h<<o|f>>>(r>>>0);u=h>>>(r>>>0);v=0;w=f<<o;break}if(!e){m=0;n=0;return (H=m,n)|0}ia(e|0,a|0|0,4,0);ia(e+4|0,g|b&0|0,4,0);m=0;n=0;return (H=m,n)|0}while(0);if(!s){A=w;B=v;C=u;D=t;E=0;F=0}else{b=c|0|0;c=j|d&0;d=qp(b,c,-1,-1)|0;j=H;g=w;w=v;v=u;u=t;t=s;s=0;do{a=g;g=w>>>31|g<<1;w=s|w<<1;f=u<<1|a>>>31|0;a=u>>>31|v<<1|0;np(d,j,f,a)|0;h=H;k=h>>31|((h|0)<0?-1:0)<<1;s=k&1;u=np(f,a,k&b,(((h|0)<0?-1:0)>>31|((h|0)<0?-1:0)<<1)&c)|0;v=H;t=t-1|0}while((t|0)!=0);A=g;B=w;C=v;D=u;E=0;F=s}s=B;B=0;if(e){ia(e|0,D|0,4,0);ia(e+4|0,C|0,4,0)}m=(s|0)>>>31|(A|B)<<1|(B<<1|s>>>31)&0|E;n=(s<<1|0>>>31)&-2|F;return (H=m,n)|0}function Fp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Rb[(ja(a|0,31|0)|0)&31](b|0,c|0,d|0)|0}function Gp(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Sb[(ja(a|0,63|0)|0)&63](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Hp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Tb[(ja(a|0,3|0)|0)&3](b|0,c|0,d|0,e|0,f|0)}function Ip(a,b){a=a|0;b=b|0;Ub[(ja(a|0,127|0)|0)&127](b|0)}function Jp(a,b,c){a=a|0;b=b|0;c=c|0;Vb[(ja(a|0,63|0)|0)&63](b|0,c|0)}function Kp(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;Wb[(ja(a|0,3|0)|0)&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function Lp(a,b){a=a|0;b=b|0;return Xb[(ja(a|0,63|0)|0)&63](b|0)|0}function Mp(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=+h;Yb[(ja(a|0,3|0)|0)&3](b|0,c|0,d|0,e|0,f|0,g|0,+h)}function Np(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Zb[(ja(a|0,3|0)|0)&3](b|0,c|0,d|0)}function Op(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;_b[(ja(a|0,7|0)|0)&7](b|0,c|0,d|0,e|0,f|0,+g)}function Pp(a){a=a|0;$b[(ja(a|0,3|0)|0)&3]()}function Qp(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return ac[(ja(a|0,15|0)|0)&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function Rp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return bc[(ja(a|0,7|0)|0)&7](b|0,c|0,d|0,e|0)|0}function Sp(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;cc[(ja(a|0,7|0)|0)&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)}function Tp(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;dc[(ja(a|0,15|0)|0)&15](b|0,c|0,d|0,e|0,f|0,g|0)}function Up(a,b,c){a=a|0;b=b|0;c=c|0;return ec[(ja(a|0,15|0)|0)&15](b|0,c|0)|0}function Vp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return fc[(ja(a|0,15|0)|0)&15](b|0,c|0,d|0,e|0,f|0)|0}function Wp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;gc[(ja(a|0,7|0)|0)&7](b|0,c|0,d|0,e|0)}function Xp(a,b,c){a=a|0;b=b|0;c=c|0;ea(0);return 0}function Yp(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;ea(1)}function Zp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ea(2)}function _p(a){a=a|0;ea(3)}function $p(a,b){a=a|0;b=b|0;ea(4)}function aq(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;ea(5)}function bq(a){a=a|0;ea(6);return 0}function cq(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;ea(7)}function dq(a,b,c){a=a|0;b=b|0;c=c|0;ea(8)}function eq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;ea(9)}function fq(){ea(10)}function gq(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;ea(11);return 0}function hq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ea(12);return 0}function iq(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;ea(13)}function jq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ea(14)}function kq(a,b){a=a|0;b=b|0;ea(15);return 0}function lq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ea(16);return 0}function mq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ea(17)}
// EMSCRIPTEN_END_FUNCS
var Rb=[Xp,$d,ee,Vk,ie,Ld,Qd,dl,Ud,Rc,Sc,Xe,af,Ii,Ni,Aj,Cj,Fj,hj,oj,rj,uj,ho,hp,Bn,Xp,Xp,Xp,Xp,Xp,Xp,Xp];var Sb=[Yp,df,ef,ff,gf,hf,jf,kf,lf,mf,nf,of,tf,uf,vf,wf,xf,yf,zf,Af,Bf,Cf,Df,Sf,Uf,dg,fg,og,pg,qg,sg,ug,Ng,Og,Pg,Rg,Tg,zi,Fi,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp,Yp];var Tb=[Zp,to,so,po];var Ub=[_p,uc,Fc,Yd,Sk,Xk,Id,al,fl,Xc,Wc,Hd,Gd,Xd,Wd,le,ke,ne,me,re,qe,te,se,we,ve,ye,xe,Ge,Fe,Ie,He,Qe,Pe,Ad,Re,Yc,ll,Te,Se,ej,Ze,Ye,cf,bf,sf,rf,Mf,Lf,$f,_f,mg,lg,Lg,Kg,hh,gh,mh,lh,qh,ph,Bh,Ah,Mh,Lh,Xh,Wh,gi,fi,pi,oi,vi,ui,Bi,Ai,Hi,Gi,Mi,Li,Vi,Ui,yj,xj,Rk,Qj,pk,ok,rk,qk,Ue,dj,gj,Hj,Yj,ek,mk,nk,Kn,Jn,Rn,Qn,Un,Tn,Wn,_n,Zn,ao,eo,bo,co,fo,go,ii,fj,Cm,Jm,Km,Lm,Mm,Nm,Om,ed,sd,Jc,Fo,Do,_p,_p,_p];var Vb=[$p,Hc,Tk,Yk,bl,gl,Kd,_d,th,uh,vh,wh,yh,zh,Eh,Fh,Gh,Hh,Jh,Kh,Ph,Qh,Rh,Sh,Uh,Vh,_h,$h,ai,bi,di,ei,Ki,Pi,wk,yk,Ak,xk,zk,Bk,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p,$p];var Wb=[aq,wg,Vg,aq];var Xb=[bq,Uk,de,fe,ge,ce,Zk,_k,cl,Pd,Rd,Sd,Od,hl,il,Vn,Le,ng,Dk,Fk,Hk,Nk,Pk,Jk,Lk,Mg,Ek,Gk,Ik,Ok,Qk,Kk,Mk,rh,sh,xh,Ch,Dh,Ih,Nh,Oh,Th,Yh,Zh,ci,Uj,Vj,Xj,sk,uk,tk,vk,Lj,Mj,Oj,ak,bk,dk,ik,jk,lk,Ln,Sn,$n];var Yb=[cq,wi,Ci,cq];var Zb=[dq,Qc,Me,dq];var _b=[eq,Vf,Yf,gg,ig,eq,eq,eq];var $b=[fq,Ao,Bo,fq];var ac=[gq,Rj,Sj,Ij,Jj,Zj,_j,fk,gk,gq,gq,gq,gq,gq,gq,gq];var bc=[hq,Ej,jj,kj,lj,tj,hq,hq];var cc=[iq,jh,nh,hi,li,qi,si,iq];var dc=[jq,ae,Md,Nf,Of,Tf,Zf,ag,bg,eg,jg,Ji,Oi,wo,vo,uo];var ec=[kq,Gc,he,Wk,$k,je,Td,el,jl,Vd,zj,Bj,Dj,mj,pj,sj];var fc=[lq,Ve,_e,Gj,Tj,Wj,vj,Kj,Nj,$j,ck,hk,kk,lq,lq,lq];var gc=[mq,be,Nd,We,$e,jo,ko,mo];return{___cxa_can_catch:xo,_free:Fo,_main:pc,_realloc:Go,_i64Add:qp,_memmove:up,___cxa_is_pointer_type:yo,_i64Subtract:np,_memset:op,_malloc:Eo,_memcpy:tp,_strlen:pp,_bitshift64Lshr:rp,_bitshift64Shl:sp,__GLOBAL__I_a:kl,runPostSets:mp,stackAlloc:hc,stackSave:ic,stackRestore:jc,setThrew:kc,setTempRet0:nc,getTempRet0:oc,dynCall_iiii:Fp,dynCall_viiiiiii:Gp,dynCall_viiiii:Hp,dynCall_vi:Ip,dynCall_vii:Jp,dynCall_viiiiiiiii:Kp,dynCall_ii:Lp,dynCall_viiiiiid:Mp,dynCall_viii:Np,dynCall_viiiiid:Op,dynCall_v:Pp,dynCall_iiiiiiiii:Qp,dynCall_iiiii:Rp,dynCall_viiiiiiii:Sp,dynCall_viiiiii:Tp,dynCall_iii:Up,dynCall_iiiiii:Vp,dynCall_viiii:Wp}})
// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var _main=Module["_main"]=asm["_main"];var _realloc=Module["_realloc"]=asm["_realloc"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _memmove=Module["_memmove"]=asm["_memmove"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _strlen=Module["_strlen"]=asm["_strlen"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var __GLOBAL__I_a=Module["__GLOBAL__I_a"]=asm["__GLOBAL__I_a"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=asm["dynCall_viiiiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viiiiiid=Module["dynCall_viiiiiid"]=asm["dynCall_viiiiiid"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiiiid=Module["dynCall_viiiiid"]=asm["dynCall_viiiiid"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=asm["dynCall_iiiiiiiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=asm["dynCall_viiiiiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];var i64Math=(function(){var goog={math:{}};goog.math.Long=(function(low,high){this.low_=low|0;this.high_=high|0});goog.math.Long.IntCache_={};goog.math.Long.fromInt=(function(value){if(-128<=value&&value<128){var cachedObj=goog.math.Long.IntCache_[value];if(cachedObj){return cachedObj}}var obj=new goog.math.Long(value|0,value<0?-1:0);if(-128<=value&&value<128){goog.math.Long.IntCache_[value]=obj}return obj});goog.math.Long.fromNumber=(function(value){if(isNaN(value)||!isFinite(value)){return goog.math.Long.ZERO}else if(value<=-goog.math.Long.TWO_PWR_63_DBL_){return goog.math.Long.MIN_VALUE}else if(value+1>=goog.math.Long.TWO_PWR_63_DBL_){return goog.math.Long.MAX_VALUE}else if(value<0){return goog.math.Long.fromNumber(-value).negate()}else{return new goog.math.Long(value%goog.math.Long.TWO_PWR_32_DBL_|0,value/goog.math.Long.TWO_PWR_32_DBL_|0)}});goog.math.Long.fromBits=(function(lowBits,highBits){return new goog.math.Long(lowBits,highBits)});goog.math.Long.fromString=(function(str,opt_radix){if(str.length==0){throw Error("number format error: empty string")}var radix=opt_radix||10;if(radix<2||36<radix){throw Error("radix out of range: "+radix)}if(str.charAt(0)=="-"){return goog.math.Long.fromString(str.substring(1),radix).negate()}else if(str.indexOf("-")>=0){throw Error('number format error: interior "-" character: '+str)}var radixToPower=goog.math.Long.fromNumber(Math.pow(radix,8));var result=goog.math.Long.ZERO;for(var i=0;i<str.length;i+=8){var size=Math.min(8,str.length-i);var value=parseInt(str.substring(i,i+size),radix);if(size<8){var power=goog.math.Long.fromNumber(Math.pow(radix,size));result=result.multiply(power).add(goog.math.Long.fromNumber(value))}else{result=result.multiply(radixToPower);result=result.add(goog.math.Long.fromNumber(value))}}return result});goog.math.Long.TWO_PWR_16_DBL_=1<<16;goog.math.Long.TWO_PWR_24_DBL_=1<<24;goog.math.Long.TWO_PWR_32_DBL_=goog.math.Long.TWO_PWR_16_DBL_*goog.math.Long.TWO_PWR_16_DBL_;goog.math.Long.TWO_PWR_31_DBL_=goog.math.Long.TWO_PWR_32_DBL_/2;goog.math.Long.TWO_PWR_48_DBL_=goog.math.Long.TWO_PWR_32_DBL_*goog.math.Long.TWO_PWR_16_DBL_;goog.math.Long.TWO_PWR_64_DBL_=goog.math.Long.TWO_PWR_32_DBL_*goog.math.Long.TWO_PWR_32_DBL_;goog.math.Long.TWO_PWR_63_DBL_=goog.math.Long.TWO_PWR_64_DBL_/2;goog.math.Long.ZERO=goog.math.Long.fromInt(0);goog.math.Long.ONE=goog.math.Long.fromInt(1);goog.math.Long.NEG_ONE=goog.math.Long.fromInt(-1);goog.math.Long.MAX_VALUE=goog.math.Long.fromBits(4294967295|0,2147483647|0);goog.math.Long.MIN_VALUE=goog.math.Long.fromBits(0,2147483648|0);goog.math.Long.TWO_PWR_24_=goog.math.Long.fromInt(1<<24);goog.math.Long.prototype.toInt=(function(){return this.low_});goog.math.Long.prototype.toNumber=(function(){return this.high_*goog.math.Long.TWO_PWR_32_DBL_+this.getLowBitsUnsigned()});goog.math.Long.prototype.toString=(function(opt_radix){var radix=opt_radix||10;if(radix<2||36<radix){throw Error("radix out of range: "+radix)}if(this.isZero()){return"0"}if(this.isNegative()){if(this.equals(goog.math.Long.MIN_VALUE)){var radixLong=goog.math.Long.fromNumber(radix);var div=this.div(radixLong);var rem=div.multiply(radixLong).subtract(this);return div.toString(radix)+rem.toInt().toString(radix)}else{return"-"+this.negate().toString(radix)}}var radixToPower=goog.math.Long.fromNumber(Math.pow(radix,6));var rem=this;var result="";while(true){var remDiv=rem.div(radixToPower);var intval=rem.subtract(remDiv.multiply(radixToPower)).toInt();var digits=intval.toString(radix);rem=remDiv;if(rem.isZero()){return digits+result}else{while(digits.length<6){digits="0"+digits}result=""+digits+result}}});goog.math.Long.prototype.getHighBits=(function(){return this.high_});goog.math.Long.prototype.getLowBits=(function(){return this.low_});goog.math.Long.prototype.getLowBitsUnsigned=(function(){return this.low_>=0?this.low_:goog.math.Long.TWO_PWR_32_DBL_+this.low_});goog.math.Long.prototype.getNumBitsAbs=(function(){if(this.isNegative()){if(this.equals(goog.math.Long.MIN_VALUE)){return 64}else{return this.negate().getNumBitsAbs()}}else{var val=this.high_!=0?this.high_:this.low_;for(var bit=31;bit>0;bit--){if((val&1<<bit)!=0){break}}return this.high_!=0?bit+33:bit+1}});goog.math.Long.prototype.isZero=(function(){return this.high_==0&&this.low_==0});goog.math.Long.prototype.isNegative=(function(){return this.high_<0});goog.math.Long.prototype.isOdd=(function(){return(this.low_&1)==1});goog.math.Long.prototype.equals=(function(other){return this.high_==other.high_&&this.low_==other.low_});goog.math.Long.prototype.notEquals=(function(other){return this.high_!=other.high_||this.low_!=other.low_});goog.math.Long.prototype.lessThan=(function(other){return this.compare(other)<0});goog.math.Long.prototype.lessThanOrEqual=(function(other){return this.compare(other)<=0});goog.math.Long.prototype.greaterThan=(function(other){return this.compare(other)>0});goog.math.Long.prototype.greaterThanOrEqual=(function(other){return this.compare(other)>=0});goog.math.Long.prototype.compare=(function(other){if(this.equals(other)){return 0}var thisNeg=this.isNegative();var otherNeg=other.isNegative();if(thisNeg&&!otherNeg){return-1}if(!thisNeg&&otherNeg){return 1}if(this.subtract(other).isNegative()){return-1}else{return 1}});goog.math.Long.prototype.negate=(function(){if(this.equals(goog.math.Long.MIN_VALUE)){return goog.math.Long.MIN_VALUE}else{return this.not().add(goog.math.Long.ONE)}});goog.math.Long.prototype.add=(function(other){var a48=this.high_>>>16;var a32=this.high_&65535;var a16=this.low_>>>16;var a00=this.low_&65535;var b48=other.high_>>>16;var b32=other.high_&65535;var b16=other.low_>>>16;var b00=other.low_&65535;var c48=0,c32=0,c16=0,c00=0;c00+=a00+b00;c16+=c00>>>16;c00&=65535;c16+=a16+b16;c32+=c16>>>16;c16&=65535;c32+=a32+b32;c48+=c32>>>16;c32&=65535;c48+=a48+b48;c48&=65535;return goog.math.Long.fromBits(c16<<16|c00,c48<<16|c32)});goog.math.Long.prototype.subtract=(function(other){return this.add(other.negate())});goog.math.Long.prototype.multiply=(function(other){if(this.isZero()){return goog.math.Long.ZERO}else if(other.isZero()){return goog.math.Long.ZERO}if(this.equals(goog.math.Long.MIN_VALUE)){return other.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO}else if(other.equals(goog.math.Long.MIN_VALUE)){return this.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO}if(this.isNegative()){if(other.isNegative()){return this.negate().multiply(other.negate())}else{return this.negate().multiply(other).negate()}}else if(other.isNegative()){return this.multiply(other.negate()).negate()}if(this.lessThan(goog.math.Long.TWO_PWR_24_)&&other.lessThan(goog.math.Long.TWO_PWR_24_)){return goog.math.Long.fromNumber(this.toNumber()*other.toNumber())}var a48=this.high_>>>16;var a32=this.high_&65535;var a16=this.low_>>>16;var a00=this.low_&65535;var b48=other.high_>>>16;var b32=other.high_&65535;var b16=other.low_>>>16;var b00=other.low_&65535;var c48=0,c32=0,c16=0,c00=0;c00+=a00*b00;c16+=c00>>>16;c00&=65535;c16+=a16*b00;c32+=c16>>>16;c16&=65535;c16+=a00*b16;c32+=c16>>>16;c16&=65535;c32+=a32*b00;c48+=c32>>>16;c32&=65535;c32+=a16*b16;c48+=c32>>>16;c32&=65535;c32+=a00*b32;c48+=c32>>>16;c32&=65535;c48+=a48*b00+a32*b16+a16*b32+a00*b48;c48&=65535;return goog.math.Long.fromBits(c16<<16|c00,c48<<16|c32)});goog.math.Long.prototype.div=(function(other){if(other.isZero()){throw Error("division by zero")}else if(this.isZero()){return goog.math.Long.ZERO}if(this.equals(goog.math.Long.MIN_VALUE)){if(other.equals(goog.math.Long.ONE)||other.equals(goog.math.Long.NEG_ONE)){return goog.math.Long.MIN_VALUE}else if(other.equals(goog.math.Long.MIN_VALUE)){return goog.math.Long.ONE}else{var halfThis=this.shiftRight(1);var approx=halfThis.div(other).shiftLeft(1);if(approx.equals(goog.math.Long.ZERO)){return other.isNegative()?goog.math.Long.ONE:goog.math.Long.NEG_ONE}else{var rem=this.subtract(other.multiply(approx));var result=approx.add(rem.div(other));return result}}}else if(other.equals(goog.math.Long.MIN_VALUE)){return goog.math.Long.ZERO}if(this.isNegative()){if(other.isNegative()){return this.negate().div(other.negate())}else{return this.negate().div(other).negate()}}else if(other.isNegative()){return this.div(other.negate()).negate()}var res=goog.math.Long.ZERO;var rem=this;while(rem.greaterThanOrEqual(other)){var approx=Math.max(1,Math.floor(rem.toNumber()/other.toNumber()));var log2=Math.ceil(Math.log(approx)/Math.LN2);var delta=log2<=48?1:Math.pow(2,log2-48);var approxRes=goog.math.Long.fromNumber(approx);var approxRem=approxRes.multiply(other);while(approxRem.isNegative()||approxRem.greaterThan(rem)){approx-=delta;approxRes=goog.math.Long.fromNumber(approx);approxRem=approxRes.multiply(other)}if(approxRes.isZero()){approxRes=goog.math.Long.ONE}res=res.add(approxRes);rem=rem.subtract(approxRem)}return res});goog.math.Long.prototype.modulo=(function(other){return this.subtract(this.div(other).multiply(other))});goog.math.Long.prototype.not=(function(){return goog.math.Long.fromBits(~this.low_,~this.high_)});goog.math.Long.prototype.and=(function(other){return goog.math.Long.fromBits(this.low_&other.low_,this.high_&other.high_)});goog.math.Long.prototype.or=(function(other){return goog.math.Long.fromBits(this.low_|other.low_,this.high_|other.high_)});goog.math.Long.prototype.xor=(function(other){return goog.math.Long.fromBits(this.low_^other.low_,this.high_^other.high_)});goog.math.Long.prototype.shiftLeft=(function(numBits){numBits&=63;if(numBits==0){return this}else{var low=this.low_;if(numBits<32){var high=this.high_;return goog.math.Long.fromBits(low<<numBits,high<<numBits|low>>>32-numBits)}else{return goog.math.Long.fromBits(0,low<<numBits-32)}}});goog.math.Long.prototype.shiftRight=(function(numBits){numBits&=63;if(numBits==0){return this}else{var high=this.high_;if(numBits<32){var low=this.low_;return goog.math.Long.fromBits(low>>>numBits|high<<32-numBits,high>>numBits)}else{return goog.math.Long.fromBits(high>>numBits-32,high>=0?0:-1)}}});goog.math.Long.prototype.shiftRightUnsigned=(function(numBits){numBits&=63;if(numBits==0){return this}else{var high=this.high_;if(numBits<32){var low=this.low_;return goog.math.Long.fromBits(low>>>numBits|high<<32-numBits,high>>>numBits)}else if(numBits==32){return goog.math.Long.fromBits(high,0)}else{return goog.math.Long.fromBits(high>>>numBits-32,0)}}});var navigator={appName:"Modern Browser"};var dbits;var canary=0xdeadbeefcafe;var j_lm=(canary&16777215)==15715070;function BigInteger(a,b,c){if(a!=null)if("number"==typeof a)this.fromNumber(a,b,c);else if(b==null&&"string"!=typeof a)this.fromString(a,256);else this.fromString(a,b)}function nbi(){return new BigInteger(null)}function am1(i,x,w,j,c,n){while(--n>=0){var v=x*this[i++]+w[j]+c;c=Math.floor(v/67108864);w[j++]=v&67108863}return c}function am2(i,x,w,j,c,n){var xl=x&32767,xh=x>>15;while(--n>=0){var l=this[i]&32767;var h=this[i++]>>15;var m=xh*l+h*xl;l=xl*l+((m&32767)<<15)+w[j]+(c&1073741823);c=(l>>>30)+(m>>>15)+xh*h+(c>>>30);w[j++]=l&1073741823}return c}function am3(i,x,w,j,c,n){var xl=x&16383,xh=x>>14;while(--n>=0){var l=this[i]&16383;var h=this[i++]>>14;var m=xh*l+h*xl;l=xl*l+((m&16383)<<14)+w[j]+c;c=(l>>28)+(m>>14)+xh*h;w[j++]=l&268435455}return c}if(j_lm&&navigator.appName=="Microsoft Internet Explorer"){BigInteger.prototype.am=am2;dbits=30}else if(j_lm&&navigator.appName!="Netscape"){BigInteger.prototype.am=am1;dbits=26}else{BigInteger.prototype.am=am3;dbits=28}BigInteger.prototype.DB=dbits;BigInteger.prototype.DM=(1<<dbits)-1;BigInteger.prototype.DV=1<<dbits;var BI_FP=52;BigInteger.prototype.FV=Math.pow(2,BI_FP);BigInteger.prototype.F1=BI_FP-dbits;BigInteger.prototype.F2=2*dbits-BI_FP;var BI_RM="0123456789abcdefghijklmnopqrstuvwxyz";var BI_RC=new Array;var rr,vv;rr="0".charCodeAt(0);for(vv=0;vv<=9;++vv)BI_RC[rr++]=vv;rr="a".charCodeAt(0);for(vv=10;vv<36;++vv)BI_RC[rr++]=vv;rr="A".charCodeAt(0);for(vv=10;vv<36;++vv)BI_RC[rr++]=vv;function int2char(n){return BI_RM.charAt(n)}function intAt(s,i){var c=BI_RC[s.charCodeAt(i)];return c==null?-1:c}function bnpCopyTo(r){for(var i=this.t-1;i>=0;--i)r[i]=this[i];r.t=this.t;r.s=this.s}function bnpFromInt(x){this.t=1;this.s=x<0?-1:0;if(x>0)this[0]=x;else if(x<-1)this[0]=x+DV;else this.t=0}function nbv(i){var r=nbi();r.fromInt(i);return r}function bnpFromString(s,b){var k;if(b==16)k=4;else if(b==8)k=3;else if(b==256)k=8;else if(b==2)k=1;else if(b==32)k=5;else if(b==4)k=2;else{this.fromRadix(s,b);return}this.t=0;this.s=0;var i=s.length,mi=false,sh=0;while(--i>=0){var x=k==8?s[i]&255:intAt(s,i);if(x<0){if(s.charAt(i)=="-")mi=true;continue}mi=false;if(sh==0)this[this.t++]=x;else if(sh+k>this.DB){this[this.t-1]|=(x&(1<<this.DB-sh)-1)<<sh;this[this.t++]=x>>this.DB-sh}else this[this.t-1]|=x<<sh;sh+=k;if(sh>=this.DB)sh-=this.DB}if(k==8&&(s[0]&128)!=0){this.s=-1;if(sh>0)this[this.t-1]|=(1<<this.DB-sh)-1<<sh}this.clamp();if(mi)BigInteger.ZERO.subTo(this,this)}function bnpClamp(){var c=this.s&this.DM;while(this.t>0&&this[this.t-1]==c)--this.t}function bnToString(b){if(this.s<0)return"-"+this.negate().toString(b);var k;if(b==16)k=4;else if(b==8)k=3;else if(b==2)k=1;else if(b==32)k=5;else if(b==4)k=2;else return this.toRadix(b);var km=(1<<k)-1,d,m=false,r="",i=this.t;var p=this.DB-i*this.DB%k;if(i-->0){if(p<this.DB&&(d=this[i]>>p)>0){m=true;r=int2char(d)}while(i>=0){if(p<k){d=(this[i]&(1<<p)-1)<<k-p;d|=this[--i]>>(p+=this.DB-k)}else{d=this[i]>>(p-=k)&km;if(p<=0){p+=this.DB;--i}}if(d>0)m=true;if(m)r+=int2char(d)}}return m?r:"0"}function bnNegate(){var r=nbi();BigInteger.ZERO.subTo(this,r);return r}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(a){var r=this.s-a.s;if(r!=0)return r;var i=this.t;r=i-a.t;if(r!=0)return this.s<0?-r:r;while(--i>=0)if((r=this[i]-a[i])!=0)return r;return 0}function nbits(x){var r=1,t;if((t=x>>>16)!=0){x=t;r+=16}if((t=x>>8)!=0){x=t;r+=8}if((t=x>>4)!=0){x=t;r+=4}if((t=x>>2)!=0){x=t;r+=2}if((t=x>>1)!=0){x=t;r+=1}return r}function bnBitLength(){if(this.t<=0)return 0;return this.DB*(this.t-1)+nbits(this[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(n,r){var i;for(i=this.t-1;i>=0;--i)r[i+n]=this[i];for(i=n-1;i>=0;--i)r[i]=0;r.t=this.t+n;r.s=this.s}function bnpDRShiftTo(n,r){for(var i=n;i<this.t;++i)r[i-n]=this[i];r.t=Math.max(this.t-n,0);r.s=this.s}function bnpLShiftTo(n,r){var bs=n%this.DB;var cbs=this.DB-bs;var bm=(1<<cbs)-1;var ds=Math.floor(n/this.DB),c=this.s<<bs&this.DM,i;for(i=this.t-1;i>=0;--i){r[i+ds+1]=this[i]>>cbs|c;c=(this[i]&bm)<<bs}for(i=ds-1;i>=0;--i)r[i]=0;r[ds]=c;r.t=this.t+ds+1;r.s=this.s;r.clamp()}function bnpRShiftTo(n,r){r.s=this.s;var ds=Math.floor(n/this.DB);if(ds>=this.t){r.t=0;return}var bs=n%this.DB;var cbs=this.DB-bs;var bm=(1<<bs)-1;r[0]=this[ds]>>bs;for(var i=ds+1;i<this.t;++i){r[i-ds-1]|=(this[i]&bm)<<cbs;r[i-ds]=this[i]>>bs}if(bs>0)r[this.t-ds-1]|=(this.s&bm)<<cbs;r.t=this.t-ds;r.clamp()}function bnpSubTo(a,r){var i=0,c=0,m=Math.min(a.t,this.t);while(i<m){c+=this[i]-a[i];r[i++]=c&this.DM;c>>=this.DB}if(a.t<this.t){c-=a.s;while(i<this.t){c+=this[i];r[i++]=c&this.DM;c>>=this.DB}c+=this.s}else{c+=this.s;while(i<a.t){c-=a[i];r[i++]=c&this.DM;c>>=this.DB}c-=a.s}r.s=c<0?-1:0;if(c<-1)r[i++]=this.DV+c;else if(c>0)r[i++]=c;r.t=i;r.clamp()}function bnpMultiplyTo(a,r){var x=this.abs(),y=a.abs();var i=x.t;r.t=i+y.t;while(--i>=0)r[i]=0;for(i=0;i<y.t;++i)r[i+x.t]=x.am(0,y[i],r,i,0,x.t);r.s=0;r.clamp();if(this.s!=a.s)BigInteger.ZERO.subTo(r,r)}function bnpSquareTo(r){var x=this.abs();var i=r.t=2*x.t;while(--i>=0)r[i]=0;for(i=0;i<x.t-1;++i){var c=x.am(i,x[i],r,2*i,0,1);if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1))>=x.DV){r[i+x.t]-=x.DV;r[i+x.t+1]=1}}if(r.t>0)r[r.t-1]+=x.am(i,x[i],r,2*i,0,1);r.s=0;r.clamp()}function bnpDivRemTo(m,q,r){var pm=m.abs();if(pm.t<=0)return;var pt=this.abs();if(pt.t<pm.t){if(q!=null)q.fromInt(0);if(r!=null)this.copyTo(r);return}if(r==null)r=nbi();var y=nbi(),ts=this.s,ms=m.s;var nsh=this.DB-nbits(pm[pm.t-1]);if(nsh>0){pm.lShiftTo(nsh,y);pt.lShiftTo(nsh,r)}else{pm.copyTo(y);pt.copyTo(r)}var ys=y.t;var y0=y[ys-1];if(y0==0)return;var yt=y0*(1<<this.F1)+(ys>1?y[ys-2]>>this.F2:0);var d1=this.FV/yt,d2=(1<<this.F1)/yt,e=1<<this.F2;var i=r.t,j=i-ys,t=q==null?nbi():q;y.dlShiftTo(j,t);if(r.compareTo(t)>=0){r[r.t++]=1;r.subTo(t,r)}BigInteger.ONE.dlShiftTo(ys,t);t.subTo(y,y);while(y.t<ys)y[y.t++]=0;while(--j>=0){var qd=r[--i]==y0?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);if((r[i]+=y.am(0,qd,r,j,0,ys))<qd){y.dlShiftTo(j,t);r.subTo(t,r);while(r[i]<--qd)r.subTo(t,r)}}if(q!=null){r.drShiftTo(ys,q);if(ts!=ms)BigInteger.ZERO.subTo(q,q)}r.t=ys;r.clamp();if(nsh>0)r.rShiftTo(nsh,r);if(ts<0)BigInteger.ZERO.subTo(r,r)}function bnMod(a){var r=nbi();this.abs().divRemTo(a,null,r);if(this.s<0&&r.compareTo(BigInteger.ZERO)>0)a.subTo(r,r);return r}function Classic(m){this.m=m}function cConvert(x){if(x.s<0||x.compareTo(this.m)>=0)return x.mod(this.m);else return x}function cRevert(x){return x}function cReduce(x){x.divRemTo(this.m,null,x)}function cMulTo(x,y,r){x.multiplyTo(y,r);this.reduce(r)}function cSqrTo(x,r){x.squareTo(r);this.reduce(r)}Classic.prototype.convert=cConvert;Classic.prototype.revert=cRevert;Classic.prototype.reduce=cReduce;Classic.prototype.mulTo=cMulTo;Classic.prototype.sqrTo=cSqrTo;function bnpInvDigit(){if(this.t<1)return 0;var x=this[0];if((x&1)==0)return 0;var y=x&3;y=y*(2-(x&15)*y)&15;y=y*(2-(x&255)*y)&255;y=y*(2-((x&65535)*y&65535))&65535;y=y*(2-x*y%this.DV)%this.DV;return y>0?this.DV-y:-y}function Montgomery(m){this.m=m;this.mp=m.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<m.DB-15)-1;this.mt2=2*m.t}function montConvert(x){var r=nbi();x.abs().dlShiftTo(this.m.t,r);r.divRemTo(this.m,null,r);if(x.s<0&&r.compareTo(BigInteger.ZERO)>0)this.m.subTo(r,r);return r}function montRevert(x){var r=nbi();x.copyTo(r);this.reduce(r);return r}function montReduce(x){while(x.t<=this.mt2)x[x.t++]=0;for(var i=0;i<this.m.t;++i){var j=x[i]&32767;var u0=j*this.mpl+((j*this.mph+(x[i]>>15)*this.mpl&this.um)<<15)&x.DM;j=i+this.m.t;x[j]+=this.m.am(0,u0,x,i,0,this.m.t);while(x[j]>=x.DV){x[j]-=x.DV;x[++j]++}}x.clamp();x.drShiftTo(this.m.t,x);if(x.compareTo(this.m)>=0)x.subTo(this.m,x)}function montSqrTo(x,r){x.squareTo(r);this.reduce(r)}function montMulTo(x,y,r){x.multiplyTo(y,r);this.reduce(r)}Montgomery.prototype.convert=montConvert;Montgomery.prototype.revert=montRevert;Montgomery.prototype.reduce=montReduce;Montgomery.prototype.mulTo=montMulTo;Montgomery.prototype.sqrTo=montSqrTo;function bnpIsEven(){return(this.t>0?this[0]&1:this.s)==0}function bnpExp(e,z){if(e>4294967295||e<1)return BigInteger.ONE;var r=nbi(),r2=nbi(),g=z.convert(this),i=nbits(e)-1;g.copyTo(r);while(--i>=0){z.sqrTo(r,r2);if((e&1<<i)>0)z.mulTo(r2,g,r);else{var t=r;r=r2;r2=t}}return z.revert(r)}function bnModPowInt(e,m){var z;if(e<256||m.isEven())z=new Classic(m);else z=new Montgomery(m);return this.exp(e,z)}BigInteger.prototype.copyTo=bnpCopyTo;BigInteger.prototype.fromInt=bnpFromInt;BigInteger.prototype.fromString=bnpFromString;BigInteger.prototype.clamp=bnpClamp;BigInteger.prototype.dlShiftTo=bnpDLShiftTo;BigInteger.prototype.drShiftTo=bnpDRShiftTo;BigInteger.prototype.lShiftTo=bnpLShiftTo;BigInteger.prototype.rShiftTo=bnpRShiftTo;BigInteger.prototype.subTo=bnpSubTo;BigInteger.prototype.multiplyTo=bnpMultiplyTo;BigInteger.prototype.squareTo=bnpSquareTo;BigInteger.prototype.divRemTo=bnpDivRemTo;BigInteger.prototype.invDigit=bnpInvDigit;BigInteger.prototype.isEven=bnpIsEven;BigInteger.prototype.exp=bnpExp;BigInteger.prototype.toString=bnToString;BigInteger.prototype.negate=bnNegate;BigInteger.prototype.abs=bnAbs;BigInteger.prototype.compareTo=bnCompareTo;BigInteger.prototype.bitLength=bnBitLength;BigInteger.prototype.mod=bnMod;BigInteger.prototype.modPowInt=bnModPowInt;BigInteger.ZERO=nbv(0);BigInteger.ONE=nbv(1);function bnpFromRadix(s,b){this.fromInt(0);if(b==null)b=10;var cs=this.chunkSize(b);var d=Math.pow(b,cs),mi=false,j=0,w=0;for(var i=0;i<s.length;++i){var x=intAt(s,i);if(x<0){if(s.charAt(i)=="-"&&this.signum()==0)mi=true;continue}w=b*w+x;if(++j>=cs){this.dMultiply(d);this.dAddOffset(w,0);j=0;w=0}}if(j>0){this.dMultiply(Math.pow(b,j));this.dAddOffset(w,0)}if(mi)BigInteger.ZERO.subTo(this,this)}function bnpChunkSize(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function bnSigNum(){if(this.s<0)return-1;else if(this.t<=0||this.t==1&&this[0]<=0)return 0;else return 1}function bnpDMultiply(n){this[this.t]=this.am(0,n-1,this,0,0,this.t);++this.t;this.clamp()}function bnpDAddOffset(n,w){if(n==0)return;while(this.t<=w)this[this.t++]=0;this[w]+=n;while(this[w]>=this.DV){this[w]-=this.DV;if(++w>=this.t)this[this.t++]=0;++this[w]}}function bnpToRadix(b){if(b==null)b=10;if(this.signum()==0||b<2||b>36)return"0";var cs=this.chunkSize(b);var a=Math.pow(b,cs);var d=nbv(a),y=nbi(),z=nbi(),r="";this.divRemTo(d,y,z);while(y.signum()>0){r=(a+z.intValue()).toString(b).substr(1)+r;y.divRemTo(d,y,z)}return z.intValue().toString(b)+r}function bnIntValue(){if(this.s<0){if(this.t==1)return this[0]-this.DV;else if(this.t==0)return-1}else if(this.t==1)return this[0];else if(this.t==0)return 0;return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function bnpAddTo(a,r){var i=0,c=0,m=Math.min(a.t,this.t);while(i<m){c+=this[i]+a[i];r[i++]=c&this.DM;c>>=this.DB}if(a.t<this.t){c+=a.s;while(i<this.t){c+=this[i];r[i++]=c&this.DM;c>>=this.DB}c+=this.s}else{c+=this.s;while(i<a.t){c+=a[i];r[i++]=c&this.DM;c>>=this.DB}c+=a.s}r.s=c<0?-1:0;if(c>0)r[i++]=c;else if(c<-1)r[i++]=this.DV+c;r.t=i;r.clamp()}BigInteger.prototype.fromRadix=bnpFromRadix;BigInteger.prototype.chunkSize=bnpChunkSize;BigInteger.prototype.signum=bnSigNum;BigInteger.prototype.dMultiply=bnpDMultiply;BigInteger.prototype.dAddOffset=bnpDAddOffset;BigInteger.prototype.toRadix=bnpToRadix;BigInteger.prototype.intValue=bnIntValue;BigInteger.prototype.addTo=bnpAddTo;var Wrapper={abs:(function(l,h){var x=new goog.math.Long(l,h);var ret;if(x.isNegative()){ret=x.negate()}else{ret=x}HEAP32[tempDoublePtr>>2]=ret.low_;HEAP32[tempDoublePtr+4>>2]=ret.high_}),ensureTemps:(function(){if(Wrapper.ensuredTemps)return;Wrapper.ensuredTemps=true;Wrapper.two32=new BigInteger;Wrapper.two32.fromString("4294967296",10);Wrapper.two64=new BigInteger;Wrapper.two64.fromString("18446744073709551616",10);Wrapper.temp1=new BigInteger;Wrapper.temp2=new BigInteger}),lh2bignum:(function(l,h){var a=new BigInteger;a.fromString(h.toString(),10);var b=new BigInteger;a.multiplyTo(Wrapper.two32,b);var c=new BigInteger;c.fromString(l.toString(),10);var d=new BigInteger;c.addTo(b,d);return d}),stringify:(function(l,h,unsigned){var ret=(new goog.math.Long(l,h)).toString();if(unsigned&&ret[0]=="-"){Wrapper.ensureTemps();var bignum=new BigInteger;bignum.fromString(ret,10);ret=new BigInteger;Wrapper.two64.addTo(bignum,ret);ret=ret.toString(10)}return ret}),fromString:(function(str,base,min,max,unsigned){Wrapper.ensureTemps();var bignum=new BigInteger;bignum.fromString(str,base);var bigmin=new BigInteger;bigmin.fromString(min,10);var bigmax=new BigInteger;bigmax.fromString(max,10);if(unsigned&&bignum.compareTo(BigInteger.ZERO)<0){var temp=new BigInteger;bignum.addTo(Wrapper.two64,temp);bignum=temp}var error=false;if(bignum.compareTo(bigmin)<0){bignum=bigmin;error=true}else if(bignum.compareTo(bigmax)>0){bignum=bigmax;error=true}var ret=goog.math.Long.fromString(bignum.toString());HEAP32[tempDoublePtr>>2]=ret.low_;HEAP32[tempDoublePtr+4>>2]=ret.high_;if(error)throw"range error"})};return Wrapper})();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,STATIC_BASE)}else{addRunDependency("memory initializer");Browser.asyncLoad(memoryInitializer,(function(data){HEAPU8.set(data,STATIC_BASE);removeRunDependency("memory initializer")}),(function(data){throw"could not load memory initializer "+memoryInitializer}))}}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"]&&shouldRunNow)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);initialStackTop=STACKTOP;try{var ret=Module["_main"](argc,argv,0);exit(ret)}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(ENVIRONMENT_IS_WEB&&preloadStartTime!==null){Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms")}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){if(Module["noExitRuntime"]){return}ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();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;function abort(text){if(text){Module.print(text);Module.printErr(text)}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";throw"abort() at "+stackTrace()+extra}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()
/*
* Copyright 2014 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef FLATBUFFERS_H_
#define FLATBUFFERS_H_
#include <assert.h>
#include <cstdint>
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include <string>
#include <type_traits>
#include <vector>
#include <algorithm>
#include <functional>
#include <memory>
#if __cplusplus <= 199711L && \
(!defined(_MSC_VER) || _MSC_VER < 1600) && \
(!defined(__GNUC__) || \
(__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ < 40603))
#error A C++11 compatible compiler is required for FlatBuffers.
#error __cplusplus _MSC_VER __GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__
#endif
// The wire format uses a little endian encoding (since that's efficient for
// the common platforms).
#if !defined(FLATBUFFERS_LITTLEENDIAN)
#if defined(__GNUC__) || defined(__clang__)
#ifdef __BIG_ENDIAN__
#define FLATBUFFERS_LITTLEENDIAN 0
#else
#define FLATBUFFERS_LITTLEENDIAN 1
#endif // __BIG_ENDIAN__
#elif defined(_MSC_VER)
#if defined(_M_PPC)
#define FLATBUFFERS_LITTLEENDIAN 0
#else
#define FLATBUFFERS_LITTLEENDIAN 1
#endif
#else
#error Unable to determine endianness, define FLATBUFFERS_LITTLEENDIAN.
#endif
#endif // !defined(FLATBUFFERS_LITTLEENDIAN)
#define FLATBUFFERS_VERSION_MAJOR 1
#define FLATBUFFERS_VERSION_MINOR 0
#define FLATBUFFERS_VERSION_REVISION 0
#define FLATBUFFERS_STRING_EXPAND(X) #X
#define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X)
#if (!defined(_MSC_VER) || _MSC_VER > 1600) && \
(!defined(__GNUC__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 407))
#define FLATBUFFERS_FINAL_CLASS final
#else
#define FLATBUFFERS_FINAL_CLASS
#endif
namespace flatbuffers {
// Our default offset / size type, 32bit on purpose on 64bit systems.
// Also, using a consistent offset type maintains compatibility of serialized
// offset values between 32bit and 64bit systems.
typedef uint32_t uoffset_t;
// Signed offsets for references that can go in both directions.
typedef int32_t soffset_t;
// Offset/index used in v-tables, can be changed to uint8_t in
// format forks to save a bit of space if desired.
typedef uint16_t voffset_t;
typedef uintmax_t largest_scalar_t;
// Pointer to relinquished memory.
typedef std::unique_ptr<uint8_t, std::function<void(uint8_t * /* unused */)>>
unique_ptr_t;
// Wrapper for uoffset_t to allow safe template specialization.
template<typename T> struct Offset {
uoffset_t o;
Offset() : o(0) {}
Offset(uoffset_t _o) : o(_o) {}
Offset<void> Union() const { return Offset<void>(o); }
};
inline void EndianCheck() {
int endiantest = 1;
// If this fails, see FLATBUFFERS_LITTLEENDIAN above.
assert(*reinterpret_cast<char *>(&endiantest) == FLATBUFFERS_LITTLEENDIAN);
(void)endiantest;
}
template<typename T> T EndianScalar(T t) {
#if FLATBUFFERS_LITTLEENDIAN
return t;
#else
#if defined(_MSC_VER)
#pragma push_macro("__builtin_bswap16")
#pragma push_macro("__builtin_bswap32")
#pragma push_macro("__builtin_bswap64")
#define __builtin_bswap16 _byteswap_ushort
#define __builtin_bswap32 _byteswap_ulong
#define __builtin_bswap64 _byteswap_uint64
#endif
// If you're on the few remaining big endian platforms, we make the bold
// assumption you're also on gcc/clang, and thus have bswap intrinsics:
if (sizeof(T) == 1) { // Compile-time if-then's.
return t;
} else if (sizeof(T) == 2) {
auto r = __builtin_bswap16(*reinterpret_cast<uint16_t *>(&t));
return *reinterpret_cast<T *>(&r);
} else if (sizeof(T) == 4) {
auto r = __builtin_bswap32(*reinterpret_cast<uint32_t *>(&t));
return *reinterpret_cast<T *>(&r);
} else if (sizeof(T) == 8) {
auto r = __builtin_bswap64(*reinterpret_cast<uint64_t *>(&t));
return *reinterpret_cast<T *>(&r);
} else {
assert(0);
}
#if defined(_MSC_VER)
#pragma pop_macro("__builtin_bswap16")
#pragma pop_macro("__builtin_bswap32")
#pragma pop_macro("__builtin_bswap64")
#endif
#endif
}
template<typename T> T ReadScalar(const void *p) {
return EndianScalar(*reinterpret_cast<const T *>(p));
}
template<typename T> void WriteScalar(void *p, T t) {
*reinterpret_cast<T *>(p) = EndianScalar(t);
}
template<typename T> size_t AlignOf() {
#ifdef _MSC_VER
return __alignof(T);
#else
return alignof(T);
#endif
}
// When we read serialized data from memory, in the case of most scalars,
// we want to just read T, but in the case of Offset, we want to actually
// perform the indirection and return a pointer.
// The template specialization below does just that.
// It is wrapped in a struct since function templates can't overload on the
// return type like this.
// The typedef is for the convenience of callers of this function
// (avoiding the need for a trailing return decltype)
template<typename T> struct IndirectHelper {
typedef T return_type;
static const size_t element_stride = sizeof(T);
static return_type Read(const uint8_t *p, uoffset_t i) {
return EndianScalar((reinterpret_cast<const T *>(p))[i]);
}
};
template<typename T> struct IndirectHelper<Offset<T>> {
typedef const T *return_type;
static const size_t element_stride = sizeof(uoffset_t);
static return_type Read(const uint8_t *p, uoffset_t i) {
p += i * sizeof(uoffset_t);
return reinterpret_cast<return_type>(p + ReadScalar<uoffset_t>(p));
}
};
template<typename T> struct IndirectHelper<const T *> {
typedef const T *return_type;
static const size_t element_stride = sizeof(T);
static return_type Read(const uint8_t *p, uoffset_t i) {
return reinterpret_cast<const T *>(p + i * sizeof(T));
}
};
// An STL compatible iterator implementation for Vector below, effectively
// calling Get() for every element.
template<typename T, bool bConst>
struct VectorIterator : public
std::iterator < std::input_iterator_tag,
typename std::conditional < bConst,
const typename IndirectHelper<T>::return_type,
typename IndirectHelper<T>::return_type > ::type, uoffset_t > {
typedef std::iterator<std::input_iterator_tag,
typename std::conditional<bConst,
const typename IndirectHelper<T>::return_type,
typename IndirectHelper<T>::return_type>::type, uoffset_t> super_type;
public:
VectorIterator(const uint8_t *data, uoffset_t i) :
data_(data + IndirectHelper<T>::element_stride * i) {};
VectorIterator(const VectorIterator &other) : data_(other.data_) {}
VectorIterator(VectorIterator &&other) : data_(std::move(other.data_)) {}
VectorIterator &operator=(const VectorIterator &other) {
data_ = other.data_;
return *this;
}
VectorIterator &operator=(VectorIterator &&other) {
data_ = other.data_;
return *this;
}
bool operator==(const VectorIterator& other) const {
return data_ == other.data_;
}
bool operator!=(const VectorIterator& other) const {
return data_ != other.data_;
}
ptrdiff_t operator-(const VectorIterator& other) const {
return (data_ - other.data_) / IndirectHelper<T>::element_stride;
}
typename super_type::value_type operator *() const {
return IndirectHelper<T>::Read(data_, 0);
}
typename super_type::value_type operator->() const {
return IndirectHelper<T>::Read(data_, 0);
}
VectorIterator &operator++() {
data_ += IndirectHelper<T>::element_stride;
return *this;
}
VectorIterator operator++(int) {
VectorIterator temp(data_);
data_ += IndirectHelper<T>::element_stride;
return temp;
}
private:
const uint8_t *data_;
};
// This is used as a helper type for accessing vectors.
// Vector::data() assumes the vector elements start after the length field.
template<typename T> class Vector {
public:
typedef VectorIterator<T, false> iterator;
typedef VectorIterator<T, true> const_iterator;
uoffset_t size() const { return EndianScalar(length_); }
// Deprecated: use size(). Here for backwards compatibility.
uoffset_t Length() const { return size(); }
typedef typename IndirectHelper<T>::return_type return_type;
return_type Get(uoffset_t i) const {
assert(i < size());
return IndirectHelper<T>::Read(Data(), i);
}
// If this is a Vector of enums, T will be its storage type, not the enum
// type. This function makes it convenient to retrieve value with enum
// type E.
template<typename E> E GetEnum(uoffset_t i) const {
return static_cast<E>(Get(i));
}
const void *GetStructFromOffset(size_t o) const {
return reinterpret_cast<const void *>(Data() + o);
}
iterator begin() { return iterator(Data(), 0); }
const_iterator begin() const { return const_iterator(Data(), 0); }
iterator end() { return iterator(Data(), size()); }
const_iterator end() const { return const_iterator(Data(), size()); }
// Change elements if you have a non-const pointer to this object.
void Mutate(uoffset_t i, T val) {
assert(i < size());
WriteScalar(Data() + i * sizeof(T), val);
}
// The raw data in little endian format. Use with care.
const uint8_t *Data() const {
return reinterpret_cast<const uint8_t *>(&length_ + 1);
}
uint8_t *Data() {
return reinterpret_cast<uint8_t *>(&length_ + 1);
}
template<typename K> return_type LookupByKey(K key) const {
void *search_result = std::bsearch(&key, Data(), size(),
IndirectHelper<T>::element_stride, KeyCompare<K>);
if (!search_result) {
return nullptr; // Key not found.
}
const uint8_t *data = reinterpret_cast<const uint8_t *>(search_result);
return IndirectHelper<T>::Read(data, 0);
}
protected:
// This class is only used to access pre-existing data. Don't ever
// try to construct these manually.
Vector();
uoffset_t length_;
private:
template<typename K> static int KeyCompare(const void *ap, const void *bp) {
const K *key = reinterpret_cast<const K *>(ap);
const uint8_t *data = reinterpret_cast<const uint8_t *>(bp);
auto table = IndirectHelper<T>::Read(data, 0);
// std::bsearch compares with the operands transposed, so we negate the
// result here.
return -table->KeyCompareWithValue(*key);
}
};
// Convenient helper function to get the length of any vector, regardless
// of wether it is null or not (the field is not set).
template<typename T> static inline size_t VectorLength(const Vector<T> *v) {
return v ? v->Length() : 0;
}
struct String : public Vector<char> {
const char *c_str() const { return reinterpret_cast<const char *>(Data()); }
bool operator <(const String &o) const {
return strcmp(c_str(), o.c_str()) < 0;
}
};
// Simple indirection for buffer allocation, to allow this to be overridden
// with custom allocation (see the FlatBufferBuilder constructor).
class simple_allocator {
public:
virtual ~simple_allocator() {}
virtual uint8_t *allocate(size_t size) const { return new uint8_t[size]; }
virtual void deallocate(uint8_t *p) const { delete[] p; }
};
// This is a minimal replication of std::vector<uint8_t> functionality,
// except growing from higher to lower addresses. i.e push_back() inserts data
// in the lowest address in the vector.
class vector_downward {
public:
explicit vector_downward(size_t initial_size,
const simple_allocator &allocator)
: reserved_(initial_size),
buf_(allocator.allocate(reserved_)),
cur_(buf_ + reserved_),
allocator_(allocator) {
assert((initial_size & (sizeof(largest_scalar_t) - 1)) == 0);
}
~vector_downward() {
if (buf_)
allocator_.deallocate(buf_);
}
void clear() {
if (buf_ == nullptr)
buf_ = allocator_.allocate(reserved_);
cur_ = buf_ + reserved_;
}
// Relinquish the pointer to the caller.
unique_ptr_t release() {
// Actually deallocate from the start of the allocated memory.
std::function<void(uint8_t *)> deleter(
std::bind(&simple_allocator::deallocate, allocator_, buf_));
// Point to the desired offset.
unique_ptr_t retval(data(), deleter);
// Don't deallocate when this instance is destroyed.
buf_ = nullptr;
cur_ = nullptr;
return retval;
}
size_t growth_policy(size_t bytes) {
return (bytes / 2) & ~(sizeof(largest_scalar_t) - 1);
}
uint8_t *make_space(size_t len) {
if (len > static_cast<size_t>(cur_ - buf_)) {
auto old_size = size();
reserved_ += std::max(len, growth_policy(reserved_));
auto new_buf = allocator_.allocate(reserved_);
auto new_cur = new_buf + reserved_ - old_size;
memcpy(new_cur, cur_, old_size);
cur_ = new_cur;
allocator_.deallocate(buf_);
buf_ = new_buf;
}
cur_ -= len;
// Beyond this, signed offsets may not have enough range:
// (FlatBuffers > 2GB not supported).
assert(size() < (1UL << (sizeof(soffset_t) * 8 - 1)) - 1);
return cur_;
}
uoffset_t size() const {
assert(cur_ != nullptr && buf_ != nullptr);
return static_cast<uoffset_t>(reserved_ - (cur_ - buf_));
}
uint8_t *data() const {
assert(cur_ != nullptr);
return cur_;
}
uint8_t *data_at(size_t offset) { return buf_ + reserved_ - offset; }
// push() & fill() are most frequently called with small byte counts (<= 4),
// which is why we're using loops rather than calling memcpy/memset.
void push(const uint8_t *bytes, size_t num) {
auto dest = make_space(num);
for (size_t i = 0; i < num; i++) dest[i] = bytes[i];
}
void fill(size_t zero_pad_bytes) {
auto dest = make_space(zero_pad_bytes);
for (size_t i = 0; i < zero_pad_bytes; i++) dest[i] = 0;
}
void pop(size_t bytes_to_remove) { cur_ += bytes_to_remove; }
private:
// You shouldn't really be copying instances of this class.
vector_downward(const vector_downward &);
vector_downward &operator=(const vector_downward &);
size_t reserved_;
uint8_t *buf_;
uint8_t *cur_; // Points at location between empty (below) and used (above).
const simple_allocator &allocator_;
};
// Converts a Field ID to a virtual table offset.
inline voffset_t FieldIndexToOffset(voffset_t field_id) {
// Should correspond to what EndTable() below builds up.
const int fixed_fields = 2; // Vtable size and Object Size.
return (field_id + fixed_fields) * sizeof(voffset_t);
}
// Computes how many bytes you'd have to pad to be able to write an
// "scalar_size" scalar if the buffer had grown to "buf_size" (downwards in
// memory).
inline size_t PaddingBytes(size_t buf_size, size_t scalar_size) {
return ((~buf_size) + 1) & (scalar_size - 1);
}
// Helper class to hold data needed in creation of a flat buffer.
// To serialize data, you typically call one of the Create*() functions in
// the generated code, which in turn call a sequence of StartTable/PushElement/
// AddElement/EndTable, or the builtin CreateString/CreateVector functions.
// Do this is depth-first order to build up a tree to the root.
// Finish() wraps up the buffer ready for transport.
class FlatBufferBuilder FLATBUFFERS_FINAL_CLASS {
public:
explicit FlatBufferBuilder(uoffset_t initial_size = 1024,
const simple_allocator *allocator = nullptr)
: buf_(initial_size, allocator ? *allocator : default_allocator),
minalign_(1), force_defaults_(false) {
offsetbuf_.reserve(16); // Avoid first few reallocs.
vtables_.reserve(16);
EndianCheck();
}
// Reset all the state in this FlatBufferBuilder so it can be reused
// to construct another buffer.
void Clear() {
buf_.clear();
offsetbuf_.clear();
vtables_.clear();
minalign_ = 1;
}
// The current size of the serialized buffer, counting from the end.
uoffset_t GetSize() const { return buf_.size(); }
// Get the serialized buffer (after you call Finish()).
uint8_t *GetBufferPointer() const { return buf_.data(); }
// Get the released pointer to the serialized buffer.
// Don't attempt to use this FlatBufferBuilder afterwards!
unique_ptr_t ReleaseBufferPointer() { return buf_.release(); }
void ForceDefaults(bool fd) { force_defaults_ = fd; }
void Pad(size_t num_bytes) { buf_.fill(num_bytes); }
void Align(size_t elem_size) {
if (elem_size > minalign_) minalign_ = elem_size;
buf_.fill(PaddingBytes(buf_.size(), elem_size));
}
void PushBytes(const uint8_t *bytes, size_t size) {
buf_.push(bytes, size);
}
void PopBytes(size_t amount) { buf_.pop(amount); }
template<typename T> void AssertScalarT() {
// The code assumes power of 2 sizes and endian-swap-ability.
static_assert(std::is_scalar<T>::value
// The Offset<T> type is essentially a scalar but fails is_scalar.
|| sizeof(T) == sizeof(Offset<void>),
"T must be a scalar type");
}
// Write a single aligned scalar to the buffer
template<typename T> uoffset_t PushElement(T element) {
AssertScalarT<T>();
T litle_endian_element = EndianScalar(element);
Align(sizeof(T));
PushBytes(reinterpret_cast<uint8_t *>(&litle_endian_element), sizeof(T));
return GetSize();
}
template<typename T> uoffset_t PushElement(Offset<T> off) {
// Special case for offsets: see ReferTo below.
return PushElement(ReferTo(off.o));
}
// When writing fields, we track where they are, so we can create correct
// vtables later.
void TrackField(voffset_t field, uoffset_t off) {
FieldLoc fl = { off, field };
offsetbuf_.push_back(fl);
}
// Like PushElement, but additionally tracks the field this represents.
template<typename T> void AddElement(voffset_t field, T e, T def) {
// We don't serialize values equal to the default.
if (e == def && !force_defaults_) return;
auto off = PushElement(e);
TrackField(field, off);
}
template<typename T> void AddOffset(voffset_t field, Offset<T> off) {
if (!off.o) return; // An offset of 0 means NULL, don't store.
AddElement(field, ReferTo(off.o), static_cast<uoffset_t>(0));
}
template<typename T> void AddStruct(voffset_t field, const T *structptr) {
if (!structptr) return; // Default, don't store.
Align(AlignOf<T>());
PushBytes(reinterpret_cast<const uint8_t *>(structptr), sizeof(T));
TrackField(field, GetSize());
}
void AddStructOffset(voffset_t field, uoffset_t off) {
TrackField(field, off);
}
// Offsets initially are relative to the end of the buffer (downwards).
// This function converts them to be relative to the current location
// in the buffer (when stored here), pointing upwards.
uoffset_t ReferTo(uoffset_t off) {
Align(sizeof(uoffset_t)); // To ensure GetSize() below is correct.
assert(off <= GetSize()); // Must refer to something already in buffer.
return GetSize() - off + sizeof(uoffset_t);
}
void NotNested() {
// If you hit this, you're trying to construct an object when another
// hasn't finished yet.
assert(!offsetbuf_.size());
}
// From generated code (or from the parser), we call StartTable/EndTable
// with a sequence of AddElement calls in between.
uoffset_t StartTable() {
NotNested();
return GetSize();
}
// This finishes one serialized object by generating the vtable if it's a
// table, comparing it against existing vtables, and writing the
// resulting vtable offset.
uoffset_t EndTable(uoffset_t start, voffset_t numfields) {
// Write the vtable offset, which is the start of any Table.
// We fill it's value later.
auto vtableoffsetloc = PushElement<soffset_t>(0);
// Write a vtable, which consists entirely of voffset_t elements.
// It starts with the number of offsets, followed by a type id, followed
// by the offsets themselves. In reverse:
buf_.fill(numfields * sizeof(voffset_t));
auto table_object_size = vtableoffsetloc - start;
assert(table_object_size < 0x10000); // Vtable use 16bit offsets.
PushElement<voffset_t>(static_cast<voffset_t>(table_object_size));
PushElement<voffset_t>(FieldIndexToOffset(numfields));
// Write the offsets into the table
for (auto field_location = offsetbuf_.begin();
field_location != offsetbuf_.end();
++field_location) {
auto pos = static_cast<voffset_t>(vtableoffsetloc - field_location->off);
// If this asserts, it means you've set a field twice.
assert(!ReadScalar<voffset_t>(buf_.data() + field_location->id));
WriteScalar<voffset_t>(buf_.data() + field_location->id, pos);
}
offsetbuf_.clear();
auto vt1 = reinterpret_cast<voffset_t *>(buf_.data());
auto vt1_size = ReadScalar<voffset_t>(vt1);
auto vt_use = GetSize();
// See if we already have generated a vtable with this exact same
// layout before. If so, make it point to the old one, remove this one.
for (auto it = vtables_.begin(); it != vtables_.end(); ++it) {
auto vt2 = reinterpret_cast<voffset_t *>(buf_.data_at(*it));
auto vt2_size = *vt2;
if (vt1_size != vt2_size || memcmp(vt2, vt1, vt1_size)) continue;
vt_use = *it;
buf_.pop(GetSize() - vtableoffsetloc);
break;
}
// If this is a new vtable, remember it.
if (vt_use == GetSize()) {
vtables_.push_back(vt_use);
}
// Fill the vtable offset we created above.
// The offset points from the beginning of the object to where the
// vtable is stored.
// Offsets default direction is downward in memory for future format
// flexibility (storing all vtables at the start of the file).
WriteScalar(buf_.data_at(vtableoffsetloc),
static_cast<soffset_t>(vt_use) -
static_cast<soffset_t>(vtableoffsetloc));
return vtableoffsetloc;
}
// This checks a required field has been set in a given table that has
// just been constructed.
template<typename T> void Required(Offset<T> table, voffset_t field) {
auto table_ptr = buf_.data_at(table.o);
auto vtable_ptr = table_ptr - ReadScalar<soffset_t>(table_ptr);
bool ok = ReadScalar<voffset_t>(vtable_ptr + field) != 0;
// If this fails, the caller will show what field needs to be set.
assert(ok);
(void)ok;
}
uoffset_t StartStruct(size_t alignment) {
Align(alignment);
return GetSize();
}
uoffset_t EndStruct() { return GetSize(); }
void ClearOffsets() { offsetbuf_.clear(); }
// Aligns such that when "len" bytes are written, an object can be written
// after it with "alignment" without padding.
void PreAlign(size_t len, size_t alignment) {
buf_.fill(PaddingBytes(GetSize() + len, alignment));
}
template<typename T> void PreAlign(size_t len) {
AssertScalarT<T>();
PreAlign(len, sizeof(T));
}
// Functions to store strings, which are allowed to contain any binary data.
Offset<String> CreateString(const char *str, size_t len) {
NotNested();
PreAlign<uoffset_t>(len + 1); // Always 0-terminated.
buf_.fill(1);
PushBytes(reinterpret_cast<const uint8_t *>(str), len);
PushElement(static_cast<uoffset_t>(len));
return Offset<String>(GetSize());
}
Offset<String> CreateString(const char *str) {
return CreateString(str, strlen(str));
}
Offset<String> CreateString(const std::string &str) {
return CreateString(str.c_str(), str.length());
}
uoffset_t EndVector(size_t len) {
return PushElement(static_cast<uoffset_t>(len));
}
void StartVector(size_t len, size_t elemsize) {
PreAlign<uoffset_t>(len * elemsize);
PreAlign(len * elemsize, elemsize); // Just in case elemsize > uoffset_t.
}
uint8_t *ReserveElements(size_t len, size_t elemsize) {
return buf_.make_space(len * elemsize);
}
template<typename T> Offset<Vector<T>> CreateVector(const T *v, size_t len) {
NotNested();
StartVector(len, sizeof(T));
for (auto i = len; i > 0; ) {
PushElement(v[--i]);
}
return Offset<Vector<T>>(EndVector(len));
}
template<typename T> Offset<Vector<T>> CreateVector(const std::vector<T> &v) {
return CreateVector(v.data(), v.size());
}
template<typename T> Offset<Vector<const T *>> CreateVectorOfStructs(
const T *v, size_t len) {
NotNested();
StartVector(len * sizeof(T) / AlignOf<T>(), AlignOf<T>());
PushBytes(reinterpret_cast<const uint8_t *>(v), sizeof(T) * len);
return Offset<Vector<const T *>>(EndVector(len));
}
template<typename T> Offset<Vector<const T *>> CreateVectorOfStructs(
const std::vector<T> &v) {
return CreateVectorOfStructs(v.data(), v.size());
}
template<typename T> Offset<Vector<Offset<T>>> CreateVectorOfSortedTables(
Offset<T> *v, size_t len) {
std::sort(v, v + len,
[this](const Offset<T> &a, const Offset<T> &b) -> bool {
auto table_a = reinterpret_cast<T *>(buf_.data_at(a.o));
auto table_b = reinterpret_cast<T *>(buf_.data_at(b.o));
return table_a->KeyCompareLessThan(table_b);
}
);
return CreateVector(v, len);
}
template<typename T> Offset<Vector<Offset<T>>> CreateVectorOfSortedTables(
std::vector<T> *v) {
return CreateVectorOfSortedTables(v->data(), v->size());
}
// Specialized version for non-copying use cases. Write the data any time
// later to the returned buffer pointer `buf`.
uoffset_t CreateUninitializedVector(size_t len, size_t elemsize,
uint8_t **buf) {
NotNested();
StartVector(len, elemsize);
*buf = buf_.make_space(len * elemsize);
return EndVector(len);
}
template<typename T> Offset<Vector<T>> CreateUninitializedVector(
size_t len, T **buf) {
return CreateUninitializedVector(len, sizeof(T),
reinterpret_cast<uint8_t **>(buf));
}
static const size_t kFileIdentifierLength = 4;
// Finish serializing a buffer by writing the root offset.
// If a file_identifier is given, the buffer will be prefix with a standard
// FlatBuffers file header.
template<typename T> void Finish(Offset<T> root,
const char *file_identifier = nullptr) {
// This will cause the whole buffer to be aligned.
PreAlign(sizeof(uoffset_t) + (file_identifier ? kFileIdentifierLength : 0),
minalign_);
if (file_identifier) {
assert(strlen(file_identifier) == kFileIdentifierLength);
buf_.push(reinterpret_cast<const uint8_t *>(file_identifier),
kFileIdentifierLength);
}
PushElement(ReferTo(root.o)); // Location of root.
}
private:
// You shouldn't really be copying instances of this class.
FlatBufferBuilder(const FlatBufferBuilder &);
FlatBufferBuilder &operator=(const FlatBufferBuilder &);
struct FieldLoc {
uoffset_t off;
voffset_t id;
};
simple_allocator default_allocator;
vector_downward buf_;
// Accumulating offsets of table members while it is being built.
std::vector<FieldLoc> offsetbuf_;
std::vector<uoffset_t> vtables_; // todo: Could make this into a map?
size_t minalign_;
bool force_defaults_; // Serialize values equal to their defaults anyway.
};
// Helpers to get a typed pointer to the root object contained in the buffer.
template<typename T> T *GetMutableRoot(void *buf) {
EndianCheck();
return reinterpret_cast<T *>(reinterpret_cast<uint8_t *>(buf) +
EndianScalar(*reinterpret_cast<uoffset_t *>(buf)));
}
template<typename T> const T *GetRoot(const void *buf) {
return GetMutableRoot<T>(const_cast<void *>(buf));
}
// Helper to see if the identifier in a buffer has the expected value.
inline bool BufferHasIdentifier(const void *buf, const char *identifier) {
return strncmp(reinterpret_cast<const char *>(buf) + sizeof(uoffset_t),
identifier, FlatBufferBuilder::kFileIdentifierLength) == 0;
}
// Helper class to verify the integrity of a FlatBuffer
class Verifier FLATBUFFERS_FINAL_CLASS {
public:
Verifier(const uint8_t *buf, size_t buf_len, size_t _max_depth = 64,
size_t _max_tables = 1000000)
: buf_(buf), end_(buf + buf_len), depth_(0), max_depth_(_max_depth),
num_tables_(0), max_tables_(_max_tables)
{}
// Central location where any verification failures register.
bool Check(bool ok) const {
#ifdef FLATBUFFERS_DEBUG_VERIFICATION_FAILURE
assert(ok);
#endif
return ok;
}
// Verify any range within the buffer.
bool Verify(const void *elem, size_t elem_len) const {
return Check(elem >= buf_ && elem <= end_ - elem_len);
}
// Verify a range indicated by sizeof(T).
template<typename T> bool Verify(const void *elem) const {
return Verify(elem, sizeof(T));
}
// Verify a pointer (may be NULL) of a table type.
template<typename T> bool VerifyTable(const T *table) {
return !table || table->Verify(*this);
}
// Verify a pointer (may be NULL) of any vector type.
template<typename T> bool Verify(const Vector<T> *vec) const {
const uint8_t *end;
return !vec ||
VerifyVector(reinterpret_cast<const uint8_t *>(vec), sizeof(T),
&end);
}
// Verify a pointer (may be NULL) to string.
bool Verify(const String *str) const {
const uint8_t *end;
return !str ||
(VerifyVector(reinterpret_cast<const uint8_t *>(str), 1, &end) &&
Verify(end, 1) && // Must have terminator
Check(*end == '\0')); // Terminating byte must be 0.
}
// Common code between vectors and strings.
bool VerifyVector(const uint8_t *vec, size_t elem_size,
const uint8_t **end) const {
// Check we can read the size field.
if (!Verify<uoffset_t>(vec)) return false;
// Check the whole array. If this is a string, the byte past the array
// must be 0.
auto size = ReadScalar<uoffset_t>(vec);
auto byte_size = sizeof(size) + elem_size * size;
*end = vec + byte_size;
return Verify(vec, byte_size);
}
// Special case for string contents, after the above has been called.
bool VerifyVectorOfStrings(const Vector<Offset<String>> *vec) const {
if (vec) {
for (uoffset_t i = 0; i < vec->size(); i++) {
if (!Verify(vec->Get(i))) return false;
}
}
return true;
}
// Special case for table contents, after the above has been called.
template<typename T> bool VerifyVectorOfTables(const Vector<Offset<T>> *vec) {
if (vec) {
for (uoffset_t i = 0; i < vec->size(); i++) {
if (!vec->Get(i)->Verify(*this)) return false;
}
}
return true;
}
// Verify this whole buffer, starting with root type T.
template<typename T> bool VerifyBuffer() {
// Call T::Verify, which must be in the generated code for this type.
return Verify<uoffset_t>(buf_) &&
reinterpret_cast<const T *>(buf_ + ReadScalar<uoffset_t>(buf_))->
Verify(*this);
}
// Called at the start of a table to increase counters measuring data
// structure depth and amount, and possibly bails out with false if
// limits set by the constructor have been hit. Needs to be balanced
// with EndTable().
bool VerifyComplexity() {
depth_++;
num_tables_++;
return Check(depth_ <= max_depth_ && num_tables_ <= max_tables_);
}
// Called at the end of a table to pop the depth count.
bool EndTable() {
depth_--;
return true;
}
private:
const uint8_t *buf_;
const uint8_t *end_;
size_t depth_;
size_t max_depth_;
size_t num_tables_;
size_t max_tables_;
};
// "structs" are flat structures that do not have an offset table, thus
// always have all members present and do not support forwards/backwards
// compatible extensions.
class Struct FLATBUFFERS_FINAL_CLASS {
public:
template<typename T> T GetField(uoffset_t o) const {
return ReadScalar<T>(&data_[o]);
}
template<typename T> T GetPointer(uoffset_t o) const {
auto p = &data_[o];
return reinterpret_cast<T>(p + ReadScalar<uoffset_t>(p));
}
template<typename T> T GetStruct(uoffset_t o) const {
return reinterpret_cast<T>(&data_[o]);
}
private:
uint8_t data_[1];
};
// "tables" use an offset table (possibly shared) that allows fields to be
// omitted and added at will, but uses an extra indirection to read.
class Table {
public:
// This gets the field offset for any of the functions below it, or 0
// if the field was not present.
voffset_t GetOptionalFieldOffset(voffset_t field) const {
// The vtable offset is always at the start.
auto vtable = data_ - ReadScalar<soffset_t>(data_);
// The first element is the size of the vtable (fields + type id + itself).
auto vtsize = ReadScalar<voffset_t>(vtable);
// If the field we're accessing is outside the vtable, we're reading older
// data, so it's the same as if the offset was 0 (not present).
return field < vtsize ? ReadScalar<voffset_t>(vtable + field) : 0;
}
template<typename T> T GetField(voffset_t field, T defaultval) const {
auto field_offset = GetOptionalFieldOffset(field);
return field_offset ? ReadScalar<T>(data_ + field_offset) : defaultval;
}
template<typename P> P GetPointer(voffset_t field) {
auto field_offset = GetOptionalFieldOffset(field);
auto p = data_ + field_offset;
return field_offset
? reinterpret_cast<P>(p + ReadScalar<uoffset_t>(p))
: nullptr;
}
template<typename P> P GetPointer(voffset_t field) const {
return const_cast<Table *>(this)->GetPointer<P>(field);
}
template<typename P> P GetStruct(voffset_t field) const {
auto field_offset = GetOptionalFieldOffset(field);
auto p = const_cast<uint8_t *>(data_ + field_offset);
return field_offset ? reinterpret_cast<P>(p) : nullptr;
}
template<typename T> bool SetField(voffset_t field, T val) {
auto field_offset = GetOptionalFieldOffset(field);
if (!field_offset) return false;
WriteScalar(data_ + field_offset, val);
return true;
}
bool CheckField(voffset_t field) const {
return GetOptionalFieldOffset(field) != 0;
}
// Verify the vtable of this table.
// Call this once per table, followed by VerifyField once per field.
bool VerifyTableStart(Verifier &verifier) const {
// Check the vtable offset.
if (!verifier.Verify<soffset_t>(data_)) return false;
auto vtable = data_ - ReadScalar<soffset_t>(data_);
// Check the vtable size field, then check vtable fits in its entirety.
return verifier.VerifyComplexity() &&
verifier.Verify<voffset_t>(vtable) &&
verifier.Verify(vtable, ReadScalar<voffset_t>(vtable));
}
// Verify a particular field.
template<typename T> bool VerifyField(const Verifier &verifier,
voffset_t field) const {
// Calling GetOptionalFieldOffset should be safe now thanks to
// VerifyTable().
auto field_offset = GetOptionalFieldOffset(field);
// Check the actual field.
return !field_offset || verifier.Verify<T>(data_ + field_offset);
}
// VerifyField for required fields.
template<typename T> bool VerifyFieldRequired(const Verifier &verifier,
voffset_t field) const {
auto field_offset = GetOptionalFieldOffset(field);
return verifier.Check(field_offset != 0) &&
verifier.Verify<T>(data_ + field_offset);
}
private:
// private constructor & copy constructor: you obtain instances of this
// class by pointing to existing data only
Table();
Table(const Table &other);
uint8_t data_[1];
};
// Utility function for reverse lookups on the EnumNames*() functions
// (in the generated C++ code)
// names must be NULL terminated.
inline int LookupEnum(const char **names, const char *name) {
for (const char **p = names; *p; p++)
if (!strcmp(*p, name))
return static_cast<int>(p - names);
return -1;
}
// These macros allow us to layout a struct with a guarantee that they'll end
// up looking the same on different compilers and platforms.
// It does this by disallowing the compiler to do any padding, and then
// does padding itself by inserting extra padding fields that make every
// element aligned to its own size.
// Additionally, it manually sets the alignment of the struct as a whole,
// which is typically its largest element, or a custom size set in the schema
// by the force_align attribute.
// These are used in the generated code only.
#if defined(_MSC_VER)
#define MANUALLY_ALIGNED_STRUCT(alignment) \
__pragma(pack(1)); \
struct __declspec(align(alignment))
#define STRUCT_END(name, size) \
__pragma(pack()); \
static_assert(sizeof(name) == size, "compiler breaks packing rules")
#elif defined(__GNUC__) || defined(__clang__)
#define MANUALLY_ALIGNED_STRUCT(alignment) \
_Pragma("pack(1)") \
struct __attribute__((aligned(alignment)))
#define STRUCT_END(name, size) \
_Pragma("pack()") \
static_assert(sizeof(name) == size, "compiler breaks packing rules")
#else
#error Unknown compiler, please define structure alignment macros
#endif
// String which identifies the current version of FlatBuffers.
// flatbuffer_version_string is used by Google developers to identify which
// applications uploaded to Google Play are using this library. This allows
// the development team at Google to determine the popularity of the library.
// How it works: Applications that are uploaded to the Google Play Store are
// scanned for this version string. We track which applications are using it
// to measure popularity. You are free to remove it (of course) but we would
// appreciate if you left it in.
// Weak linkage is culled by VS & doesn't work on cygwin.
#if !defined(_WIN32) && !defined(__CYGWIN__)
extern volatile __attribute__((weak)) const char *flatbuffer_version_string;
volatile __attribute__((weak)) const char *flatbuffer_version_string =
"FlatBuffers "
FLATBUFFERS_STRING(FLATBUFFERS_VERSION_MAJOR) "."
FLATBUFFERS_STRING(FLATBUFFERS_VERSION_MINOR) "."
FLATBUFFERS_STRING(FLATBUFFERS_VERSION_REVISION);
#endif // !defined(_WIN32) && !defined(__CYGWIN__)
} // namespace flatbuffers
#endif // FLATBUFFERS_H_
default: native web
native: a.out
./a.out
web: a.out.js
node a.out.js
a.out: test_generated.h
c++ -std=c++11 test.cpp
a.out.js: test_generated.h
emcc -std=c++11 test.cpp -s SAFE_HEAP=1 -O2 --memory-init-file 0
test_generated.h:
flatc -c test.fbs
clean:
rm -f a.out a.out.js test_generated.h
#include <iostream>
#include <string>
#include "test_generated.h"
using namespace flatbuffers;
using namespace std;
static void test(int length) {
string data;
cout << "checking string of length " << length << endl;
for (int i = 0; i < length; i++) {
data += 'x';
}
FlatBufferBuilder fbb;
auto string = fbb.CreateString(data.c_str());
TestBuilder tb(fbb);
tb.add_value(string);
FinishTestBuffer(fbb, tb.Finish());
auto buffer = fbb.GetBufferPointer();
auto size = fbb.GetSize();
assert(Verifier(buffer, size).VerifyBuffer<Test>());
}
int main() {
for (int i = 0; i < 2048; i++) {
test(i);
}
cout << "success" << endl;
return 0;
}
table Test {
value: string;
}
root_type Test;
// automatically generated by the FlatBuffers compiler, do not modify
#ifndef FLATBUFFERS_GENERATED_TEST_H_
#define FLATBUFFERS_GENERATED_TEST_H_
#include "flatbuffers.h"
struct Test;
struct Test FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
const flatbuffers::String *value() const { return GetPointer<const flatbuffers::String *>(4); }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<flatbuffers::uoffset_t>(verifier, 4 /* value */) &&
verifier.Verify(value()) &&
verifier.EndTable();
}
};
struct TestBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
void add_value(flatbuffers::Offset<flatbuffers::String> value) { fbb_.AddOffset(4, value); }
TestBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
TestBuilder &operator=(const TestBuilder &);
flatbuffers::Offset<Test> Finish() {
auto o = flatbuffers::Offset<Test>(fbb_.EndTable(start_, 1));
return o;
}
};
inline flatbuffers::Offset<Test> CreateTest(flatbuffers::FlatBufferBuilder &_fbb,
flatbuffers::Offset<flatbuffers::String> value = 0) {
TestBuilder builder_(_fbb);
builder_.add_value(value);
return builder_.Finish();
}
inline const Test *GetTest(const void *buf) { return flatbuffers::GetRoot<Test>(buf); }
inline bool VerifyTestBuffer(flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer<Test>(); }
inline void FinishTestBuffer(flatbuffers::FlatBufferBuilder &fbb, flatbuffers::Offset<Test> root) { fbb.Finish(root); }
#endif // FLATBUFFERS_GENERATED_TEST_H_
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment