dragonbones-runtime
Version:
the tools to build dragonbones file for diffrent framework
18 lines • 244 kB
JavaScript
var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available"}}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}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}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(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return xhr.response}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};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.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}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]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return Runtime.dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,Array.prototype.slice.call(arguments))}}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}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){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\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=null;function ensureJSsource(){if(!JSsource){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){ensureJSsource();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){ensureJSsource();funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(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)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x: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(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||134217728;if(TOTAL_MEMORY<TOTAL_STACK)Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";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){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];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_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;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;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+11209232;__ATINIT__.push({func:(function(){__GLOBAL__sub_I_main_cpp()})},{func:(function(){__GLOBAL__sub_I_Matrix3_cpp()})},{func:(function(){__GLOBAL__sub_I_CanvasContext_cpp()})},{func:(function(){__GLOBAL__sub_I_WebGLRenderTarget_cpp()})},{func:(function(){__GLOBAL__sub_I_bind_cpp()})});memoryInitializer="egret.webassembly.js.mem";var tempDoublePtr=STATICTOP;STATICTOP+=16;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 embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return(new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n"))(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,(function(message){this.name=errorName;this.message=message;var stack=(new Error(message)).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}}));errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=(function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}});return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach((function(type){typeDependencies[type]=dependentTypes}));function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push((function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}}))}}));if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options){options=options||{};if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach((function(cb){cb()}))}}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":(function(){return undefined}),"toWireType":(function(destructors,o){return undefined})})}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&&!info.rethrown){if(info.destructor){Module["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}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(Runtime.setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(Runtime.setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(Runtime.setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(Runtime.setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;function _free(){}Module["_free"]=_free;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_lookupTypes(argCount,argTypes,argWireTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAP32[(argTypes>>2)+i],"parameter "+i)}return a}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module["count_emval_handles"]=count_emval_handles;Module["get_first_emval"]=get_first_emval}function __emval_register(value){switch(value){case undefined:{return 1};case null:{return 2};case true:{return 3};case false:{return 4};default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function __emval_call(handle,argCount,argTypes,argv){handle=requireHandle(handle);var types=__emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i<argCount;++i){var type=types[i];args[i]=type["readValueFromPointer"](argv);argv+=type["argPackAdvance"]}var rv=handle.apply(undefined,args);return __emval_register(rv)}Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function __embind_register_std_string(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){var length=HEAPU32[value>>2];var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}_free(value);return a.join("")}),"toWireType":(function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}function getTAElement(ta,index){return ta[index]}function getStringElement(string,index){return string.charCodeAt(index)}var getElement;if(value instanceof Uint8Array){getElement=getTAElement}else if(value instanceof Uint8ClampedArray){getElement=getTAElement}else if(value instanceof Int8Array){getElement=getTAElement}else if(typeof value==="string"){getElement=getStringElement}else{throwBindingError("Cannot pass non-string to std::string")}var length=value.length;var ptr=_malloc(4+length);HEAPU32[ptr>>2]=length;for(var i=0;i<length;++i){var charCode=getElement(value,i);if(charCode>255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=(function(value){return value});if(minRange===0){var bitshift=32-8*size;fromWireType=(function(value){return value<<bitshift>>>bitshift})}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return value|0}),"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}Module["_i64Add"]=_i64Add;var PTHREAD_SPECIFIC_NEXT_KEY=1;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(wt){return!!wt}),"toWireType":(function(destructors,o){return o?trueValue:falseValue}),"argPackAdvance":8,"readValueFromPointer":(function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])}),destructorFunction:null})}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv}),"toWireType":(function(destructors,value){return __emval_register(value)}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___cxa_allocate_exception(size){return _malloc(size)}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}Module["_bitshift64Lshr"]=_bitshift64Lshr;function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return(function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])});case 3:return(function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])});default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":(function(value){return value}),"toWireType":(function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value}),"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",(function(){}));dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var argsList="";var argsListWired="";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?", ":"")+"arg"+i;argsListWired+=(i!==0?", ":"")+"arg"+i+"Wired"}var invokerFnBody="return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n"+"if (arguments.length !== "+(argCount-2)+") {\n"+"throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount-2)+" args!');\n"+"}\n";var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}if(needsDestructorStack){invokerFnBody+="var destructors = [];\n"}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["throwBindingError","invoker","fn","runDestructors","retType","classParam"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+="var thisWired = classParam.toWireType("+dtorStack+", this);\n"}for(var i=0;i<argCount-2;++i){invokerFnBody+="var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n";args1.push("argType"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired="thisWired"+(argsListWired.length>0?", ":"")+argsListWired}var returns=argTypes[0].name!=="void";invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n";args1.push(paramName+"_dtor");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+="var ret = retType.fromWireType(rv);\n"+"return ret;\n"}else{}invokerFnBody+="}\n";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=(function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)});proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i<signature.length;++i){args.push("a"+i)}var name="dynCall_"+signature+"_"+rawFunction;var body="return function "+name+"("+args.join(", ")+") {\n";body+=" return dynCall(rawFunction"+(args.length?", ":"")+args.join(", ")+");\n";body+="};\n";return(new Function("dynCall","rawFunction",body))(dynCall,rawFunction)}var fp;if(Module["FUNCTION_TABLE_"+signature]!==undefined){fp=Module["FUNCTION_TABLE_"+signature][rawFunction]}else if(typeof FUNCTION_TABLE!=="undefined"){fp=FUNCTION_TABLE[rawFunction]}else{var dc=Module["asm"]["dynCall_"+signature];if(dc===undefined){dc=Module["asm"]["dynCall_"+signature.replace(/f/g,"d")];if(dc===undefined){throwBindingError("No dynCall invoker for signature: "+signature)}}fp=makeDynCaller(dc)}if(typeof fp!=="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=requireFunction(signature,rawInvoker);exposePublicSymbol(name,(function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)}),argCount-1);whenDependentTypesAreResolved([],argTypes,(function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]}))}function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}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_STATIC);Module["_llvm_cttz_i32"]=_llvm_cttz_i32;Module["___udivmoddi4"]=___udivmoddi4;Module["___udivdi3"]=___udivdi3;Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;Module["_memmove"]=_memmove;function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=(function(){return HEAPU16});shift=1}else if(charSize===4){getHeap=(function(){return HEAPU32});shift=2}registerType(rawType,{name:name,"fromWireType":(function(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAP[start+i])}_free(value);return a.join("")}),"toWireType":(function(destructors,value){var HEAP=getHeap();var length=value.length;var ptr=_malloc(4+length*charSize);HEAPU32[ptr>>2]=length;var start=ptr+4>>shift;for(var i=0;i<length;++i){HEAP[start+i]=value.charCodeAt(i)}if(destructors!==null){destructors.push(_free,ptr)}return ptr}),"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:(function(ptr){_free(ptr)})})}function ___gxx_personality_v0(){}Module["___uremdi3"]=___uremdi3;Module["_llvm_bswap_i32"]=_llvm_bswap_i32;function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j<len;j++){___syscall146.printChar(stream,HEAPU8[ptr+j])}ret+=len}return ret}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var ___dso_handle=STATICTOP;STATICTOP+=16;embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");__ATEXIT__.push((function(){var fflush=Module["_fflush"];if(fflush)fflush(0);var printChar=___syscall146.printChar;if(!printChar)return;var buffers=___syscall146.buffers;if(buffers[1].length)printChar(1,10);if(buffers[2].length)printChar(2,10)}));DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;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;Module["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;Module["setThrew"](1,0)}}function invoke_vd(index,a1){try{Module["dynCall_vd"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vid(index,a1,a2){try{Module["dynCall_vid"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["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;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiidd(index,a1,a2,a3,a4){try{return Module["dynCall_iiidd"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["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;Module["setThrew"](1,0)}}function invoke_vididddd(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_vididddd"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vidd(index,a1,a2,a3){try{Module["dynCall_vidd"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["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;Module["setThrew"](1,0)}}function invoke_viididddd(index,a1,a2,a3,a4,a5,a6,a7,a8){try{Module["dynCall_viididddd"](index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vdd(index,a1,a2){try{Module["dynCall_vdd"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viid(index,a1,a2,a3){try{Module["dynCall_viid"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["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;Module["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;Module["setThrew"](1,0)}}function invoke_viidd(index,a1,a2,a3,a4){try{Module["dynCall_viidd"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_iiii":invoke_iiii,"invoke_viiiiii":invoke_viiiiii,"invoke_vd":invoke_vd,"invoke_vid":invoke_vid,"invoke_viii":invoke_viii,"invoke_vi":invoke_vi,"invoke_iiidd":invoke_iiidd,"invoke_vii":invoke_vii,"invoke_vididddd":invoke_vididddd,"invoke_vidd":invoke_vidd,"invoke_ii":invoke_ii,"invoke_viididddd":invoke_viididddd,"invoke_vdd":invoke_vdd,"invoke_v":invoke_v,"invoke_viid":invoke_viid,"invoke_viiii":invoke_viiii,"invoke_viiiii":invoke_viiiii,"invoke_viidd":invoke_viidd,"__emval_call":__emval_call,"floatReadValueFromPointer":floatReadValueFromPointer,"simpleReadValueFromPointer":simpleReadValueFromPointer,"integerReadValueFromPointer":integerReadValueFromPointer,"__embind_register_memory_view":__embind_register_memory_view,"throwInternalError":throwInternalError,"get_first_emval":get_first_emval,"_abort":_abort,"throwBindingError":throwBindingError,"___gxx_personality_v0":___gxx_personality_v0,"extendError":extendError,"___assert_fail":___assert_fail,"__emval_lookupTypes":__emval_lookupTypes,"__embind_register_void":__embind_register_void,"___cxa_find_matching_catch":___cxa_find_matching_catch,"___syscall54":___syscall54,"getShiftFromSize":getShiftFromSize,"__embind_register_function":__embind_register_function,"embind_init_charCodes":embind_init_charCodes,"___setErrNo":___setErrNo,"__emval_register":__emval_register,"___cxa_allocate_exception":___cxa_allocate_exception,"_emscripten_memcpy_big":_emscripten_memcpy_big,"__embind_register_bool":__embind_register_bool,"___resumeException":___resumeException,"heap32VectorToArray":heap32VectorToArray,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"getTypeName":getTypeName,"___cxa_begin_catch":___cxa_begin_catch,"_pthread_getspecific":_pthread_getspecific,"createNamedFunction":createNamedFunction,"__embind_register_emval":__embind_register_emval,"readLatin1String":readLatin1String,"_embind_repr":_embind_repr,"throwUnboundTypeError":throwUnboundTypeError,"craftInvokerFunction":craftInvokerFunction,"__embind_register_integer":__embind_register_integer,"_pthread_once":_pthread_once,"__emval_decref":__emval_decref,"__embind_register_float":__embind_register_float,"requireRegisteredType":requireRegisteredType,"makeLegalFunctionName":makeLegalFunctionName,"_pthread_key_create":_pthread_key_create,"___unlock":___unlock,"__embind_register_std_wstring":__embind_register_std_wstring,"init_emval":init_emval,"whenDependentTypesAreResolved":whenDependentTypesAreResolved,"_pthread_setspecific":_pthread_setspecific,"___cxa_atexit":___cxa_atexit,"registerType":registerType,"___cxa_throw":___cxa_throw,"___lock":___lock,"___syscall6":___syscall6,"requireHandle":requireHandle,"ensureOverloadTable":ensureOverloadTable,"count_emval_handles":count_emval_handles,"requireFunction":requireFunction,"runDestructors":runDestructors,"new_":new_,"_atexit":_atexit,"___syscall140":___syscall140,"exposePublicSymbol":exposePublicSymbol,"__embind_register_std_string":__embind_register_std_string,"replacePublicSymbol":replacePublicSymbol,"___cxa_pure_virtual":___cxa_pure_virtual,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8,"___dso_handle":___dso_handle};// 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.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=env.cttz_i8|0;var o=env.___dso_handle|0;var p=0;var q=0;var r=0;var s=0;var t=global.NaN,u=global.Infinity;var v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0.0;var E=0;var F=global.Math.floor;var G=global.Math.abs;var H=global.Math.sqrt;var I=global.Math.pow;var J=global.Math.cos;var K=global.Math.sin;var L=global.Math.tan;var M=global.Math.acos;var N=global.Math.asin;var O=global.Math.atan;var P=global.Math.atan2;var Q=global.Math.exp;var R=global.Math.log;var S=global.Math.ceil;var T=global.Math.imul;var U=global.Math.min;var V=global.Math.max;var W=global.Math.clz32;var X=env.abort;var Y=env.assert;var Z=env.enlargeMemory;var _=env.getTotalMemory;var $=env.abortOnCannotGrowMemory;var aa=env.invoke_iiii;var ba=env.invoke_viiiiii;var ca=env.invoke_vd;var da=env.invoke_vid;var ea=env.invoke_viii;var fa=env.invoke_vi;var ga=env.invoke_iiidd;var ha=env.invoke_vii;var ia=env.invoke_vididddd;var ja=env.invoke_vidd;var ka=env.invoke_ii;var la=env.invoke_viididddd;var ma=env.invoke_vdd;var na=env.invoke_v;var oa=env.invoke_viid;var pa=env.invoke_viiii;var qa=env.invoke_viiiii;var ra=env.invoke_viidd;var sa=env.__emval_call;var ta=env.floatReadValueFromPointer;var ua=env.simpleReadValueFromPointer;var va=env.integerReadValueFromPointer;var wa=env.__embind_register_memory_view;var xa=env.throwInternalError;var ya=env.get_first_emval;var za=env._abort;var Aa=env.throwBindingError;var Ba=env.___gxx_personality_v0;var Ca=env.extendError;var Da=env.___assert_fail;var Ea=env.__emval_lookupTypes;var Fa=env.__embind_register_void;var Ga=env.___cxa_find_matching_catch;var Ha=env.___syscall54;var Ia=env.getShiftFromSize;var Ja=env.__embind_register_function;var Ka=env.embind_init_charCodes;var La=env.___setErrNo;var Ma=env.__emval_register;var Na=env.___cxa_allocate_exception;var Oa=env._emscripten_memcpy_big;var Pa=env.__embind_register_bool;var Qa=env.___resumeException;var Ra=env.heap32VectorToArray;var Sa=env.__ZSt18uncaught_exceptionv;var Ta=env.getTypeName;var Ua=env.___cxa_begin_catch;var Va=env._pthread_getspecific;var Wa=env.createNamedFunction;var Xa=env.__embind_register_emval;var Ya=env.readLatin1String;var Za=env._embind_repr;var _a=env.throwUnboundTypeError;var $a=env.craftInvokerFunction;var ab=env.__embind_register_integer;var bb=env._pthread_once;var cb=env.__emval_decref;var db=env.__embind_register_float;var eb=env.requireRegisteredType;var fb=env.makeLegalFunctionName;var gb=env._pthread_key_create;var hb=env.___unlock;var ib=env.__embind_register_std_wstring;var jb=env.init_emval;var kb=env.whenDependentTypesAreResolved;var lb=env._pthread_setspecific;var mb=env.___cxa_atexit;var nb=env.registerType;var ob=env.___cxa_throw;var pb=env.___lock;var qb=env.___syscall6;var rb=env.requireHandle;var sb=env.ensureOverloadTable;var tb=env.count_emval_handles;var ub=env.requireFunction;var vb=env.runDestructors;var wb=env.new_;var xb=env._atexit;var yb=env.___syscall140;var zb=env.exposePublicSymbol;var Ab=env.__embind_register_std_string;var Bb=env.replacePublicSymbol;var Cb=env.___cxa_pure_virtual;var Db=env.___syscall146;var Eb=0.0;
// EMSCRIPTEN_START_FUNCS
function Xb(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function Yb(){return l|0}function Zb(a){a=a|0;l=a}function _b(a,b){a=a|0;b=b|0;l=a;m=b}function $b(a,b){a=a|0;b=b|0;if(!p){p=a;q=b}}function ac(a){a=a|0;E=a}function bc(){return E|0}function cc(a){a=a|0;Ja(2120,1,696,2355,45,3);Ja(2131,2,700,2358,15,46);Ja(2145,2,708,2358,16,47);Ja(2161,3,716,2381,3,1);Ja(2168,1,696,2355,45,4);Ja(2174,1,696,2355,45,5);Ja(2181,2,728,2386,8,1);Ja(2200,1,696,2355,45,6);Ja(2207,1,696,2355,45,7);Ja(2218,8,736,2390,1,1);Ja(2238,4,768,2400,1,4);Ja(2259,4,784,2507,1,2);Ja(2273,4,784,2507,1,3);return}function dc(){var a=0;a=oi(100)|0;Cf(a,6407532,9608180,3207532);c[1878]=a;a=oi(68)|0;Je(a,3207532);c[1879]=a;c[1880]=c[1878];a=oi(44)|0;mg(a,7532);c[1881]=a;return}function ec(a){a=a|0;c[1880]=(a|0)==0?c[1879]|0:c[1878]|0;c[1882]=a+1;return}function fc(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+32|0;d=b;c[d>>2]=8e5;c[d+4>>2]=3207532;e=d+8|0;c[e>>2]=8e5;c[e+4>>2]=6407532;e=d+16|0;c[e>>2]=8e5;c[e+4>>2]=9608180;e=d+24|0;c[e>>2]=8e5;c[e+4>>2]=7532;cb(sa(c[a>>2]|0,4,680,d|0)|0);l=b;return}function gc(a,b){a=+a;b=+b;var d=0;d=c[1880]|0;Ob[c[(c[d>>2]|0)+16>>2]&7](d,a,b);return}function hc(){var a=0;a=c[1879]|0;Kb[c[(c[a>>2]|0)+20>>2]&63](a);a=c[1878]|0;Kb[c[(c[a>>2]|0)+20>>2]&63](a);og(c[1881]|0);gg();ef();return}function ic(){pg(c[1881]|0);return}function jc(a){a=+a;lg(hg()|0,a);return}function kc(){var a=0;a=c[1880]|0;Kb[c[(c[a>>2]|0)+8>>2]&63](a);a=c[1880]|0;Kb[c[(c[a>>2]|0)+4>>2]&63](a);a=c[1880]|0;Mb[c[c[a>>2]>>2]&31](a,c[(c[1881]|0)+4>>2]|0);a=c[1880]|0;Kb[c[(c[a>>2]|0)+12>>2]&63](a);return}function lc(){var a=0;pg(c[1881]|0);a=c[1880]|0;Kb[c[(c[a>>2]|0)+8>>2]&63](a);a=c[1880]|0;Kb[c[(c[a>>2]|0)+4>>2]&63](a);a=c[1880]|0;Mb[c[c[a>>2]>>2]&31](a,c[(c[1881]|0)+4>>2]|0);a=c[1880]|0;Kb[c[(c[a>>2]|0)+12>>2]&63](a);return}function mc(a,b,d,e,f,h,i){a=a|0;b=+b;d=d|0;e=+e;f=+f;h=+h;i=+i;var j=0,k=0.0,l=0.0,m=0.0;j=ng(c[1881]|0,a)|0;if(d){se(9607532,e,f,h,i);k=+g[2401886];l=-+g[2401883];m=-+g[2401884]}else{ve(9607532,nd(j)|0)|0;k=+g[2401884]+ +g[2401886];l=0.0;m=0.0}je((c[1880]|0)+4|0,b,0.0,0.0,-b,l*b,(k-m)*b)|0;d=c[1880]|0;Kb[c[(c[d>>2]|0)+8>>2]&63](d);d=c[1880]|0;Kb[c[(c[d>>2]|0)+4>>2]&63](d);d=c[1880]|0;Mb[c[c[d>>2]>>2]&31](d,j);j=c[1880]|0;Kb[c[(c[j>>2]|0)+12>>2]&63](j);ce((c[1880]|0)+4|0);return}function nc(a,b,d){a=a|0;b=+b;d=+d;var e=0;e=ng(c[1881]|0,a)|0;je((c[1880]|0)+4|0,1.0,0.0,0.0,1.0,b,d)|0;a=c[1880]|0;Kb[c[(c[a>>2]|0)+8>>2]&63](a);a=c[1880]|0;Kb[c[(c[a>>2]|0)+4>>2]&63](a);a=c[1880]|0;Mb[c[c[a>>2]>>2]&31](a,e);e=c[1880]|0;Kb[c[(c[e>>2]|0)+12>>2]&63](e);ce((c[1880]|0)+4|0);return}function oc(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;h=l;l=l+48|0;i=h+36|0;j=h+24|0;k=h+12|0;m=h;n=ng(c[1881]|0,d)|0;if(!n){c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;ti(i,2351,3);c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;wi(i);l=h;return}else{d=oi(8)|0;Zd(d,0.0,0.0);rd(n,e,f,d);c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;ti(i,2349,1);Ci(k,+g[d>>2]);n=a[i+11>>0]|0;o=n<<24>>24<0;p=Bi(k,o?c[i>>2]|0:i,o?c[i+4>>2]|0:n&255)|0;c[j>>2]=c[p>>2];c[j+4>>2]=c[p+4>>2];c[j+8>>2]=c[p+8>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;Ci(m,+g[d+4>>2]);d=a[m+11>>0]|0;p=d<<24>>24<0;n=Bi(j,p?c[m>>2]|0:m,p?c[m+4>>2]|0:d&255)|0;c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;wi(m);wi(j);wi(k);wi(i);l=h;return}}function pc(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;h=l;l=l+48|0;i=h+36|0;j=h+24|0;k=h+12|0;m=h;n=ng(c[1881]|0,d)|0;if(!n){c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;ti(i,2351,3);c[b>>2]=c[i>>2];c[b+4>>2]=c[i+4>>2];c[b+8>>2]=c[i+8>>2];c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;wi(i);l=h;return}else{d=oi(8)|0;Zd(d,0.0,0.0);sd(n,e,f,d);c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;ti(i,2349,1);Ci(k,+g[d>>2]);n=a[i+11>>0]|0;o=n<<24>>24<0;p=Bi(k,o?c[i>>2]|0:i,o?c[i+4>>2]|0:n&255)|0;c[j>>2]=c[p>>2];c[j+4>>2]=c[p+4>>2];c[j+8>>2]=c[p+8>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;Ci(m,+g[d+4>>2]);d=a[m+11>>0]|0;p=d<<24>>24<0;n=Bi(j,p?c[m>>2]|0:m,p?c[m+4>>2]|0:d&255)|0;c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;wi(m);wi(j);wi(k);wi(i);l=h;return}}function qc(a){a=a|0;Ua(a|0)|0;aj()}function rc(a){a=a|0;Sb[a&15]();return}function sc(a,b){a=a|0;b=b|0;Kb[a&63](b);return}function tc(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;Kb[a&63](e);cb(c[e>>2]|0);l=d;return}function uc(a,b,c){a=a|0;b=+b;c=+c;Rb[a&1](b,c);return}function vc(a,b){a=a|0;b=+b;Hb[a&1](b);return}function wc(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=+c;d=d|0;e=+e;f=+f;g=+g;h=+h;Nb[a&1](b,c,d,e,f,g,h);return}function xc(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;Ob[a&7](b,c,d);return}function yc(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0,i=0;g=l;l=l+16|0;h=g;Wb[b&3](h,d,e,f);d=a[h+11>>0]|0;b=d<<24>>24<0;i=b?c[h+4>>2]|0:d&255;d=ii(i+4|0)|0;c[d>>2]=i;Aj(d+4|0,(b?c[h>>2]|0:h)|0,i|0)|0;wi(h);l=g;return d|0}function zc(){qe(9607532,0.0,0.0,0.0,0.0);mb(48,9607532,o|0)|0;cc(0);return}function Ac(a){a=a|0;var b=0,d=0,e=0,f=0;c[a>>2]=808;c[a+268>>2]=0;b=c[a+292>>2]|0;if(!b){d=a+272|0;re(d);Sc(a);return}e=a+296|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-4-b|0)>>>2)<<2);qi(b);d=a+272|0;re(d);Sc(a);return}function Bc(a){a=a|0;var b=0,d=0,e=0,f=0;c[a>>2]=808;c[a+268>>2]=0;b=c[a+292>>2]|0;if(!b){d=a+272|0;re(d);Sc(a);qi(a);return}e=a+296|0;f=c[e>>2]|0;if((f|0)!=(b|0))c[e>>2]=f+(~((f+-4-b|0)>>>2)<<2);qi(b);d=a+272|0;re(d);Sc(a);qi(a);return}function Cc(b,c){b=b|0;c=+c;g[b+12>>2]=c;ad(b,1);a[b+304>>0]=1;return}function Dc(b,c){b=b|0;c=+c;g[b+16>>2]=c;ad(b,1);a[b+304>>0]=1;return}function Ec(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0,i=0.0,j=0.0,k=0.0,l=0;d=c[a+268>>2]|0;e=a+12|0;f=+g[e>>2];h=f==-1.0;if(!d){i=+g[a+16>>2];j=h?0.0:f;k=i==-1.0?0.0:i;se(b,0.0,0.0,j,k);return}else{l=a+16|0;j=+g[(h?d+12|0:e)>>2];k=+g[(+g[l>>2]==-1.0?d+16|0:l)>>2];se(b,0.0,0.0,j,k);return}}function Fc(b){b=b|0;Zc(b,1);c[b>>2]=808;c[b+268>>2]=0;qe(b+272|0,0.0,0.0,0.0,0.0);a[b+288>>0]=0;c[b+292>>2]=0;c[b+296>>2]=0;c[b+300>>2]=0;a[b+304>>0]=1;c[b+308>>2]=0;g[b+12>>2]=-1.0;g[b+16>>2]=-1.0;return}function Gc(a){a=a|0;var b=0,d=0,e=0.0,f=0.0;b=c[a+268>>2]|0;d=a+12|0;e=+g[d>>2];a=e==-1.0;if(!b){f=a?0.0:e;return +f}else{f=+g[(a?b+12|0:d)>>2];return +f}return +(0.0)}function Hc(a){a=a|0;var b=0,d=0,e=0.0,f=0.0;b=c[a+268>>2]|0;d=a+16|0;e=+g[d>>2];a=e==-1.0;if(!b){f=a?0.0:e;return +f}else{f=+g[(a?b+16|0:d)>>2];return +f}return +(0.0)}function Ic(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0;c[b+308>>2]=0;d=b+292|0;e=b+300|0;f=c[d>>2]|0;if((c[e>>2]|0)-f>>2>>>0<90){h=b+296|0;i=(c[h>>2]|0)-f|0;j=i>>2;k=oi(360)|0;l=k+(j<<2)|0;m=l+(0-j<<2)|0;if((i|0)>0)Aj(m|0,f|0,i|0)|0;c[d>>2]=m;c[h>>2]=l;c[e>>2]=k+360;if(f|0)qi(f)}f=c[b+268>>2]|0;n=+g[f+4>>2];o=+g[f+8>>2];k=f+12|0;p=+g[k>>2];e=f+16|0;q=+g[e>>2];r=+g[f+20>>2];s=+g[f+24>>2];l=b+12|0;t=+g[l>>2];h=t==-1.0;if(!f){u=+g[b+16>>2];v=u==-1.0?0.0:u;w=h?0.0:t}else{m=b+16|0;v=+g[(+g[m>>2]==-1.0?e:m)>>2];w=+g[(h?k:l)>>2]}t=+g[f+36>>2];u=+g[f+40>>2];x=+g[b+280>>2];y=+g[b+284>>2];z=w-(+g[f+28>>2]-p);w=v-(+g[f+32>>2]-q);v=+g[b+272>>2]-r;A=+g[b+276>>2]-s;if(y==0.0)if(!(A>=q)){B=A;C=1.0}else{B=A+-1.0;C=1.0}else{B=A;C=y}if(x==0.0)if(!(v>=p)){D=v;E=1.0}else{D=v+-1.0;E=1.0}else{D=v;E=x}x=n+D;y=E+x;F=p-D-E;G=o+B;H=C+G;I=q-B-C;if(B+I>w|D+F>z){Jc(b,n,o,p,q,r,s,z,w,t,u);return}q=r+v;p=r+(z-F);J=z-v-F;z=s+A;K=s+w-I;L=w-A-I;if(B>0.0){if(D>0.0)Jc(b,n,o,D,B,r,s,v,A,t,u);if(E>0.0)Jc(b,x,o,E,B,q,s,J,A,t,u);if(F>0.0)Jc(b,y,o,F,B,p,s,F,A,t,u)}if(C>0.0){if(D>0.0)Jc(b,n,G,D,C,r,z,v,L,t,u);if(E>0.0)Jc(b,x,G,E,C,q,z,J,L,t,u);if(F>0.0)Jc(b,y,G,F,C,p,z,F,L,t,u)}if(I>0.0){if(D>0.0)Jc(b,n,H,D,I,r,K,v,I,t,u);if(E>0.0)Jc(b,x,H,E,I,q,K,J,I,t,u);if(F>0.0)Jc(b,y,H,F,I,p,K,F,I,t,u)}a[b+304>>0]=0;return}function Jc(a,b,d,e,f,h,i,j,k,m,n){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;m=+m;n=+n;var 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;o=l;l=l+48|0;p=o+36|0;q=o+32|0;r=o+28|0;s=o+24|0;t=o+20|0;u=o+16|0;v=o+12|0;w=o+8|0;x=o+4|0;y=o;g[p>>2]=b;g[q>>2]=d;g[r>>2]=e;g[s>>2]=f;g[t>>2]=h;g[u>>2]=i;g[v>>2]=j;g[w>>2]=k;g[x>>2]=m;g[y>>2]=n;z=a+292|0;A=a+296|0;B=c[A>>2]|0;C=a+300|0;D=c[C>>2]|0;if((B|0)==(D|0)){Kc(z,p);E=c[A>>2]|0;F=c[C>>2]|0}else{g[B>>2]=b;p=B+4|0;c[A>>2]=p;E=p;F=D}if((E|0)==(F|0)){Kc(z,q);G=c[A>>2]|0;H=c[C>>2]|0}else{c[E>>2]=c[q>>2];q=E+4|0;c[A>>2]=q;G=q;H=F}if((G|0)==(H|0)){Kc(z,r);I=c[A>>2]|0;J=c[C>>2]|0}else{c[G>>2]=c[r>>2];r=G+4|0;c[A>>2]=r;I=r;J=H}if((I|0)==(J|0)){Kc(z,s);K=c[A>>2]|0;L=c[C>>2]|0}else{c[I>>2]=c[s>>2];s=I+4|0;c[A>>2]=s;K=s;L=J}if((K|0)==(L|0)){Kc(z,t);M=c[A>>2]|0;N=c[C>>2]|0}else{c[K>>2]=c[t>>2];t=K+4|0;c[A>>2]=t;M=t;N=L}if((M|0)==(N|0)){Kc(z,u);O=c[A>>2]|0;P=c[C>>2]|0}else{c[M>>2]=c[u>>2];u=M+4|0;c[A>>2]=u;O=u;P=N}if((O|0)==(P|0)){Kc(z,v);Q=c[A>>2]|0;R=c[C>>2]|0}else{c[O>>2]=c[v>>2];v=O+4|0;c[A>>2]=v;Q=v;R=P}if((Q|0)==(R|0)){Kc(z,w);S=c[A>>2]|0;T=c[C>>2]|0}else{c[Q>>2]=c[w>>2];w=Q+4|0;c[A>>2]=w;S=w;T=R}if((S|0)==(T|0)){Kc(z,x);U=c[A>>2]|0;V=c[C>>2]|0}else{c[S>>2]=c[x>>2];x=S+4|0;c[A>>2]=x;U=x;V=T}if((U|0)==(V|0)){Kc(z,y);W=a+308|0;X=c[W>>2]|0;Y=X+1|0;c[W>>2]=Y;l=o;return}else{c[U>>2]=c[y>>2];c[A>>2]=U+4;W=a+308|0;X=c[W>>2]|0;Y=X+1|0;c[W>>2]=Y;l=o;return}}function Kc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>2)+1|0;if(g>>>0>1073741823){mi(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=(c[e>>2]|0)-h|0;j=f>>1;k=f>>2>>>0<536870911?(j>>>0<g>>>0?g:j):1073741823;j=i-h>>2;do if(k)if(k>>>0>1073741823){g=Na(4)|0;qj(g);ob(g|0,496,41)}else{l=oi(k<<2)|0;break}else l=0;while(0);g=l+(j<<2)|0;c[g>>2]=c[b>>2];b=i-h|0;i=g+(0-(b>>2)<<2)|0;if((b|0)>0)Aj(i|0,h|0,b|0)|0;c[a>>2]=i;c[d>>2]=g+4;c[e>>2]=l+(k<<2);if(!h)return;qi(h);return}function Lc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;c[a>>2]=840;b=c[a+272>>2]|0;d=a+276|0;e=c[d>>2]|0;if((e|0)==(b|0))f=b;else{g=e+(~(((e+-44-b|0)>>>0)/44|0)*44|0)|0;c[d>>2]=g;f=g}if(!b){Sc(a);return}if((f|0)!=(b|0))c[d>>2]=f+(~(((f+-44-b|0)>>>0)/44|0)*44|0);qi(b);Sc(a);return}function Mc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;c[a>>2]=840;b=c[a+272>>2]|0;d=a+276|0;e=c[d>>2]|0;if((e|0)==(b|0))f=b;else{g=e+(~(((e+-44-b|0)>>>0)/44|0)*44|0)|0;c[d>>2]=g;f=g}if(!b){Sc(a);qi(a);return}if((f|0)!=(b|0))c[d>>2]=f+(~(((f+-44-b|0)>>>0)/44|0)*44|0);qi(b);Sc(a);qi(a);return}function Nc(a,b){a=a|0;b=b|0;se(b,0.0,0.0,+g[a+12>>2],+g[a+16>>2]);return}function Oc(a){a=a|0;Zc(a,7);c[a>>2]=840;c[a+272>>2]=0;c[a+276>>2]=0;c[a+280>>2]=0;return}function Pc(a){a=a|0;var b=0,d=0,e=0;b=c[a+272>>2]|0;d=a+276|0;e=c[d>>2]|0;if((e|0)==(b|0)){ad(a,1);return}c[d>>2]=e+(~(((e+-44-b|0)>>>0)/44|0)*44|0);ad(a,1);return}function Qc(a,b,d,e,f,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0;o=l;l=l+48|0;p=o;c[p>>2]=c[a+268>>2];g[p+4>>2]=+(b|0);g[p+8>>2]=+(d|0);g[p+12>>2]=+(e|0);g[p+16>>2]=+(f|0);g[p+20>>2]=+(h|0);g[p+24>>2]=+(i|0);g[p+28>>2]=+(j|0);g[p+32>>2]=+(k|0);g[p+36>>2]=+(m|0);g[p+40>>2]=+(n|0);n=a+276|0;m=c[n>>2]|0;if((m|0)==(c[a+280>>2]|0)){Rc(a+272|0,p);ad(a,1);l=o;return}else{k=m;m=p;p=k+44|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(p|0));c[n>>2]=(c[n>>2]|0)+44;ad(a,1);l=o;return}}function Rc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=((e-f|0)/44|0)+1|0;if(g>>>0>97612893){mi(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=((c[e>>2]|0)-h|0)/44|0;j=f<<1;k=f>>>0<48806446?(j>>>0<g>>>0?g:j):97612893;j=(i-h|0)/44|0;do if(k)if(k>>>0>97612893){g=Na(4)|0;qj(g);ob(g|0,496,41)}else{l=oi(k*44|0)|0;break}else l=0;while(0);g=l+(j*44|0)|0;j=l+(k*44|0)|0;k=g;l=b;b=k+44|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(b|0));l=i-h|0;i=g+(((l|0)/-44|0)*44|0)|0;if((l|0)>0)Aj(i|0,h|0,l|0)|0;c[a>>2]=i;c[d>>2]=g+44;c[e>>2]=j;if(!h)return;qi(h);return}function Sc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;c[a>>2]=872;c[a+104>>2]=0;c[a+108>>2]=0;c[a+132>>2]=0;b=a+140|0;d=c[b>>2]|0;if(d|0){eg(d);c[b>>2]=0}b=a+144|0;d=c[b>>2]|0;if(d|0){cf(d);c[b>>2]=0}re(a+252|0);b=c[a+112>>2]|0;if(!b){e=a+88|0;re(e);f=a+72|0;re(f);return}d=a+116|0;g=c[d>>2]|0;if((g|0)!=(b|0))c[d>>2]=g+(~((g+-4-b|0)>>>2)<<2);qi(b);e=a+88|0;re(e);f=a+72|0;re(f);return}function Tc(a){a=a|0;Sc(a);qi(a);return}function Uc(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0;g[b+12>>2]=d;a[b+137>>0]=1;e=c[b+132>>2]|0;a:do if((e|0?(f=e+137|0,(a[f>>0]|0)==0):0)?(a[f>>0]=1,f=c[e+132>>2]|0,f|0):0){h=f;do{f=h+137|0;if(a[f>>0]|0)break a;a[f>>0]=1;h=c[h+132>>2]|0}while((h|0)!=0)}while(0);e=c[b+108>>2]|0;if(!e)return;b=e+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[e+132>>2]|0;if(!b)return;else i=b;while(1){b=i+137|0;if(a[b>>0]|0){j=11;break}a[b>>0]=1;i=c[i+132>>2]|0;if(!i){j=11;break}}if((j|0)==11)return}function Vc(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0;g[b+16>>2]=d;a[b+137>>0]=1;e=c[b+132>>2]|0;a:do if((e|0?(f=e+137|0,(a[f>>0]|0)==0):0)?(a[f>>0]=1,f=c[e+132>>2]|0,f|0):0){h=f;do{f=h+137|0;if(a[f>>0]|0)break a;a[f>>0]=1;h=c[h+132>>2]|0}while((h|0)!=0)}while(0);e=c[b+108>>2]|0;if(!e)return;b=e+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[e+132>>2]|0;if(!b)return;else i=b;while(1){b=i+137|0;if(a[b>>0]|0){j=11;break}a[b>>0]=1;i=c[i+132>>2]|0;if(!i){j=11;break}}if((j|0)==11)return}function Wc(a,b){a=a|0;b=b|0;return}function Xc(a,b){a=a|0;b=b|0;return}function Yc(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(!b)return;d=a+4|0;a=c[d>>2]|0;if((a|0)!=(b|0))c[d>>2]=a+(~((a+-4-b|0)>>>2)<<2);qi(b);return}function Zc(d,e){d=d|0;e=e|0;c[d>>2]=872;c[d+4>>2]=e;a[d+8>>0]=1;e=d+12|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;g[d+32>>2]=1.0;g[d+36>>2]=1.0;e=d+40|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;g[d+64>>2]=1.0;c[d+68>>2]=0;qe(d+72|0,0.0,0.0,0.0,0.0);qe(d+88|0,0.0,0.0,0.0,0.0);e=d+104|0;c[d+140>>2]=0;c[d+144>>2]=0;a[d+148>>0]=0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;b[e+32>>1]=0;be(d+152|0);a[d+176>>0]=0;a[d+177>>0]=0;be(d+180|0);be(d+204|0);be(d+228|0);qe(d+252|0,0.0,0.0,0.0,0.0);return}function _c(b){b=b|0;var d=0;d=b+148|0;if(a[d>>0]|0?(a[b+177>>0]|0)==0:0){a[d>>0]=0;de(b+152|0,+g[b+32>>2],+g[b+36>>2],+g[b+40>>2],+g[b+44>>2])}c[b+168>>2]=c[b+20>>2];c[b+172>>2]=c[b+24>>2];return b+152|0}function $c(b,c,d,e,f,h,i){b=b|0;c=+c;d=+d;e=+e;f=+f;h=+h;i=+i;a[b+177>>0]=1;g[b+152>>2]=c;g[b+156>>2]=d;g[b+160>>2]=e;g[b+164>>2]=f;g[b+20>>2]=h;g[b+24>>2]=i;a[b+148>>0]=0;a[b+176>>0]=(c==1.0&d==0.0&e==0.0&f==1.0^1)&1;return}function ad(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;if(d)a[b+137>>0]=1;d=c[b+132>>2]|0;a:do if((d|0?(e=d+137|0,(a[e>>0]|0)==0):0)?(a[e>>0]=1,e=c[d+132>>2]|0,e|0):0){f=e;do{e=f+137|0;if(a[e>>0]|0)break a;a[e>>0]=1;f=c[f+132>>2]|0}while((f|0)!=0)}while(0);d=c[b+108>>2]|0;if(!d)return;b=d+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[d+132>>2]|0;if(!b)return;else g=b;while(1){b=g+137|0;if(a[b>>0]|0){h=13;break}a[b>>0]=1;g=c[g+132>>2]|0;if(!g){h=13;break}}if((h|0)==13)return}function bd(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0;g[b+20>>2]=d;e=c[b+132>>2]|0;a:do if((e|0?(f=e+137|0,(a[f>>0]|0)==0):0)?(a[f>>0]=1,f=c[e+132>>2]|0,f|0):0){h=f;do{f=h+137|0;if(a[f>>0]|0)break a;a[f>>0]=1;h=c[h+132>>2]|0}while((h|0)!=0)}while(0);e=c[b+108>>2]|0;if(!e)return;b=e+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[e+132>>2]|0;if(!b)return;else i=b;while(1){b=i+137|0;if(a[b>>0]|0){j=11;break}a[b>>0]=1;i=c[i+132>>2]|0;if(!i){j=11;break}}if((j|0)==11)return}function cd(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0;g[b+24>>2]=d;e=c[b+132>>2]|0;a:do if((e|0?(f=e+137|0,(a[f>>0]|0)==0):0)?(a[f>>0]=1,f=c[e+132>>2]|0,f|0):0){h=f;do{f=h+137|0;if(a[f>>0]|0)break a;a[f>>0]=1;h=c[h+132>>2]|0}while((h|0)!=0)}while(0);e=c[b+108>>2]|0;if(!e)return;b=e+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[e+132>>2]|0;if(!b)return;else i=b;while(1){b=i+137|0;if(a[b>>0]|0){j=11;break}a[b>>0]=1;i=c[i+132>>2]|0;if(!i){j=11;break}}if((j|0)==11)return}function dd(b,d){b=b|0;d=+d;var e=0,f=0.0,h=0.0,i=0,j=0.0,k=0,l=0,m=0;e=b+28|0;f=+g[e>>2];if(f==d)return;h=(d-f)*+g[265];i=b+40|0;f=+g[i>>2]+h;g[i>>2]=f;i=b+44|0;j=h+ +g[i>>2];g[i>>2]=j;g[e>>2]=d;a[b+148>>0]=1;if(+g[b+32>>2]==1.0)k=((f==0.0?+g[b+36>>2]==1.0:0)&j==0.0^1)&1;else k=1;a[b+176>>0]=k;k=c[b+132>>2]|0;a:do if((k|0?(e=k+137|0,(a[e>>0]|0)==0):0)?(a[e>>0]=1,e=c[k+132>>2]|0,e|0):0){i=e;do{e=i+137|0;if(a[e>>0]|0)break a;a[e>>0]=1;i=c[i+132>>2]|0}while((i|0)!=0)}while(0);k=c[b+108>>2]|0;if(!k)return;b=k+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[k+132>>2]|0;if(!b)return;else l=b;while(1){b=l+137|0;if(a[b>>0]|0){m=14;break}a[b>>0]=1;l=c[l+132>>2]|0;if(!l){m=14;break}}if((m|0)==14)return}function ed(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0;g[b+32>>2]=d;a[b+148>>0]=1;if(((d==1.0?+g[b+36>>2]==1.0:0)?+g[b+40>>2]==0.0:0)?+g[b+44>>2]==0.0:0)e=0;else e=1;a[b+176>>0]=e;e=c[b+132>>2]|0;a:do if((e|0?(f=e+137|0,(a[f>>0]|0)==0):0)?(a[f>>0]=1,f=c[e+132>>2]|0,f|0):0){h=f;do{f=h+137|0;if(a[f>>0]|0)break a;a[f>>0]=1;h=c[h+132>>2]|0}while((h|0)!=0)}while(0);e=c[b+108>>2]|0;if(!e)return;b=e+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[e+132>>2]|0;if(!b)return;else i=b;while(1){b=i+137|0;if(a[b>>0]|0){j=16;break}a[b>>0]=1;i=c[i+132>>2]|0;if(!i){j=16;break}}if((j|0)==16)return}function fd(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0;g[b+36>>2]=d;a[b+148>>0]=1;if(((d==1.0?+g[b+32>>2]==1.0:0)?+g[b+40>>2]==0.0:0)?+g[b+44>>2]==0.0:0)e=0;else e=1;a[b+176>>0]=e;e=c[b+132>>2]|0;a:do if((e|0?(f=e+137|0,(a[f>>0]|0)==0):0)?(a[f>>0]=1,f=c[e+132>>2]|0,f|0):0){h=f;do{f=h+137|0;if(a[f>>0]|0)break a;a[f>>0]=1;h=c[h+132>>2]|0}while((h|0)!=0)}while(0);e=c[b+108>>2]|0;if(!e)return;b=e+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[e+132>>2]|0;if(!b)return;else i=b;while(1){b=i+137|0;if(a[b>>0]|0){j=15;break}a[b>>0]=1;i=c[i+132>>2]|0;if(!i){j=15;break}}if((j|0)==15)return}function gd(b,d){b=b|0;d=+d;var e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0;e=b+48|0;if(+g[e>>2]==d)return;g[e>>2]=d;f=+Wh(d,360.0);d=f;if(!(f>180.0))if(f<-180.0)h=d+360.0;else h=d;else h=d+-360.0;d=h*+g[265];g[b+40>>2]=d;a[b+148>>0]=1;if((+g[b+32>>2]==1.0?(d==0.0?+g[b+36>>2]==1.0:0):0)?+g[b+44>>2]==0.0:0)i=0;else i=1;a[b+176>>0]=i;i=c[b+132>>2]|0;a:do if((i|0?(e=i+137|0,(a[e>>0]|0)==0):0)?(a[e>>0]=1,e=c[i+132>>2]|0,e|0):0){j=e;do{e=j+137|0;if(a[e>>0]|0)break a;a[e>>0]=1;j=c[j+132>>2]|0}while((j|0)!=0)}while(0);i=c[b+108>>2]|0;if(!i)return;b=i+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[i+132>>2]|0;if(!b)return;else k=b;while(1){b=k+137|0;if(a[b>>0]|0){l=20;break}a[b>>0]=1;k=c[k+132>>2]|0;if(!k){l=20;break}}if((l|0)==20)return}function hd(b,d){b=b|0;d=+d;var e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0;e=b+52|0;if(+g[e>>2]==d)return;g[e>>2]=d;f=+Wh(d,360.0);d=f;if(!(f>180.0))if(f<-180.0)h=d+360.0;else h=d;else h=d+-360.0;d=h*+g[265];g[b+44>>2]=d;a[b+148>>0]=1;if(+g[b+32>>2]==1.0?+g[b+36>>2]==1.0:0)i=(d!=0.0?1:+g[b+40>>2]!=0.0)&1;else i=1;a[b+176>>0]=i;i=c[b+132>>2]|0;a:do if((i|0?(e=i+137|0,(a[e>>0]|0)==0):0)?(a[e>>0]=1,e=c[i+132>>2]|0,e|0):0){j=e;do{e=j+137|0;if(a[e>>0]|0)break a;a[e>>0]=1;j=c[j+132>>2]|0}while((j|0)!=0)}while(0);i=c[b+108>>2]|0;if(!i)return;b=i+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[i+132>>2]|0;if(!b)return;else k=b;while(1){b=k+137|0;if(a[b>>0]|0){l=19;break}a[b>>0]=1;k=c[k+132>>2]|0;if(!k){l=19;break}}if((l|0)==19)return}function id(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0;g[b+56>>2]=d;e=c[b+132>>2]|0;a:do if((e|0?(f=e+137|0,(a[f>>0]|0)==0):0)?(a[f>>0]=1,f=c[e+132>>2]|0,f|0):0){h=f;do{f=h+137|0;if(a[f>>0]|0)break a;a[f>>0]=1;h=c[h+132>>2]|0}while((h|0)!=0)}while(0);e=c[b+108>>2]|0;if(!e)return;b=e+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[e+132>>2]|0;if(!b)return;else i=b;while(1){b=i+137|0;if(a[b>>0]|0){j=11;break}a[b>>0]=1;i=c[i+132>>2]|0;if(!i){j=11;break}}if((j|0)==11)return}function jd(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0;g[b+60>>2]=d;e=c[b+132>>2]|0;a:do if((e|0?(f=e+137|0,(a[f>>0]|0)==0):0)?(a[f>>0]=1,f=c[e+132>>2]|0,f|0):0){h=f;do{f=h+137|0;if(a[f>>0]|0)break a;a[f>>0]=1;h=c[h+132>>2]|0}while((h|0)!=0)}while(0);e=c[b+108>>2]|0;if(!e)return;b=e+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[e+132>>2]|0;if(!b)return;else i=b;while(1){b=i+137|0;if(a[b>>0]|0){j=11;break}a[b>>0]=1;i=c[i+132>>2]|0;if(!i){j=11;break}}if((j|0)==11)return}function kd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;a[b+8>>0]=d&1;d=c[b+132>>2]|0;a:do if((d|0?(e=d+137|0,(a[e>>0]|0)==0):0)?(a[e>>0]=1,e=c[d+132>>2]|0,e|0):0){f=e;do{e=f+137|0;if(a[e>>0]|0)break a;a[e>>0]=1;f=c[f+132>>2]|0}while((f|0)!=0)}while(0);d=c[b+108>>2]|0;if(!d)return;b=d+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[d+132>>2]|0;if(!b)return;else g=b;while(1){b=g+137|0;if(a[b>>0]|0){h=11;break}a[b>>0]=1;g=c[g+132>>2]|0;if(!g){h=11;break}}if((h|0)==11)return}function ld(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0;g[b+64>>2]=d;e=c[b+132>>2]|0;a:do if((e|0?(f=e+137|0,(a[f>>0]|0)==0):0)?(a[f>>0]=1,f=c[e+132>>2]|0,f|0):0){h=f;do{f=h+137|0;if(a[f>>0]|0)break a;a[f>>0]=1;h=c[h+132>>2]|0}while((h|0)!=0)}while(0);e=c[b+108>>2]|0;if(!e)return;b=e+137|0;if(a[b>>0]|0)return;a[b>>0]=1;b=c[e+132>>2]|0;if(!b)return;else i=b;while(1){b=i+137|0;if(a[b>>0]|0){j=11;break}a[b>>0]=1;i=c[i+132>>2]|0;if(!i){j=11;break}}if((j|0)==11)return}function md(b,c){b=b|0;c=c|0;var e=0;e=b+136|0;if((d[e>>0]|0|0)==(c&1|0))return;if(c)a[b+137>>0]=1;a[e>>0]=c&1;return}function nd(a){a=a|0;var b=0,d=0,e=0,f=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;b=a+252|0;te(b);Mb[c[(c[a>>2]|0)+16>>2]&31](a,b);Mb[c[(c[a>>2]|0)+20>>2]&31](a,b);d=c[a+112>>2]|0;e=d;if((c[a+116>>2]|0)!=(d|0)?(d=c[a+124>>2]|0,(d|0)>0):0){f=0;h=0.0;i=0.0;j=0.0;k=0.0;while(1){l=c[e+(f<<2)>>2]|0;if(!l){m=h;n=i;o=j;p=k}else{m=h+ +g[l+16>>2];n=i+ +g[l+8>>2];o=j-+g[l+12>>2];p=k-+g[l+4>>2]}f=f+1|0;if((f|0)==(d|0)){q=m;r=n;s=o;t=p;break}else{h=m;i=n;j=o;k=p}}}else{q=0.0;r=0.0;s=0.0;t=0.0}p=s<0.0?s:0.0;s=t<0.0?t:0.0;g[b>>2]=+g[b>>2]+p;d=a+256|0;g[d>>2]=s+ +g[d>>2];d=a+260|0;g[d>>2]=(q>0.0?q:0.0)-p+ +g[d>>2];d=a+264|0;g[d>>2]=(r>0.0?r:0.0)-s+ +g[d>>2];return b|0}function od(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;ve(c,nd(a)|0)|0;if((b|0)==(a|0))return c|0;if(!b)d=pd(a)|0;else{e=a+228|0;f=b+204|0;ne(pd(b)|0,f);ke(f,pd(a)|0,e);d=e}me(d,c);return c|0}function pd(b){b=b|0;var d=0,e=0,f=0,h=0.0,i=0.0;d=b+180|0;e=c[b+132>>2]|0;if(!e){f=b+148|0;if(a[f>>0]|0?(a[b+177>>0]|0)==0:0){a[f>>0]=0;de(b+152|0,+g[b+32>>2],+g[b+36>>2],+g[b+40>>2],+g[b+44>>2])}c[b+168>>2]=c[b+20>>2];c[b+172>>2]=c[b+24>>2];le(d,b+152|0)|0}else{f=pd(e)|0;e=b+148|0;if(a[e>>0]|0?(a[b+177>>0]|0)==0:0){a[e>>0]=0;de(b+152|0,+g[b+32>>2],+g[b+36>>2],+g[b+40>>2],+g[b+44>>2])}c[b+168>>2]=c[b+20>>2];c[b+172>>2]=c[b+24>>2];ke(f,b+152|0,d)}h=+g[b+56>>2];i=+g[b+60>>2];f=b+88|0;if(!(ue(f)|0)){ke(d,je(b+228|0,1.0,0.0,0.0,1.0,-+g[f>>2]-h,-+g[b+92>>2]-i)|0,d);return d|0}if(!(h!=0.0|i!=0.0))return d|0;ke(d,je(b+228|0,1.0,0.0,0.0,1.0,-h,-i)|0,d);return d|0}function qd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0;f=d+204|0;ne(pd(d)|0,f);if(!(+g[f>>2]==0.0)?!(+g[d+216>>2]==0.0):0){ke(f,e,e);return}f=c[d+128>>2]|0;ce(e);if((c[b+128>>2]|0)<=(f|0))return;d=b+228|0;h=b;do{b=h+88|0;if(!(ue(b)|0))oe(e,je(d,1.0,0.0,0.0,1.0,-+g[b>>2],-+g[h+92>>2])|0);b=h+148|0;if(a[b>>0]|0?(a[h+177>>0]|0)==0:0){a[b>>0]=0;de(h+152|0,+g[h+32>>2],+g[h+36>>2],+g[h+40>>2],+g[h+44>>2])}c[h+168>>2]=c[h+20>>2];c[h+172>>2]=c[h+24>>2];oe(e,h+152|0);h=c[h+132>>2]|0}while((c[h+128>>2]|0)>(f|0));return}function rd(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;pe(pd(a)|0,b,c,d);return}function sd(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;var e=0;e=a+204|0;ne(pd(a)|0,e);pe(e,b,c,d);return}function td(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c[a>>2]=904;b=a+268|0;d=c[b>>2]|0;e=a+272|0;f=c[e>>2]|0;if(d>>>0<f>>>0){g=d;do{c[g>>2]=0;g=g+4|0;h=c[e>>2]|0}while(g>>>0<h>>>0);i=h;j=c[b>>2]|0}else{i=f;j=d}if((i|0)==(j|0))k=j;else{d=i+(~((i+-4-j|0)>>>2)<<2)|0;c[e>>2]=d;k=d}if(!j){Sc(a);return}if((k|0)!=(j|0))c[e>>2]=k+(~((k+-4-j|0)>>>2)<<2);qi(j);Sc(a);return}function ud(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c[a>>2]=904;b=a+268|0;d=c[b>>2]|0;e=a+272|0;f=c[e>>2]|0;if(d>>>0<f>>>0){g=d;do{c[g>>2]=0;g=g+4|0;h=c[e>>2]|0}while(g>>>0<h>>>0);i=h;j=c[b>>2]|0}else{i=f;j=d}d=j;f=i+(~((i+-4-d|0)>>>2)<<2)|0;if((i|0)==(j|0))k=j;else{c[e>>2]=f;k=f}if(!j){Sc(a);qi(a);return}if((k|0)!=(j|0))c[e>>2]=k+(~((k+-4-d|0)>>>2)<<2);qi(j);Sc(a);qi(a);return}function vd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0;d=a+268|0;e=(c[a+272>>2]|0)-(c[d>>2]|0)|0;f=e>>2;if(!f)return;if((e|0)>-4){e=a+252|0;h=0;i=-1;j=0.0;k=0.0;l=0.0;m=0.0;while(1){if((i|0)==-1)n=b;else{od(c[(c[d>>2]|0)+(i<<2)>>2]|0,a,e)|0;n=e}do if(!(ue(n)|0)){o=+g[n>>2];p=+g[n+8>>2];q=+g[n+4>>2];r=+g[n+12>>2];if(h){s=o+p;t=q+r;u=1;v=j>s?j:s;w=k<o?k:o;x=l>t?l:t;y=m<q?m:q;break}else{u=1;v=o+p;w=o;x=q+r;y=q;break}}else{u=h;v=j;w=k;x=l;y=m}while(0);i=i+1|0;if((i|0)>=(f|0)){z=v;A=w;B=x;C=y;break}else{h=u;j=v;k=w;l=x;m=y}}}else{z=0.0;A=0.0;B=0.0;C=0.0}se(b,A,C,z-A,B-C);return}function wd(a){a=a|0;Zc(a,2);c[a>>2]=904;c[a+268>>2]=0;c[a+272>>2]=0;c[a+276>>2]=0;return}function xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d;c[e>>2]=b;f=a+272|0;g=c[f>>2]|0;if((g|0)==(c[a+276>>2]|0))yd(a+268|0,e);else{c[g>>2]=b;c[f>>2]=(c[f>>2]|0)+4}f=c[e>>2]|0;c[f+132>>2]=a;c[f+128>>2]=(c[a+128>>2]|0)+1;l=d;return}function yd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>2)+1|0;if(g>>>0>1073741823){mi(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=(c[e>>2]|0)-h|0;j=f>>1;k=f>>2>>>0<536870911?(j>>>0<g>>>0?g:j):1073741823;j=i-h>>2;do if(k)if(k>>>0>1073741823){g=Na(4)|0;qj(g);ob(g|0,496,41)}else{l=oi(k<<2)|0;break}else l=0;while(0);g=l+(j<<2)|0;c[g>>2]=c[b>>2];b=i-h|0;i=g+(0-(b>>2)<<2)|0;if((b|0)>0)Aj(i|0,h|0,b|0)|0;c[a>>2]=i;c[d>>2]=g+4;c[e>>2]=l+(k<<2);if(!h)return;qi(h);return}function zd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+16|0;f=e+8|0;g=e+4|0;h=e;c[g>>2]=b;b=a+268|0;i=c[b>>2]|0;j=(c[a+272>>2]|0)-i>>2;c[h>>2]=i+((j>>>0<d>>>0?j:(d|0)>0?d:0)<<2);c[f>>2]=c[h>>2];Ad(b,f,g)|0;f=c[g>>2]|0;c[f+132>>2]=a;c[f+128>>2]=(c[a+128>>2]|0)+1;l=e;return}function Ad(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;e=c[a>>2]|0;f=e;g=e+((c[b>>2]|0)-f>>2<<2)|0;b=a+4|0;h=c[b>>2]|0;i=a+8|0;j=c[i>>2]|0;k=h;l=j;if(h>>>0<j>>>0){if((g|0)==(h|0)){c[g>>2]=c[d>>2];c[b>>2]=(c[b>>2]|0)+4;m=g;return m|0}j=k-(g+4)|0;n=j>>2;o=g+(n<<2)|0;if(o>>>0<h>>>0){p=h;q=o;do{c[p>>2]=c[q>>2];q=q+4|0;p=(c[b>>2]|0)+4|0;c[b>>2]=p}while(q>>>0<h>>>0)}if(n|0)Hj(h+(0-n<<2)|0,g|0,j|0)|0;if(g>>>0>d>>>0)r=d;else r=(c[b>>2]|0)>>>0>d>>>0?d+4|0:d;c[g>>2]=c[r>>2];m=g;return m|0}r=(k-f>>2)+1|0;if(r>>>0>1073741823){mi(a);k=c[a>>2]|0;s=i;t=c[i>>2]|0;u=k;v=k}else{s=i;t=l;u=f;v=e}e=t-u|0;t=e>>1;f=e>>2>>>0<536870911?(t>>>0<r>>>0?r:t):1073741823;t=g;r=t-u|0;u=r>>2;do if(f)if(f>>>0>1073741823){e=Na(4)|0;qj(e);ob(e|0,496,41)}else{e=oi(f<<2)|0;w=e;x=e;break}else{w=0;x=0}while(0);e=x+(u<<2)|0;l=e;i=x+(f<<2)|0;do if((u|0)==(f|0)){if((r|0)>0){k=e+(((f+1|0)/-2|0)<<2)|0;y=k;z=v;A=k;B=i;break}k=f<<2>>1;j=(k|0)==0?1:k;if(j>>>0>1073741823){k=Na(4)|0;qj(k);ob(k|0,496,41)}k=oi(j<<2)|0;n=k+(j>>>2<<2)|0;h=n;q=k+(j<<2)|0;if(!x){y=n;z=v;A=h;B=q}else{qi(w);y=n;z=c[a>>2]|0;A=h;B=q}}else{y=e;z=v;A=l;B=i}while(0);c[y>>2]=c[d>>2];d=A+4|0;y=A;A=t-z|0;i=y+(0-(A>>2)<<2)|0;if((A|0)>0)Aj(i|0,z|0,A|0)|0;A=(c[b>>2]|0)-t|0;if((A|0)>0){Aj(d|0,g|0,A|0)|0;C=d+(A>>>2<<2)|0}else C=d;d=c[a>>2]|0;c[a>>2]=i;c[b>>2]=C;c[s>>2]=B;if(!d){m=y;return m|0}qi(d);m=y;return m|0}function Bd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=a+272|0;e=c[d>>2]|0;f=e;g=c[a+268>>2]|0;while(1){if(g>>>0>=e>>>0){h=9;break}i=g+4|0;if((c[g>>2]|0)==(b|0))break;else g=i}if((h|0)==9)return;h=f-i|0;f=h>>2;if(!f)j=e;else{Hj(g|0,i|0,h|0)|0;j=c[d>>2]|0}h=g+(f<<2)|0;if((j|0)!=(h|0))c[d>>2]=j+(~((j+-4-h|0)>>>2)<<2);c[b+132>>2]=0;c[b+128>>2]=0;return}function Cd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+268|0;a=c[e>>2]|0;f=a+(b<<2)|0;b=c[f>>2]|0;c[f>>2]=c[a+(d<<2)>>2];c[(c[e>>2]|0)+(d<<2)>>2]=b;return}function Dd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=c[a+272>>2]|0;f=c[a+268>>2]|0;g=f;if((e|0)==(f|0)){h=-1;i=-1}else{j=e-f>>2;f=0;e=-1;k=-1;while(1){l=c[g+(f<<2)>>2]|0;m=(l|0)==(b|0)?f:e;n=(l|0)==(d|0)?f:k;f=f+1|0;if(f>>>0>=j>>>0){h=m;i=n;break}else{e=m;k=n}}}if((i|h|0)<0)return;k=g+(h<<2)|0;h=c[k>>2]|0;c[k>>2]=c[g+(i<<2)>>2];c[(c[a+268>>2]|0)+(i<<2)>>2]=h;return}function Ed(b){b=b|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;a[b+20>>0]=0;return}function Fd(a){a=a|0;return}function Gd(a){a=a|0;Sc(a);return}function Hd(a){a=a|0;Sc(a);qi(a);return}function Id(a,b){a=a|0;b=b|0;se(b,+g[a+272>>2],+g[a+276>>2],+g[a+280>>2],+g[a+284>>2]);return}function Jd(b){b=b|0;var d=0;Zc(b,3);c[b>>2]=936;d=b+268|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;a[d+20>>0]=0;return}function Kd(a){a=a|0;Sc(a);return}function Ld(a){a=a|0;Sc(a);qi(a);return}function Md(a,b){a=a|0;b=b|0;se(b,+g[a+272>>2],+g[a+276>>2],+g[a+280>>2],+g[a+284>>2]);return}function Nd(a){a=a|0;var b=0;Zc(a,4);c[a>>2]=968;b=a+268|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;return}function Od(a){a=a|0;td(a);return}function Pd(a){a=a|0;td(a);qi(a);return}function Qd(a,b){a=a|0;b=b|0;se(b,+g[a+284>>2],+g[a+288>>2],+g[a+292>>2],+g[a+296>>2]);return}function Rd(a){a=a|0;var b=0;wd(a);c[a>>2]=1e3;b=a+280|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[a+4>>2]=5;return}function Sd(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=1032;c[a+316>>2]=0;b=c[a+320>>2]|0;if(b|0){d=a+324|0;e=c[d>>2]|0;if((e|0)!=(b|0))c[d>>2]=e+(~(((e+-44-b|0)>>>0)/44|0)*44|0);qi(b)}b=c[a+300>>2]|0;if(b|0){e=a+304|0;d=c[e>>2]|0;if((d|0)!=(b|0))c[e>>2]=d+(~((d+-4-b|0)>>>2)<<2);qi(b)}b=c[a+284>>2]|0;if(b|0){d=a+288|0;e=c[d>>2]|0;if((e|0)!=(b|0))c[d>>2]=e+(~((e+-4-b|0)>>>2)<<2);qi(b)}b=c[a+268>>2]|0;if(!b){Sc(a);return}e=a+272|0;d=c[e>>2]|0;if((d|0)!=(b|0))c[e>>2]=d+(~((d+-4-b|0)>>>2)<<2);qi(b);Sc(a);return}function Td(a){a=a|0;Sd(a);qi(a);return}function Ud(b,c){b=b|0;c=+c;g[b+12>>2]=c;ad(b,1);a[b+332>>0]=1;return}function Vd(b,c){b=b|0;c=+c;g[b+16>>2]=c;ad(b,1);a[b+332>>0]=1;return}function Wd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0,i=0.0,j=0.0,k=0.0,l=0;d=c[a+316>>2]|0;e=a+12|0;f=+g[e>>2];h=f==-1.0;if(!d){i=+g[a+16>>2];j=h?0.0:f;k=i==-1.0?0.0:i;se(b,0.0,0.0,j,k);return}else{l=a+16|0;j=+g[(h?d+12|0:e)>>2];k=+g[(+g[l>>2]==-1.0?d+16|0:l)>>2];se(b,0.0,0.0,j,k);return}}function Xd(b){b=b|0;var d=0,e=0,f=0;Zc(b,8);c[b>>2]=1032;d=b+332|0;e=b+268|0;f=e+64|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));a[d>>0]=1;g[b+12>>2]=-1.0;g[b+16>>2]=-1.0;return}function Yd(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0;d=l;l=l+48|0;e=d;f=c[b+320>>2]|0;h=b+324|0;i=c[h>>2]|0;if((i|0)!=(f|0))c[h>>2]=i+(~(((i+-44-f|0)>>>0)/44|0)*44|0);ad(b,1);f=c[b+316>>2]|0;if(!f){l=d;return}i=b+12|0;j=f+12|0;k=b+16|0;m=f+16|0;n=+g[(+g[i>>2]==-1.0?j:i)>>2]/+g[f+28>>2];o=+g[(+g[k>>2]==-1.0?m:k)>>2]/+g[f+32>>2];p=+g[j>>2];q=+g[m>>2];c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];g[e+12>>2]=p;g[e+16>>2]=q;g[e+20>>2]=n*+g[f+20>>2];g[e+24>>2]=o*+g[f+24>>2];g[e+28>>2]=n*p;g[e+32>>2]=o*q;c[e+36>>2]=c[f+36>>2];c[e+40>>2]=c[f+40>>2];f=c[h>>2]|0;if((f|0)==(c[b+328>>2]|0))Rc(b+320|0,e);else{m=f;f=e;e=m+44|0;do{c[m>>2]=c[f>>2];m=m+4|0;f=f+4|0}while((m|0)<(e|0));c[h>>2]=(c[h>>2]|0)+44}ad(b,1);a[b+332>>0]=0;l=d;return}function Zd(a,b,c){a=a|0;b=+b;c=+c;g[a>>2]=b;g[a+4>>2]=c;return}function _d(a,b,c){a=a|0;b=+b;c=+c;g[a>>2]=b;g[a+4>>2]=c;return}function $d(){c[2401887]=0;c[2401888]=0;c[2401889]=0;mb(49,9607548,o|0)|0;return}function ae(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(!b)return;d=a+4|0;a=c[d>>2]|0;if((a|0)!=(b|0))c[d>>2]=a+(~((a+-4-b|0)>>>2)<<2);qi(b);return}function be(a){a=a|0;g[a>>2]=1.0;g[a+4>>2]=0.0;g[a+8>>2]=0.0;g[a+12>>2]=1.0;g[a+16>>2]=0.0;g[a+20>>2]=0.0;return}function ce(a){a=a|0;g[a+12>>2]=1.0;g[a>>2]=1.0;g[a+20>>2]=0.0;g[a+16>>2]=0.0;g[a+8>>2]=0.0;g[a+4>>2]=0.0;return}function de(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var f=0.0,h=0,i=0.0,j=0.0,k=0.0,l=0.0;if(d==0.0|d==6.2831854820251465?e==0.0|e==6.2831854820251465:0){g[a>>2]=b;g[a+8>>2]=0.0;g[a+4>>2]=0.0;f=c;h=a+12|0;g[h>>2]=f;return}i=+J(+d);j=+K(+d);if(d==e){k=i;l=j}else{k=+J(+e);l=+K(+e)}g[a>>2]=k*b;g[a+4>>2]=l*b;g[a+8>>2]=-(j*c);f=i*c;h=a+12|0;g[h>>2]=f;return}function ee(a,b,c,d,e,f,h){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;h=+h;var i=0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0.0;i=a+16|0;j=+g[i>>2];k=+g[a>>2];l=a+4|0;m=+g[l>>2];if(!((!(k!=1.0|m!=0.0)?!(+g[a+8>>2]!=0.0):0)?!(+g[a+12>>2]!=1.0):0)){n=a+8|0;o=+g[n>>2];g[a>>2]=k*b+m*d;g[l>>2]=k*c+m*e;l=a+12|0;m=+g[l>>2];g[n>>2]=o*b+m*d;g[l>>2]=o*c+m*e}l=a+20|0;m=+g[l>>2];g[i>>2]=j*b+m*d+f;g[l>>2]=j*c+m*e+h;return}function fe(a,b,c,d,e,f,h){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;h=+h;var i=0.0,j=0,k=0.0,l=0,m=0.0,n=0,o=0.0;i=+g[a>>2];j=a+4|0;k=+g[j>>2];l=a+8|0;m=+g[l>>2];n=a+12|0;o=+g[n>>2];if(b!=1.0|c!=0.0|d!=0.0|e!=1.0){g[a>>2]=i*b+m*c;g[j>>2]=k*b+o*c;g[l>>2]=i*d+m*e;g[n>>2]=k*d+o*e}n=a+16|0;g[n>>2]=i*f+m*h+ +g[n>>2];n=a+20|0;g[n>>2]=k*f+o*h+ +g[n>>2];return}function ge(){var a=0,b=0,d=0;a=c[2401888]|0;if((c[2401887]|0)==(a|0)){b=oi(24)|0;g[b>>2]=1.0;g[b+4>>2]=0.0;g[b+8>>2]=0.0;g[b+12>>2]=1.0;g[b+16>>2]=0.0;g[b+20>>2]=0.0;d=b;return d|0}else{b=a+-4|0;a=c[b>>2]|0;c[2401888]=b;d=a;return d|0}return 0}function he(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;c[d>>2]=a;e=c[2401888]|0;if((e|0)==(c[2401889]|0)){ie(9607548,d);l=b;return}else{c[e>>2]=a;c[2401888]=(c[2401888]|0)+4;l=b;return}}function ie(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>2)+1|0;if(g>>>0>1073741823){mi(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=(c[e>>2]|0)-h|0;j=f>>1;k=f>>2>>>0<536870911?(j>>>0<g>>>0?g:j):1073741823;j=i-h>>2;do if(k)if(k>>>0>1073741823){g=Na(4)|0;qj(g);ob(g|0,496,41)}else{l=oi(k<<2)|0;break}else l=0;while(0);g=l+(j<<2)|0;c[g>>2]=c[b>>2];b=i-h|0;i=g+(0-(b>>2)<<2)|0;if((b|0)>0)Aj(i|0,h|0,b|0)|0;c[a>>2]=i;c[d>>2]=g+4;c[e>>2]=l+(k<<2);if(!h)return;qi(h);return}function je(a,b,c,d,e,f,h){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;h=+h;g[a>>2]=b;g[a+4>>2]=c;g[a+8>>2]=d;g[a+12>>2]=e;g[a+16>>2]=f;g[a+20>>2]=h;return a|0}function ke(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;d=+g[b>>2];e=+g[a>>2];f=d*e;h=+g[b+12>>2];i=+g[a+12>>2];j=h*i;k=+g[b+16>>2];l=e*k+ +g[a+16>>2];m=+g[b+20>>2];n=i*m+ +g[a+20>>2];o=+g[b+4>>2];p=+g[b+8>>2];if((!(o!=0.0|p!=0.0)?!(+g[a+4>>2]!=0.0):0)?!(+g[a+8>>2]!=0.0):0){q=f;r=0.0;s=0.0;t=j;u=l;v=n}else{w=+g[a+8>>2];x=+g[a+4>>2];q=f+o*w;r=i*o+d*x+0.0;s=h*w+e*p+0.0;t=j+p*x;u=l+m*w;v=n+k*x}g[c>>2]=q;g[c+4>>2]=r;g[c+8>>2]=s;g[c+12>>2]=t;g[c+16>>2]=u;g[c+20>>2]=v;return}function le(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];return a|0}function me(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0;c=+g[a>>2];d=+g[a+4>>2];e=+g[a+8>>2];f=+g[a+12>>2];h=+g[a+16>>2];i=+g[a+20>>2];j=+g[b>>2];a=b+4|0;k=+g[a>>2];l=b+8|0;m=j+ +g[l>>2];n=b+12|0;o=k+ +g[n>>2];p=c*j;q=e*k;r=h+(p+q);s=d*j;j=f*k;k=i+(s+j);t=c*m;c=h+(q+t);q=d*m;m=i+(j+q);j=e*o;e=h+(t+j);t=f*o;o=i+(q+t);q=h+(p+j);j=i+(s+t);u=r>c;t=u?c:r;s=u?r:c;u=e>q;c=u?q:e;r=u?e:q;q=+(~~+F(+(t<c?t:c))|0);g[b>>2]=q;g[l>>2]=+(~~+S(+((s>r?s:r)-q))|0);l=k>m;q=l?m:k;r=l?k:m;l=o>j;m=l?j:o;k=l?o:j;j=+(~~+F(+(q<m?q:m))|0);g[a>>2]=j;g[n>>2]=+(~~+S(+((r>k?r:k)-j))|0);return}function ne(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0;c=+g[a>>2];d=+g[a+4>>2];e=+g[a+8>>2];f=+g[a+12>>2];h=+g[a+16>>2];i=+g[a+20>>2];if(d==0.0&e==0.0){g[b+8>>2]=0.0;g[b+4>>2]=0.0;if(c==0.0|f==0.0){g[b+20>>2]=0.0;g[b+16>>2]=0.0;g[b+12>>2]=0.0;g[b>>2]=0.0;return}else{j=1.0/c;g[b>>2]=j;k=1.0/f;g[b+12>>2]=k;g[b+16>>2]=-(j*h);g[b+20>>2]=-(k*i);return}}else{k=c*f-d*e;if(k==0.0){g[b+12>>2]=1.0;g[b>>2]=1.0;g[b+20>>2]=0.0;g[b+16>>2]=0.0;g[b+8>>2]=0.0;g[b+4>>2]=0.0;return}else{j=1.0/k;k=f*j;g[b>>2]=k;f=-(d*j);g[b+4>>2]=f;d=-(e*j);g[b+8>>2]=d;e=c*j;g[b+12>>2]=e;g[b+16>>2]=-(h*k+i*d);g[b+20>>2]=-(h*f+i*e);return}}}function oe(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0,h=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0.0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;c=+g[a>>2];d=+g[b>>2];e=c*d;f=a+12|0;h=+g[f>>2];i=+g[b+12>>2];j=h*i;k=a+16|0;l=+g[k>>2];m=d*l+ +g[b+16>>2];n=a+20|0;o=+g[n>>2];p=i*o+ +g[b+20>>2];q=a+4|0;r=+g[q>>2];s=a+8|0;t=+g[s>>2];if((!(r!=0.0|t!=0.0)?!(+g[b+4>>2]!=0.0):0)?!(+g[b+8>>2]!=0.0):0){u=e;v=0.0;w=0.0;x=j;y=m;z=p;g[a>>2]=u;g[q>>2]=v;g[s>>2]=w;g[f>>2]=x;g[k>>2]=y;g[n>>2]=z;return}A=+g[b+8>>2];B=+g[b+4>>2];u=e+r*A;v=i*r+c*B+0.0;w=h*A+d*t+0.0;x=j+t*B;y=m+o*A;z=p+l*B;g[a>>2]=u;g[q>>2]=v;g[s>>2]=w;g[f>>2]=x;g[k>>2]=y;g[n>>2]=z;return}function pe(a,b,c,d){a=a|0;b=+b;c=+c;d=d|0;_d(d,+g[a+16>>2]+(+g[a>>2]*b+ +g[a+8>>2]*c),+g[a+20>>2]+(+g[a+4>>2]*b+ +g[a+12>>2]*c));return}function qe(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;g[a>>2]=b;g[a+4>>2]=c;g[a+8>>2]=d;g[a+12>>2]=e;return}function re(a){a=a|0;return}function se(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;g[a>>2]=b;g[a+4>>2]=c;g[a+8>>2]=d;g[a+12>>2]=e;return}function te(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function ue(a){a=a|0;var b=0;if(+g[a+8>>2]<=0.0){b=1;return b|0}b=+g[a+12>>2]<=0.0;return b|0}function ve(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return a|0}function we(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;e=+g[b+8>>2];if(!(e==0.0)?(f=+g[b+12>>2],!(f==0.0)):0){h=+g[d>>2];i=+g[d+4>>2];j=+g[d+8>>2];k=+g[d+12>>2];l=+g[d+16>>2];m=+g[d+20>>2];n=+g[b>>2];o=+g[b+4>>2];p=e+n;e=f+o;if(h==1.0&i==0.0&j==0.0&k==1.0){q=l+p;r=m+e;s=l+n;t=m+o}else{f=h*n;u=j*o;v=l+(f+u);w=i*n;n=k*o;o=m+(w+n);x=h*p;h=l+(x+u);u=i*p;p=m+(u+n);n=j*e;j=l+(x+n);x=k*e;e=m+(u+x);u=l+(f+n);n=m+(w+x);b=v>h;x=b?h:v;w=b?v:h;b=j>u;h=b?u:j;v=b?j:u;b=o>p;u=b?p:o;j=b?o:p;b=e>n;p=b?n:e;o=b?e:n;q=w>v?w:v;r=j>o?j:o;s=x<h?x:h;t=u<p?u:p}p=t+-1.0;t=s+-1.0;s=r+1.0;r=q+1.0;g[a>>2]=t;g[a+4>>2]=p;g[a+8>>2]=r;g[a+12>>2]=s;q=r-t;g[a+16>>2]=q;t=s-p;g[a+20>>2]=t;g[a+24>>2]=q*t;return};c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function ye(a,b){a=a|0;b=b|0;Ee(a,b,0.0,0.0)|0;return}function ze(a){a=a|0;Ne(a+28|0);return}function Ae(a){a=a|0;Le(a+28|0);return}function Be(a){a=a|0;Me(a+28|0);return}function Ce(a,b,d){a=a|0;b=+b;d=+d;var e=0;e=c[a+56>>2]|0;g[e+4>>2]=b;g[e+8>>2]=d;return}function De(a){a=a|0;c[a+60>>2]=c[a+56>>2];c[a+52>>2]=0;c[a+64>>2]=0;return}function Ee(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0.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.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0,oa=0.0,pa=0.0,qa=0,ra=0,sa=0.0,ta=0.0;h=d+136|0;if(a[h>>0]|0){i=nd(d)|0;j=d+137|0;if(!(a[j>>0]|0)){k=d+144|0;l=b+8|0;m=b+12|0;n=b+28|0;o=b+16|0;p=b+20|0;q=b+24|0}else{r=b+60|0;s=c[r>>2]|0;t=d+144|0;u=c[t>>2]|0;if(!u)c[t>>2]=Fe(b,+g[i+8>>2],+g[i+12>>2])|0;else{v=b+28|0;We(v,c[u>>2]|0);w=i+8|0;x=+g[w>>2];y=u+4|0;z=i+12|0;A=+g[z>>2];B=u+8|0;if(!(x!=+g[y>>2])?!(A!=+g[B>>2]):0)Ne(v);else{Xe(v,c[u>>2]|0,x,A);c[y>>2]=c[w>>2];c[B>>2]=c[z>>2]}c[r>>2]=u}u=b+4|0;z=c[u>>2]|0;B=b+8|0;w=c[B>>2]|0;y=b+12|0;v=c[y>>2]|0;C=b+16|0;D=c[C>>2]|0;E=b+20|0;F=c[E>>2]|0;G=b+24|0;H=c[G>>2]|0;je(u,1.0,0.0,0.0,1.0,0.0,0.0)|0;I=b+48|0;A=+g[I>>2];if(A!=1.0){g[I>>2]=1.0;J=b+28|0;Se(J,1.0);a[h>>0]=0;Ee(b,d,-+g[i>>2],-+g[i+4>>2])|0;a[h>>0]=1;g[I>>2]=A;Se(J,A);K=J}else{a[h>>0]=0;Ee(b,d,-+g[i>>2],-+g[i+4>>2])|0;a[h>>0]=1;K=b+28|0}c[u>>2]=z;c[B>>2]=w;c[y>>2]=v;c[C>>2]=D;c[E>>2]=F;c[G>>2]=H;c[r>>2]=s;We(K,c[s>>2]|0);k=t;l=B;m=y;n=K;o=C;p=E;q=G}G=c[k>>2]|0;A=+g[G+4>>2];x=+g[G+8>>2];G=b+40|0;g[G>>2]=+g[i>>2]+e;E=b+44|0;g[E>>2]=+g[i+4>>2]+f;Re(n,+g[b+4>>2],+g[l>>2],+g[m>>2],+g[o>>2],+g[p>>2],+g[q>>2]);Ye(n,+(c[c[k>>2]>>2]|0),0.0,0.0,A,x,+g[G>>2],+g[E>>2],A,x);g[G>>2]=0.0;g[E>>2]=0.0;a[j>>0]=0;L=0;return L|0}switch(c[d+4>>2]|0){case 1:{j=b+40|0;g[j>>2]=e;E=b+44|0;g[E>>2]=f;Re(b+28|0,+g[b+4>>2],+g[b+8>>2],+g[b+12>>2],+g[b+16>>2],+g[b+20>>2],+g[b+24>>2]);Ge(b,d);g[j>>2]=0.0;g[E>>2]=0.0;L=1;return L|0}case 3:{if(a[d+288>>0]|0){L=0;return L|0}if(!(+g[d+280>>2]!=0.0)){L=0;return L|0}if(!(+g[d+284>>2]!=0.0)){L=0;return L|0}E=b+40|0;g[E>>2]=e;j=b+44|0;g[j>>2]=f;G=b+28|0;Re(G,+g[b+4>>2],+g[b+8>>2],+g[b+12>>2],+g[b+16>>2],+g[b+20>>2],+g[b+24>>2]);Ze(G,c[d+268>>2]|0,+g[E>>2],+g[j>>2]);g[E>>2]=0.0;g[j>>2]=0.0;L=1;return L|0}case 4:{if(!(+g[d+280>>2]!=0.0)){L=0;return L|0}if(!(+g[d+284>>2]!=0.0)){L=0;return L|0}j=b+40|0;g[j>>2]=e;E=b+44|0;g[E>>2]=f;G=b+28|0;Re(G,+g[b+4>>2],+g[b+8>>2],+g[b+12>>2],+g[b+16>>2],+g[b+20>>2],+g[b+24>>2]);_e(G,c[d+268>>2]|0,+g[j>>2],+g[E>>2]);g[j>>2]=0.0;g[E>>2]=0.0;L=1;return L|0}case 2:{M=0;break}case 7:{E=b+40|0;g[E>>2]=e;j=b+44|0;g[j>>2]=f;G=c[d+272>>2]|0;k=d+276|0;a:do if(G>>>0<(c[k>>2]|0)>>>0){n=b+28|0;x=e;A=f;q=G;while(1){Oe(n,+(c[q>>2]|0),+g[q+4>>2],+g[q+8>>2],+g[q+12>>2],+g[q+16>>2],+g[q+20>>2]+x,+g[q+24>>2]+A,+g[q+28>>2],+g[q+32>>2]);p=q+44|0;if(p>>>0>=(c[k>>2]|0)>>>0)break a;x=+g[E>>2];A=+g[j>>2];q=p}}while(0);g[E>>2]=0.0;g[j>>2]=0.0;L=0;return L|0}case 5:{if(+g[d+292>>2]!=0.0?+g[d+296>>2]!=0.0:0){j=b+40|0;g[j>>2]=e;E=b+44|0;g[E>>2]=f;k=b+28|0;Re(k,+g[b+4>>2],+g[b+8>>2],+g[b+12>>2],+g[b+16>>2],+g[b+20>>2],+g[b+24>>2]);_e(k,c[d+280>>2]|0,+g[j>>2],+g[E>>2]);g[j>>2]=0.0;g[E>>2]=0.0;M=1}else M=0;break}default:{L=0;return L|0}}E=c[d+268>>2]|0;j=d+272|0;if(E>>>0>=(c[j>>2]|0)>>>0){L=M;return L|0}d=b+48|0;k=b+28|0;G=b+4|0;q=b+8|0;n=b+12|0;p=b+16|0;o=b+20|0;m=b+24|0;l=b+52|0;A=0.0;x=0.0;N=0.0;O=0.0;i=M;M=E;P=0.0;Q=0.0;R=0.0;while(1){E=c[M>>2]|0;S=+g[E+64>>2];if(S!=1.0){T=+g[d>>2];U=S*T;g[d>>2]=U;Se(k,U);V=1;W=T}else{V=0;W=P}if(!(a[E+176>>0]|0)){X=+g[E+24>>2]+f;Y=A;Z=x;_=N;$=O;aa=0;ba=+g[E+20>>2]+e-+g[E+56>>2];ca=Q;da=R}else{C=_c(E)|0;T=+g[E+20>>2]+e;U=+g[E+24>>2]+f;S=+g[G>>2];ea=+g[q>>2];fa=+g[n>>2];ga=+g[p>>2];ha=+g[o>>2];ia=+g[m>>2];ja=+g[C>>2];ka=+g[C+4>>2];la=+g[C+8>>2];ma=+g[C+12>>2];if(ja!=1.0|ka!=0.0|la!=0.0|ma!=1.0){g[G>>2]=ja*S+ka*fa;g[q>>2]=ja*ea+ka*ga;g[n>>2]=la*S+ma*fa;g[p>>2]=la*ea+ma*ga}g[o>>2]=T*S+U*fa+ha;g[m>>2]=T*ea+U*ga+ia;X=-0.0;Y=S;Z=ea;_=fa;$=ga;aa=1;ba=-+g[E+56>>2];ca=ha;da=ia}ia=X-+g[E+60>>2];do if((a[E+8>>0]|0)!=0?(c[E+108>>2]|0)==0:0){if((c[E+124>>2]|0)>0){na=(He(b,E,ba,ia)|0)+i|0;break}if((c[E+68>>2]|0)==0?(c[E+104>>2]|0)==0:0){if(ue(E+72|0)|0?ue(E+88|0)|0:0){if(c[l>>2]|0){Te(k,0);c[l>>2]=0}na=(Ee(b,E,ba,ia)|0)+i|0;break}if(c[l>>2]|0){Te(k,0);c[l>>2]=0}C=E+88|0;if(ue(C)|0){oa=ba;pa=ia;qa=E+84|0;ra=E+80|0;sa=+g[E+72>>2];ta=+g[E+76>>2]}else{ha=+g[C>>2];ga=+g[E+92>>2];oa=ba-ha;pa=ia-ga;qa=E+100|0;ra=E+96|0;sa=ha;ta=ga}ga=+g[qa>>2];ha=+g[ra>>2];Pe(k);Ue(k,oa+sa,pa+ta,ha,ga);C=Ee(b,E,oa,pa)|0;Qe(k);na=C+i|0;break}na=(Ie(b,E,ba,ia)|0)+i|0}else na=i;while(0);if(V){g[d>>2]=W;Se(k,W)}if(aa){g[G>>2]=Y;g[q>>2]=Z;g[n>>2]=_;g[p>>2]=$;g[o>>2]=ca;g[m>>2]=da}M=M+4|0;if(M>>>0>=(c[j>>2]|0)>>>0){L=na;break}else{A=Y;x=Z;N=_;O=$;i=na;P=W;Q=ca;R=da}}return L|0}function Fe(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0,h=0,i=0,j=0;e=bf()|0;f=c[e>>2]|0;h=a+64|0;i=a+28|0;if((f|0)>(c[h>>2]|0)){Ve(i,f,b,d);We(i,c[e>>2]|0);c[h>>2]=c[e>>2];g[e+4>>2]=b;g[e+8>>2]=d;j=a+60|0;c[j>>2]=e;return e|0}We(i,f);f=e+4|0;h=e+8|0;if(!(+g[f>>2]!=b)?!(+g[h>>2]!=d):0){Ne(i);Re(i,1.0,0.0,0.0,1.0,0.0,0.0);Te(i,0);j=a+60|0;c[j>>2]=e;return e|0}Xe(i,c[e>>2]|0,b,d);g[f>>2]=b;g[h>>2]=d;j=a+60|0;c[j>>2]=e;return e|0}function Ge(b,d){b=b|0;d=d|0;var e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0;e=c[d+268>>2]|0;if(!e)return;if(!(a[d+288>>0]|0)){f=+Gc(d);h=+Hc(d);Oe(b+28|0,+(c[e>>2]|0),+g[e+4>>2],+g[e+8>>2],+g[e+12>>2],+g[e+16>>2],+g[e+20>>2]+ +g[b+40>>2],+g[e+24>>2]+ +g[b+44>>2],f,h);return}i=d+304|0;if(a[i>>0]|0){Ic(d);a[i>>0]=0}i=d+308|0;if((c[i>>2]|0)<=0)return;j=b+28|0;k=d+292|0;d=b+40|0;l=b+44|0;b=0;do{m=b*10|0;n=c[k>>2]|0;Oe(j,+(c[e>>2]|0),+g[n+(m<<2)>>2],+g[n+((m|1)<<2)>>2],+g[n+(m+2<<2)>>2],+g[n+(m+3<<2)>>2],+g[n+(m+4<<2)>>2]+ +g[d>>2],+g[n+(m+5<<2)>>2]+ +g[l>>2],+g[n+(m+6<<2)>>2],+g[n+(m+7<<2)>>2]);b=b+1|0}while((b|0)<(c[i>>2]|0));return}function He(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0;f=b+68|0;h=c[f>>2]|0;if(h|0){Te(a+28|0,h);c[a+52>>2]=c[f>>2]}do if(!(c[b+104>>2]|0)){h=b+88|0;if(ue(b+72|0)|0?ue(h)|0:0){i=Ee(a,b,d,e)|0;break}if(ue(h)|0){j=d;k=e;l=b+84|0;m=b+80|0;n=+g[b+72>>2];o=+g[b+76>>2]}else{p=+g[b+88>>2];q=+g[b+92>>2];j=d-p;k=e-q;l=b+100|0;m=b+96|0;n=p;o=q}q=+g[l>>2];p=+g[m>>2];h=a+28|0;Pe(h);Ue(h,j+n,k+o,p,q);r=Ee(a,b,j,k)|0;Qe(h);i=r}else i=Ie(a,b,d,e)|0;while(0);if(!(c[f>>2]|0))return i|0;Te(a+28|0,0);c[a+52>>2]=0;return i|0}function Ie(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0.0,D=0.0,E=0,F=0,G=0;f=b+88|0;h=ue(f)|0;i=h?b+72|0:f;if(ue(i)|0){j=0.0;k=0.0;l=0.0;m=0.0}else{j=+g[b+100>>2];k=+g[b+96>>2];l=+g[f>>2];m=+g[b+92>>2]}f=c[b+104>>2]|0;h=(f|0)!=0;do if(h){n=_c(f)|0;if(+g[n>>2]==0.0?+g[n+4>>2]==0.0:0){o=0;return o|0}if(+g[n+8>>2]==0.0?+g[n+12>>2]==0.0:0){o=0;return o|0}}else{n=Ui(b,96,104,0)|0;if(n|0?(c[n+272>>2]|0)!=(c[n+268>>2]|0):0)break;n=a+28|0;if(!(ue(i)|0)){Pe(n);Ue(n,l+d,m+e,k,j)}p=b+68|0;q=c[p>>2]|0;if(q|0){Te(n,q);c[a+52>>2]=c[p>>2]}q=Ee(a,b,d,e)|0;if(c[p>>2]|0){Te(n,0);c[a+52>>2]=0}if(ue(i)|0){o=q;return o|0}Qe(n);o=q;return o|0}while(0);q=a+60|0;n=c[q>>2]|0;p=ge()|0;r=nd(b)|0;s=r+8|0;t=r+12|0;u=Fe(a,+g[s>>2],+g[t>>2])|0;v=a+4|0;le(p,v)|0;w=a+48|0;x=+g[w>>2];if(x!=1.0){g[w>>2]=1.0;Se(a+28|0,1.0);y=1}else y=0;ce(v);z=r+4|0;A=Ee(a,b,-+g[r>>2],-+g[z>>2])|0;if(h){h=Fe(a,+g[s>>2],+g[t>>2])|0;le(v,pd(f)|0)|0;qd(f,b,v);B=(Ee(a,f,-+g[r>>2],-+g[z>>2])|0)+A|0;ce(v);c[q>>2]=u;f=a+28|0;We(f,c[u>>2]|0);Te(f,3);c[a+52>>2]=3;C=+g[s>>2];D=+g[t>>2];Re(f,+g[v>>2],+g[a+8>>2],+g[a+12>>2],+g[a+16>>2],+g[a+20>>2],+g[a+24>>2]);Ye(f,+(c[h>>2]|0),0.0,0.0,C,D,0.0,0.0,C,D);cf(h);E=B}else E=A;if(y){g[w>>2]=x;A=a+28|0;Se(A,x);F=A}else F=a+28|0;le(v,p)|0;c[q>>2]=n;We(F,c[n>>2]|0);if((E|0)>0){n=E+1|0;q=b+68|0;b=c[q>>2]|0;if(b|0){Te(F,b);c[a+52>>2]=c[q>>2]}if(!(ue(i)|0)){Pe(F);Ue(F,l+d,m+e,k,j)}if(y){g[w>>2]=1.0;Se(F,1.0)}j=+g[r>>2]+d;d=+g[z>>2]+e;e=+g[a+4>>2];k=+g[a+8>>2];m=+g[a+12>>2];l=+g[a+16>>2];z=a+20|0;D=j*e+d*m+ +g[z>>2];g[z>>2]=D;z=a+24|0;C=j*k+d*l+ +g[z>>2];g[z>>2]=C;d=+g[s>>2];j=+g[t>>2];Re(F,e,k,m,l,D,C);Ye(F,+(c[u>>2]|0),0.0,0.0,d,j,0.0,0.0,d,j);if(y){g[w>>2]=x;Se(F,x)}le(v,p)|0;if(!(ue(i)|0))Qe(F);if(!(c[q>>2]|0))G=n;else{Te(F,0);c[a+52>>2]=0;G=n}}else G=E;he(p);cf(u);o=G;return o|0}function Je(a,b){a=a|0;b=b|0;c[a>>2]=1104;be(a+4|0);c[a>>2]=1072;Ke(a+28|0,b);g[a+40>>2]=0.0;g[a+44>>2]=0.0;g[a+48>>2]=1.0;c[a+52>>2]=0;c[a+64>>2]=0;b=bf()|0;c[a+56>>2]=b;c[a+60>>2]=b;return}function Ke(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+4>>2]=1;c[a+8>>2]=0;return}function Le(a){a=a|0;c[a+4>>2]=1;c[a+8>>2]=0;return}function Me(a){a=a|0;g[c[a>>2]>>2]=+(c[a+8>>2]|0);return}function Ne(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;d=a+4|0;e=c[d>>2]|0;c[d>>2]=e+1;g[b+(e<<2)>>2]=500.0;e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;return}function Oe(a,b,d,e,f,h,i,j,k,l){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;l=+l;var m=0,n=0,o=0;m=a+4|0;n=c[m>>2]|0;g[(c[a>>2]|0)+(n<<2)>>2]=501.0;g[(c[a>>2]|0)+(n+1<<2)>>2]=b;g[(c[a>>2]|0)+(n+2<<2)>>2]=d;g[(c[a>>2]|0)+(n+3<<2)>>2]=e;g[(c[a>>2]|0)+(n+4<<2)>>2]=f;g[(c[a>>2]|0)+(n+5<<2)>>2]=h;g[(c[a>>2]|0)+(n+6<<2)>>2]=i;g[(c[a>>2]|0)+(n+7<<2)>>2]=j;g[(c[a>>2]|0)+(n+8<<2)>>2]=k;o=c[a>>2]|0;c[m>>2]=n+10;g[o+(n+9<<2)>>2]=l;n=a+8|0;c[n>>2]=(c[n>>2]|0)+1;return}function Pe(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;d=a+4|0;e=c[d>>2]|0;c[d>>2]=e+1;g[b+(e<<2)>>2]=502.0;e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;return}function Qe(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;d=a+4|0;e=c[d>>2]|0;c[d>>2]=e+1;g[b+(e<<2)>>2]=503.0;e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;return}function Re(a,b,d,e,f,h,i){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;i=+i;var j=0,k=0,l=0;j=a+4|0;k=c[j>>2]|0;g[(c[a>>2]|0)+(k<<2)>>2]=504.0;g[(c[a>>2]|0)+(k+1<<2)>>2]=b;g[(c[a>>2]|0)+(k+2<<2)>>2]=d;g[(c[a>>2]|0)+(k+3<<2)>>2]=e;g[(c[a>>2]|0)+(k+4<<2)>>2]=f;g[(c[a>>2]|0)+(k+5<<2)>>2]=h;l=c[a>>2]|0;c[j>>2]=k+7;g[l+(k+6<<2)>>2]=i;k=a+8|0;c[k>>2]=(c[k>>2]|0)+1;return}function Se(a,b){a=a|0;b=+b;var d=0,e=0,f=0;d=a+4|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=505.0;f=c[a>>2]|0;c[d>>2]=e+2;g[f+(e+1<<2)>>2]=b;e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;return}function Te(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=506.0;f=c[a>>2]|0;c[d>>2]=e+2;g[f+(e+1<<2)>>2]=+(b|0);b=a+8|0;c[b>>2]=(c[b>>2]|0)+1;return}function Ue(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=+f;var h=0,i=0,j=0;h=a+4|0;i=c[h>>2]|0;g[(c[a>>2]|0)+(i<<2)>>2]=507.0;g[(c[a>>2]|0)+(i+1<<2)>>2]=b;g[(c[a>>2]|0)+(i+2<<2)>>2]=d;g[(c[a>>2]|0)+(i+3<<2)>>2]=e;j=c[a>>2]|0;c[h>>2]=i+5;g[j+(i+4<<2)>>2]=f;i=a+8|0;c[i>>2]=(c[i>>2]|0)+1;return}function Ve(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0;f=a+4|0;h=c[f>>2]|0;g[(c[a>>2]|0)+(h<<2)>>2]=508.0;g[(c[a>>2]|0)+(h+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(h+2<<2)>>2]=d;b=c[a>>2]|0;c[f>>2]=h+4;g[b+(h+3<<2)>>2]=e;h=a+8|0;c[h>>2]=(c[h>>2]|0)+1;return}function We(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=509.0;f=c[a>>2]|0;c[d>>2]=e+2;g[f+(e+1<<2)>>2]=+(b|0);b=a+8|0;c[b>>2]=(c[b>>2]|0)+1;return}function Xe(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0;f=a+4|0;h=c[f>>2]|0;g[(c[a>>2]|0)+(h<<2)>>2]=510.0;g[(c[a>>2]|0)+(h+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(h+2<<2)>>2]=d;b=c[a>>2]|0;c[f>>2]=h+4;g[b+(h+3<<2)>>2]=e;h=a+8|0;c[h>>2]=(c[h>>2]|0)+1;return}function Ye(a,b,d,e,f,h,i,j,k,l){a=a|0;b=+b;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;l=+l;var m=0,n=0,o=0;m=a+4|0;n=c[m>>2]|0;g[(c[a>>2]|0)+(n<<2)>>2]=511.0;g[(c[a>>2]|0)+(n+1<<2)>>2]=b;g[(c[a>>2]|0)+(n+2<<2)>>2]=d;g[(c[a>>2]|0)+(n+3<<2)>>2]=e;g[(c[a>>2]|0)+(n+4<<2)>>2]=f;g[(c[a>>2]|0)+(n+5<<2)>>2]=h;g[(c[a>>2]|0)+(n+6<<2)>>2]=i;g[(c[a>>2]|0)+(n+7<<2)>>2]=j;g[(c[a>>2]|0)+(n+8<<2)>>2]=k;o=c[a>>2]|0;c[m>>2]=n+10;g[o+(n+9<<2)>>2]=l;n=a+8|0;c[n>>2]=(c[n>>2]|0)+1;return}function Ze(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0;f=a+4|0;h=c[f>>2]|0;g[(c[a>>2]|0)+(h<<2)>>2]=512.0;g[(c[a>>2]|0)+(h+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(h+2<<2)>>2]=d;b=c[a>>2]|0;c[f>>2]=h+4;g[b+(h+3<<2)>>2]=e;h=a+8|0;c[h>>2]=(c[h>>2]|0)+1;return}function _e(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0;f=a+4|0;h=c[f>>2]|0;g[(c[a>>2]|0)+(h<<2)>>2]=513.0;g[(c[a>>2]|0)+(h+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(h+2<<2)>>2]=d;b=c[a>>2]|0;c[f>>2]=h+4;g[b+(h+3<<2)>>2]=e;h=a+8|0;c[h>>2]=(c[h>>2]|0)+1;return}function $e(){c[2401890]=0;c[2401891]=0;c[2401892]=0;mb(50,9607560,o|0)|0;return}function af(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(!b)return;d=a+4|0;a=c[d>>2]|0;if((a|0)!=(b|0))c[d>>2]=a+(~((a+-4-b|0)>>>2)<<2);qi(b);return}function bf(){var a=0,b=0,d=0,e=0;a=c[2401891]|0;if((c[2401890]|0)==(a|0)){b=oi(12)|0;d=c[2401893]|0;c[2401893]=d+1;c[b>>2]=d;g[b+4>>2]=3.0;g[b+8>>2]=3.0;e=b;return e|0}else{b=a+-4|0;a=c[b>>2]|0;c[2401891]=b;e=a;return e|0}return 0}function cf(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;c[d>>2]=a;e=c[2401891]|0;if((e|0)==(c[2401892]|0)){df(9607560,d);l=b;return}else{c[e>>2]=a;c[2401891]=(c[2401891]|0)+4;l=b;return}}function df(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>2)+1|0;if(g>>>0>1073741823){mi(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=(c[e>>2]|0)-h|0;j=f>>1;k=f>>2>>>0<536870911?(j>>>0<g>>>0?g:j):1073741823;j=i-h>>2;do if(k)if(k>>>0>1073741823){g=Na(4)|0;qj(g);ob(g|0,496,41)}else{l=oi(k<<2)|0;break}else l=0;while(0);g=l+(j<<2)|0;c[g>>2]=c[b>>2];b=i-h|0;i=g+(0-(b>>2)<<2)|0;if((b|0)>0)Aj(i|0,h|0,b|0)|0;c[a>>2]=i;c[d>>2]=g+4;c[e>>2]=l+(k<<2);if(!h)return;qi(h);return}function ef(){var a=0,b=0;a=c[2401890]|0;b=c[2401891]|0;if((b|0)==(a|0)){c[2401893]=1;return}c[2401891]=b+(~((b+-4-a|0)>>>2)<<2);c[2401893]=1;return}function ff(a){a=a|0;c[a>>2]=0;return}function gf(a){a=a|0;c[a>>2]=0;return}function hf(a,b){a=a|0;b=b|0;of(a,b,0.0,0.0)|0;return}function jf(a){a=a|0;Gf(a+28|0);return}function kf(a){a=a|0;var b=0,d=0,e=0;b=a+52|0;c[b>>2]=1;c[a+56>>2]=1;d=a+64|0;c[d>>2]=1;e=a+28|0;Ef(e);$f(e);Tf(e,c[b>>2]|0,c[d>>2]|0,0);return}function lf(a){a=a|0;var d=0,e=0,f=0,h=0,i=0;d=l;l=l+16|0;e=d;f=a+28|0;Ff(f);h=a+52|0;i=a+64|0;Tf(f,c[h>>2]|0,c[i>>2]|0,1);f=c[h>>2]|0;g[c[a+48>>2]>>2]=+((f+-1|0)/5|0|0);h=c[i>>2]|0;b[c[a+60>>2]>>1]=(h+-1|0)/3|0;if(!((f|0)>799999|(h|0)>799999)){l=d;return}c[e>>2]=2647;gi(2643,e)|0;l=d;return}function mf(a,b,d){a=a|0;b=+b;d=+d;var e=0;e=c[a+76>>2]|0;g[e+4>>2]=b;g[e+8>>2]=d;return}function nf(a){a=a|0;c[a+72>>2]=c[a+76>>2];gf(a+68|0);c[a+96>>2]=0;return}function of(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0.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.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0;h=d+136|0;if(a[h>>0]|0){i=nd(d)|0;j=d+137|0;if(!(a[j>>0]|0)){k=d+140|0;l=b+72|0;m=b+28|0;n=i;o=i+4|0}else{p=b+72|0;q=c[p>>2]|0;r=d+140|0;s=c[r>>2]|0;if(!s){t=i+12|0;c[r>>2]=pf(b,+g[i+8>>2],+g[t>>2])|0;u=b+28|0;v=t}else{t=b+28|0;Kf(t,c[s>>2]|0);w=i+8|0;x=+g[w>>2];y=s+4|0;z=i+12|0;A=+g[z>>2];B=s+8|0;if(!(x!=+g[y>>2])?!(A!=+g[B>>2]):0)Gf(t);else{Lf(t,c[s>>2]|0,x,A);c[y>>2]=c[w>>2];c[B>>2]=c[z>>2]}c[p>>2]=s;u=t;v=z}z=b+4|0;t=c[z>>2]|0;s=b+8|0;B=c[s>>2]|0;w=b+12|0;y=c[w>>2]|0;C=b+16|0;D=c[C>>2]|0;E=b+20|0;F=c[E>>2]|0;G=b+24|0;H=c[G>>2]|0;I=b+92|0;J=c[I>>2]|0;je(z,1.0,0.0,0.0,-1.0,0.0,+g[v>>2])|0;g[I>>2]=1.0;a[h>>0]=0;v=i+4|0;of(b,d,-+g[i>>2],-+g[v>>2])|0;a[h>>0]=1;c[z>>2]=t;c[s>>2]=B;c[w>>2]=y;c[C>>2]=D;c[E>>2]=F;c[G>>2]=H;c[I>>2]=J;c[p>>2]=q;Kf(u,c[q>>2]|0);k=r;l=p;m=u;n=i;o=v}v=c[k>>2]|0;A=+g[v+4>>2];x=+g[v+8>>2];k=b+84|0;g[k>>2]=+g[n>>2]+e;n=b+88|0;g[n>>2]=+g[o>>2]+f;o=c[v>>2]|0;qf(b,0.0,0.0,A,x,0.0,0.0,A,x,A,x);v=c[(c[l>>2]|0)+20>>2]|0;if(!v)Uf(m,o);else Wf(m,o,v);g[k>>2]=0.0;g[n>>2]=0.0;a[j>>0]=0;K=0;return K|0}switch(c[d+4>>2]|0){case 1:{j=b+84|0;g[j>>2]=e;n=b+88|0;g[n>>2]=f;rf(b,d);g[j>>2]=0.0;g[n>>2]=0.0;K=1;return K|0}case 3:{if(a[d+288>>0]|0){K=0;return K|0}x=+g[d+280>>2];if(!(x!=0.0)){K=0;return K|0}A=+g[d+284>>2];if(!(A!=0.0)){K=0;return K|0}n=b+84|0;g[n>>2]=e;j=b+88|0;g[j>>2]=f;qf(b,0.0,0.0,x,A,+g[d+272>>2],+g[d+276>>2],x,A,x,A);k=c[(c[b+72>>2]|0)+20>>2]|0;v=c[d+268>>2]|0;o=b+28|0;if(!k)Xf(o,v);else Zf(o,v,k);g[n>>2]=0.0;g[j>>2]=0.0;K=1;return K|0}case 4:{A=+g[d+280>>2];if(!(A!=0.0)){K=0;return K|0}x=+g[d+284>>2];if(!(x!=0.0)){K=0;return K|0}j=b+84|0;g[j>>2]=e;n=b+88|0;g[n>>2]=f;qf(b,0.0,0.0,A,x,+g[d+272>>2],+g[d+276>>2],A,x,A,x);k=c[(c[b+72>>2]|0)+20>>2]|0;v=c[d+268>>2]|0;o=b+28|0;if(!k)Yf(o,v);else _f(o,v,k);g[j>>2]=0.0;g[n>>2]=0.0;K=1;return K|0}case 6:{sf(b,d,e,f);K=1;return K|0}case 7:{n=b+84|0;g[n>>2]=e;j=b+88|0;g[j>>2]=f;tf(b,d);k=d+272|0;v=((c[k+4>>2]|0)-(c[k>>2]|0)|0)/44|0;g[n>>2]=0.0;g[j>>2]=0.0;K=v;return K|0}case 8:{v=b+84|0;g[v>>2]=e;j=b+88|0;g[j>>2]=f;uf(b,d);n=d+320|0;k=((c[n+4>>2]|0)-(c[n>>2]|0)|0)/44|0;g[v>>2]=0.0;g[j>>2]=0.0;ag(b+28|0,1);K=k;return K|0}case 5:{k=b+84|0;g[k>>2]=e;j=b+88|0;g[j>>2]=f;x=+g[d+292>>2];A=+g[d+296>>2];qf(b,0.0,0.0,x,A,+g[d+284>>2],+g[d+288>>2],x,A,x,A);v=c[(c[b+72>>2]|0)+20>>2]|0;n=c[d+280>>2]|0;o=b+28|0;if(!v)Yf(o,n);else _f(o,n,v);g[k>>2]=0.0;g[j>>2]=0.0;L=1;break}case 2:{L=0;break}default:{K=0;return K|0}}j=c[d+268>>2]|0;k=d+272|0;if(j>>>0>=(c[k>>2]|0)>>>0){K=L;return K|0}d=b+92|0;v=b+4|0;n=b+8|0;o=b+12|0;m=b+16|0;l=b+20|0;i=b+24|0;u=b+68|0;p=b+28|0;A=0.0;x=0.0;M=0.0;N=0.0;r=L;L=j;O=0.0;P=0.0;Q=0.0;while(1){j=c[L>>2]|0;R=+g[j+64>>2];if(R!=1.0){S=+g[d>>2];g[d>>2]=R*S;T=1;U=S}else{T=0;U=O}if(!(a[j+176>>0]|0)){V=+g[j+24>>2]+f;W=A;X=x;Y=M;Z=N;_=0;$=+g[j+20>>2]+e-+g[j+56>>2];aa=P;ba=Q}else{q=_c(j)|0;S=+g[j+20>>2]+e;R=+g[j+24>>2]+f;ca=+g[v>>2];da=+g[n>>2];ea=+g[o>>2];fa=+g[m>>2];ga=+g[l>>2];ha=+g[i>>2];ia=+g[q>>2];ja=+g[q+4>>2];ka=+g[q+8>>2];la=+g[q+12>>2];if(ia!=1.0|ja!=0.0|ka!=0.0|la!=1.0){g[v>>2]=ia*ca+ja*ea;g[n>>2]=ia*da+ja*fa;g[o>>2]=ka*ca+la*ea;g[m>>2]=ka*da+la*fa}g[l>>2]=S*ca+R*ea+ga;g[i>>2]=S*da+R*fa+ha;V=-0.0;W=ca;X=da;Y=ea;Z=fa;_=1;$=-+g[j+56>>2];aa=ga;ba=ha}ha=V-+g[j+60>>2];do if((a[j+8>>0]|0)!=0?(c[j+108>>2]|0)==0:0){if((c[j+124>>2]|0)>0){ma=(vf(b,j,$,ha)|0)+r|0;break}if((c[j+68>>2]|0)==0?(c[j+104>>2]|0)==0:0){if(ue(j+72|0)|0?ue(j+88|0)|0:0){if(c[u>>2]|0){If(p,0);c[u>>2]=0}ma=(of(b,j,$,ha)|0)+r|0;break}if(c[u>>2]|0){If(p,0);c[u>>2]=0}ma=(xf(b,j,$,ha)|0)+r|0;break}ma=(wf(b,j,$,ha)|0)+r|0}else ma=r;while(0);if(T)g[d>>2]=U;if(_){g[v>>2]=W;g[n>>2]=X;g[o>>2]=Y;g[m>>2]=Z;g[l>>2]=aa;g[i>>2]=ba}L=L+4|0;if(L>>>0>=(c[k>>2]|0)>>>0){K=ma;break}else{A=W;x=X;M=Y;N=Z;r=ma;O=U;P=aa;Q=ba}}return K|0}function pf(b,d,e){b=b|0;d=+d;e=+e;var f=0,h=0,i=0,j=0,k=0,l=0;f=dg()|0;h=c[f>>2]|0;i=b+96|0;j=b+28|0;do if((h|0)>(c[i>>2]|0)){Jf(j,h,d,e);Kf(j,c[f>>2]|0);c[i>>2]=c[f>>2];g[f+4>>2]=d;g[f+8>>2]=e}else{Kf(j,h);k=f+4|0;l=f+8|0;if(!(+g[k>>2]!=d)?!(+g[l>>2]!=e):0){Gf(j);break}Lf(j,c[f>>2]|0,d,e);g[k>>2]=d;g[l>>2]=e}while(0);a[f+12>>0]=0;c[b+72>>2]=f;return f|0}function qf(a,d,e,f,h,i,j,k,l,m,n){a=a|0;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;l=+l;m=+m;n=+n;var o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0;o=a+56|0;if((c[o>>2]|0)>((c[a+80>>2]|0)*20|0)){c[o>>2]=1;Tf(a+28|0,c[a+52>>2]|0,c[a+64>>2]|0,0)}p=c[a+92>>2]|0;q=+g[a+4>>2];r=+g[a+8>>2];s=+g[a+12>>2];t=+g[a+16>>2];u=+g[a+20>>2];v=+g[a+24>>2];w=+g[a+84>>2];x=+g[a+88>>2];if(w!=0.0|x!=0.0){y=u+(q*w+s*x);z=v+(r*w+t*x)}else{y=u;z=v}if(i!=0.0|j!=0.0){A=q*i+s*j+y;B=r*i+t*j+z}else{A=y;B=z}z=k/f;C=z!=1.0;k=l/h;D=k!=1.0;l=d/m;d=e/n;E=a+48|0;F=a+52|0;G=c[F>>2]|0;g[(c[E>>2]|0)+(G<<2)>>2]=A;g[(c[E>>2]|0)+(G+1<<2)>>2]=B;g[(c[E>>2]|0)+(G+2<<2)>>2]=l;g[(c[E>>2]|0)+(G+3<<2)>>2]=d;c[(c[E>>2]|0)+(G+4<<2)>>2]=p;e=(C?z*q:q)*f;g[(c[E>>2]|0)+(G+5<<2)>>2]=e+A;q=(C?z*r:r)*f;g[(c[E>>2]|0)+(G+6<<2)>>2]=q+B;r=f/m+l;g[(c[E>>2]|0)+(G+7<<2)>>2]=r;g[(c[E>>2]|0)+(G+8<<2)>>2]=d;c[(c[E>>2]|0)+(G+9<<2)>>2]=p;m=(D?k*s:s)*h;g[(c[E>>2]|0)+(G+10<<2)>>2]=e+m+A;e=(D?k*t:t)*h;g[(c[E>>2]|0)+(G+11<<2)>>2]=q+e+B;g[(c[E>>2]|0)+(G+12<<2)>>2]=r;r=h/n+d;g[(c[E>>2]|0)+(G+13<<2)>>2]=r;c[(c[E>>2]|0)+(G+14<<2)>>2]=p;g[(c[E>>2]|0)+(G+15<<2)>>2]=m+A;g[(c[E>>2]|0)+(G+16<<2)>>2]=e+B;g[(c[E>>2]|0)+(G+17<<2)>>2]=l;g[(c[E>>2]|0)+(G+18<<2)>>2]=r;D=c[E>>2]|0;c[F>>2]=G+20;c[D+(G+19<<2)>>2]=p;p=(c[o>>2]|0)+20|0;c[o>>2]=p;o=(p|0)/5|0;p=o+65532&65535;G=a+60|0;D=a+64|0;a=c[D>>2]|0;b[(c[G>>2]|0)+(a<<1)>>1]=p;b[(c[G>>2]|0)+(a+1<<1)>>1]=o+65533;F=o+65534&65535;b[(c[G>>2]|0)+(a+2<<1)>>1]=F;b[(c[G>>2]|0)+(a+3<<1)>>1]=p;b[(c[G>>2]|0)+(a+4<<1)>>1]=F;F=c[G>>2]|0;c[D>>2]=a+6;b[F+(a+5<<1)>>1]=o+65535;return}function rf(b,d){b=b|0;d=d|0;var e=0,f=0,h=0.0,i=0.0;e=c[d+268>>2]|0;if(!e)return;if(a[d+288>>0]|0){f=d+304|0;if(a[f>>0]|0){Ic(d);a[f>>0]=0}Bf(b,e,d);return}h=+Gc(d);i=+Hc(d);qf(b,+g[e+4>>2],+g[e+8>>2],+g[e+12>>2],+g[e+16>>2],+g[e+20>>2],+g[e+24>>2],h,i,+g[e+36>>2],+g[e+40>>2]);d=c[(c[b+72>>2]|0)+20>>2]|0;f=c[e>>2]|0;e=b+28|0;if(!d){Hf(e,f,2);return}else{Vf(e,f,d,2);return}}function sf(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0,i=0,k=0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0.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.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0;f=l;l=l+16|0;h=f;i=c[b+304>>2]|0;if((b|0)==0|(i|0)==0){l=f;return}k=i+12|0;m=+g[k>>2];n=i+16|0;o=+g[n>>2];Af(h,b+320|0);b=c[h>>2]|0;p=h+4|0;q=c[p>>2]|0;if((b|0)==(q|0)){r=q;s=q}else{t=+((~~+S(+m)|0)/2|0|0);m=+((~~+S(+o)|0)/2|0|0);q=a+92|0;u=a+4|0;v=a+8|0;w=a+12|0;x=a+16|0;y=a+20|0;z=a+24|0;A=a+4|0;B=i+4|0;C=i+8|0;D=i+20|0;E=i+24|0;F=i+36|0;G=i+40|0;H=a+72|0;I=a+28|0;J=b;do{b=yg(c[J>>2]|0,t,m)|0;K=c[q>>2]|0;L=c[u>>2]|0;M=c[v>>2]|0;N=c[w>>2]|0;O=c[x>>2]|0;P=c[y>>2]|0;Q=c[z>>2]|0;o=+g[b+16>>2]+d;R=+g[b+20>>2]+e;T=+g[b>>2];U=+g[b+4>>2];V=+g[b+8>>2];W=+g[b+12>>2];X=(c[j>>2]=L,+g[j>>2]);Y=(c[j>>2]=M,+g[j>>2]);Z=(c[j>>2]=N,+g[j>>2]);_=(c[j>>2]=O,+g[j>>2]);$=(c[j>>2]=P,+g[j>>2]);aa=(c[j>>2]=Q,+g[j>>2]);if(T!=1.0|U!=0.0|V!=0.0|W!=1.0){g[A>>2]=T*X+U*Z;g[v>>2]=T*Y+U*_;g[w>>2]=V*X+W*Z;g[x>>2]=V*Y+W*_}g[y>>2]=o*X+R*Z+$;g[z>>2]=o*Y+R*_+aa;aa=+g[B>>2];_=+g[C>>2];R=+g[k>>2];Y=+g[n>>2];o=+g[D>>2];$=+g[E>>2];Z=+g[F>>2];X=+g[G>>2];c[q>>2]=c[(c[J>>2]|0)+20>>2];qf(a,aa,_,R,Y,o,$,R,Y,Z,X);b=c[(c[H>>2]|0)+20>>2]|0;ba=c[i>>2]|0;if(!b)Hf(I,ba,2);else Vf(I,ba,b,2);c[q>>2]=K;c[u>>2]=L;c[v>>2]=M;c[w>>2]=N;c[x>>2]=O;c[y>>2]=P;c[z>>2]=Q;J=J+4|0}while((J|0)!=(c[p>>2]|0));r=c[h>>2]|0;s=J}if(r|0){if((s|0)!=(r|0))c[p>>2]=s+(~((s+-4-r|0)>>>2)<<2);qi(r)}l=f;return}function tf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;d=c[b+272>>2]|0;e=b+276|0;if(d>>>0>=(c[e>>2]|0)>>>0)return;b=a+72|0;f=a+28|0;h=d;do{qf(a,+g[h+4>>2],+g[h+8>>2],+g[h+12>>2],+g[h+16>>2],+g[h+20>>2],+g[h+24>>2],+g[h+28>>2],+g[h+32>>2],+g[h+36>>2],+g[h+40>>2]);d=c[(c[b>>2]|0)+20>>2]|0;i=c[h>>2]|0;if(!d)Hf(f,i,2);else Vf(f,i,d,2);h=h+44|0}while(h>>>0<(c[e>>2]|0)>>>0);return}function uf(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=d+332|0;if(a[e>>0]|0){Yd(d);a[e>>0]=0}e=c[d+320>>2]|0;f=d+324|0;if(e>>>0>=(c[f>>2]|0)>>>0)return;h=d+284|0;i=d+268|0;j=d+300|0;k=b+72|0;l=b+28|0;m=d+304|0;d=e;do{zf(b,+g[d+4>>2],+g[d+8>>2],+g[d+12>>2],+g[d+16>>2],+g[d+20>>2],+g[d+24>>2],+g[d+28>>2],+g[d+32>>2],+g[d+36>>2],+g[d+40>>2],h,i,j);e=c[(c[k>>2]|0)+20>>2]|0;n=c[d>>2]|0;o=((c[m>>2]|0)-(c[j>>2]|0)>>2>>>0)/3|0;if(!e)Hf(l,n,o);else Vf(l,n,e,o);d=d+44|0}while(d>>>0<(c[f>>2]|0)>>>0);return}function vf(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;h=b+68|0;i=b+72|0;j=c[i>>2]|0;k=d+124|0;if((c[k>>2]|0)==1?(l=d+112|0,m=c[l>>2]|0,(a[(c[m>>2]|0)+20>>0]|0)==0):0){n=d+68|0;o=c[n>>2]|0;if((o|0)==(c[h>>2]|0))p=m;else{If(b+28|0,o);c[h>>2]=c[n>>2];p=c[l>>2]|0}l=j+20|0;c[l>>2]=c[p>>2];do if(!(c[d+104>>2]|0)){if(ue(d+72|0)|0?ue(d+88|0)|0:0){q=of(b,d,e,f)|0;break}q=xf(b,d,e,f)|0}else q=wf(b,d,e,f)|0;while(0);c[l>>2]=0;r=q;return r|0}q=nd(d)|0;l=pf(b,+g[q+8>>2],+g[q+12>>2])|0;p=ge()|0;n=b+4|0;le(p,n)|0;o=b+92|0;m=c[o>>2]|0;ce(n);g[o>>2]=1.0;do if(!(c[d+104>>2]|0)){if(ue(d+72|0)|0?ue(d+88|0)|0:0){s=of(b,d,-+g[q>>2],-+g[q+4>>2])|0;break}s=xf(b,d,-+g[q>>2],-+g[q+4>>2])|0}else s=wf(b,d,-+g[q>>2],-+g[q+4>>2])|0;while(0);le(n,p)|0;c[o>>2]=m;if((s|0)>0){m=d+68|0;o=c[m>>2]|0;if((o|0)!=(c[h>>2]|0)){If(b+28|0,o);c[h>>2]=c[m>>2]}m=b+84|0;g[m>>2]=0.0;h=b+88|0;g[h>>2]=0.0;if((c[k>>2]|0)>1){o=d+112|0;n=s;t=0;u=l;while(1){v=c[(c[o>>2]|0)+(t<<2)>>2]|0;w=pf(b,+g[u+4>>2],+g[u+8>>2])|0;yf(b,v,u,0);v=n+1|0;if((u|0)!=(l|0))eg(u);t=t+1|0;if((t|0)>=((c[k>>2]|0)+-1|0)){x=v;y=w;break}else{n=v;u=w}}}else{x=s;y=l}c[i>>2]=j;Kf(b+28|0,c[j>>2]|0);u=c[(c[d+116>>2]|0)+-4>>2]|0;g[m>>2]=+g[q>>2]+e;g[h>>2]=+g[q+4>>2]+f;yf(b,u,y,0);u=x+1|0;if((y|0)==(l|0))z=u;else{eg(y);z=u}}else{c[i>>2]=j;Kf(b+28|0,c[j>>2]|0);z=s}eg(l);he(p);r=z;return r|0}function wf(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.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.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0;f=b+88|0;h=ue(f)|0;i=h?b+72|0:f;if(ue(i)|0){j=0.0;k=0.0;l=0.0;m=0.0}else{j=+g[b+100>>2];k=+g[b+96>>2];l=+g[f>>2];m=+g[b+92>>2]}f=c[b+104>>2]|0;h=(f|0)!=0;if(h){n=_c(f)|0;if(+g[n>>2]==0.0?+g[n+4>>2]==0.0:0){o=0;return o|0}if(+g[n+8>>2]==0.0?+g[n+12>>2]==0.0:0){o=0;return o|0}}n=a+68|0;p=a+72|0;q=c[p>>2]|0;r=Ui(b,96,104,0)|0;do if(!h){if(r|0?(c[r+272>>2]|0)!=(c[r+268>>2]|0):0)break;if(!(ue(i)|0)){g[a+84>>2]=d;g[a+88>>2]=e;s=(c[p>>2]|0)+16|0;t=c[s>>2]|0;u=a+28|0;if(!t){Of(u);Sf(u,0,0,1);v=c[s>>2]|0}else v=t;c[s>>2]=v+1;qf(a,0.0,0.0,k,j,l,m,k,j,k,j);Qf(u,v)}u=b+68|0;s=c[u>>2]|0;if((s|0)!=(c[n>>2]|0)){If(a+28|0,s);c[n>>2]=c[u>>2]}u=of(a,b,d,e)|0;if(ue(i)|0){o=u;return o|0}g[a+84>>2]=d;g[a+88>>2]=e;s=(c[p>>2]|0)+16|0;t=(c[s>>2]|0)+-1|0;c[s>>2]=t;if(!t){Pf(a+28|0);o=u;return o|0}else{qf(a,0.0,0.0,k,j,l,m,k,j,k,j);Rf(a+28|0,t);o=u;return o|0}}while(0);v=ge()|0;r=nd(b)|0;u=r+8|0;t=r+12|0;s=pf(a,+g[u>>2],+g[t>>2])|0;w=a+4|0;le(v,w)|0;x=a+92|0;y=c[x>>2]|0;ce(w);g[x>>2]=1.0;z=r+4|0;A=of(a,b,-+g[r>>2],-+g[z>>2])|0;if(h){h=pf(a,+g[u>>2],+g[t>>2])|0;le(w,pd(f)|0)|0;qd(f,b,w);g[x>>2]=1.0;B=(of(a,f,-+g[r>>2],-+g[z>>2])|0)+A|0;je(w,1.0,0.0,0.0,-1.0,0.0,+g[h+8>>2])|0;g[x>>2]=1.0;c[p>>2]=s;f=a+28|0;Kf(f,c[s>>2]|0);if((c[n>>2]|0)!=3){If(f,3);c[n>>2]=3}C=+g[u>>2];D=+g[t>>2];E=c[h>>2]|0;qf(a,0.0,0.0,C,D,0.0,0.0,C,D,C,D);F=c[(c[p>>2]|0)+20>>2]|0;if(!F)Uf(f,E);else Wf(f,E,F);eg(h);G=f;H=B}else{G=a+28|0;H=A}le(w,v)|0;c[x>>2]=y;c[p>>2]=q;Kf(G,c[q>>2]|0);do if((H|0)>0){q=H+1|0;A=b+68|0;B=c[A>>2]|0;if((B|0)!=(c[n>>2]|0)){If(G,B);c[n>>2]=c[A>>2]}if(!(ue(i)|0)){g[a+84>>2]=d;g[a+88>>2]=e;A=(c[p>>2]|0)+16|0;B=c[A>>2]|0;if(!B){Of(G);Sf(G,0,0,1);I=c[A>>2]|0}else I=B;c[A>>2]=I+1;qf(a,0.0,0.0,k,j,l,m,k,j,k,j);Qf(G,I)}g[x>>2]=1.0;D=+g[r>>2]+d;C=+g[t>>2];J=+g[z>>2]+e+C;A=a+4|0;K=+g[A>>2];B=a+8|0;L=+g[B>>2];f=a+12|0;M=+g[f>>2];h=a+16|0;N=+g[h>>2];g[A>>2]=K+M*0.0;g[B>>2]=L+N*0.0;g[f>>2]=K*0.0-M;g[h>>2]=L*0.0-N;h=a+20|0;g[h>>2]=D*K+J*M+ +g[h>>2];h=a+24|0;g[h>>2]=D*L+J*N+ +g[h>>2];N=+g[u>>2];h=c[s>>2]|0;qf(a,0.0,0.0,N,C,0.0,0.0,N,C,N,C);f=c[(c[p>>2]|0)+20>>2]|0;if(!f)Uf(G,h);else Wf(G,h,f);c[x>>2]=y;le(w,v)|0;if(!(ue(i)|0)){g[a+84>>2]=d;g[a+88>>2]=e;f=(c[p>>2]|0)+16|0;h=(c[f>>2]|0)+-1|0;c[f>>2]=h;if(!h){Pf(G);O=q;break}else{qf(a,0.0,0.0,k,j,l,m,k,j,k,j);Rf(G,h);O=q;break}}else O=q}else O=H;while(0);he(v);eg(s);o=O;return o|0}function xf(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var h=0,i=0.0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0;h=d+88|0;if(ue(h)|0){i=e;j=f;k=d+84|0;l=d+80|0;m=+g[d+72>>2];n=+g[d+76>>2]}else{o=+g[h>>2];p=+g[d+92>>2];i=e-o;j=f-p;k=d+100|0;l=d+96|0;m=o;n=p}p=+g[l>>2];o=+g[k>>2];k=b+72|0;l=c[k>>2]|0;h=l+12|0;if(((a[h>>0]|0)==0?!(+g[b+8>>2]!=0.0):0)?!(+g[b+12>>2]!=0.0):0){f=+g[b+4>>2];e=+g[b+16>>2];q=+g[b+20>>2];r=+g[b+24>>2];s=m+i;t=n+j;u=s+p;v=t+o;if(f==1.0&e==1.0){w=u+q;x=v+r;y=s+q;z=t+r}else{A=s*f+q;s=t*e+r;t=u*f+q;q=v*e+r;B=A>t;r=B?t:A;e=B?A:t;B=t>A;v=B?A:t;f=B?t:A;w=e>f?e:f;x=s>q?s:q;y=r<v?r:v;z=s<q?s:q}B=b+28|0;Mf(B,y,+g[l+8>>2]-x,w-y,x-z);a[h>>0]=1;C=of(b,d,i,j)|0;Nf(B);a[h>>0]=0;D=C;return D|0}C=b+84|0;g[C>>2]=i;h=b+88|0;g[h>>2]=j;B=l+16|0;l=c[B>>2]|0;E=b+28|0;if(!l){Of(E);Sf(E,0,0,1);F=c[B>>2]|0}else F=l;c[B>>2]=F+1;qf(b,0.0,0.0,p,o,m,n,p,o,p,o);Qf(E,F);F=of(b,d,i,j)|0;g[C>>2]=i;g[h>>2]=j;h=(c[k>>2]|0)+16|0;k=(c[h>>2]|0)+-1|0;c[h>>2]=k;if(!k){Pf(E);D=F;return D|0}else{qf(b,0.0,0.0,p,o,m,n,p,o,p,o);Rf(E,k);D=F;return D|0}return 0}function yf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0;e=ge()|0;f=a+4|0;le(e,f)|0;h=a+92|0;i=c[h>>2]|0;j=a+84|0;k=c[j>>2]|0;l=a+88|0;m=c[l>>2]|0;n=+g[d+4>>2];o=+g[d+8>>2];je(f,1.0,0.0,0.0,-1.0,0.0,o)|0;p=+g[j>>2];q=+g[l>>2];if(p!=0.0|q!=0.0)ee(f,1.0,0.0,0.0,1.0,p,q);g[l>>2]=0.0;g[j>>2]=0.0;g[h>>2]=1.0;qf(a,0.0,0.0,n,o,0.0,0.0,n,o,n,o);Wf(a+28|0,c[d>>2]|0,b);le(f,e)|0;c[h>>2]=i;c[j>>2]=k;c[l>>2]=m;he(e);return}function zf(a,d,e,f,h,i,j,k,l,m,n,o,p,q){a=a|0;d=+d;e=+e;f=+f;h=+h;i=+i;j=+j;k=+k;l=+l;m=+m;n=+n;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.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;r=p+4|0;s=((c[r>>2]|0)-(c[p>>2]|0)>>2>>>1)*5|0;t=a+56|0;if((s+(c[t>>2]|0)|0)>((c[a+80>>2]|0)*20|0)){c[t>>2]=1;Tf(a+28|0,c[a+52>>2]|0,c[a+64>>2]|0,0)}u=c[a+92>>2]|0;v=+g[a+4>>2];w=+g[a+8>>2];x=+g[a+12>>2];y=+g[a+16>>2];z=+g[a+20>>2];A=+g[a+24>>2];B=+g[a+84>>2];C=+g[a+88>>2];if(B!=0.0|C!=0.0){D=z+(v*B+x*C);E=A+(w*B+y*C)}else{D=z;E=A}if(i!=0.0|j!=0.0){F=v*i+x*j+D;G=w*i+y*j+E}else{F=D;G=E}E=k/f;H=E!=1.0;k=H?E*w:w;w=H?E*v:v;v=l/h;H=v!=1.0;l=H?v*y:y;y=H?v*x:x;H=o+4|0;I=(c[H>>2]|0)-(c[o>>2]|0)|0;J=I>>2;if((I|0)>0){I=a+48|0;K=a+52|0;L=0;do{M=c[r>>2]|0;N=c[p>>2]|0;if(M-N>>2>>>0>L>>>0){O=N;P=M;Q=N}else{ni(p);N=c[p>>2]|0;O=N;P=c[r>>2]|0;Q=N}x=+g[O+(L<<2)>>2];N=L|1;if(P-Q>>2>>>0>N>>>0)R=Q;else{ni(p);R=c[p>>2]|0}v=+g[R+(N<<2)>>2];M=c[H>>2]|0;S=c[o>>2]|0;if(M-S>>2>>>0>L>>>0){T=S;U=M;V=S}else{ni(o);S=c[o>>2]|0;T=S;U=c[H>>2]|0;V=S}E=+g[T+(L<<2)>>2];if(U-V>>2>>>0>N>>>0)W=V;else{ni(o);W=c[o>>2]|0}D=+g[W+(N<<2)>>2];N=c[K>>2]|0;g[(c[I>>2]|0)+(N<<2)>>2]=F+(w*x+y*v);g[(c[I>>2]|0)+(N+1<<2)>>2]=G+(k*x+l*v);g[(c[I>>2]|0)+(N+2<<2)>>2]=(E*f+d)/m;g[(c[I>>2]|0)+(N+3<<2)>>2]=(D*h+e)/n;S=c[I>>2]|0;c[K>>2]=N+5;c[S+(N+4<<2)>>2]=u;L=L+2|0}while((L|0)<(J|0))}J=c[t>>2]|0;n=+((J|0)/5|0|0);L=q+4|0;u=c[L>>2]|0;K=c[q>>2]|0;I=u-K|0;W=I>>2;if((I|0)<=0){X=J;Y=X+s|0;c[t>>2]=Y;return}J=a+60|0;I=a+64|0;a=u;u=K;K=0;while(1){if(a-u>>2>>>0>K>>>0){Z=u;_=u}else{ni(q);o=c[q>>2]|0;Z=o;_=o}o=~~(n+ +g[Z+(K<<2)>>2])&65535;V=c[J>>2]|0;U=c[I>>2]|0;c[I>>2]=U+1;b[V+(U<<1)>>1]=o;o=K+1|0;if((o|0)>=(W|0))break;a=c[L>>2]|0;u=_;K=o}X=c[t>>2]|0;Y=X+s|0;c[t>>2]=Y;return}function Af(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;c[a>>2]=0;d=a+4|0;c[d>>2]=0;c[a+8>>2]=0;e=b+4|0;f=(c[e>>2]|0)-(c[b>>2]|0)|0;g=f>>2;if(!g)return;if(g>>>0>1073741823){mi(a);h=Na(4)|0;qj(h);ob(h|0,496,41)}h=oi(f)|0;c[d>>2]=h;c[a>>2]=h;c[a+8>>2]=h+(g<<2);g=c[b>>2]|0;b=(c[e>>2]|0)-g|0;if((b|0)<=0)return;Aj(h|0,g|0,b|0)|0;c[d>>2]=h+(b>>>2<<2);return}function Bf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0;e=d+308|0;if((c[e>>2]|0)<=0)return;f=d+292|0;d=a+72|0;h=a+28|0;i=0;do{j=i*10|0;k=c[f>>2]|0;qf(a,+g[k+(j<<2)>>2],+g[k+((j|1)<<2)>>2],+g[k+(j+2<<2)>>2],+g[k+(j+3<<2)>>2],+g[k+(j+4<<2)>>2],+g[k+(j+5<<2)>>2],+g[k+(j+6<<2)>>2],+g[k+(j+7<<2)>>2],+g[k+(j+8<<2)>>2],+g[k+(j+9<<2)>>2]);j=c[(c[d>>2]|0)+20>>2]|0;k=c[b>>2]|0;if(!j)Hf(h,k,2);else Vf(h,k,j,2);i=i+1|0}while((i|0)<(c[e>>2]|0));return}function Cf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=1104;be(a+4|0);c[a>>2]=1136;Df(a+28|0,e);c[a+48>>2]=b;c[a+52>>2]=1;c[a+60>>2]=d;c[a+64>>2]=1;ff(a+68|0);c[a+80>>2]=4096;g[a+84>>2]=0.0;g[a+88>>2]=0.0;g[a+92>>2]=1.0;c[a+96>>2]=0;d=dg()|0;c[a+76>>2]=d;c[a+72>>2]=d;return}function Df(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+4>>2]=1;c[a+8>>2]=0;c[a+12>>2]=0;return}function Ef(a){a=a|0;c[a+4>>2]=1;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;return}function Ff(a){a=a|0;g[c[a>>2]>>2]=+(c[a+8>>2]|0);return}function Gf(a){a=a|0;var b=0,d=0,e=0;b=a+4|0;d=c[b>>2]|0;g[(c[a>>2]|0)+(d<<2)>>2]=0.0;g[(c[a>>2]|0)+(d+1<<2)>>2]=1.0;e=c[a>>2]|0;c[b>>2]=d+3;g[e+(d+2<<2)>>2]=1.0;d=a+8|0;c[d>>2]=(c[d>>2]|0)+1;c[a+12>>2]=0;return}function Hf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0.0;e=a+12|0;f=c[a>>2]|0;h=a+4|0;i=c[h>>2]|0;j=+(d|0);if((c[e>>2]|0)==(b|0)){d=f+(i+-1<<2)|0;g[d>>2]=j+ +g[d>>2];return}else{g[f+(i<<2)>>2]=1.0;g[(c[a>>2]|0)+(i+1<<2)>>2]=+(b|0);f=c[a>>2]|0;c[h>>2]=i+3;g[f+(i+2<<2)>>2]=j;i=a+8|0;c[i>>2]=(c[i>>2]|0)+1;c[e>>2]=b;return}}function If(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=2.0;f=c[a>>2]|0;c[d>>2]=e+2;g[f+(e+1<<2)>>2]=+(b|0);b=a+8|0;c[b>>2]=(c[b>>2]|0)+1;c[a+12>>2]=0;return}function Jf(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0;f=a+4|0;h=c[f>>2]|0;g[(c[a>>2]|0)+(h<<2)>>2]=3.0;g[(c[a>>2]|0)+(h+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(h+2<<2)>>2]=d;b=c[a>>2]|0;c[f>>2]=h+4;g[b+(h+3<<2)>>2]=e;h=a+8|0;c[h>>2]=(c[h>>2]|0)+1;c[a+12>>2]=0;return}function Kf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=4.0;f=c[a>>2]|0;c[d>>2]=e+2;g[f+(e+1<<2)>>2]=+(b|0);b=a+8|0;c[b>>2]=(c[b>>2]|0)+1;c[a+12>>2]=0;return}function Lf(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,h=0;f=a+4|0;h=c[f>>2]|0;g[(c[a>>2]|0)+(h<<2)>>2]=5.0;g[(c[a>>2]|0)+(h+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(h+2<<2)>>2]=d;b=c[a>>2]|0;c[f>>2]=h+4;g[b+(h+3<<2)>>2]=e;h=a+8|0;c[h>>2]=(c[h>>2]|0)+1;c[a+12>>2]=0;return}function Mf(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=+f;var h=0,i=0,j=0;h=a+4|0;i=c[h>>2]|0;g[(c[a>>2]|0)+(i<<2)>>2]=6.0;g[(c[a>>2]|0)+(i+1<<2)>>2]=b;g[(c[a>>2]|0)+(i+2<<2)>>2]=d;g[(c[a>>2]|0)+(i+3<<2)>>2]=e;j=c[a>>2]|0;c[h>>2]=i+5;g[j+(i+4<<2)>>2]=f;i=a+8|0;c[i>>2]=(c[i>>2]|0)+1;c[a+12>>2]=0;return}function Nf(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;d=a+4|0;e=c[d>>2]|0;c[d>>2]=e+1;g[b+(e<<2)>>2]=7.0;e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;c[a+12>>2]=0;return}function Of(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;d=a+4|0;e=c[d>>2]|0;c[d>>2]=e+1;g[b+(e<<2)>>2]=8.0;e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;c[a+12>>2]=0;return}function Pf(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;d=a+4|0;e=c[d>>2]|0;c[d>>2]=e+1;g[b+(e<<2)>>2]=9.0;e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;c[a+12>>2]=0;return}function Qf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=10.0;f=c[a>>2]|0;c[d>>2]=e+2;g[f+(e+1<<2)>>2]=+(b|0);b=a+8|0;c[b>>2]=(c[b>>2]|0)+1;c[a+12>>2]=0;return}function Rf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=11.0;f=c[a>>2]|0;c[d>>2]=e+2;g[f+(e+1<<2)>>2]=+(b|0);b=a+8|0;c[b>>2]=(c[b>>2]|0)+1;c[a+12>>2]=0;return}function Sf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0;f=a+4|0;h=c[f>>2]|0;g[(c[a>>2]|0)+(h<<2)>>2]=12.0;g[(c[a>>2]|0)+(h+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(h+2<<2)>>2]=+(d|0);d=c[a>>2]|0;c[f>>2]=h+4;g[d+(h+3<<2)>>2]=+(e|0);e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;c[a+12>>2]=0;return}function Tf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0,j=0.0;f=+(b|0);h=a+16|0;i=c[h>>2]|0;g[(c[a>>2]|0)+(i<<2)>>2]=f;j=+(d|0);g[(c[a>>2]|0)+(i+3<<2)>>2]=j;if(e){c[h>>2]=b;return}else{b=a+4|0;e=c[b>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=14.0;i=e+2|0;g[(c[a>>2]|0)+(e+1<<2)>>2]=f;g[(c[a>>2]|0)+(i<<2)>>2]=0.0;c[h>>2]=i;g[(c[a>>2]|0)+(e+3<<2)>>2]=26.0;g[(c[a>>2]|0)+(e+4<<2)>>2]=j;i=c[a>>2]|0;c[b>>2]=e+6;g[i+(e+5<<2)>>2]=0.0;e=a+8|0;c[e>>2]=(c[e>>2]|0)+2;c[a+12>>2]=0;return}}function Uf(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=15.0;g[(c[a>>2]|0)+(e+1<<2)>>2]=+(b|0);b=c[a>>2]|0;c[d>>2]=e+3;g[b+(e+2<<2)>>2]=2.0;e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;c[a+12>>2]=0;return}function Vf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0.0;f=a+4|0;h=c[f>>2]|0;g[(c[a>>2]|0)+(h<<2)>>2]=19.0;g[(c[a>>2]|0)+(h+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(h+2<<2)>>2]=+(e|0);i=+(c[d>>2]|0);d=c[a>>2]|0;c[f>>2]=h+4;g[d+(h+3<<2)>>2]=i;h=a+8|0;c[h>>2]=(c[h>>2]|0)+1;c[a+12>>2]=0;return}function Wf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0;e=a+4|0;f=c[e>>2]|0;g[(c[a>>2]|0)+(f<<2)>>2]=20.0;g[(c[a>>2]|0)+(f+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(f+2<<2)>>2]=2.0;h=+(c[d>>2]|0);d=c[a>>2]|0;c[e>>2]=f+4;g[d+(f+3<<2)>>2]=h;f=a+8|0;c[f>>2]=(c[f>>2]|0)+1;c[a+12>>2]=0;return}function Xf(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=21.0;g[(c[a>>2]|0)+(e+1<<2)>>2]=+(b|0);b=c[a>>2]|0;c[d>>2]=e+3;g[b+(e+2<<2)>>2]=2.0;e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;c[a+12>>2]=0;return}function Yf(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+4|0;e=c[d>>2]|0;g[(c[a>>2]|0)+(e<<2)>>2]=22.0;g[(c[a>>2]|0)+(e+1<<2)>>2]=+(b|0);b=c[a>>2]|0;c[d>>2]=e+3;g[b+(e+2<<2)>>2]=2.0;e=a+8|0;c[e>>2]=(c[e>>2]|0)+1;c[a+12>>2]=0;return}function Zf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0;e=a+4|0;f=c[e>>2]|0;g[(c[a>>2]|0)+(f<<2)>>2]=23.0;g[(c[a>>2]|0)+(f+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(f+2<<2)>>2]=2.0;h=+(c[d>>2]|0);d=c[a>>2]|0;c[e>>2]=f+4;g[d+(f+3<<2)>>2]=h;f=a+8|0;c[f>>2]=(c[f>>2]|0)+1;c[a+12>>2]=0;return}function _f(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0;e=a+4|0;f=c[e>>2]|0;g[(c[a>>2]|0)+(f<<2)>>2]=24.0;g[(c[a>>2]|0)+(f+1<<2)>>2]=+(b|0);g[(c[a>>2]|0)+(f+2<<2)>>2]=2.0;h=+(c[d>>2]|0);d=c[a>>2]|0;c[e>>2]=f+4;g[d+(f+3<<2)>>2]=h;f=a+8|0;c[f>>2]=(c[f>>2]|0)+1;c[a+12>>2]=0;return}function $f(a){a=a|0;var b=0,d=0,e=0;b=a+4|0;d=c[b>>2]|0;g[(c[a>>2]|0)+(d<<2)>>2]=25.0;e=c[a>>2]|0;c[b>>2]=d+2;g[e+(d+1<<2)>>2]=0.0;d=a+8|0;c[d>>2]=(c[d>>2]|0)+1;return}function ag(a,b){a=a|0;b=b|0;g[(c[a>>2]|0)+8>>2]=+(b&1);return}function bg(){c[2401894]=0;c[2401895]=0;c[2401896]=0;mb(51,9607576,o|0)|0;return}function cg(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(!b)return;d=a+4|0;a=c[d>>2]|0;if((a|0)!=(b|0))c[d>>2]=a+(~((a+-4-b|0)>>>2)<<2);qi(b);return}function dg(){var b=0,d=0,e=0,f=0;b=c[2401895]|0;if((c[2401894]|0)==(b|0)){d=oi(24)|0;e=c[2401897]|0;c[2401897]=e+1;c[d>>2]=e;g[d+4>>2]=3.0;g[d+8>>2]=3.0;a[d+12>>0]=0;c[d+16>>2]=0;c[d+20>>2]=0;f=d;return f|0}else{d=b+-4|0;b=c[d>>2]|0;c[2401895]=d;f=b;return f|0}return 0}function eg(a){a=a|0;var b=0,d=0,e=0;b=l;l=l+16|0;d=b;c[d>>2]=a;e=c[2401895]|0;if((e|0)==(c[2401896]|0)){fg(9607576,d);l=b;return}else{c[e>>2]=a;c[2401895]=(c[2401895]|0)+4;l=b;return}}function fg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>2)+1|0;if(g>>>0>1073741823){mi(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=(c[e>>2]|0)-h|0;j=f>>1;k=f>>2>>>0<536870911?(j>>>0<g>>>0?g:j):1073741823;j=i-h>>2;do if(k)if(k>>>0>1073741823){g=Na(4)|0;qj(g);ob(g|0,496,41)}else{l=oi(k<<2)|0;break}else l=0;while(0);g=l+(j<<2)|0;c[g>>2]=c[b>>2];b=i-h|0;i=g+(0-(b>>2)<<2)|0;if((b|0)>0)Aj(i|0,h|0,b|0)|0;c[a>>2]=i;c[d>>2]=g+4;c[e>>2]=l+(k<<2);if(!h)return;qi(h);return}function gg(){var a=0,b=0;a=c[2401894]|0;b=c[2401895]|0;if((b|0)==(a|0)){c[2401897]=1;return}c[2401895]=b+(~((b+-4-a|0)>>>2)<<2);c[2401897]=1;return}function hg(){var a=0,b=0;a=c[2401898]|0;if(a|0){b=a;return b|0}a=oi(12)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[2401898]=a;b=a;return b|0}function ig(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+16|0;e=d;c[e>>2]=b;hi(2684)|0;f=a+4|0;g=c[f>>2]|0;if((g|0)==(c[a+8>>2]|0)){jg(a,e);l=d;return}else{c[g>>2]=b;c[f>>2]=(c[f>>2]|0)+4;l=d;return}}function jg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>2)+1|0;if(g>>>0>1073741823){mi(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=(c[e>>2]|0)-h|0;j=f>>1;k=f>>2>>>0<536870911?(j>>>0<g>>>0?g:j):1073741823;j=i-h>>2;do if(k)if(k>>>0>1073741823){g=Na(4)|0;qj(g);ob(g|0,496,41)}else{l=oi(k<<2)|0;break}else l=0;while(0);g=l+(j<<2)|0;c[g>>2]=c[b>>2];b=i-h|0;i=g+(0-(b>>2)<<2)|0;if((b|0)>0)Aj(i|0,h|0,b|0)|0;c[a>>2]=i;c[d>>2]=g+4;c[e>>2]=l+(k<<2);if(!h)return;qi(h);return}function kg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=c[a>>2]|0;e=a+4|0;a=c[e>>2]|0;f=d;g=a;if((f|0)==(a|0))return;else{h=f;i=d}while(1){if((c[(c[h>>2]|0)+4>>2]|0)==(b|0))break;j=h+4|0;if((j|0)==(a|0)){k=8;break}else{h=j;i=j}}if((k|0)==8)return;k=f+(i-d>>2<<2)|0;d=k+4|0;i=g-d|0;g=i>>2;if(!g)l=a;else{Hj(k|0,d|0,i|0)|0;l=c[e>>2]|0}i=k+(g<<2)|0;if((l|0)==(i|0))return;c[e>>2]=l+(~((l+-4-i|0)>>>2)<<2);return}function lg(a,b){a=a|0;b=+b;var d=0,e=0,f=0,g=0;d=c[a>>2]|0;e=a+4|0;if((d|0)==(c[e>>2]|0))return;f=d;d=0;do{g=c[f+(d<<2)>>2]|0;Ib[c[(c[g>>2]|0)+8>>2]&15](g,b);d=d+1|0;f=c[a>>2]|0}while(d>>>0<(c[e>>2]|0)-f>>2>>>0);return}function mg(a,b){a=a|0;b=b|0;c[a>>2]=b;b=a+8|0;a=b+36|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function ng(a,b){a=a|0;b=b|0;return c[(c[a+8>>2]|0)+(b<<2)>>2]|0}function og(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+8>>2]|0;d=a+12|0;e=c[d>>2]|0;if((e|0)!=(b|0))c[d>>2]=e+(~((e+-4-b|0)>>>2)<<2);b=c[a+20>>2]|0;e=a+24|0;d=c[e>>2]|0;if((d|0)!=(b|0))c[e>>2]=d+(~((d+-4-b|0)>>>2)<<2);b=c[a+32>>2]|0;d=a+36|0;e=c[d>>2]|0;if((e|0)==(b|0)){f=a+4|0;c[f>>2]=0;return}c[d>>2]=e+(~((e+-4-b|0)>>>2)<<2);f=a+4|0;c[f>>2]=0;return}function pg(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=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.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;d=l;l=l+16|0;e=d+8|0;f=d;h=c[b>>2]|0;i=~~+g[h>>2];if((i|0)<=0){j=h;g[j>>2]=0.0;k=c[b>>2]|0;m=k+4|0;g[m>>2]=2.0;l=d;return}n=b+8|0;o=b+12|0;p=b+4|0;q=b+20|0;r=b+24|0;s=b+32|0;t=b+36|0;u=b+8|0;v=b+20|0;w=b+32|0;x=0;y=2;z=h;while(1){h=~~+g[z+(y<<2)>>2];a:do switch(h|0){case 0:{A=~~+g[z+(y+1<<2)>>2];B=+g[z+(y+2<<2)>>2];do if(B==0.0){C=oi(280)|0;wd(C);D=c[o>>2]|0;E=c[n>>2]|0;F=D-E>>2;G=E;do if(A>>>0>=F>>>0){E=A+1|0;H=D;if(E>>>0>F>>>0){qg(n,E-F|0);I=c[n>>2]|0;break}if(E>>>0<F>>>0?(J=G+(E<<2)|0,(H|0)!=(J|0)):0){c[o>>2]=H+(~((H+-4-J|0)>>>2)<<2);I=G}else I=G}else I=G;while(0);c[I+(A<<2)>>2]=C;if(!A)c[p>>2]=C}else{if(B==1.0){G=oi(312)|0;Fc(G);F=c[o>>2]|0;D=c[n>>2]|0;J=F-D>>2;H=D;do if(A>>>0>=J>>>0){D=A+1|0;E=F;if(D>>>0>J>>>0){qg(n,D-J|0);K=c[n>>2]|0;break}if(D>>>0<J>>>0?(L=H+(D<<2)|0,(E|0)!=(L|0)):0){c[o>>2]=E+(~((E+-4-L|0)>>>2)<<2);K=H}else K=H}else K=H;while(0);c[K+(A<<2)>>2]=G;if(A|0)break;c[p>>2]=G;break}if(B==2.0){H=oi(44)|0;J=c[r>>2]|0;F=c[q>>2]|0;C=J-F>>2;L=F;do if(A>>>0>=C>>>0){F=A+1|0;E=J;if(F>>>0>C>>>0){rg(q,F-C|0);M=c[q>>2]|0;break}if(F>>>0<C>>>0?(D=L+(F<<2)|0,(E|0)!=(D|0)):0){c[r>>2]=E+(~((E+-4-D|0)>>>2)<<2);M=L}else M=L}else M=L;while(0);c[M+(A<<2)>>2]=H;break}if(B==6.0){L=oi(24)|0;Ed(L);c[L>>2]=A;C=c[t>>2]|0;J=c[s>>2]|0;G=C-J>>2;D=J;do if(A>>>0>=G>>>0){J=A+1|0;E=C;if(J>>>0>G>>>0){sg(s,J-G|0);N=c[s>>2]|0;break}if(J>>>0<G>>>0?(F=D+(J<<2)|0,(E|0)!=(F|0)):0){c[t>>2]=E+(~((E+-4-F|0)>>>2)<<2);N=D}else N=D}else N=D;while(0);c[N+(A<<2)>>2]=L;break}if(B==7.0){D=oi(292)|0;Jd(D);c[D+268>>2]=A;G=c[o>>2]|0;C=c[n>>2]|0;H=G-C>>2;F=C;do if(A>>>0>=H>>>0){C=A+1|0;E=G;if(C>>>0>H>>>0){qg(n,C-H|0);O=c[n>>2]|0;break}if(C>>>0<H>>>0?(J=F+(C<<2)|0,(E|0)!=(J|0)):0){c[o>>2]=E+(~((E+-4-J|0)>>>2)<<2);O=F}else O=F}else O=F;while(0);c[O+(A<<2)>>2]=D;if(A|0)break;c[p>>2]=D;break}if(B==8.0){F=oi(288)|0;Nd(F);c[F+268>>2]=A;H=c[o>>2]|0;G=c[n>>2]|0;L=H-G>>2;J=G;do if(A>>>0>=L>>>0){G=A+1|0;E=H;if(G>>>0>L>>>0){qg(n,G-L|0);P=c[n>>2]|0;break}if(G>>>0<L>>>0?(C=J+(G<<2)|0,(E|0)!=(C|0)):0){c[o>>2]=E+(~((E+-4-C|0)>>>2)<<2);P=J}else P=J}else P=J;while(0);c[P+(A<<2)>>2]=F;if(A|0)break;c[p>>2]=F;break}if(B==9.0){J=oi(300)|0;Rd(J);c[J+280>>2]=A;L=c[o>>2]|0;H=c[n>>2]|0;D=L-H>>2;C=H;do if(A>>>0>=D>>>0){H=A+1|0;E=L;if(H>>>0>D>>>0){qg(n,H-D|0);Q=c[n>>2]|0;break}if(H>>>0<D>>>0?(G=C+(H<<2)|0,(E|0)!=(G|0)):0){c[o>>2]=E+(~((E+-4-G|0)>>>2)<<2);Q=C}else Q=C}else Q=C;while(0);c[Q+(A<<2)>>2]=J;if(A|0)break;c[p>>2]=J;break}if(B==10.0){C=oi(344)|0;Zg(C);D=c[o>>2]|0;L=c[n>>2]|0;F=D-L>>2;G=L;do if(A>>>0>=F>>>0){L=A+1|0;E=D;if(L>>>0>F>>>0){qg(n,L-F|0);R=c[n>>2]|0;break}if(L>>>0<F>>>0?(H=G+(L<<2)|0,(E|0)!=(H|0)):0){c[o>>2]=E+(~((E+-4-H|0)>>>2)<<2);R=G}else R=G}else R=G;while(0);c[R+(A<<2)>>2]=C;break}if(B==11.0){G=oi(284)|0;Oc(G);F=c[o>>2]|0;D=c[n>>2]|0;J=F-D>>2;H=D;do if(A>>>0>=J>>>0){D=A+1|0;E=F;if(D>>>0>J>>>0){qg(n,D-J|0);S=c[n>>2]|0;break}if(D>>>0<J>>>0?(L=H+(D<<2)|0,(E|0)!=(L|0)):0){c[o>>2]=E+(~((E+-4-L|0)>>>2)<<2);S=H}else S=H}else S=H;while(0);c[S+(A<<2)>>2]=G;break}if(B==12.0){H=oi(336)|0;Xd(H);J=c[o>>2]|0;F=c[n>>2]|0;C=J-F>>2;L=F;do if(A>>>0>=C>>>0){F=A+1|0;E=J;if(F>>>0>C>>>0){qg(n,F-C|0);T=c[n>>2]|0;break}if(F>>>0<C>>>0?(D=L+(F<<2)|0,(E|0)!=(D|0)):0){c[o>>2]=E+(~((E+-4-D|0)>>>2)<<2);T=L}else T=L}else T=L;while(0);c[T+(A<<2)>>2]=H}}while(0);U=y+3|0;break}case 1:{A=~~+g[z+(y+2<<2)>>2];L=c[u>>2]|0;C=c[L+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;if(!C)V=0;else V=Ui(C,96,104,0)|0;xd(V,c[L+(A<<2)>>2]|0);U=y+3|0;break}case 2:{A=~~+g[z+(y+2<<2)>>2];L=c[u>>2]|0;C=c[L+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;if(!C)W=0;else W=Ui(C,96,104,0)|0;Bd(W,c[L+(A<<2)>>2]|0);U=y+3|0;break}case 3:{A=~~+g[z+(y+2<<2)>>2];L=c[u>>2]|0;C=c[L+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;if(!C)X=0;else X=Ui(C,96,104,0)|0;zd(X,c[L+(A<<2)>>2]|0,~~+g[z+(y+3<<2)>>2]);U=y+4|0;break}case 4:{A=~~+g[z+(y+2<<2)>>2];L=~~+g[z+(y+3<<2)>>2];C=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;if(!C)Y=0;else Y=Ui(C,96,104,0)|0;Cd(Y,A,L);U=y+4|0;break}case 5:{L=~~+g[z+(y+2<<2)>>2];A=~~+g[z+(y+3<<2)>>2];C=c[u>>2]|0;J=c[C+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;if(!J)Z=0;else Z=Ui(J,96,104,0)|0;Dd(Z,c[C+(L<<2)>>2]|0,c[C+(A<<2)>>2]|0);U=y+4|0;break}case 101:{bd(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 102:{cd(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 103:{dd(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 104:{ed(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 105:{fd(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 106:{gd(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 107:{hd(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 108:{ld(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 114:{A=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;Ib[c[(c[A>>2]|0)+8>>2]&15](A,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 115:{A=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;Ib[c[(c[A>>2]|0)+12>>2]&15](A,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 116:{id(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 117:{jd(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]);U=y+3|0;break}case 118:{kd(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]==1.0);U=y+3|0;break}case 121:{A=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;if(!A)_=0;else _=Ui(A,96,64,0)|0;A=~~+g[z+(y+2<<2)>>2];if((A|0)==-1)$=0;else $=c[(c[v>>2]|0)+(A<<2)>>2]|0;c[_+268>>2]=$;ad(_,1);a[_+304>>0]=1;U=y+3|0;break}case 122:{A=c[(c[v>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;c[A+4>>2]=c[z+(y+2<<2)>>2];c[A+8>>2]=c[(c[b>>2]|0)+(y+3<<2)>>2];c[A+12>>2]=c[(c[b>>2]|0)+(y+4<<2)>>2];c[A+16>>2]=c[(c[b>>2]|0)+(y+5<<2)>>2];c[A+20>>2]=c[(c[b>>2]|0)+(y+6<<2)>>2];c[A+24>>2]=c[(c[b>>2]|0)+(y+7<<2)>>2];c[A+28>>2]=c[(c[b>>2]|0)+(y+8<<2)>>2];c[A+32>>2]=c[(c[b>>2]|0)+(y+9<<2)>>2];c[A+36>>2]=c[(c[b>>2]|0)+(y+10<<2)>>2];c[A+40>>2]=c[(c[b>>2]|0)+(y+11<<2)>>2];U=y+12|0;break}case 123:{c[c[(c[v>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]>>2]=~~+g[z+(y+2<<2)>>2];U=y+3|0;break}case 124:{A=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;if(!A)aa=0;else aa=Ui(A,96,64,0)|0;A=y+4|0;if(!(+g[z+(A<<2)>>2]<0.0)?(C=y+5|0,!(+g[z+(C<<2)>>2]<0.0)):0){a[aa+288>>0]=1;L=c[b>>2]|0;se(aa+272|0,+g[L+(y+2<<2)>>2],+g[L+(y+3<<2)>>2],+g[L+(A<<2)>>2],+g[L+(C<<2)>>2])}else a[aa+288>>0]=0;ad(aa,1);a[aa+304>>0]=1;U=y+6|0;break}case 125:{$c(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2],+g[z+(y+3<<2)>>2],+g[z+(y+4<<2)>>2],+g[z+(y+5<<2)>>2],+g[z+(y+6<<2)>>2],+g[z+(y+7<<2)>>2]);U=y+8|0;break}case 126:{C=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;c[C+68>>2]=~~+g[z+(y+2<<2)>>2];ad(C,0);U=y+3|0;break}case 127:{C=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;se(C+72|0,+g[z+(y+2<<2)>>2],+g[z+(y+3<<2)>>2],+g[z+(y+4<<2)>>2],+g[z+(y+5<<2)>>2]);ad(C,1);U=y+6|0;break}case 128:{C=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;se(C+88|0,+g[z+(y+2<<2)>>2],+g[z+(y+3<<2)>>2],+g[z+(y+4<<2)>>2],+g[z+(y+5<<2)>>2]);ad(C,1);U=y+6|0;break}case 131:{C=c[u>>2]|0;L=c[C+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;A=~~+g[z+(y+2<<2)>>2];if((A|0)==-1){J=L+104|0;G=c[J>>2]|0;if(G|0){c[G+108>>2]=0;c[J>>2]=0}}else{J=c[C+(A<<2)>>2]|0;c[L+104>>2]=J;c[J+108>>2]=L}ad(L,1);U=y+3|0;break}case 134:{L=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;J=~~+g[z+(y+2<<2)>>2];A=L+124|0;if((c[A>>2]|0)!=(J|0)){C=L+112|0;G=L+116|0;D=c[G>>2]|0;E=c[C>>2]|0;F=D-E>>2;ba=E;E=D;if(J>>>0<=F>>>0){if(J>>>0<F>>>0?(D=ba+(J<<2)|0,(E|0)!=(D|0)):0)c[G>>2]=E+(~((E+-4-D|0)>>>2)<<2)}else sg(C,J-F|0);c[A>>2]=J}A=y+3|0;if((J|0)>0){F=L+112|0;C=0;do{c[(c[F>>2]|0)+(C<<2)>>2]=c[(c[w>>2]|0)+(~~+g[(c[b>>2]|0)+(A+C<<2)>>2]<<2)>>2];C=C+1|0}while((C|0)!=(J|0))}ad(L,1);U=A+J|0;break}case 135:{md(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,+g[z+(y+2<<2)>>2]==1.0);U=y+3|0;break}case 136:{C=c[(c[w>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;F=y+2|0;c[C+4>>2]=c[z+(F<<2)>>2];D=y+3|0;c[C+8>>2]=c[(c[b>>2]|0)+(D<<2)>>2];E=y+4|0;c[C+12>>2]=c[(c[b>>2]|0)+(E<<2)>>2];G=y+5|0;c[C+16>>2]=c[(c[b>>2]|0)+(G<<2)>>2];ba=c[b>>2]|0;if((+g[ba+(F<<2)>>2]==0.0?+g[ba+(D<<2)>>2]==0.0:0)?+g[ba+(E<<2)>>2]==0.0:0)ca=+g[ba+(G<<2)>>2]==0.0;else ca=0;a[C+20>>0]=(ca^1)&1;U=y+6|0;break}case 137:{C=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;a[C+288>>0]=+g[z+(y+2<<2)>>2]==1.0&1;ad(C,1);U=y+3|0;break}case 138:{C=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;c[C+272>>2]=c[z+(y+2<<2)>>2];c[C+276>>2]=c[(c[b>>2]|0)+(y+3<<2)>>2];c[C+280>>2]=c[(c[b>>2]|0)+(y+4<<2)>>2];c[C+284>>2]=c[(c[b>>2]|0)+(y+5<<2)>>2];ad(C,1);U=y+6|0;break}case 139:{C=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;c[C+272>>2]=c[z+(y+2<<2)>>2];c[C+276>>2]=c[(c[b>>2]|0)+(y+3<<2)>>2];c[C+280>>2]=c[(c[b>>2]|0)+(y+4<<2)>>2];c[C+284>>2]=c[(c[b>>2]|0)+(y+5<<2)>>2];ad(C,1);U=y+6|0;break}case 140:{C=(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)|0;G=c[C>>2]|0;c[C>>2]=0;if(G|0)Kb[c[(c[G>>2]|0)+4>>2]&63](G);U=y+2|0;break}case 141:{G=(c[v>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)|0;C=c[G>>2]|0;c[G>>2]=0;if(C|0)qi(C);U=y+2|0;break}case 142:{C=(c[w>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)|0;G=c[C>>2]|0;c[C>>2]=0;if(G|0){Fd(G);qi(G)}U=y+2|0;break}case 143:{G=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;c[G+284>>2]=c[z+(y+2<<2)>>2];c[G+288>>2]=c[(c[b>>2]|0)+(y+3<<2)>>2];c[G+292>>2]=c[(c[b>>2]|0)+(y+4<<2)>>2];c[G+296>>2]=c[(c[b>>2]|0)+(y+5<<2)>>2];ad(G,1);U=y+6|0;break}case 144:{G=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;C=~~+g[z+(y+2<<2)>>2];ba=G+280|0;if((c[ba>>2]|0)!=(C|0)){E=G+268|0;D=G+272|0;F=c[D>>2]|0;da=c[E>>2]|0;ea=F-da>>2;fa=da;da=F;if(C>>>0<=ea>>>0){if(C>>>0<ea>>>0?(F=fa+(C<<2)|0,(da|0)!=(F|0)):0)c[D>>2]=da+(~((da+-4-F|0)>>>2)<<2)}else tg(E,C-ea|0);c[ba>>2]=C}ba=y+3|0;if((C|0)>0){ea=c[G+268>>2]|0;E=0;do{c[ea+(E<<2)>>2]=c[(c[b>>2]|0)+(ba+E<<2)>>2];E=E+1|0}while((E|0)!=(C|0))}ad(G,1);a[G+332>>0]=1;U=ba+C|0;break}case 145:{E=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;ea=~~+g[z+(y+2<<2)>>2];J=E+296|0;if((c[J>>2]|0)!=(ea|0)){A=E+284|0;L=A+4|0;F=c[L>>2]|0;da=c[A>>2]|0;D=F-da>>2;fa=da;da=F;if(ea>>>0<=D>>>0){if(ea>>>0<D>>>0?(F=fa+(ea<<2)|0,(da|0)!=(F|0)):0)c[L>>2]=da+(~((da+-4-F|0)>>>2)<<2)}else tg(A,ea-D|0);c[J>>2]=ea}J=y+3|0;if((ea|0)>0){D=c[E+284>>2]|0;A=0;do{c[D+(A<<2)>>2]=c[(c[b>>2]|0)+(J+A<<2)>>2];A=A+1|0}while((A|0)!=(ea|0))}ad(E,1);a[E+332>>0]=1;U=J+ea|0;break}case 146:{A=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;D=~~+g[z+(y+2<<2)>>2];C=A+312|0;if((c[C>>2]|0)!=(D|0)){ba=A+300|0;G=ba+4|0;F=c[G>>2]|0;da=c[ba>>2]|0;L=F-da>>2;fa=da;da=F;if(D>>>0<=L>>>0){if(D>>>0<L>>>0?(F=fa+(D<<2)|0,(da|0)!=(F|0)):0)c[G>>2]=da+(~((da+-4-F|0)>>>2)<<2)}else tg(ba,D-L|0);c[C>>2]=D}C=y+3|0;if((D|0)>0){L=c[A+300>>2]|0;ba=0;do{c[L+(ba<<2)>>2]=c[(c[b>>2]|0)+(C+ba<<2)>>2];ba=ba+1|0}while((ba|0)!=(D|0))}ad(A,1);a[A+332>>0]=1;U=C+D|0;break}case 147:{ba=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;if(!ba)ga=0;else ga=Ui(ba,96,168,0)|0;ba=~~+g[z+(y+2<<2)>>2];if((ba|0)==-1)ha=0;else ha=c[(c[v>>2]|0)+(ba<<2)>>2]|0;c[ga+316>>2]=ha;ad(ga,1);a[ga+332>>0]=1;U=y+3|0;break}case 901:{ba=~~+g[z+(y+2<<2)>>2];L=y+3|0;ea=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;if(ea|0?(J=Ui(ea,96,288,0)|0,J|0):0){Jb[c[(c[J>>2]|0)+24>>2]&3](J,ba,z+(L<<2)|0);Ig(J);U=ba+L|0;break a}c[f>>2]=L;gi(2697,f)|0;U=L;break}case 902:{L=Ui(c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0,96,288,0)|0;c[L+304>>2]=c[(c[v>>2]|0)+(~~+g[z+(y+2<<2)>>2]<<2)>>2];U=y+3|0;break}case 903:{L=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]<<2)>>2]|0;if(!L)ia=0;else ia=Ui(L,96,288,0)|0;Og(ia,(~~+g[z+(y+2<<2)>>2]|0)==1);U=y+3|0;break}case 1001:{L=c[(c[u>>2]|0)+(~~+g[z+(y+1<<2)>>2]>>>0<<2)>>2]|0;if(!L)ja=0;else ja=Ui(L,96,80,0)|0;Pc(ja);c[ja+268>>2]=~~+g[(c[b>>2]|0)+(y+2<<2)>>2];L=c[b>>2]|0;ba=~~+g[L+(y+3<<2)>>2];J=y+4|0;if((ba|0)>0){ea=ba;ba=J;E=L;while(1){Qc(ja,~~+g[E+(ba<<2)>>2],~~+g[E+(ba+1<<2)>>2],~~+g[E+(ba+2<<2)>>2],~~+g[E+(ba+3<<2)>>2],~~+g[E+(ba+4<<2)>>2],~~+g[E+(ba+5<<2)>>2],~~+g[E+(ba+6<<2)>>2],~~+g[E+(ba+7<<2)>>2],~~+g[E+(ba+8<<2)>>2],~~+g[E+(ba+9<<2)>>2]);L=ba+10|0;if((ea|0)<=1){U=L;break a}ea=ea+-1|0;ba=L;E=c[b>>2]|0}}else U=J;break}default:{c[e>>2]=h;gi(2735,e)|0;U=y+3|0}}while(0);x=x+1|0;h=c[b>>2]|0;if((x|0)>=(i|0)){j=h;break}else{y=U;z=h}}g[j>>2]=0.0;k=c[b>>2]|0;m=k+4|0;g[m>>2]=2.0;l=d;return}function qg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;if(e-g>>2>>>0>=b>>>0){h=g;i=b;do{c[h>>2]=0;h=(c[f>>2]|0)+4|0;c[f>>2]=h;i=i+-1|0}while((i|0)!=0);return}i=c[a>>2]|0;h=(g-i>>2)+b|0;if(h>>>0>1073741823){mi(a);j=c[d>>2]|0;k=c[a>>2]|0;l=c[f>>2]|0}else{j=e;k=i;l=g}g=j-k|0;j=g>>1;i=g>>2>>>0<536870911?(j>>>0<h>>>0?h:j):1073741823;j=l-k>>2;do if(i)if(i>>>0>1073741823){k=Na(4)|0;qj(k);ob(k|0,496,41)}else{m=oi(i<<2)|0;break}else m=0;while(0);k=m+(j<<2)|0;j=m+(i<<2)|0;i=k;m=b;b=k;do{c[i>>2]=0;i=b+4|0;b=i;m=m+-1|0}while((m|0)!=0);m=c[a>>2]|0;i=(c[f>>2]|0)-m|0;l=k+(0-(i>>2)<<2)|0;if((i|0)>0)Aj(l|0,m|0,i|0)|0;c[a>>2]=l;c[f>>2]=b;c[d>>2]=j;if(!m)return;qi(m);return}function rg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;if(e-g>>2>>>0>=b>>>0){h=g;i=b;do{c[h>>2]=0;h=(c[f>>2]|0)+4|0;c[f>>2]=h;i=i+-1|0}while((i|0)!=0);return}i=c[a>>2]|0;h=(g-i>>2)+b|0;if(h>>>0>1073741823){mi(a);j=c[d>>2]|0;k=c[a>>2]|0;l=c[f>>2]|0}else{j=e;k=i;l=g}g=j-k|0;j=g>>1;i=g>>2>>>0<536870911?(j>>>0<h>>>0?h:j):1073741823;j=l-k>>2;do if(i)if(i>>>0>1073741823){k=Na(4)|0;qj(k);ob(k|0,496,41)}else{m=oi(i<<2)|0;break}else m=0;while(0);k=m+(j<<2)|0;j=m+(i<<2)|0;i=k;m=b;b=k;do{c[i>>2]=0;i=b+4|0;b=i;m=m+-1|0}while((m|0)!=0);m=c[a>>2]|0;i=(c[f>>2]|0)-m|0;l=k+(0-(i>>2)<<2)|0;if((i|0)>0)Aj(l|0,m|0,i|0)|0;c[a>>2]=l;c[f>>2]=b;c[d>>2]=j;if(!m)return;qi(m);return}function sg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;if(e-g>>2>>>0>=b>>>0){h=g;i=b;do{c[h>>2]=0;h=(c[f>>2]|0)+4|0;c[f>>2]=h;i=i+-1|0}while((i|0)!=0);return}i=c[a>>2]|0;h=(g-i>>2)+b|0;if(h>>>0>1073741823){mi(a);j=c[d>>2]|0;k=c[a>>2]|0;l=c[f>>2]|0}else{j=e;k=i;l=g}g=j-k|0;j=g>>1;i=g>>2>>>0<536870911?(j>>>0<h>>>0?h:j):1073741823;j=l-k>>2;do if(i)if(i>>>0>1073741823){k=Na(4)|0;qj(k);ob(k|0,496,41)}else{m=oi(i<<2)|0;break}else m=0;while(0);k=m+(j<<2)|0;j=m+(i<<2)|0;i=k;m=b;b=k;do{c[i>>2]=0;i=b+4|0;b=i;m=m+-1|0}while((m|0)!=0);m=c[a>>2]|0;i=(c[f>>2]|0)-m|0;l=k+(0-(i>>2)<<2)|0;if((i|0)>0)Aj(l|0,m|0,i|0)|0;c[a>>2]=l;c[f>>2]=b;c[d>>2]=j;if(!m)return;qi(m);return}function tg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=a+8|0;e=c[d>>2]|0;f=a+4|0;g=c[f>>2]|0;if(e-g>>2>>>0>=b>>>0){wj(g|0,0,b<<2|0)|0;c[f>>2]=g+(b<<2);return}h=c[a>>2]|0;i=(g-h>>2)+b|0;if(i>>>0>1073741823){mi(a);j=c[a>>2]|0;k=c[d>>2]|0;l=c[f>>2]|0}else{j=h;k=e;l=g}g=k-j|0;k=g>>1;e=g>>2>>>0<536870911?(k>>>0<i>>>0?i:k):1073741823;k=l-j>>2;do if(e)if(e>>>0>1073741823){i=Na(4)|0;qj(i);ob(i|0,496,41)}else{m=oi(e<<2)|0;break}else m=0;while(0);i=m+(k<<2)|0;wj(i|0,0,b<<2|0)|0;k=l-j|0;l=i+(0-(k>>2)<<2)|0;if((k|0)>0)Aj(l|0,j|0,k|0)|0;c[a>>2]=l;c[f>>2]=i+(b<<2);c[d>>2]=m+(e<<2);if(!j)return;qi(j);return}function ug(a){a=a|0;return}function vg(a){a=a|0;qi(a);return}function wg(a){a=a|0;g[a+4>>2]=0.0;g[a+8>>2]=0.0;g[a+12>>2]=1.0;g[a+16>>2]=0.0;g[a+20>>2]=1.0;g[a+24>>2]=0.0;g[a+28>>2]=0.0;return}function xg(a){a=a|0;c[a>>2]=1168;g[a+4>>2]=0.0;g[a+8>>2]=0.0;g[a+12>>2]=1.0;g[a+16>>2]=0.0;g[a+20>>2]=1.0;g[a+24>>2]=0.0;g[a+28>>2]=1.0e3;be(a+36|0);return}function yg(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0;d=a+36|0;ce(d);e=+g[a+16>>2];if(!((~~e|0)%360|0)){f=1.0;h=0.0}else{f=+J(+e);h=+K(+e)}e=+g[a+12>>2];i=f*e;f=h*e;fe(d,i,f,-f,i,+g[a+4>>2],+g[a+8>>2]);if(!(b!=0.0|c!=0.0))return d|0;j=a+52|0;g[j>>2]=+g[j>>2]-(+g[d>>2]*b+ +g[a+44>>2]*c);j=a+56|0;g[j>>2]=+g[j>>2]-(+g[a+40>>2]*b+ +g[a+48>>2]*c);return d|0}
function zg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c[a>>2]=1188;b=a+320|0;d=c[b>>2]|0;e=a+324|0;f=c[e>>2]|0;if((d|0)!=(f|0)){g=f;f=d;while(1){d=c[f>>2]|0;if(!d)h=g;else{Kb[c[(c[d>>2]|0)+4>>2]&63](d);h=c[e>>2]|0}f=f+4|0;if((f|0)==(h|0))break;else g=h}g=c[b>>2]|0;if((h|0)!=(g|0))c[e>>2]=h+(~((h+-4-g|0)>>>2)<<2)}g=a+308|0;h=c[g>>2]|0;f=a+312|0;d=c[f>>2]|0;if((h|0)!=(d|0)){i=d;d=h;while(1){h=c[d>>2]|0;if(!h)j=i;else{Kb[c[(c[h>>2]|0)+4>>2]&63](h);j=c[f>>2]|0}d=d+4|0;if((d|0)==(j|0))break;else i=j}i=c[g>>2]|0;if((j|0)!=(i|0))c[f>>2]=j+(~((j+-4-i|0)>>>2)<<2)}c[a+304>>2]=0;te(a+72|0);c[a+272>>2]=0;i=c[a+300>>2]|0;if(i|0){re(i);qi(i)}i=c[a+332>>2]|0;if(i|0){re(i);qi(i)}i=c[b>>2]|0;if(i|0){b=c[e>>2]|0;if((b|0)!=(i|0))c[e>>2]=b+(~((b+-4-i|0)>>>2)<<2);qi(i)}i=c[g>>2]|0;if(!i){Sc(a);return}g=c[f>>2]|0;if((g|0)!=(i|0))c[f>>2]=g+(~((g+-4-i|0)>>>2)<<2);qi(i);Sc(a);return}function Ag(a){a=a|0;zg(a);qi(a);return}function Bg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0;d=l;l=l+96|0;e=d+64|0;f=d+48|0;h=d+16|0;i=d;j=c[a+300>>2]|0;if(j|0){ve(b,j)|0;l=d;return}j=a+332|0;k=c[j>>2]|0;if(!k){m=oi(16)|0;qe(m,0.0,0.0,0.0,0.0);c[j>>2]=m;n=m}else n=k;k=a+272|0;if((c[k>>2]|0)>0?(m=c[a+304>>2]|0,m|0):0){o=~~+S(+(+g[m+12>>2]));p=~~+S(+(+g[m+16>>2]));be(e);qe(f,0.0,0.0,0.0,0.0);qe(i,0.0,0.0,0.0,0.0);if((c[k>>2]|0)>0){m=a+320|0;q=+((o|0)/2|0|0);r=+((p|0)/2|0|0);a=(o+1|0)>>>0>2|(p+1|0)>>>0>2;s=e+8|0;t=e+16|0;u=e+4|0;v=e+12|0;w=e+20|0;x=+(o|0);o=f+8|0;y=+(p|0);p=f+12|0;z=h+4|0;A=h+8|0;B=h+12|0;C=i+4|0;D=i+8|0;E=i+12|0;F=0;do{G=c[(c[m>>2]|0)+(F<<2)>>2]|0;ce(e);H=+g[G+4>>2];I=+g[G+8>>2];L=+g[G+12>>2];M=+g[G+16>>2];ce(e);if(!((~~M|0)%360|0)){N=1.0;O=0.0}else{N=+J(+M);O=+K(+M)}M=L*N;P=L*O;fe(e,M,P,-P,M,H,I);if(a){g[t>>2]=+g[t>>2]-(q*+g[e>>2]+r*+g[s>>2]);g[w>>2]=+g[w>>2]-(q*+g[u>>2]+r*+g[v>>2])}te(f);g[o>>2]=x;g[p>>2]=y;we(h);xe(h,f,e);I=+g[h>>2];if(!F){H=+g[z>>2];se(i,I,H,+g[A>>2]-I,+g[B>>2]-H)}else{H=+g[i>>2];M=+Uh(H,I);I=+g[C>>2];P=+Uh(I,+g[z>>2]);L=+Sh(H+ +g[D>>2],+g[A>>2]);se(i,M,P,L-M,+Sh(I+ +g[E>>2],+g[B>>2])-P)}se(b,+g[i>>2],+g[C>>2],+g[D>>2],+g[E>>2]);ve(c[j>>2]|0,i)|0;F=F+1|0}while((F|0)<(c[k>>2]|0))}re(i);re(f);l=d;return}if(ue(n)|0){se(b,0.0,0.0,0.0,0.0);l=d;return}else{n=c[j>>2]|0;se(b,+g[n>>2],+g[n+4>>2],+g[n+8>>2],+g[n+12>>2]);te(c[j>>2]|0);l=d;return}}function Cg(a,b,d){a=a|0;b=b|0;d=d|0;c[a+288>>2]=c[d>>2];c[a+292>>2]=c[d+4>>2];c[a+268>>2]=~~+g[d+8>>2];return}function Dg(a,b,c){a=a|0;b=b|0;c=+c;a=b+8|0;g[a>>2]=+g[a>>2]-c/6.0;a=b+24|0;g[a>>2]=+g[a>>2]+c;return}function Eg(a,b){a=a|0;b=b|0;c[b+4>>2]=c[a+288>>2];c[b+8>>2]=c[a+292>>2];g[b+24>>2]=0.0;g[b+28>>2]=1.0e3;return}function Fg(a){a=a|0;a=oi(60)|0;xg(a);return a|0}function Gg(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(!b)return;d=a+4|0;a=c[d>>2]|0;if((a|0)!=(b|0))c[d>>2]=a+(~((a+-4-b|0)>>>2)<<2);qi(b);return}function Hg(b){b=b|0;var d=0;Zc(b,6);c[b>>2]=1188;c[b+268>>2]=200;c[b+272>>2]=0;g[b+276>>2]=0.0;c[b+280>>2]=-1;d=b+284|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;a[d+12>>0]=0;d=b+300|0;b=d+36|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));return}function Ig(b){b=b|0;var d=0;d=b+296|0;if(a[d>>0]|0)return;c[b+280>>2]=-1;a[d>>0]=1;d=oi(16)|0;c[d+4>>2]=b;c[d>>2]=1236;c[d+8>>2]=9;c[d+12>>2]=0;ig(hg()|0,d);return}function Jg(b,d){b=b|0;d=+d;var e=0,f=0,h=0,i=0,j=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;e=l;l=l+16|0;f=e;if(!(a[b+296>>0]|0)){l=e;return}h=b+280|0;i=c[h>>2]|0;if((i|0)==-1|(i|0)>0){j=b+276|0;k=+g[j>>2]+d;g[j>>2]=k;if(k>0.0){m=b+272|0;n=b+268|0;o=b+308|0;p=b+312|0;q=b+324|0;r=b+328|0;s=b+320|0;t=b+284|0;u=c[m>>2]|0;v=k;while(1){if((u|0)<(c[n>>2]|0)){c[f>>2]=0;w=c[p>>2]|0;if((c[o>>2]|0)==(w|0)){x=Pb[c[(c[b>>2]|0)+36>>2]&7](b)|0;c[f>>2]=x;Mb[c[(c[b>>2]|0)+32>>2]&31](b,x);y=x}else{x=c[w+-4>>2]|0;c[f>>2]=x;Kb[c[(c[x>>2]|0)+8>>2]&63](x);Mb[c[(c[b>>2]|0)+32>>2]&31](b,x);c[p>>2]=(c[p>>2]|0)+-4;y=x}x=c[q>>2]|0;if((x|0)==(c[r>>2]|0))Kg(s,f);else{c[x>>2]=y;c[q>>2]=(c[q>>2]|0)+4}x=(c[m>>2]|0)+1|0;c[m>>2]=x;z=+g[j>>2];A=x}else{z=v;A=u}v=z-+g[t>>2];g[j>>2]=v;if(!(v>0.0))break;else u=A}B=c[h>>2]|0}else B=i;i=~~(+(B|0)-d);if((B|0)!=-1)c[h>>2]=(i|0)>0?i:0}i=b+272|0;h=c[i>>2]|0;if((h|0)<=0){l=e;return}B=b+320|0;A=b+324|0;u=b+312|0;j=b+316|0;t=b+308|0;m=h;h=0;a:while(1){q=m;while(1){y=c[B>>2]|0;f=y+(h<<2)|0;C=c[f>>2]|0;D=C+24|0;if(+g[D>>2]<+g[C+28>>2])break;if((c[A>>2]|0)-y>>2>>>0<h>>>0)E=q;else{Kb[c[(c[C>>2]|0)+8>>2]&63](C);y=c[u>>2]|0;if((y|0)==(c[j>>2]|0))Kg(t,f);else{c[y>>2]=c[f>>2];c[u>>2]=(c[u>>2]|0)+4}y=f+4|0;s=c[A>>2]|0;r=s-y|0;p=r>>2;if(!p)F=s;else{Hj(f|0,y|0,r|0)|0;F=c[A>>2]|0}r=f+(p<<2)|0;if((F|0)!=(r|0))c[A>>2]=F+(~((F+-4-r|0)>>>2)<<2);r=(c[i>>2]|0)+-1|0;c[i>>2]=r;E=r}if((h|0)<(E|0))q=E;else{G=32;break a}}Tb[c[(c[b>>2]|0)+28>>2]&3](b,C,d);g[D>>2]=+g[D>>2]+d;h=h+1|0;m=c[i>>2]|0;if((h|0)>=(m|0)){G=32;break}}if((G|0)==32){l=e;return}}function Kg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;e=c[d>>2]|0;f=c[a>>2]|0;g=(e-f>>2)+1|0;if(g>>>0>1073741823){mi(a);h=c[a>>2]|0;i=c[d>>2]|0}else{h=f;i=e}e=a+8|0;f=(c[e>>2]|0)-h|0;j=f>>1;k=f>>2>>>0<536870911?(j>>>0<g>>>0?g:j):1073741823;j=i-h>>2;do if(k)if(k>>>0>1073741823){g=Na(4)|0;qj(g);ob(g|0,496,41)}else{l=oi(k<<2)|0;break}else l=0;while(0);g=l+(j<<2)|0;c[g>>2]=c[b>>2];b=i-h|0;i=g+(0-(b>>2)<<2)|0;if((b|0)>0)Aj(i|0,h|0,b|0)|0;c[a>>2]=i;c[d>>2]=g+4;c[e>>2]=l+(k<<2);if(!h)return;qi(h);return}function Lg(a){a=a|0;return}function Mg(a){a=a|0;qi(a);return}function Ng(a,b){a=a|0;b=+b;var d=0,e=0,f=0,g=0;d=c[a+8>>2]|0;e=c[a+12>>2]|0;f=(c[a+4>>2]|0)+(e>>1)|0;if(!(e&1)){g=d;Ib[g&15](f,b);return}else{g=c[(c[f>>2]|0)+d>>2]|0;Ib[g&15](f,b);return}}function Og(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;c[b+280>>2]=0;if(!d)return;d=b+320|0;e=c[d>>2]|0;f=b+324|0;g=c[f>>2]|0;if((e|0)!=(g|0)){h=g;g=e;while(1){e=c[g>>2]|0;if(!e)i=h;else{Kb[c[(c[e>>2]|0)+4>>2]&63](e);i=c[f>>2]|0}g=g+4|0;if((g|0)==(i|0))break;else h=i}h=c[d>>2]|0;if((i|0)!=(h|0))c[f>>2]=i+(~((i+-4-h|0)>>>2)<<2)}h=b+308|0;i=c[h>>2]|0;f=b+312|0;d=c[f>>2]|0;if((i|0)!=(d|0)){g=d;d=i;while(1){i=c[d>>2]|0;if(!i)j=g;else{Kb[c[(c[i>>2]|0)+4>>2]&63](i);j=c[f>>2]|0}d=d+4|0;if((d|0)==(j|0))break;else g=j}g=c[h>>2]|0;if((j|0)!=(g|0))c[f>>2]=j+(~((j+-4-g|0)>>>2)<<2)}c[b+304>>2]=0;te(b+72|0);c[b+272>>2]=0;kg(hg()|0,b);a[b+296>>0]=0;return}function Pg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=l;l=l+16|0;e=d;f=a+272|0;g=c[f>>2]|0;if((g|0)>=(b|0)){l=d;return}h=a+268|0;i=a+308|0;j=a+312|0;k=a+324|0;m=a+328|0;n=a+320|0;o=g;p=g;while(1){if((o|0)>=(c[h>>2]|0)){q=4;break}c[e>>2]=0;g=c[j>>2]|0;if((c[i>>2]|0)==(g|0)){r=Pb[c[(c[a>>2]|0)+36>>2]&7](a)|0;c[e>>2]=r;Mb[c[(c[a>>2]|0)+32>>2]&31](a,r);s=r}else{r=c[g+-4>>2]|0;c[e>>2]=r;Kb[c[(c[r>>2]|0)+8>>2]&63](r);Mb[c[(c[a>>2]|0)+32>>2]&31](a,r);c[j>>2]=(c[j>>2]|0)+-4;s=r}r=c[k>>2]|0;if((r|0)==(c[m>>2]|0))Kg(n,e);else{c[r>>2]=s;c[k>>2]=(c[k>>2]|0)+4}o=(c[f>>2]|0)+1|0;c[f>>2]=o;p=p+1|0;if((p|0)>=(b|0)){q=4;break}}if((q|0)==4){l=d;return}}function Qg(a){a=a|0;qi(a);return}function Rg(a){a=a|0;var b=0;wg(a);b=a+60|0;a=b+36|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function Sg(a){a=a|0;var b=0;xg(a);c[a>>2]=1256;b=a+60|0;a=b+36|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function Tg(a){a=a|0;var b=0;c[a>>2]=1276;b=c[a+336>>2]|0;if(b|0)ri(b);zg(a);return}function Ug(a){a=a|0;var b=0;c[a>>2]=1276;b=c[a+336>>2]|0;if(b|0)ri(b);zg(a);qi(a);return}function Vg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0;e=a+336|0;f=c[e>>2]|0;if(!f){h=pi(140)|0;c[e>>2]=h;wj(h|0,0,140)|0;i=h}else i=f;if((b|0)>0){f=0;do{c[i+(~~+g[d+(f<<2)>>2]<<2)>>2]=c[d+((f|1)<<2)>>2];f=f+2|0}while((f|0)<(b|0))}b=~~+g[i+12>>2];c[a+268>>2]=b;c[a+288>>2]=c[i>>2];c[a+292>>2]=c[i+4>>2];c[a+280>>2]=~~+g[i+8>>2];g[a+284>>2]=+g[i+40>>2]/+(b|0);if(+g[i+132>>2]>0.0?+g[i+136>>2]>0.0:0){b=oi(16)|0;qe(b,+g[i+124>>2],+g[i+128>>2],+g[i+132>>2],+g[i+136>>2]);c[a+300>>2]=b;se(a+72|0,+g[b>>2],+g[b+4>>2],+g[b+8>>2],+g[b+12>>2]);j=c[e>>2]|0}else j=i;k=+g[j+140>>2];if(!(k>0.0)){l=j;m=l+120|0;n=+g[m>>2];o=~~n;p=a+340|0;c[p>>2]=o;return}Pg(a,~~k);l=c[e>>2]|0;m=l+120|0;n=+g[m>>2];o=~~n;p=a+340|0;c[p>>2]=o;return}function Wg(a,b,d){a=a|0;b=b|0;d=+d;var e=0.0,f=0,h=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0.0;e=d/1.0e3;f=b+24|0;d=e+ +g[f>>2];g[f>>2]=d;h=+g[b+28>>2]-d;d=h>e?e:h;f=b+4|0;h=+g[f>>2];e=h-+g[b+60>>2];i=b+8|0;j=+g[i>>2];k=j-+g[b+64>>2];l=+H(+(e*e+k*k));m=l<.01?.009999999776482582:l;l=e/m;e=k/m;m=+g[b+76>>2];k=+g[b+80>>2];n=c[a+336>>2]|0;a=b+68|0;o=+g[a>>2]+d*(+g[n+24>>2]+m*l-k*e);g[a>>2]=o;a=b+72|0;p=+g[a>>2]+d*(k*l+(m*e+ +g[n+28>>2]));g[a>>2]=p;g[f>>2]=h+d*o;g[i>>2]=d*p+j;i=b+12|0;j=+g[i>>2]+d*+g[b+88>>2]*1.0e3;g[i>>2]=j<0.0?0.0:j;i=b+16|0;g[i>>2]=+g[i>>2]+d*+g[b+84>>2]*1.0e3;i=b+20|0;g[i>>2]=+g[i>>2]+d*+g[b+92>>2]*1.0e3;return}function Xg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.0,i=0.0,j=0,k=0.0,l=0.0;if(!b)return;d=a+336|0;e=c[d>>2]|0;f=+g[e+40>>2];h=+g[e+44>>2];i=f+h*(+(ei()|0)/2147483647.0*2.0+-1.0);g[b+24>>2]=0.0;g[b+28>>2]=i>0.0?i:0.0;if(i<=0.0)return;e=a+288|0;h=+g[e>>2];f=+g[(c[d>>2]|0)+16>>2];g[b+4>>2]=h+f*(+(ei()|0)/2147483647.0*2.0+-1.0);j=a+292|0;f=+g[j>>2];h=+g[(c[d>>2]|0)+20>>2];g[b+8>>2]=f+h*(+(ei()|0)/2147483647.0*2.0+-1.0);c[b+60>>2]=c[e>>2];c[b+64>>2]=c[j>>2];j=c[d>>2]|0;h=+g[j+48>>2];f=+g[j+52>>2];k=h+f*(+(ei()|0)/2147483647.0*2.0+-1.0);j=c[d>>2]|0;f=+g[j+32>>2];h=+g[j+36>>2];l=f+h*(+(ei()|0)/2147483647.0*2.0+-1.0);h=+g[264]*k/180.0;g[b+68>>2]=+J(+h)*l;g[b+72>>2]=+K(+h)*l;j=c[d>>2]|0;l=+g[j+88>>2];h=+g[j+92>>2];g[b+76>>2]=l+h*(+(ei()|0)/2147483647.0*2.0+-1.0);j=c[d>>2]|0;h=+g[j+96>>2];l=+g[j+100>>2];g[b+80>>2]=h+l*(+(ei()|0)/2147483647.0*2.0+-1.0);j=c[d>>2]|0;l=+g[j+56>>2];h=+g[j+60>>2];k=l+h*(+(ei()|0)/2147483647.0*2.0+-1.0);h=k<.1?.10000000149011612:k;j=c[d>>2]|0;k=+g[j+64>>2];l=+g[j+68>>2];f=k+l*(+(ei()|0)/2147483647.0*2.0+-1.0);l=+g[(c[a+304>>2]|0)+28>>2];g[b+12>>2]=h/l;g[b+88>>2]=((f<.1?.10000000149011612:f)-h)/i/l;j=c[d>>2]|0;l=+g[j+72>>2];h=+g[j+76>>2];f=l+h*(+(ei()|0)/2147483647.0*2.0+-1.0);j=c[d>>2]|0;h=+g[j+80>>2];l=+g[j+84>>2];k=h+l*(+(ei()|0)/2147483647.0*2.0+-1.0);g[b+16>>2]=f;g[b+84>>2]=(k-f)/i;j=c[d>>2]|0;f=+g[j+104>>2];k=+g[j+108>>2];l=f+k*(+(ei()|0)/2147483647.0*2.0+-1.0);j=c[d>>2]|0;k=+g[j+112>>2];f=+g[j+116>>2];h=k+f*(+(ei()|0)/2147483647.0*2.0+-1.0);g[b+20>>2]=l;g[b+92>>2]=(h-l)/i;j=c[a+340>>2]|0;g[b+32>>2]=+(j|0);c[a+68>>2]=j;return}function Yg(a){a=a|0;a=oi(96)|0;Sg(a);return a|0}function Zg(a){a=a|0;Hg(a);c[a>>2]=1276;c[a+336>>2]=0;c[a+340>>2]=0;return}function _g(){$g(0);return}function $g(a){a=a|0;Fa(560,2885);Pa(568,2890,1,1,0);ab(576,2895,1,-128,127);ab(592,2900,1,-128,127);ab(584,2912,1,0,255);ab(600,2926,2,-32768,32767);ab(608,2932,2,0,65535);ab(616,2947,4,-2147483648,2147483647);ab(624,2951,4,0,-1);ab(632,2964,4,-2147483648,2147483647);ab(640,2969,4,0,-1);db(648,2983,4);db(656,2989,8);Ab(40,2996);Ab(304,3008);ib(328,4,3041);Xa(24,3054);wa(352,0,3070);wa(360,0,3100);wa(368,1,3137);wa(376,2,3176);wa(16,3,3207);wa(384,4,3247);wa(392,5,3276);wa(400,4,3314);wa(408,5,3344);wa(360,0,3383);wa(368,1,3415);wa(376,2,3448);wa(16,3,3481);wa(384,4,3515);wa(392,5,3548);wa(8,6,3582);wa(416,7,3613);wa(424,7,3645);return}function ah(a){a=a|0;return Yh(c[a+4>>2]|0)|0}function bh(){return 9607596}function ch(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=jh(c[a+60>>2]|0)|0;a=fh(qb(6,d|0)|0)|0;l=b;return a|0}function dh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=l;l=l+48|0;f=e+16|0;g=e;h=e+32|0;i=a+28|0;j=c[i>>2]|0;c[h>>2]=j;k=a+20|0;m=(c[k>>2]|0)-j|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=m+d|0;m=a+60|0;c[g>>2]=c[m>>2];c[g+4>>2]=h;c[g+8>>2]=2;j=fh(Db(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=j;n=h;o=2;p=b;while(1){if((g|0)<0)break;p=p-g|0;q=c[n+4>>2]|0;r=g>>>0>q>>>0;s=r?n+8|0:n;t=(r<<31>>31)+o|0;u=g-(r?q:0)|0;c[s>>2]=(c[s>>2]|0)+u;q=s+4|0;c[q>>2]=(c[q>>2]|0)-u;c[f>>2]=c[m>>2];c[f+4>>2]=s;c[f+8>>2]=t;g=fh(Db(146,f|0)|0)|0;if((p|0)==(g|0)){v=3;break a}else{n=s;o=t}}c[a+16>>2]=0;c[i>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((o|0)==2)w=0;else w=d-(c[n+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=c[a+44>>2]|0;c[a+16>>2]=v+(c[a+48>>2]|0);c[i>>2]=v;c[k>>2]=v;w=d}l=e;return w|0}function eh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=l;l=l+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((fh(yb(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;l=e;return h|0}function fh(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(gh()|0)>>2]=0-a;b=-1}else b=a;return b|0}function gh(){return (hh()|0)+64|0}function hh(){return ih()|0}function ih(){return 1444}function jh(a){a=a|0;return a|0}function kh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+32|0;g=f;c[b+36>>2]=1;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21523,c[g+8>>2]=f+16,Ha(54,g|0)|0):0)a[b+75>>0]=-1;g=dh(b,d,e)|0;l=f;return g|0}function lh(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=b;b=c;do{d=d+1|0;b=b+1|0;c=a[d>>0]|0;e=a[b>>0]|0}while(!(c<<24>>24==0?1:c<<24>>24!=e<<24>>24));f=e;g=c}return (g&255)-(f&255)|0}function mh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;g=l;l=l+128|0;h=g+124|0;i=g;j=i;k=1820;m=j+124|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(m|0));if((d+-1|0)>>>0>2147483646)if(!d){n=1;o=h;p=4}else{c[(gh()|0)>>2]=75;q=-1}else{n=d;o=b;p=4}if((p|0)==4){p=-2-o|0;b=n>>>0>p>>>0?p:n;c[i+48>>2]=b;n=i+20|0;c[n>>2]=o;c[i+44>>2]=o;p=o+b|0;o=i+16|0;c[o>>2]=p;c[i+28>>2]=p;p=nh(i,e,f)|0;if(!b)q=p;else{b=c[n>>2]|0;a[b+(((b|0)==(c[o>>2]|0))<<31>>31)>>0]=0;q=p}}l=g;return q|0}function nh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+224|0;g=f+120|0;h=f+80|0;i=f;j=f+136|0;k=h;m=k+40|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(m|0));c[g>>2]=c[e>>2];if((oh(0,d,g,i,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=ph(b)|0;else o=0;e=c[b>>2]|0;k=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=j;q=b+28|0;c[q>>2]=j;r=b+20|0;c[r>>2]=j;c[e>>2]=80;s=b+16|0;c[s>>2]=j+80;j=oh(b,d,g,i,h)|0;if(!p)t=j;else{Fb[c[b+36>>2]&7](b,0,0)|0;u=(c[r>>2]|0)==0?-1:j;c[m>>2]=p;c[e>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>>2]=0;t=u}}else t=oh(b,d,g,i,h)|0;h=c[b>>2]|0;c[b>>2]=h|k;if(o|0)qh(b);n=(h&32|0)==0?t:-1}l=f;return n|0}function oh(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;j=l;l=l+64|0;k=j+16|0;m=j;n=j+24|0;o=j+8|0;p=j+20|0;c[k>>2]=e;q=(d|0)!=0;r=n+40|0;s=r;t=n+39|0;n=o+4|0;u=e;e=0;v=0;w=0;a:while(1){do if((e|0)>-1)if((v|0)>(2147483647-e|0)){c[(gh()|0)>>2]=75;x=-1;break}else{x=v+e|0;break}else x=e;while(0);y=a[u>>0]|0;if(!(y<<24>>24)){z=87;break}else{A=y;B=u}b:while(1){switch(A<<24>>24){case 37:{C=B;D=B;z=9;break b;break}case 0:{F=B;G=B;break b;break}default:{}}y=B+1|0;c[k>>2]=y;A=a[y>>0]|0;B=y}c:do if((z|0)==9)while(1){z=0;if((a[C+1>>0]|0)!=37){F=C;G=D;break c}y=D+1|0;H=C+2|0;c[k>>2]=H;if((a[H>>0]|0)==37){C=H;D=y;z=9}else{F=H;G=y;break}}while(0);y=G-u|0;if(q)rh(d,u,y);if(y|0){u=F;e=x;v=y;continue}y=F+1|0;H=(a[y>>0]|0)+-48|0;if(H>>>0<10){I=(a[F+2>>0]|0)==36;J=I?H:-1;K=I?1:w;L=I?F+3|0:y}else{J=-1;K=w;L=y}c[k>>2]=L;y=a[L>>0]|0;I=(y<<24>>24)+-32|0;d:do if(I>>>0<32){H=y;M=0;N=L;O=I;while(1){P=1<<O;if(!(P&75913)){Q=H;R=N;S=M;break d}T=P|M;P=N+1|0;c[k>>2]=P;U=a[P>>0]|0;O=(U<<24>>24)+-32|0;if(O>>>0>=32){Q=U;R=P;S=T;break}else{H=U;M=T;N=P}}}else{Q=y;R=L;S=0}while(0);if(Q<<24>>24==42){y=R+1|0;I=(a[y>>0]|0)+-48|0;if(I>>>0<10?(a[R+2>>0]|0)==36:0){c[i+(I<<2)>>2]=10;V=1;W=R+3|0;X=c[g+((a[y>>0]|0)+-48<<3)>>2]|0}else{if(K|0){Y=-1;break}if(q){I=(c[f>>2]|0)+(4-1)&~(4-1);N=c[I>>2]|0;c[f>>2]=I+4;V=0;W=y;X=N}else{V=0;W=y;X=0}}c[k>>2]=W;y=(X|0)<0;Z=W;_=y?S|8192:S;$=V;aa=y?0-X|0:X}else{y=sh(k)|0;if((y|0)<0){Y=-1;break}Z=c[k>>2]|0;_=S;$=K;aa=y}do if((a[Z>>0]|0)==46){if((a[Z+1>>0]|0)!=42){c[k>>2]=Z+1;y=sh(k)|0;ba=c[k>>2]|0;ca=y;break}y=Z+2|0;N=(a[y>>0]|0)+-48|0;if(N>>>0<10?(a[Z+3>>0]|0)==36:0){c[i+(N<<2)>>2]=10;N=c[g+((a[y>>0]|0)+-48<<3)>>2]|0;I=Z+4|0;c[k>>2]=I;ba=I;ca=N;break}if($|0){Y=-1;break a}if(q){N=(c[f>>2]|0)+(4-1)&~(4-1);I=c[N>>2]|0;c[f>>2]=N+4;da=I}else da=0;c[k>>2]=y;ba=y;ca=da}else{ba=Z;ca=-1}while(0);y=ba;I=0;while(1){if(((a[y>>0]|0)+-65|0)>>>0>57){Y=-1;break a}ea=y+1|0;c[k>>2]=ea;fa=a[(a[y>>0]|0)+-65+(4118+(I*58|0))>>0]|0;ga=fa&255;if((ga+-1|0)>>>0<8){y=ea;I=ga}else break}if(!(fa<<24>>24)){Y=-1;break}N=(J|0)>-1;do if(fa<<24>>24==19)if(N){Y=-1;break a}else z=49;else{if(N){c[i+(J<<2)>>2]=ga;M=g+(J<<3)|0;H=c[M+4>>2]|0;O=m;c[O>>2]=c[M>>2];c[O+4>>2]=H;z=49;break}if(!q){Y=0;break a}th(m,ga,f)}while(0);if((z|0)==49?(z=0,!q):0){u=ea;e=x;v=0;w=$;continue}N=a[y>>0]|0;H=(I|0)!=0&(N&15|0)==3?N&-33:N;N=_&-65537;O=(_&8192|0)==0?_:N;e:do switch(H|0){case 110:{switch((I&255)<<24>>24){case 0:{c[c[m>>2]>>2]=x;u=ea;e=x;v=0;w=$;continue a;break}case 1:{c[c[m>>2]>>2]=x;u=ea;e=x;v=0;w=$;continue a;break}case 2:{M=c[m>>2]|0;c[M>>2]=x;c[M+4>>2]=((x|0)<0)<<31>>31;u=ea;e=x;v=0;w=$;continue a;break}case 3:{b[c[m>>2]>>1]=x;u=ea;e=x;v=0;w=$;continue a;break}case 4:{a[c[m>>2]>>0]=x;u=ea;e=x;v=0;w=$;continue a;break}case 6:{c[c[m>>2]>>2]=x;u=ea;e=x;v=0;w=$;continue a;break}case 7:{M=c[m>>2]|0;c[M>>2]=x;c[M+4>>2]=((x|0)<0)<<31>>31;u=ea;e=x;v=0;w=$;continue a;break}default:{u=ea;e=x;v=0;w=$;continue a}}break}case 112:{ha=O|8;ia=ca>>>0>8?ca:8;ja=120;z=61;break}case 88:case 120:{ha=O;ia=ca;ja=H;z=61;break}case 111:{M=m;P=c[M>>2]|0;T=c[M+4>>2]|0;M=vh(P,T,r)|0;U=s-M|0;ka=P;la=T;ma=M;na=O;oa=(O&8|0)==0|(ca|0)>(U|0)?ca:U+1|0;pa=0;qa=4582;z=67;break}case 105:case 100:{U=m;M=c[U>>2]|0;T=c[U+4>>2]|0;if((T|0)<0){U=vj(0,0,M|0,T|0)|0;P=E;ra=m;c[ra>>2]=U;c[ra+4>>2]=P;sa=U;ta=P;ua=1;va=4582;z=66;break e}else{sa=M;ta=T;ua=(O&2049|0)!=0&1;va=(O&2048|0)==0?((O&1|0)==0?4582:4584):4583;z=66;break e}break}case 117:{T=m;sa=c[T>>2]|0;ta=c[T+4>>2]|0;ua=0;va=4582;z=66;break}case 99:{a[t>>0]=c[m>>2];wa=t;xa=N;ya=1;za=0;Aa=4582;Ba=r;break}case 109:{Ca=xh(c[(gh()|0)>>2]|0)|0;z=71;break}case 115:{T=c[m>>2]|0;Ca=T|0?T:4592;z=71;break}case 67:{c[o>>2]=c[m>>2];c[n>>2]=0;c[m>>2]=o;Da=o;Ea=-1;z=75;break}case 83:{T=c[m>>2]|0;if(!ca){zh(d,32,aa,0,O);Fa=0;z=84}else{Da=T;Ea=ca;z=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{u=ea;e=x;v=Bh(d,+h[m>>3],aa,ca,O,H)|0;w=$;continue a;break}default:{wa=u;xa=O;ya=ca;za=0;Aa=4582;Ba=r}}while(0);f:do if((z|0)==61){z=0;H=m;I=c[H>>2]|0;y=c[H+4>>2]|0;H=uh(I,y,r,ja&32)|0;T=(ha&8|0)==0|(I|0)==0&(y|0)==0;ka=I;la=y;ma=H;na=ha;oa=ia;pa=T?0:2;qa=T?4582:4582+(ja>>4)|0;z=67}else if((z|0)==66){z=0;ka=sa;la=ta;ma=wh(sa,ta,r)|0;na=O;oa=ca;pa=ua;qa=va;z=67}else if((z|0)==71){z=0;T=yh(Ca,0,ca)|0;H=(T|0)==0;wa=Ca;xa=N;ya=H?ca:T-Ca|0;za=0;Aa=4582;Ba=H?Ca+ca|0:T}else if((z|0)==75){z=0;T=0;H=0;y=Da;while(1){I=c[y>>2]|0;if(!I){Ga=T;Ha=H;break}M=Ah(p,I)|0;if((M|0)<0|M>>>0>(Ea-T|0)>>>0){Ga=T;Ha=M;break}I=M+T|0;if(Ea>>>0>I>>>0){T=I;H=M;y=y+4|0}else{Ga=I;Ha=M;break}}if((Ha|0)<0){Y=-1;break a}zh(d,32,aa,Ga,O);if(!Ga){Fa=0;z=84}else{y=0;H=Da;while(1){T=c[H>>2]|0;if(!T){Fa=Ga;z=84;break f}M=Ah(p,T)|0;y=M+y|0;if((y|0)>(Ga|0)){Fa=Ga;z=84;break f}rh(d,p,M);if(y>>>0>=Ga>>>0){Fa=Ga;z=84;break}else H=H+4|0}}}while(0);if((z|0)==67){z=0;N=(ka|0)!=0|(la|0)!=0;H=(oa|0)!=0|N;y=((N^1)&1)+(s-ma)|0;wa=H?ma:r;xa=(oa|0)>-1?na&-65537:na;ya=H?((oa|0)>(y|0)?oa:y):oa;za=pa;Aa=qa;Ba=r}else if((z|0)==84){z=0;zh(d,32,aa,Fa,O^8192);u=ea;e=x;v=(aa|0)>(Fa|0)?aa:Fa;w=$;continue}y=Ba-wa|0;H=(ya|0)<(y|0)?y:ya;N=H+za|0;M=(aa|0)<(N|0)?N:aa;zh(d,32,M,N,xa);rh(d,Aa,za);zh(d,48,M,N,xa^65536);zh(d,48,H,y,0);rh(d,wa,y);zh(d,32,M,N,xa^8192);u=ea;e=x;v=M;w=$}g:do if((z|0)==87)if(!d)if(!w)Y=0;else{$=1;while(1){v=c[i+($<<2)>>2]|0;if(!v){Ia=$;break}th(g+($<<3)|0,v,f);$=$+1|0;if(($|0)>=10){Y=1;break g}}while(1){if(c[i+(Ia<<2)>>2]|0){Y=-1;break g}Ia=Ia+1|0;if((Ia|0)>=10){Y=1;break}}}else Y=x;while(0);l=j;return Y|0}function ph(a){a=a|0;return 0}function qh(a){a=a|0;return}function rh(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))Nh(b,d,a)|0;return}function sh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b>>2]|0;e=(a[d>>0]|0)+-48|0;if(e>>>0<10){f=d;d=0;g=e;while(1){e=g+(d*10|0)|0;f=f+1|0;c[b>>2]=f;g=(a[f>>0]|0)+-48|0;if(g>>>0>=10){h=e;break}else d=e}}else h=0;return h|0}function th(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a;break}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break}case 15:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<<24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}default:break a}while(0);while(0);return}function uh(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;var g=0,h=0;if((b|0)==0&(c|0)==0)g=e;else{h=b;b=c;c=e;while(1){e=c+-1|0;a[e>>0]=d[4634+(h&15)>>0]|0|f;h=zj(h|0,b|0,4)|0;b=E;if((h|0)==0&(b|0)==0){g=e;break}else c=e}}return g|0}function vh(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;if((b|0)==0&(c|0)==0)e=d;else{f=b;b=c;c=d;while(1){d=c+-1|0;a[d>>0]=f&7|48;f=zj(f|0,b|0,3)|0;b=E;if((f|0)==0&(b|0)==0){e=d;break}else c=d}}return e|0}function wh(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=b;f=c;c=d;while(1){g=Ij(e|0,f|0,10,0)|0;c=c+-1|0;a[c>>0]=g&255|48;g=e;e=Dj(e|0,f|0,10,0)|0;if(!(f>>>0>9|(f|0)==9&g>>>0>4294967295))break;else f=E}h=c;i=e}else{h=d;i=b}if(!i)j=h;else{b=h;h=i;while(1){i=b+-1|0;a[i>>0]=(h>>>0)%10|0|48;if(h>>>0<10){j=i;break}else{b=i;h=(h>>>0)/10|0}}}return j|0}function xh(a){a=a|0;return Ih(a,c[(Hh()|0)+188>>2]|0)|0}function yh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=e;j=b;while(1){if((a[j>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=j+1|0;o=i+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=o;j=n}else{q=o;r=n;s=p;m=5;break}}}else{q=e;r=b;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else{t=0;u=r}b:do if((m|0)==6){r=d&255;if((a[l>>0]|0)==r<<24>>24){t=k;u=l}else{q=T(f,16843009)|0;c:do if(k>>>0>3){s=k;g=l;while(1){b=c[g>>2]^q;if((b&-2139062144^-2139062144)&b+-16843009|0)break;b=g+4|0;e=s+-4|0;if(e>>>0>3){s=e;g=b}else{v=e;w=b;m=11;break c}}x=s;y=g}else{v=k;w=l;m=11}while(0);if((m|0)==11)if(!v){t=0;u=w;break}else{x=v;y=w}while(1){if((a[y>>0]|0)==r<<24>>24){t=x;u=y;break b}q=y+1|0;x=x+-1|0;if(!x){t=0;u=q;break}else y=q}}}while(0);return (t|0?u:0)|0}function zh(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;f=l;l=l+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;wj(g|0,b|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{rh(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;rh(a,g,h)}l=f;return}function Ah(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=Fh(a,b,0)|0;return c|0}function Bh(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0,Q=0,R=0,S=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.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,Aa=0,Ba=0,Ca=0,Da=0,Ea=0;j=l;l=l+560|0;k=j+8|0;m=j;n=j+524|0;o=n;p=j+512|0;c[m>>2]=0;q=p+12|0;Ch(e)|0;if((E|0)<0){r=1;s=4599;t=-e}else{r=(h&2049|0)!=0&1;s=(h&2048|0)==0?((h&1|0)==0?4600:4605):4602;t=e}Ch(t)|0;u=E&2146435072;do if(u>>>0<2146435072|(u|0)==2146435072&0<0){e=+Dh(t,m)*2.0;v=e!=0.0;if(v)c[m>>2]=(c[m>>2]|0)+-1;w=i|32;if((w|0)==97){x=i&32;y=(x|0)==0?s:s+9|0;z=r|2;A=12-g|0;do if(!(g>>>0>11|(A|0)==0)){B=A;C=8.0;do{B=B+-1|0;C=C*16.0}while((B|0)!=0);if((a[y>>0]|0)==45){D=-(C+(-e-C));break}else{D=e+C-C;break}}else D=e;while(0);A=c[m>>2]|0;B=(A|0)<0?0-A|0:A;F=wh(B,((B|0)<0)<<31>>31,q)|0;if((F|0)==(q|0)){B=p+11|0;a[B>>0]=48;G=B}else G=F;a[G+-1>>0]=(A>>31&2)+43;A=G+-2|0;a[A>>0]=i+15;F=(g|0)<1;B=(h&8|0)==0;H=n;I=D;while(1){J=~~I;K=H+1|0;a[H>>0]=d[4634+J>>0]|x;I=(I-+(J|0))*16.0;if((K-o|0)==1?!(B&(F&I==0.0)):0){a[K>>0]=46;L=H+2|0}else L=K;if(!(I!=0.0))break;else H=L}H=L-o|0;F=q-A|0;B=(g|0)!=0&(H+-2|0)<(g|0)?g+2|0:H;x=F+z+B|0;zh(b,32,f,x,h);rh(b,y,z);zh(b,48,f,x,h^65536);rh(b,n,H);zh(b,48,B-H|0,0,0);rh(b,A,F);zh(b,32,f,x,h^8192);M=x;break}x=(g|0)<0?6:g;if(v){F=(c[m>>2]|0)+-28|0;c[m>>2]=F;N=F;O=e*268435456.0}else{N=c[m>>2]|0;O=e}F=(N|0)<0?k:k+288|0;I=O;H=F;do{B=~~I>>>0;c[H>>2]=B;H=H+4|0;I=(I-+(B>>>0))*1.0e9}while(I!=0.0);if((N|0)>0){v=N;A=F;z=H;while(1){y=(v|0)<29?v:29;B=z+-4|0;if(B>>>0>=A>>>0){K=0;J=B;do{B=xj(c[J>>2]|0,0,y|0)|0;P=yj(B|0,E|0,K|0,0)|0;B=E;Q=Ij(P|0,B|0,1e9,0)|0;c[J>>2]=Q;K=Dj(P|0,B|0,1e9,0)|0;J=J+-4|0}while(J>>>0>=A>>>0);if(K){J=A+-4|0;c[J>>2]=K;R=J}else R=A}else R=A;J=z;while(1){if(J>>>0<=R>>>0)break;B=J+-4|0;if(!(c[B>>2]|0))J=B;else break}K=(c[m>>2]|0)-y|0;c[m>>2]=K;if((K|0)>0){v=K;A=R;z=J}else{S=K;U=R;V=J;break}}}else{S=N;U=F;V=H}if((S|0)<0){z=((x+25|0)/9|0)+1|0;A=(w|0)==102;v=S;K=U;B=V;while(1){P=0-v|0;Q=(P|0)<9?P:9;if(K>>>0<B>>>0){P=(1<<Q)+-1|0;W=1e9>>>Q;X=0;Y=K;do{Z=c[Y>>2]|0;c[Y>>2]=(Z>>>Q)+X;X=T(Z&P,W)|0;Y=Y+4|0}while(Y>>>0<B>>>0);Y=(c[K>>2]|0)==0?K+4|0:K;if(!X){_=Y;$=B}else{c[B>>2]=X;_=Y;$=B+4|0}}else{_=(c[K>>2]|0)==0?K+4|0:K;$=B}Y=A?F:_;W=($-Y>>2|0)>(z|0)?Y+(z<<2)|0:$;v=(c[m>>2]|0)+Q|0;c[m>>2]=v;if((v|0)>=0){aa=_;ba=W;break}else{K=_;B=W}}}else{aa=U;ba=V}B=F;if(aa>>>0<ba>>>0){K=(B-aa>>2)*9|0;v=c[aa>>2]|0;if(v>>>0<10)ca=K;else{z=K;K=10;while(1){K=K*10|0;A=z+1|0;if(v>>>0<K>>>0){ca=A;break}else z=A}}}else ca=0;z=(w|0)==103;K=(x|0)!=0;v=x-((w|0)!=102?ca:0)+((K&z)<<31>>31)|0;if((v|0)<(((ba-B>>2)*9|0)+-9|0)){A=v+9216|0;v=F+4+(((A|0)/9|0)+-1024<<2)|0;H=((A|0)%9|0)+1|0;if((H|0)<9){A=10;W=H;while(1){H=A*10|0;W=W+1|0;if((W|0)==9){da=H;break}else A=H}}else da=10;A=c[v>>2]|0;W=(A>>>0)%(da>>>0)|0;w=(v+4|0)==(ba|0);if(!(w&(W|0)==0)){C=(((A>>>0)/(da>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;H=(da|0)/2|0;I=W>>>0<H>>>0?.5:w&(W|0)==(H|0)?1.0:1.5;if(!r){ea=C;fa=I}else{H=(a[s>>0]|0)==45;ea=H?-C:C;fa=H?-I:I}H=A-W|0;c[v>>2]=H;if(ea+fa!=ea){W=H+da|0;c[v>>2]=W;if(W>>>0>999999999){W=aa;H=v;while(1){A=H+-4|0;c[H>>2]=0;if(A>>>0<W>>>0){w=W+-4|0;c[w>>2]=0;ga=w}else ga=W;w=(c[A>>2]|0)+1|0;c[A>>2]=w;if(w>>>0>999999999){W=ga;H=A}else{ha=ga;ia=A;break}}}else{ha=aa;ia=v}H=(B-ha>>2)*9|0;W=c[ha>>2]|0;if(W>>>0<10){ja=ha;ka=ia;la=H}else{A=H;H=10;while(1){H=H*10|0;w=A+1|0;if(W>>>0<H>>>0){ja=ha;ka=ia;la=w;break}else A=w}}}else{ja=aa;ka=v;la=ca}}else{ja=aa;ka=v;la=ca}A=ka+4|0;ma=ja;na=la;oa=ba>>>0>A>>>0?A:ba}else{ma=aa;na=ca;oa=ba}A=oa;while(1){if(A>>>0<=ma>>>0){pa=0;break}H=A+-4|0;if(!(c[H>>2]|0))A=H;else{pa=1;break}}v=0-na|0;do if(z){H=((K^1)&1)+x|0;if((H|0)>(na|0)&(na|0)>-5){qa=H+-1-na|0;ra=i+-1|0}else{qa=H+-1|0;ra=i+-2|0}H=h&8;if(!H){if(pa?(W=c[A+-4>>2]|0,(W|0)!=0):0)if(!((W>>>0)%10|0)){w=10;Y=0;while(1){w=w*10|0;P=Y+1|0;if((W>>>0)%(w>>>0)|0|0){sa=P;break}else Y=P}}else sa=0;else sa=9;Y=((A-B>>2)*9|0)+-9|0;if((ra|32|0)==102){w=Y-sa|0;W=(w|0)>0?w:0;ta=0;ua=(qa|0)<(W|0)?qa:W;va=ra;break}else{W=Y+na-sa|0;Y=(W|0)>0?W:0;ta=0;ua=(qa|0)<(Y|0)?qa:Y;va=ra;break}}else{ta=H;ua=qa;va=ra}}else{ta=h&8;ua=x;va=i}while(0);x=ua|ta;B=(x|0)!=0&1;K=(va|32|0)==102;if(K){wa=0;xa=(na|0)>0?na:0}else{z=(na|0)<0?v:na;Y=wh(z,((z|0)<0)<<31>>31,q)|0;z=q;if((z-Y|0)<2){W=Y;while(1){w=W+-1|0;a[w>>0]=48;if((z-w|0)<2)W=w;else{ya=w;break}}}else ya=Y;a[ya+-1>>0]=(na>>31&2)+43;W=ya+-2|0;a[W>>0]=va;wa=W;xa=z-W|0}W=r+1+ua+B+xa|0;zh(b,32,f,W,h);rh(b,s,r);zh(b,48,f,W,h^65536);if(K){v=ma>>>0>F>>>0?F:ma;w=n+9|0;Q=w;X=n+8|0;P=v;do{J=wh(c[P>>2]|0,0,w)|0;if((P|0)==(v|0))if((J|0)==(w|0)){a[X>>0]=48;za=X}else za=J;else if(J>>>0>n>>>0){wj(n|0,48,J-o|0)|0;y=J;while(1){Z=y+-1|0;if(Z>>>0>n>>>0)y=Z;else{za=Z;break}}}else za=J;rh(b,za,Q-za|0);P=P+4|0}while(P>>>0<=F>>>0);if(x|0)rh(b,4650,1);if(P>>>0<A>>>0&(ua|0)>0){F=P;Q=ua;while(1){X=wh(c[F>>2]|0,0,w)|0;if(X>>>0>n>>>0){wj(n|0,48,X-o|0)|0;v=X;while(1){K=v+-1|0;if(K>>>0>n>>>0)v=K;else{Aa=K;break}}}else Aa=X;rh(b,Aa,(Q|0)<9?Q:9);F=F+4|0;v=Q+-9|0;if(!(F>>>0<A>>>0&(Q|0)>9)){Ba=v;break}else Q=v}}else Ba=ua;zh(b,48,Ba+9|0,9,0)}else{Q=pa?A:ma+4|0;if((ua|0)>-1){F=n+9|0;w=(ta|0)==0;P=F;x=0-o|0;v=n+8|0;J=ma;K=ua;while(1){B=wh(c[J>>2]|0,0,F)|0;if((B|0)==(F|0)){a[v>>0]=48;Ca=v}else Ca=B;do if((J|0)==(ma|0)){B=Ca+1|0;rh(b,Ca,1);if(w&(K|0)<1){Da=B;break}rh(b,4650,1);Da=B}else{if(Ca>>>0<=n>>>0){Da=Ca;break}wj(n|0,48,Ca+x|0)|0;B=Ca;while(1){z=B+-1|0;if(z>>>0>n>>>0)B=z;else{Da=z;break}}}while(0);X=P-Da|0;rh(b,Da,(K|0)>(X|0)?X:K);B=K-X|0;J=J+4|0;if(!(J>>>0<Q>>>0&(B|0)>-1)){Ea=B;break}else K=B}}else Ea=ua;zh(b,48,Ea+18|0,18,0);rh(b,wa,q-wa|0)}zh(b,32,f,W,h^8192);M=W}else{K=(i&32|0)!=0;Q=r+3|0;zh(b,32,f,Q,h&-65537);rh(b,s,r);rh(b,t!=t|0.0!=0.0?(K?4626:4630):K?4618:4622,3);zh(b,32,f,Q,h^8192);M=Q}while(0);l=j;return ((M|0)<(f|0)?f:M)|0}function Ch(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;E=c[j+4>>2]|0;return b|0}function Dh(a,b){a=+a;b=b|0;return +(+Eh(a,b))}function Eh(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0.0,i=0,k=0.0,l=0.0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+4>>2]|0;f=zj(d|0,e|0,52)|0;switch(f&2047){case 0:{if(a!=0.0){g=+Eh(a*18446744073709551616.0,b);i=(c[b>>2]|0)+-64|0;k=g}else{i=0;k=a}c[b>>2]=i;l=k;break}case 2047:{l=a;break}default:{c[b>>2]=(f&2047)+-1022;c[j>>2]=d;c[j+4>>2]=e&-2146435073|1071644672;l=+h[j>>3]}}return +l}function Fh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(!(c[c[(Gh()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;f=1;break}else{c[(gh()|0)>>2]=84;f=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(gh()|0)>>2]=84;f=-1;break}}else f=1;while(0);return f|0}function Gh(){return ih()|0}function Hh(){return ih()|0}function Ih(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=0;while(1){if((d[4652+f>>0]|0)==(b|0)){g=2;break}h=f+1|0;if((h|0)==87){i=87;j=4740;g=5;break}else f=h}if((g|0)==2)if(!f)k=4740;else{i=f;j=4740;g=5}if((g|0)==5)while(1){g=0;f=j;do{b=f;f=f+1|0}while((a[b>>0]|0)!=0);i=i+-1|0;if(!i){k=f;break}else{j=f;g=5}}return Jh(k,c[e+20>>2]|0)|0}function Jh(a,b){a=a|0;b=b|0;return Kh(a,b)|0}function Kh(a,b){a=a|0;b=b|0;var d=0;if(!b)d=0;else d=Lh(c[b>>2]|0,c[b+4>>2]|0,a)|0;return (d|0?d:a)|0}function Lh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;f=(c[b>>2]|0)+1794895138|0;g=Mh(c[b+8>>2]|0,f)|0;h=Mh(c[b+12>>2]|0,f)|0;i=Mh(c[b+16>>2]|0,f)|0;a:do if((g>>>0<d>>>2>>>0?(j=d-(g<<2)|0,h>>>0<j>>>0&i>>>0<j>>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=Mh(c[b+(q<<2)>>2]|0,f)|0;s=Mh(c[b+(q+1<<2)>>2]|0,f)|0;if(!(s>>>0<d>>>0&r>>>0<(d-s|0)>>>0)){t=0;break a}if(a[b+(s+r)>>0]|0){t=0;break a}r=lh(e,b+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}else{l=s?l:o;m=s?n:m-n|0}}m=p+k|0;l=Mh(c[b+(m<<2)>>2]|0,f)|0;j=Mh(c[b+(m+1<<2)>>2]|0,f)|0;if(j>>>0<d>>>0&l>>>0<(d-j|0)>>>0)t=(a[b+(j+l)>>0]|0)==0?b+j|0:0;else t=0}else t=0;while(0);return t|0}function Mh(a,b){a=a|0;b=b|0;var c=0;c=Jj(a|0)|0;return ((b|0)==0?a:c)|0}function Nh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Oh(e)|0)){h=c[f>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=e+20|0;f=c[g>>2]|0;k=f;if((h-f|0)>>>0<d>>>0){j=Fb[c[e+36>>2]&7](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){l=k;m=0;n=d;o=b;break b}p=f+-1|0;if((a[b+p>>0]|0)==10)break;else f=p}p=Fb[c[e+36>>2]&7](e,b,f)|0;if(p>>>0<f>>>0){j=p;break a}l=c[g>>2]|0;m=f;n=d-f|0;o=b+f|0}else{l=k;m=0;n=d;o=b}while(0);Aj(l|0,o|0,n|0)|0;c[g>>2]=(c[g>>2]|0)+n;j=m+n|0}while(0);return j|0}function Oh(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function Ph(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+20|0;f=c[e>>2]|0;g=(c[a+16>>2]|0)-f|0;a=g>>>0>d>>>0?d:g;Aj(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function Qh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=b;a:do if(!(d&3)){e=b;f=4}else{g=d;h=b;while(1){if(!(a[h>>0]|0)){i=g;break a}j=h+1|0;g=j;if(!(g&3)){e=j;f=4;break}else h=j}}while(0);if((f|0)==4){f=e;while(1){k=c[f>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))f=f+4|0;else break}if(!((k&255)<<24>>24))l=f;else{k=f;while(1){f=k+1|0;if(!(a[f>>0]|0)){l=f;break}else k=f}}i=l}return i-d|0}function Rh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=f;c[g>>2]=e;e=mh(a,b,d,g)|0;l=f;return e|0}function Sh(a,b){a=+a;b=+b;var c=0,d=0,e=0.0;c=Th(a)|0;do if((c&2147483647)>>>0<=2139095040){d=Th(b)|0;if((d&2147483647)>>>0<=2139095040)if((d^c|0)<0){e=(c|0)<0?b:a;break}else{e=a<b?b:a;break}else e=a}else e=b;while(0);return +e}function Th(a){a=+a;return (g[j>>2]=a,c[j>>2]|0)|0}function Uh(a,b){a=+a;b=+b;var c=0,d=0,e=0.0;c=Vh(a)|0;do if((c&2147483647)>>>0<=2139095040){d=Vh(b)|0;if((d&2147483647)>>>0<=2139095040)if((d^c|0)<0){e=(c|0)<0?a:b;break}else{e=a<b?a:b;break}else e=a}else e=b;while(0);return +e}function Vh(a){a=+a;return (g[j>>2]=a,c[j>>2]|0)|0}function Wh(a,b){a=+a;b=+b;var d=0,e=0,f=0,h=0,i=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.0,H=0,I=0,J=0,K=0,L=0,M=0.0;d=(g[j>>2]=a,c[j>>2]|0);e=(g[j>>2]=b,c[j>>2]|0);f=d>>>23&255;h=e>>>23&255;i=d&-2147483648;k=e<<1;a:do if((k|0)!=0?!((f|0)==255|((Xh(b)|0)&2147483647)>>>0>2139095040):0){l=d<<1;if(l>>>0<=k>>>0)return +((l|0)==(k|0)?a*0.0:a);if(!f){l=d<<9;if((l|0)>-1){m=0;n=l;while(1){l=m+-1|0;n=n<<1;if((n|0)<=-1){o=l;break}else m=l}}else o=0;p=o;q=d<<1-o}else{p=f;q=d&8388607|8388608}if(!h){m=e<<9;if((m|0)>-1){n=0;l=m;while(1){m=n+-1|0;l=l<<1;if((l|0)<=-1){r=m;break}else n=m}}else r=0;s=r;t=e<<1-r}else{s=h;t=e&8388607|8388608}n=q-t|0;l=(n|0)>-1;b:do if((p|0)>(s|0)){m=l;u=p;v=n;w=q;while(1){if(m)if(!v)break;else x=v;else x=w;y=x<<1;z=u+-1|0;A=y-t|0;B=(A|0)>-1;if((z|0)>(s|0)){m=B;u=z;v=A;w=y}else{C=B;D=z;E=A;F=y;break b}}G=a*0.0;break a}else{C=l;D=p;E=n;F=q}while(0);if(C)if(!E){G=a*0.0;break}else H=E;else H=F;if(H>>>0<8388608){n=D;l=H;while(1){w=l<<1;v=n+-1|0;if(w>>>0<8388608){n=v;l=w}else{I=v;J=w;break}}}else{I=D;J=H}if((I|0)>0)K=J+-8388608|I<<23;else K=J>>>(1-I|0);G=(c[j>>2]=K|i,+g[j>>2])}else L=3;while(0);if((L|0)==3){M=a*b;G=M/M}return +G}function Xh(a){a=+a;return (g[j>>2]=a,c[j>>2]|0)|0}function Yh(a){a=a|0;var b=0,c=0,d=0;b=(Qh(a)|0)+1|0;c=ii(b)|0;if(!c)d=0;else{Aj(c|0,a|0,b|0)|0;d=c}return d|0}function Zh(a,b){a=a|0;b=b|0;var c=0;c=Qh(a)|0;return ((_h(a,1,c,b)|0)!=(c|0))<<31>>31|0}function _h(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=T(d,b)|0;g=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){d=(ph(e)|0)==0;h=Nh(a,f,e)|0;if(d)i=h;else{qh(e);i=h}}else i=Nh(a,f,e)|0;if((i|0)==(f|0))j=g;else j=(i>>>0)/(b>>>0)|0;return j|0}function $h(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+16|0;g=f;h=e&255;a[g>>0]=h;i=b+16|0;j=c[i>>2]|0;if(!j)if(!(Oh(b)|0)){k=c[i>>2]|0;m=4}else n=-1;else{k=j;m=4}do if((m|0)==4){j=b+20|0;i=c[j>>2]|0;if(i>>>0<k>>>0?(o=e&255,(o|0)!=(a[b+75>>0]|0)):0){c[j>>2]=i+1;a[i>>0]=h;n=o;break}if((Fb[c[b+36>>2]&7](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1}while(0);l=f;return n|0}function ai(){pb(9607660);return 9607668}function bi(){hb(9607660);return}function ci(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=di(a)|0;break}d=(ph(a)|0)==0;e=di(a)|0;if(d)b=e;else{qh(a);b=e}}else{if(!(c[454]|0))f=0;else f=ci(c[454]|0)|0;e=c[(ai()|0)>>2]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=ph(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=di(d)|0|e;else i=e;if(h|0)qh(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}bi();b=g}while(0);return b|0}function di(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(Fb[c[a+36>>2]&7](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0<i>>>0)Fb[c[a+40>>2]&7](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function ei(){var a=0,b=0,d=0;a=7504;b=Fj(c[a>>2]|0,c[a+4>>2]|0,1284865837,1481765933)|0;a=yj(b|0,E|0,1,0)|0;b=E;d=7504;c[d>>2]=a;c[d+4>>2]=b;d=zj(a|0,b|0,33)|0;return d|0}function fi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=b&255;f=b&255;if((c[d+76>>2]|0)>=0?(ph(d)|0)!=0:0){if((f|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=e;i=f}else i=$h(d,b)|0;qh(d);j=i}else k=3;do if((k|0)==3){if((f|0)!=(a[d+75>>0]|0)?(i=d+20|0,h=c[i>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[i>>2]=h+1;a[h>>0]=e;j=f;break}j=$h(d,b)|0}while(0);return j|0}function gi(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=nh(c[422]|0,a,e)|0;l=d;return b|0}function hi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[422]|0;if((c[d+76>>2]|0)>-1)e=ph(d)|0;else e=0;do if((Zh(b,d)|0)<0)f=1;else{if((a[d+75>>0]|0)!=10?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=10;f=0;break}f=($h(d,10)|0)<0}while(0);if(e|0)qh(d);return f<<31>>31|0}function ii(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,Aa=0,Ba=0;b=l;l=l+16|0;d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[2401918]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=9607712+(i<<1<<2)|0;k=j+8|0;m=c[k>>2]|0;n=m+8|0;o=c[n>>2]|0;do if((j|0)!=(o|0)){if(o>>>0<(c[2401922]|0)>>>0)za();p=o+12|0;if((c[p>>2]|0)==(m|0)){c[p>>2]=j;c[k>>2]=o;break}else za()}else c[2401918]=g&~(1<<i);while(0);o=i<<3;c[m+4>>2]=o|3;k=m+o+4|0;c[k>>2]=c[k>>2]|1;q=n;l=b;return q|0}k=c[2401920]|0;if(e>>>0>k>>>0){if(h|0){o=2<<f;j=h<<f&(o|0-o);o=(j&0-j)+-1|0;j=o>>>12&16;p=o>>>j;o=p>>>5&8;r=p>>>o;p=r>>>2&4;s=r>>>p;r=s>>>1&2;t=s>>>r;s=t>>>1&1;u=(o|j|p|r|s)+(t>>>s)|0;s=9607712+(u<<1<<2)|0;t=s+8|0;r=c[t>>2]|0;p=r+8|0;j=c[p>>2]|0;do if((s|0)!=(j|0)){if(j>>>0<(c[2401922]|0)>>>0)za();o=j+12|0;if((c[o>>2]|0)==(r|0)){c[o>>2]=s;c[t>>2]=j;v=g;break}else za()}else{o=g&~(1<<u);c[2401918]=o;v=o}while(0);j=(u<<3)-e|0;c[r+4>>2]=e|3;t=r+e|0;c[t+4>>2]=j|1;c[t+j>>2]=j;if(k|0){s=c[2401923]|0;f=k>>>3;h=9607712+(f<<1<<2)|0;n=1<<f;if(v&n){f=h+8|0;m=c[f>>2]|0;if(m>>>0<(c[2401922]|0)>>>0)za();else{w=f;x=m}}else{c[2401918]=v|n;w=h+8|0;x=h}c[w>>2]=s;c[x+12>>2]=s;c[s+8>>2]=x;c[s+12>>2]=h}c[2401920]=j;c[2401923]=t;q=p;l=b;return q|0}t=c[2401919]|0;if(t){j=(t&0-t)+-1|0;h=j>>>12&16;s=j>>>h;j=s>>>5&8;n=s>>>j;s=n>>>2&4;m=n>>>s;n=m>>>1&2;f=m>>>n;m=f>>>1&1;i=c[9607976+((j|h|s|n|m)+(f>>>m)<<2)>>2]|0;m=(c[i+4>>2]&-8)-e|0;f=c[i+16+(((c[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!f){y=m;z=i}else{n=f;f=m;m=i;while(1){i=(c[n+4>>2]&-8)-e|0;s=i>>>0<f>>>0;h=s?i:f;i=s?n:m;n=c[n+16+(((c[n+16>>2]|0)==0&1)<<2)>>2]|0;if(!n){y=h;z=i;break}else{f=h;m=i}}}m=c[2401922]|0;if(z>>>0<m>>>0)za();f=z+e|0;if(z>>>0>=f>>>0)za();n=c[z+24>>2]|0;p=c[z+12>>2]|0;do if((p|0)==(z|0)){r=z+20|0;u=c[r>>2]|0;if(!u){i=z+16|0;h=c[i>>2]|0;if(!h){A=0;break}else{B=h;C=i}}else{B=u;C=r}while(1){r=B+20|0;u=c[r>>2]|0;if(u|0){B=u;C=r;continue}r=B+16|0;u=c[r>>2]|0;if(!u)break;else{B=u;C=r}}if(C>>>0<m>>>0)za();else{c[C>>2]=0;A=B;break}}else{r=c[z+8>>2]|0;if(r>>>0<m>>>0)za();u=r+12|0;if((c[u>>2]|0)!=(z|0))za();i=p+8|0;if((c[i>>2]|0)==(z|0)){c[u>>2]=p;c[i>>2]=r;A=p;break}else za()}while(0);a:do if(n|0){p=c[z+28>>2]|0;m=9607976+(p<<2)|0;do if((z|0)==(c[m>>2]|0)){c[m>>2]=A;if(!A){c[2401919]=t&~(1<<p);break a}}else if(n>>>0>=(c[2401922]|0)>>>0){c[n+16+(((c[n+16>>2]|0)!=(z|0)&1)<<2)>>2]=A;if(!A)break a;else break}else za();while(0);p=c[2401922]|0;if(A>>>0<p>>>0)za();c[A+24>>2]=n;m=c[z+16>>2]|0;do if(m|0)if(m>>>0<p>>>0)za();else{c[A+16>>2]=m;c[m+24>>2]=A;break}while(0);m=c[z+20>>2]|0;if(m|0)if(m>>>0<(c[2401922]|0)>>>0)za();else{c[A+20>>2]=m;c[m+24>>2]=A;break}}while(0);if(y>>>0<16){n=y+e|0;c[z+4>>2]=n|3;t=z+n+4|0;c[t>>2]=c[t>>2]|1}else{c[z+4>>2]=e|3;c[f+4>>2]=y|1;c[f+y>>2]=y;if(k|0){t=c[2401923]|0;n=k>>>3;m=9607712+(n<<1<<2)|0;p=1<<n;if(g&p){n=m+8|0;r=c[n>>2]|0;if(r>>>0<(c[2401922]|0)>>>0)za();else{D=n;E=r}}else{c[2401918]=g|p;D=m+8|0;E=m}c[D>>2]=t;c[E+12>>2]=t;c[t+8>>2]=E;c[t+12>>2]=m}c[2401920]=y;c[2401923]=f}q=z+8|0;l=b;return q|0}else F=e}else F=e}else if(a>>>0<=4294967231){m=a+11|0;t=m&-8;p=c[2401919]|0;if(p){r=0-t|0;n=m>>>8;if(n)if(t>>>0>16777215)G=31;else{m=(n+1048320|0)>>>16&8;i=n<<m;n=(i+520192|0)>>>16&4;u=i<<n;i=(u+245760|0)>>>16&2;h=14-(n|m|i)+(u<<i>>>15)|0;G=t>>>(h+7|0)&1|h<<1}else G=0;h=c[9607976+(G<<2)>>2]|0;b:do if(!h){H=r;I=0;J=0;K=81}else{i=r;u=0;m=t<<((G|0)==31?0:25-(G>>>1)|0);n=h;s=0;while(1){j=(c[n+4>>2]&-8)-t|0;if(j>>>0<i>>>0)if(!j){L=0;M=n;N=n;K=85;break b}else{O=j;P=n}else{O=i;P=s}j=c[n+20>>2]|0;n=c[n+16+(m>>>31<<2)>>2]|0;o=(j|0)==0|(j|0)==(n|0)?u:j;j=(n|0)==0;if(j){H=O;I=o;J=P;K=81;break}else{i=O;u=o;m=m<<((j^1)&1);s=P}}}while(0);if((K|0)==81){if((I|0)==0&(J|0)==0){h=2<<G;r=p&(h|0-h);if(!r){F=t;break}h=(r&0-r)+-1|0;r=h>>>12&16;e=h>>>r;h=e>>>5&8;f=e>>>h;e=f>>>2&4;g=f>>>e;f=g>>>1&2;k=g>>>f;g=k>>>1&1;Q=c[9607976+((h|r|e|f|g)+(k>>>g)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=85}}if((K|0)==85)while(1){K=0;g=(c[M+4>>2]&-8)-t|0;k=g>>>0<L>>>0;f=k?g:L;g=k?M:N;M=c[M+16+(((c[M+16>>2]|0)==0&1)<<2)>>2]|0;if(!M){S=f;T=g;break}else{L=f;N=g;K=85}}if((T|0)!=0?S>>>0<((c[2401920]|0)-t|0)>>>0:0){g=c[2401922]|0;if(T>>>0<g>>>0)za();f=T+t|0;if(T>>>0>=f>>>0)za();k=c[T+24>>2]|0;e=c[T+12>>2]|0;do if((e|0)==(T|0)){r=T+20|0;h=c[r>>2]|0;if(!h){s=T+16|0;m=c[s>>2]|0;if(!m){U=0;break}else{V=m;W=s}}else{V=h;W=r}while(1){r=V+20|0;h=c[r>>2]|0;if(h|0){V=h;W=r;continue}r=V+16|0;h=c[r>>2]|0;if(!h)break;else{V=h;W=r}}if(W>>>0<g>>>0)za();else{c[W>>2]=0;U=V;break}}else{r=c[T+8>>2]|0;if(r>>>0<g>>>0)za();h=r+12|0;if((c[h>>2]|0)!=(T|0))za();s=e+8|0;if((c[s>>2]|0)==(T|0)){c[h>>2]=e;c[s>>2]=r;U=e;break}else za()}while(0);c:do if(k){e=c[T+28>>2]|0;g=9607976+(e<<2)|0;do if((T|0)==(c[g>>2]|0)){c[g>>2]=U;if(!U){r=p&~(1<<e);c[2401919]=r;X=r;break c}}else if(k>>>0>=(c[2401922]|0)>>>0){c[k+16+(((c[k+16>>2]|0)!=(T|0)&1)<<2)>>2]=U;if(!U){X=p;break c}else break}else za();while(0);e=c[2401922]|0;if(U>>>0<e>>>0)za();c[U+24>>2]=k;g=c[T+16>>2]|0;do if(g|0)if(g>>>0<e>>>0)za();else{c[U+16>>2]=g;c[g+24>>2]=U;break}while(0);g=c[T+20>>2]|0;if(g)if(g>>>0<(c[2401922]|0)>>>0)za();else{c[U+20>>2]=g;c[g+24>>2]=U;X=p;break}else X=p}else X=p;while(0);do if(S>>>0>=16){c[T+4>>2]=t|3;c[f+4>>2]=S|1;c[f+S>>2]=S;p=S>>>3;if(S>>>0<256){k=9607712+(p<<1<<2)|0;g=c[2401918]|0;e=1<<p;if(g&e){p=k+8|0;r=c[p>>2]|0;if(r>>>0<(c[2401922]|0)>>>0)za();else{Y=p;Z=r}}else{c[2401918]=g|e;Y=k+8|0;Z=k}c[Y>>2]=f;c[Z+12>>2]=f;c[f+8>>2]=Z;c[f+12>>2]=k;break}k=S>>>8;if(k)if(S>>>0>16777215)_=31;else{e=(k+1048320|0)>>>16&8;g=k<<e;k=(g+520192|0)>>>16&4;r=g<<k;g=(r+245760|0)>>>16&2;p=14-(k|e|g)+(r<<g>>>15)|0;_=S>>>(p+7|0)&1|p<<1}else _=0;p=9607976+(_<<2)|0;c[f+28>>2]=_;g=f+16|0;c[g+4>>2]=0;c[g>>2]=0;g=1<<_;if(!(X&g)){c[2401919]=X|g;c[p>>2]=f;c[f+24>>2]=p;c[f+12>>2]=f;c[f+8>>2]=f;break}g=S<<((_|0)==31?0:25-(_>>>1)|0);r=c[p>>2]|0;while(1){if((c[r+4>>2]&-8|0)==(S|0)){K=139;break}$=r+16+(g>>>31<<2)|0;p=c[$>>2]|0;if(!p){K=136;break}else{g=g<<1;r=p}}if((K|0)==136)if($>>>0<(c[2401922]|0)>>>0)za();else{c[$>>2]=f;c[f+24>>2]=r;c[f+12>>2]=f;c[f+8>>2]=f;break}else if((K|0)==139){g=r+8|0;p=c[g>>2]|0;e=c[2401922]|0;if(p>>>0>=e>>>0&r>>>0>=e>>>0){c[p+12>>2]=f;c[g>>2]=f;c[f+8>>2]=p;c[f+12>>2]=r;c[f+24>>2]=0;break}else za()}}else{p=S+t|0;c[T+4>>2]=p|3;g=T+p+4|0;c[g>>2]=c[g>>2]|1}while(0);q=T+8|0;l=b;return q|0}else F=t}else F=t}else F=-1;while(0);T=c[2401920]|0;if(T>>>0>=F>>>0){S=T-F|0;$=c[2401923]|0;if(S>>>0>15){_=$+F|0;c[2401923]=_;c[2401920]=S;c[_+4>>2]=S|1;c[_+S>>2]=S;c[$+4>>2]=F|3}else{c[2401920]=0;c[2401923]=0;c[$+4>>2]=T|3;S=$+T+4|0;c[S>>2]=c[S>>2]|1}q=$+8|0;l=b;return q|0}$=c[2401921]|0;if($>>>0>F>>>0){S=$-F|0;c[2401921]=S;T=c[2401924]|0;_=T+F|0;c[2401924]=_;c[_+4>>2]=S|1;c[T+4>>2]=F|3;q=T+8|0;l=b;return q|0}if(!(c[2402036]|0)){c[2402038]=4096;c[2402037]=4096;c[2402039]=-1;c[2402040]=-1;c[2402041]=0;c[2402029]=0;T=d&-16^1431655768;c[d>>2]=T;c[2402036]=T;aa=4096}else aa=c[2402038]|0;T=F+48|0;d=F+47|0;S=aa+d|0;_=0-aa|0;aa=S&_;if(aa>>>0<=F>>>0){q=0;l=b;return q|0}X=c[2402028]|0;if(X|0?(Z=c[2402026]|0,Y=Z+aa|0,Y>>>0<=Z>>>0|Y>>>0>X>>>0):0){q=0;l=b;return q|0}d:do if(!(c[2402029]&4)){X=c[2401924]|0;e:do if(X){Y=9608120;while(1){Z=c[Y>>2]|0;if(Z>>>0<=X>>>0?(ba=Y+4|0,(Z+(c[ba>>2]|0)|0)>>>0>X>>>0):0)break;Z=c[Y+8>>2]|0;if(!Z){K=163;break e}else Y=Z}r=S-$&_;if(r>>>0<2147483647){Z=Gj(r|0)|0;if((Z|0)==((c[Y>>2]|0)+(c[ba>>2]|0)|0))if((Z|0)==(-1|0))ca=r;else{da=Z;ea=r;K=180;break d}else{fa=Z;ga=r;K=171}}else ca=0}else K=163;while(0);do if((K|0)==163){X=Gj(0)|0;if((X|0)!=(-1|0)?(t=X,r=c[2402037]|0,Z=r+-1|0,U=((Z&t|0)==0?0:(Z+t&0-r)-t|0)+aa|0,t=c[2402026]|0,r=U+t|0,U>>>0>F>>>0&U>>>0<2147483647):0){Z=c[2402028]|0;if(Z|0?r>>>0<=t>>>0|r>>>0>Z>>>0:0){ca=0;break}Z=Gj(U|0)|0;if((Z|0)==(X|0)){da=X;ea=U;K=180;break d}else{fa=Z;ga=U;K=171}}else ca=0}while(0);do if((K|0)==171){U=0-ga|0;if(!(T>>>0>ga>>>0&(ga>>>0<2147483647&(fa|0)!=(-1|0))))if((fa|0)==(-1|0)){ca=0;break}else{da=fa;ea=ga;K=180;break d}Z=c[2402038]|0;X=d-ga+Z&0-Z;if(X>>>0>=2147483647){da=fa;ea=ga;K=180;break d}if((Gj(X|0)|0)==(-1|0)){Gj(U|0)|0;ca=0;break}else{da=fa;ea=X+ga|0;K=180;break d}}while(0);c[2402029]=c[2402029]|4;ha=ca;K=178}else{ha=0;K=178}while(0);if(((K|0)==178?aa>>>0<2147483647:0)?(ca=Gj(aa|0)|0,aa=Gj(0)|0,ga=aa-ca|0,fa=ga>>>0>(F+40|0)>>>0,!((ca|0)==(-1|0)|fa^1|ca>>>0<aa>>>0&((ca|0)!=(-1|0)&(aa|0)!=(-1|0))^1)):0){da=ca;ea=fa?ga:ha;K=180}if((K|0)==180){ha=(c[2402026]|0)+ea|0;c[2402026]=ha;if(ha>>>0>(c[2402027]|0)>>>0)c[2402027]=ha;ha=c[2401924]|0;do if(ha){ga=9608120;while(1){ia=c[ga>>2]|0;ja=ga+4|0;ka=c[ja>>2]|0;if((da|0)==(ia+ka|0)){K=190;break}fa=c[ga+8>>2]|0;if(!fa)break;else ga=fa}if(((K|0)==190?(c[ga+12>>2]&8|0)==0:0)?ha>>>0<da>>>0&ha>>>0>=ia>>>0:0){c[ja>>2]=ka+ea;fa=ha+8|0;ca=(fa&7|0)==0?0:0-fa&7;fa=ha+ca|0;aa=(c[2401921]|0)+(ea-ca)|0;c[2401924]=fa;c[2401921]=aa;c[fa+4>>2]=aa|1;c[fa+aa+4>>2]=40;c[2401925]=c[2402040];break}aa=c[2401922]|0;if(da>>>0<aa>>>0){c[2401922]=da;la=da}else la=aa;aa=da+ea|0;fa=9608120;while(1){if((c[fa>>2]|0)==(aa|0)){K=198;break}ca=c[fa+8>>2]|0;if(!ca)break;else fa=ca}if((K|0)==198?(c[fa+12>>2]&8|0)==0:0){c[fa>>2]=da;ga=fa+4|0;c[ga>>2]=(c[ga>>2]|0)+ea;ga=da+8|0;ca=da+((ga&7|0)==0?0:0-ga&7)|0;ga=aa+8|0;d=aa+((ga&7|0)==0?0:0-ga&7)|0;ga=ca+F|0;T=d-ca-F|0;c[ca+4>>2]=F|3;do if((d|0)!=(ha|0)){if((d|0)==(c[2401923]|0)){ba=(c[2401920]|0)+T|0;c[2401920]=ba;c[2401923]=ga;c[ga+4>>2]=ba|1;c[ga+ba>>2]=ba;break}ba=c[d+4>>2]|0;if((ba&3|0)==1){_=ba&-8;$=ba>>>3;f:do if(ba>>>0>=256){S=c[d+24>>2]|0;X=c[d+12>>2]|0;do if((X|0)==(d|0)){U=d+16|0;Z=U+4|0;r=c[Z>>2]|0;if(!r){t=c[U>>2]|0;if(!t){ma=0;break}else{na=t;oa=U}}else{na=r;oa=Z}while(1){Z=na+20|0;r=c[Z>>2]|0;if(r|0){na=r;oa=Z;continue}Z=na+16|0;r=c[Z>>2]|0;if(!r)break;else{na=r;oa=Z}}if(oa>>>0<la>>>0)za();else{c[oa>>2]=0;ma=na;break}}else{Z=c[d+8>>2]|0;if(Z>>>0<la>>>0)za();r=Z+12|0;if((c[r>>2]|0)!=(d|0))za();U=X+8|0;if((c[U>>2]|0)==(d|0)){c[r>>2]=X;c[U>>2]=Z;ma=X;break}else za()}while(0);if(!S)break;X=c[d+28>>2]|0;Z=9607976+(X<<2)|0;do if((d|0)!=(c[Z>>2]|0))if(S>>>0>=(c[2401922]|0)>>>0){c[S+16+(((c[S+16>>2]|0)!=(d|0)&1)<<2)>>2]=ma;if(!ma)break f;else break}else za();else{c[Z>>2]=ma;if(ma|0)break;c[2401919]=c[2401919]&~(1<<X);break f}while(0);X=c[2401922]|0;if(ma>>>0<X>>>0)za();c[ma+24>>2]=S;Z=d+16|0;U=c[Z>>2]|0;do if(U|0)if(U>>>0<X>>>0)za();else{c[ma+16>>2]=U;c[U+24>>2]=ma;break}while(0);U=c[Z+4>>2]|0;if(!U)break;if(U>>>0<(c[2401922]|0)>>>0)za();else{c[ma+20>>2]=U;c[U+24>>2]=ma;break}}else{U=c[d+8>>2]|0;X=c[d+12>>2]|0;S=9607712+($<<1<<2)|0;do if((U|0)!=(S|0)){if(U>>>0<la>>>0)za();if((c[U+12>>2]|0)==(d|0))break;za()}while(0);if((X|0)==(U|0)){c[2401918]=c[2401918]&~(1<<$);break}do if((X|0)==(S|0))pa=X+8|0;else{if(X>>>0<la>>>0)za();Z=X+8|0;if((c[Z>>2]|0)==(d|0)){pa=Z;break}za()}while(0);c[U+12>>2]=X;c[pa>>2]=U}while(0);qa=d+_|0;ra=_+T|0}else{qa=d;ra=T}$=qa+4|0;c[$>>2]=c[$>>2]&-2;c[ga+4>>2]=ra|1;c[ga+ra>>2]=ra;$=ra>>>3;if(ra>>>0<256){ba=9607712+($<<1<<2)|0;Y=c[2401918]|0;S=1<<$;do if(!(Y&S)){c[2401918]=Y|S;sa=ba+8|0;ta=ba}else{$=ba+8|0;Z=c[$>>2]|0;if(Z>>>0>=(c[2401922]|0)>>>0){sa=$;ta=Z;break}za()}while(0);c[sa>>2]=ga;c[ta+12>>2]=ga;c[ga+8>>2]=ta;c[ga+12>>2]=ba;break}S=ra>>>8;do if(!S)ua=0;else{if(ra>>>0>16777215){ua=31;break}Y=(S+1048320|0)>>>16&8;_=S<<Y;Z=(_+520192|0)>>>16&4;$=_<<Z;_=($+245760|0)>>>16&2;r=14-(Z|Y|_)+($<<_>>>15)|0;ua=ra>>>(r+7|0)&1|r<<1}while(0);S=9607976+(ua<<2)|0;c[ga+28>>2]=ua;ba=ga+16|0;c[ba+4>>2]=0;c[ba>>2]=0;ba=c[2401919]|0;r=1<<ua;if(!(ba&r)){c[2401919]=ba|r;c[S>>2]=ga;c[ga+24>>2]=S;c[ga+12>>2]=ga;c[ga+8>>2]=ga;break}r=ra<<((ua|0)==31?0:25-(ua>>>1)|0);ba=c[S>>2]|0;while(1){if((c[ba+4>>2]&-8|0)==(ra|0)){K=265;break}va=ba+16+(r>>>31<<2)|0;S=c[va>>2]|0;if(!S){K=262;break}else{r=r<<1;ba=S}}if((K|0)==262)if(va>>>0<(c[2401922]|0)>>>0)za();else{c[va>>2]=ga;c[ga+24>>2]=ba;c[ga+12>>2]=ga;c[ga+8>>2]=ga;break}else if((K|0)==265){r=ba+8|0;S=c[r>>2]|0;_=c[2401922]|0;if(S>>>0>=_>>>0&ba>>>0>=_>>>0){c[S+12>>2]=ga;c[r>>2]=ga;c[ga+8>>2]=S;c[ga+12>>2]=ba;c[ga+24>>2]=0;break}else za()}}else{S=(c[2401921]|0)+T|0;c[2401921]=S;c[2401924]=ga;c[ga+4>>2]=S|1}while(0);q=ca+8|0;l=b;return q|0}ga=9608120;while(1){T=c[ga>>2]|0;if(T>>>0<=ha>>>0?(wa=T+(c[ga+4>>2]|0)|0,wa>>>0>ha>>>0):0)break;ga=c[ga+8>>2]|0}ga=wa+-47|0;ca=ga+8|0;T=ga+((ca&7|0)==0?0:0-ca&7)|0;ca=ha+16|0;ga=T>>>0<ca>>>0?ha:T;T=ga+8|0;d=da+8|0;aa=(d&7|0)==0?0:0-d&7;d=da+aa|0;fa=ea+-40-aa|0;c[2401924]=d;c[2401921]=fa;c[d+4>>2]=fa|1;c[d+fa+4>>2]=40;c[2401925]=c[2402040];fa=ga+4|0;c[fa>>2]=27;c[T>>2]=c[2402030];c[T+4>>2]=c[2402031];c[T+8>>2]=c[2402032];c[T+12>>2]=c[2402033];c[2402030]=da;c[2402031]=ea;c[2402033]=0;c[2402032]=T;T=ga+24|0;do{d=T;T=T+4|0;c[T>>2]=7}while((d+8|0)>>>0<wa>>>0);if((ga|0)!=(ha|0)){T=ga-ha|0;c[fa>>2]=c[fa>>2]&-2;c[ha+4>>2]=T|1;c[ga>>2]=T;d=T>>>3;if(T>>>0<256){aa=9607712+(d<<1<<2)|0;S=c[2401918]|0;r=1<<d;if(S&r){d=aa+8|0;_=c[d>>2]|0;if(_>>>0<(c[2401922]|0)>>>0)za();else{xa=d;ya=_}}else{c[2401918]=S|r;xa=aa+8|0;ya=aa}c[xa>>2]=ha;c[ya+12>>2]=ha;c[ha+8>>2]=ya;c[ha+12>>2]=aa;break}aa=T>>>8;if(aa)if(T>>>0>16777215)Aa=31;else{r=(aa+1048320|0)>>>16&8;S=aa<<r;aa=(S+520192|0)>>>16&4;_=S<<aa;S=(_+245760|0)>>>16&2;d=14-(aa|r|S)+(_<<S>>>15)|0;Aa=T>>>(d+7|0)&1|d<<1}else Aa=0;d=9607976+(Aa<<2)|0;c[ha+28>>2]=Aa;c[ha+20>>2]=0;c[ca>>2]=0;S=c[2401919]|0;_=1<<Aa;if(!(S&_)){c[2401919]=S|_;c[d>>2]=ha;c[ha+24>>2]=d;c[ha+12>>2]=ha;c[ha+8>>2]=ha;break}_=T<<((Aa|0)==31?0:25-(Aa>>>1)|0);S=c[d>>2]|0;while(1){if((c[S+4>>2]&-8|0)==(T|0)){K=292;break}Ba=S+16+(_>>>31<<2)|0;d=c[Ba>>2]|0;if(!d){K=289;break}else{_=_<<1;S=d}}if((K|0)==289)if(Ba>>>0<(c[2401922]|0)>>>0)za();else{c[Ba>>2]=ha;c[ha+24>>2]=S;c[ha+12>>2]=ha;c[ha+8>>2]=ha;break}else if((K|0)==292){_=S+8|0;T=c[_>>2]|0;ca=c[2401922]|0;if(T>>>0>=ca>>>0&S>>>0>=ca>>>0){c[T+12>>2]=ha;c[_>>2]=ha;c[ha+8>>2]=T;c[ha+12>>2]=S;c[ha+24>>2]=0;break}else za()}}}else{T=c[2401922]|0;if((T|0)==0|da>>>0<T>>>0)c[2401922]=da;c[2402030]=da;c[2402031]=ea;c[2402033]=0;c[2401927]=c[2402036];c[2401926]=-1;T=0;do{_=9607712+(T<<1<<2)|0;c[_+12>>2]=_;c[_+8>>2]=_;T=T+1|0}while((T|0)!=32);T=da+8|0;S=(T&7|0)==0?0:0-T&7;T=da+S|0;_=ea+-40-S|0;c[2401924]=T;c[2401921]=_;c[T+4>>2]=_|1;c[T+_+4>>2]=40;c[2401925]=c[2402040]}while(0);ea=c[2401921]|0;if(ea>>>0>F>>>0){da=ea-F|0;c[2401921]=da;ea=c[2401924]|0;ha=ea+F|0;c[2401924]=ha;c[ha+4>>2]=da|1;c[ea+4>>2]=F|3;q=ea+8|0;l=b;return q|0}}c[(gh()|0)>>2]=12;q=0;l=b;return q|0}function ji(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;if(!a)return;b=a+-8|0;d=c[2401922]|0;if(b>>>0<d>>>0)za();e=c[a+-4>>2]|0;a=e&3;if((a|0)==1)za();f=e&-8;g=b+f|0;a:do if(!(e&1)){h=c[b>>2]|0;if(!a)return;i=b+(0-h)|0;j=h+f|0;if(i>>>0<d>>>0)za();if((i|0)==(c[2401923]|0)){k=g+4|0;l=c[k>>2]|0;if((l&3|0)!=3){m=i;n=i;o=j;break}c[2401920]=j;c[k>>2]=l&-2;c[i+4>>2]=j|1;c[i+j>>2]=j;return}l=h>>>3;if(h>>>0<256){h=c[i+8>>2]|0;k=c[i+12>>2]|0;p=9607712+(l<<1<<2)|0;if((h|0)!=(p|0)){if(h>>>0<d>>>0)za();if((c[h+12>>2]|0)!=(i|0))za()}if((k|0)==(h|0)){c[2401918]=c[2401918]&~(1<<l);m=i;n=i;o=j;break}if((k|0)!=(p|0)){if(k>>>0<d>>>0)za();p=k+8|0;if((c[p>>2]|0)==(i|0))q=p;else za()}else q=k+8|0;c[h+12>>2]=k;c[q>>2]=h;m=i;n=i;o=j;break}h=c[i+24>>2]|0;k=c[i+12>>2]|0;do if((k|0)==(i|0)){p=i+16|0;l=p+4|0;r=c[l>>2]|0;if(!r){s=c[p>>2]|0;if(!s){t=0;break}else{u=s;v=p}}else{u=r;v=l}while(1){l=u+20|0;r=c[l>>2]|0;if(r|0){u=r;v=l;continue}l=u+16|0;r=c[l>>2]|0;if(!r)break;else{u=r;v=l}}if(v>>>0<d>>>0)za();else{c[v>>2]=0;t=u;break}}else{l=c[i+8>>2]|0;if(l>>>0<d>>>0)za();r=l+12|0;if((c[r>>2]|0)!=(i|0))za();p=k+8|0;if((c[p>>2]|0)==(i|0)){c[r>>2]=k;c[p>>2]=l;t=k;break}else za()}while(0);if(h){k=c[i+28>>2]|0;l=9607976+(k<<2)|0;do if((i|0)==(c[l>>2]|0)){c[l>>2]=t;if(!t){c[2401919]=c[2401919]&~(1<<k);m=i;n=i;o=j;break a}}else if(h>>>0>=(c[2401922]|0)>>>0){c[h+16+(((c[h+16>>2]|0)!=(i|0)&1)<<2)>>2]=t;if(!t){m=i;n=i;o=j;break a}else break}else za();while(0);k=c[2401922]|0;if(t>>>0<k>>>0)za();c[t+24>>2]=h;l=i+16|0;p=c[l>>2]|0;do if(p|0)if(p>>>0<k>>>0)za();else{c[t+16>>2]=p;c[p+24>>2]=t;break}while(0);p=c[l+4>>2]|0;if(p)if(p>>>0<(c[2401922]|0)>>>0)za();else{c[t+20>>2]=p;c[p+24>>2]=t;m=i;n=i;o=j;break}else{m=i;n=i;o=j}}else{m=i;n=i;o=j}}else{m=b;n=b;o=f}while(0);if(m>>>0>=g>>>0)za();f=g+4|0;b=c[f>>2]|0;if(!(b&1))za();if(!(b&2)){t=c[2401923]|0;if((g|0)==(c[2401924]|0)){d=(c[2401921]|0)+o|0;c[2401921]=d;c[2401924]=n;c[n+4>>2]=d|1;if((n|0)!=(t|0))return;c[2401923]=0;c[2401920]=0;return}if((g|0)==(t|0)){t=(c[2401920]|0)+o|0;c[2401920]=t;c[2401923]=m;c[n+4>>2]=t|1;c[m+t>>2]=t;return}t=(b&-8)+o|0;d=b>>>3;b:do if(b>>>0>=256){u=c[g+24>>2]|0;v=c[g+12>>2]|0;do if((v|0)==(g|0)){q=g+16|0;a=q+4|0;e=c[a>>2]|0;if(!e){p=c[q>>2]|0;if(!p){w=0;break}else{x=p;y=q}}else{x=e;y=a}while(1){a=x+20|0;e=c[a>>2]|0;if(e|0){x=e;y=a;continue}a=x+16|0;e=c[a>>2]|0;if(!e)break;else{x=e;y=a}}if(y>>>0<(c[2401922]|0)>>>0)za();else{c[y>>2]=0;w=x;break}}else{a=c[g+8>>2]|0;if(a>>>0<(c[2401922]|0)>>>0)za();e=a+12|0;if((c[e>>2]|0)!=(g|0))za();q=v+8|0;if((c[q>>2]|0)==(g|0)){c[e>>2]=v;c[q>>2]=a;w=v;break}else za()}while(0);if(u|0){v=c[g+28>>2]|0;j=9607976+(v<<2)|0;do if((g|0)==(c[j>>2]|0)){c[j>>2]=w;if(!w){c[2401919]=c[2401919]&~(1<<v);break b}}else if(u>>>0>=(c[2401922]|0)>>>0){c[u+16+(((c[u+16>>2]|0)!=(g|0)&1)<<2)>>2]=w;if(!w)break b;else break}else za();while(0);v=c[2401922]|0;if(w>>>0<v>>>0)za();c[w+24>>2]=u;j=g+16|0;i=c[j>>2]|0;do if(i|0)if(i>>>0<v>>>0)za();else{c[w+16>>2]=i;c[i+24>>2]=w;break}while(0);i=c[j+4>>2]|0;if(i|0)if(i>>>0<(c[2401922]|0)>>>0)za();else{c[w+20>>2]=i;c[i+24>>2]=w;break}}}else{i=c[g+8>>2]|0;v=c[g+12>>2]|0;u=9607712+(d<<1<<2)|0;if((i|0)!=(u|0)){if(i>>>0<(c[2401922]|0)>>>0)za();if((c[i+12>>2]|0)!=(g|0))za()}if((v|0)==(i|0)){c[2401918]=c[2401918]&~(1<<d);break}if((v|0)!=(u|0)){if(v>>>0<(c[2401922]|0)>>>0)za();u=v+8|0;if((c[u>>2]|0)==(g|0))z=u;else za()}else z=v+8|0;c[i+12>>2]=v;c[z>>2]=i}while(0);c[n+4>>2]=t|1;c[m+t>>2]=t;if((n|0)==(c[2401923]|0)){c[2401920]=t;return}else A=t}else{c[f>>2]=b&-2;c[n+4>>2]=o|1;c[m+o>>2]=o;A=o}o=A>>>3;if(A>>>0<256){m=9607712+(o<<1<<2)|0;b=c[2401918]|0;f=1<<o;if(b&f){o=m+8|0;t=c[o>>2]|0;if(t>>>0<(c[2401922]|0)>>>0)za();else{B=o;C=t}}else{c[2401918]=b|f;B=m+8|0;C=m}c[B>>2]=n;c[C+12>>2]=n;c[n+8>>2]=C;c[n+12>>2]=m;return}m=A>>>8;if(m)if(A>>>0>16777215)D=31;else{C=(m+1048320|0)>>>16&8;B=m<<C;m=(B+520192|0)>>>16&4;f=B<<m;B=(f+245760|0)>>>16&2;b=14-(m|C|B)+(f<<B>>>15)|0;D=A>>>(b+7|0)&1|b<<1}else D=0;b=9607976+(D<<2)|0;c[n+28>>2]=D;c[n+20>>2]=0;c[n+16>>2]=0;B=c[2401919]|0;f=1<<D;do if(B&f){C=A<<((D|0)==31?0:25-(D>>>1)|0);m=c[b>>2]|0;while(1){if((c[m+4>>2]&-8|0)==(A|0)){E=124;break}F=m+16+(C>>>31<<2)|0;t=c[F>>2]|0;if(!t){E=121;break}else{C=C<<1;m=t}}if((E|0)==121)if(F>>>0<(c[2401922]|0)>>>0)za();else{c[F>>2]=n;c[n+24>>2]=m;c[n+12>>2]=n;c[n+8>>2]=n;break}else if((E|0)==124){C=m+8|0;j=c[C>>2]|0;t=c[2401922]|0;if(j>>>0>=t>>>0&m>>>0>=t>>>0){c[j+12>>2]=n;c[C>>2]=n;c[n+8>>2]=j;c[n+12>>2]=m;c[n+24>>2]=0;break}else za()}}else{c[2401919]=B|f;c[b>>2]=n;c[n+24>>2]=b;c[n+12>>2]=n;c[n+8>>2]=n}while(0);n=(c[2401926]|0)+-1|0;c[2401926]=n;if(!n)G=9608128;else return;while(1){n=c[G>>2]|0;if(!n)break;else G=n+8|0}c[2401926]=-1;return}function ki(b,c){b=b|0;c=c|0;a[b>>0]=a[c>>0]|0;return}function li(a){a=a|0;return a&255|0}function mi(a){a=a|0;Da(6544,6567,304,6806)}function ni(a){a=a|0;Da(6650,6567,315,6673)}function oi(a){a=a|0;var b=0,c=0;b=(a|0)==0?1:a;while(1){a=ii(b)|0;if(a|0){c=a;break}a=rj()|0;if(!a){c=0;break}Sb[a&15]()}return c|0}function pi(a){a=a|0;return oi(a)|0}function qi(a){a=a|0;ji(a);return}function ri(a){a=a|0;qi(a);return}function si(a){a=a|0;Da(6694,6723,1183,6806)}function ti(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=l;l=l+16|0;g=f;if(e>>>0<=4294967279)if(e>>>0<11){a[b+11>>0]=e;h=b}else i=5;else{si(b);i=5}if((i|0)==5){i=e+16&-16;j=oi(i)|0;c[b>>2]=j;c[b+8>>2]=i|-2147483648;c[b+4>>2]=e;h=j}ui(h,d,e)|0;a[g>>0]=0;ki(h+e|0,g);l=f;return}function ui(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)Aj(a|0,b|0,c|0)|0;return a|0}function vi(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)wj(a|0,(li(c)|0)&255|0,b|0)|0;return a|0}function wi(b){b=b|0;if((a[b+11>>0]|0)<0)qi(c[b>>2]|0);return}function xi(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0;k=l;l=l+16|0;m=k;if((-18-d|0)>>>0<e>>>0)si(b);if((a[b+11>>0]|0)<0)n=c[b>>2]|0;else n=b;if(d>>>0<2147483623){o=e+d|0;e=d<<1;p=o>>>0<e>>>0?e:o;q=p>>>0<11?11:p+16&-16}else q=-17;p=oi(q)|0;if(g|0)ui(p,n,g)|0;if(i|0)ui(p+g|0,j,i)|0;j=f-h|0;f=j-g|0;if(f|0)ui(p+g+i|0,n+g+h|0,f)|0;if((d|0)!=10)qi(n);c[b>>2]=p;c[b+8>>2]=q|-2147483648;q=j+i|0;c[b+4>>2]=q;a[m>>0]=0;ki(p+q|0,m);l=k;return}function yi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=l;l=l+16|0;g=f;h=b+11|0;i=a[h>>0]|0;j=i<<24>>24<0;if(j)k=c[b+4>>2]|0;else k=i&255;do if(k>>>0>=d>>>0)if(j){i=(c[b>>2]|0)+d|0;a[g>>0]=0;ki(i,g);c[b+4>>2]=d;break}else{a[g>>0]=0;ki(b+d|0,g);a[h>>0]=d;break}else zi(b,d-k|0,e)|0;while(0);l=f;return}function zi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;f=l;l=l+16|0;g=f;if(d|0){h=b+11|0;i=a[h>>0]|0;if(i<<24>>24<0){j=c[b+4>>2]|0;k=(c[b+8>>2]&2147483647)+-1|0}else{j=i&255;k=10}m=j+d|0;if((k-j|0)>>>0<d>>>0){Ai(b,k,m-k|0,j,j,0,0);n=a[h>>0]|0}else n=i;if(n<<24>>24<0)o=c[b>>2]|0;else o=b;vi(o+j|0,d,e)|0;if((a[h>>0]|0)<0)c[b+4>>2]=m;else a[h>>0]=m;a[g>>0]=0;ki(o+m|0,g)}l=f;return b|0}function Ai(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;if((-17-d|0)>>>0<e>>>0)si(b);if((a[b+11>>0]|0)<0)j=c[b>>2]|0;else j=b;if(d>>>0<2147483623){k=e+d|0;e=d<<1;l=k>>>0<e>>>0?e:k;m=l>>>0<11?11:l+16&-16}else m=-17;l=oi(m)|0;if(g|0)ui(l,j,g)|0;k=f-h-g|0;if(k|0)ui(l+g+i|0,j+g+h|0,k)|0;if((d|0)!=10)qi(j);c[b>>2]=l;c[b+8>>2]=m|-2147483648;return}function Bi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0;f=l;l=l+16|0;g=f;h=b+11|0;i=a[h>>0]|0;j=i<<24>>24<0;if(j){k=c[b+4>>2]|0;m=(c[b+8>>2]&2147483647)+-1|0}else{k=i&255;m=10}i=k+e|0;if((m-k|0)>>>0>=e>>>0){if(e|0){if(j)n=c[b>>2]|0;else n=b;ui(n+k|0,d,e)|0;if((a[h>>0]|0)<0)c[b+4>>2]=i;else a[h>>0]=i;a[g>>0]=0;ki(n+i|0,g)}}else xi(b,m,i-m|0,k,k,0,e,d);l=f;return b|0}function Ci(a,b){a=a|0;b=+b;var c=0,d=0;c=l;l=l+16|0;d=c;Di(d);Ei(a,d,b);wi(d);l=c;return}function Di(b){b=b|0;var d=0,e=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}if((a[b+11>>0]|0)<0)e=(c[b+8>>2]&2147483647)+-1|0;else e=10;yi(b,e,0);return}function Ei(b,d,e){b=b|0;d=d|0;e=+e;var f=0,g=0,i=0,j=0,k=0,m=0.0,n=0,o=0,p=0,q=0;f=l;l=l+16|0;g=f;i=d+11|0;j=a[i>>0]|0;if(j<<24>>24<0)k=c[d+4>>2]|0;else k=j&255;m=e;n=j;j=k;while(1){if(n<<24>>24<0)o=c[d>>2]|0;else o=d;h[g>>3]=m;p=Rh(o,j+1|0,6827,g)|0;if((p|0)>-1)if(p>>>0>j>>>0)q=p;else break;else q=j<<1|1;yi(d,q,0);n=a[i>>0]|0;j=q}yi(d,p,0);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}l=f;return}function Fi(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=l;l=l+48|0;b=a+32|0;d=a+24|0;e=a+16|0;f=a;g=a+36|0;a=Gi()|0;if(a|0?(h=c[a>>2]|0,h|0):0){a=h+48|0;i=c[a>>2]|0;j=c[a+4>>2]|0;if(!((i&-256|0)==1126902528&(j|0)==1129074247)){c[d>>2]=c[487];Hi(6916,d)}if((i|0)==1126902529&(j|0)==1129074247)k=c[h+44>>2]|0;else k=h+80|0;c[g>>2]=k;k=c[h>>2]|0;h=c[k+4>>2]|0;j=Fb[c[(c[108]|0)+16>>2]&7](432,k,g)|0;k=c[487]|0;if(j){j=c[g>>2]|0;g=Pb[c[(c[j>>2]|0)+8>>2]&7](j)|0;c[f>>2]=k;c[f+4>>2]=h;c[f+8>>2]=g;Hi(6830,f)}else{c[e>>2]=k;c[e+4>>2]=h;Hi(6875,e)}}Hi(6954,b)}function Gi(){var a=0,b=0;a=l;l=l+16|0;if(!(bb(9608168,8)|0)){b=Va(c[2402043]|0)|0;l=a;return b|0}else Hi(7105,a);return 0}function Hi(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=b;b=c[329]|0;nh(b,a,e)|0;fi(10,b)|0;za()}function Ii(a){a=a|0;return}function Ji(a){a=a|0;Ii(a);qi(a);return}function Ki(a){a=a|0;return}function Li(a){a=a|0;return}function Mi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+64|0;f=e;if(!(Qi(a,b,0)|0))if((b|0)!=0?(g=Ui(b,456,440,0)|0,(g|0)!=0):0){b=f+4|0;h=b+52|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(h|0));c[f>>2]=g;c[f+8>>2]=a;c[f+12>>2]=-1;c[f+48>>2]=1;Ub[c[(c[g>>2]|0)+28>>2]&3](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];i=1}else i=0;j=i}else j=0;else j=1;l=e;return j|0}function Ni(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(Qi(a,c[b+8>>2]|0,g)|0)Ti(0,b,d,e,f);return}function Oi(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;do if(!(Qi(b,c[d+8>>2]|0,g)|0)){if(Qi(b,c[d>>2]|0,g)|0){h=d+32|0;if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[h>>2]=f;c[i>>2]=e;i=d+40|0;c[i>>2]=(c[i>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[h>>2]=1}}else Si(0,d,e,f);while(0);return}function Pi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(Qi(a,c[b+8>>2]|0,0)|0)Ri(0,b,d,e);return}function Qi(a,b,c){a=a|0;b=b|0;c=c|0;return (a|0)==(b|0)|0}function Ri(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;b=d+16|0;g=c[b>>2]|0;h=d+36|0;i=d+24|0;do if(g){if((g|0)!=(e|0)){c[h>>2]=(c[h>>2]|0)+1;c[i>>2]=2;a[d+54>>0]=1;break}if((c[i>>2]|0)==2)c[i>>2]=f}else{c[b>>2]=e;c[i>>2]=f;c[h>>2]=1}while(0);return}function Si(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((c[b+4>>2]|0)==(d|0)?(d=b+28|0,(c[d>>2]|0)!=1):0)c[d>>2]=e;return}function Ti(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;i=d+54|0;j=d+48|0;k=d+24|0;l=d+36|0;if(!h){c[b>>2]=e;c[k>>2]=g;c[l>>2]=1;if(!((c[j>>2]|0)==1&(g|0)==1))break;a[i>>0]=1;break}if((h|0)!=(e|0)){c[l>>2]=(c[l>>2]|0)+1;a[i>>0]=1;break}l=c[k>>2]|0;if((l|0)==2){c[k>>2]=g;m=g}else m=l;if((c[j>>2]|0)==1&(m|0)==1)a[i>>0]=1}while(0);return}function Ui(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;h=l;l=l+64|0;i=h;j=c[d>>2]|0;k=d+(c[j+-8>>2]|0)|0;m=c[j+-4>>2]|0;c[i>>2]=f;c[i+4>>2]=d;c[i+8>>2]=e;c[i+12>>2]=g;g=i+16|0;e=i+20|0;d=i+24|0;j=i+28|0;n=i+32|0;o=i+40|0;p=g;q=p+36|0;do{c[p>>2]=0;p=p+4|0}while((p|0)<(q|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(Qi(m,f,0)|0){c[i+48>>2]=1;Gb[c[(c[m>>2]|0)+20>>2]&3](m,i,k,k,1,0);r=(c[d>>2]|0)==1?k:0}else{Vb[c[(c[m>>2]|0)+24>>2]&3](m,i,k,1,0);switch(c[i+36>>2]|0){case 0:{r=(c[o>>2]|0)==1&(c[j>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break}case 1:break;default:{r=0;break a}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[j>>2]|0)==1&(c[n>>2]|0)==1):0){r=0;break}r=c[g>>2]|0}while(0);l=h;return r|0}function Vi(a){a=a|0;Ii(a);qi(a);return}function Wi(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;if(Qi(a,c[b+8>>2]|0,g)|0)Ti(0,b,d,e,f);else{h=c[a+8>>2]|0;Gb[c[(c[h>>2]|0)+20>>2]&3](h,b,d,e,f,g)}return}function Xi(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;do if(!(Qi(b,c[d+8>>2]|0,g)|0)){h=b+8|0;if(!(Qi(b,c[d>>2]|0,g)|0)){i=c[h>>2]|0;Vb[c[(c[i>>2]|0)+24>>2]&3](i,d,e,f,g);break}i=d+32|0;if((c[d+16>>2]|0)!=(e|0)?(j=d+20|0,(c[j>>2]|0)!=(e|0)):0){c[i>>2]=f;k=d+44|0;if((c[k>>2]|0)==4)break;l=d+52|0;a[l>>0]=0;m=d+53|0;a[m>>0]=0;n=c[h>>2]|0;Gb[c[(c[n>>2]|0)+20>>2]&3](n,d,e,e,1,g);if(a[m>>0]|0)if(!(a[l>>0]|0)){o=3;p=11}else q=3;else{o=4;p=11}if((p|0)==11){c[j>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;q=o}else q=o}c[k>>2]=q;break}if((f|0)==1)c[i>>2]=1}else Si(0,d,e,f);while(0);return}function Yi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(Qi(a,c[b+8>>2]|0,0)|0)Ri(0,b,d,e);else{f=c[a+8>>2]|0;Ub[c[(c[f>>2]|0)+28>>2]&3](f,b,d,e)}return}function Zi(a){a=a|0;return}function _i(){var a=0;a=l;l=l+16|0;if(!(gb(9608172,52)|0)){l=a;return}else Hi(7154,a)}function $i(a){a=a|0;var b=0;b=l;l=l+16|0;ji(a);if(!(lb(c[2402043]|0,0)|0)){l=b;return}else Hi(7204,b)}function aj(){var a=0,b=0;a=Gi()|0;if((a|0?(b=c[a>>2]|0,b|0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)bj(c[b+12>>2]|0);bj(cj()|0)}function bj(a){a=a|0;var b=0;b=l;l=l+16|0;Sb[a&15]();Hi(7257,b)}function cj(){var a=0;a=c[486]|0;c[486]=a+0;return a|0}function dj(a){a=a|0;return}function ej(a){a=a|0;dj(a);qi(a);return}function fj(a){a=a|0;return 7297}function gj(a){a=a|0;return}function hj(a){a=a|0;Ii(a);qi(a);return}function ij(a,b,c){a=a|0;b=b|0;c=c|0;return Qi(a,b,0)|0}function jj(a){a=a|0;Ii(a);qi(a);return}function kj(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(Qi(b,c[d+8>>2]|0,h)|0)Ti(0,d,e,f,g);else{i=d+52|0;j=a[i>>0]|0;k=d+53|0;l=a[k>>0]|0;m=c[b+12>>2]|0;n=b+16+(m<<3)|0;a[i>>0]=0;a[k>>0]=0;oj(b+16|0,d,e,f,g,h);a:do if((m|0)>1){o=d+24|0;p=d+54|0;q=b+8|0;r=b+24|0;do{if(a[p>>0]|0)break a;if(!(a[i>>0]|0)){if(a[k>>0]|0?(c[q>>2]&1|0)==0:0)break a}else{if((c[o>>2]|0)==1)break a;if(!(c[q>>2]&2))break a}a[i>>0]=0;a[k>>0]=0;oj(r,d,e,f,g,h);r=r+8|0}while(r>>>0<n>>>0)}while(0);a[i>>0]=j;a[k>>0]=l}return}function lj(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,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;a:do if(!(Qi(b,c[d+8>>2]|0,g)|0)){h=b+12|0;i=d+24|0;j=d+36|0;k=d+54|0;l=b+8|0;m=b+16|0;if(!(Qi(b,c[d>>2]|0,g)|0)){n=c[h>>2]|0;o=b+16+(n<<3)|0;pj(m,d,e,f,g);p=b+24|0;if((n|0)<=1)break;n=c[l>>2]|0;if((n&2|0)==0?(c[j>>2]|0)!=1:0){if(!(n&1)){n=p;while(1){if(a[k>>0]|0)break a;if((c[j>>2]|0)==1)break a;pj(n,d,e,f,g);n=n+8|0;if(n>>>0>=o>>>0)break a}}else q=p;while(1){if(a[k>>0]|0)break a;if((c[j>>2]|0)==1?(c[i>>2]|0)==1:0)break a;pj(q,d,e,f,g);q=q+8|0;if(q>>>0>=o>>>0)break a}}else r=p;while(1){if(a[k>>0]|0)break a;pj(r,d,e,f,g);r=r+8|0;if(r>>>0>=o>>>0)break a}}o=d+32|0;if((c[d+16>>2]|0)!=(e|0)?(p=d+20|0,(c[p>>2]|0)!=(e|0)):0){c[o>>2]=f;n=d+44|0;if((c[n>>2]|0)==4)break;s=b+16+(c[h>>2]<<3)|0;t=d+52|0;u=d+53|0;v=0;w=0;x=m;b:while(1){if(x>>>0>=s>>>0){y=w;z=18;break}a[t>>0]=0;a[u>>0]=0;oj(x,d,e,e,1,g);if(a[k>>0]|0){y=w;z=18;break}do if(a[u>>0]|0){if(!(a[t>>0]|0))if(!(c[l>>2]&1)){y=1;z=18;break b}else{A=v;B=1;break}if((c[i>>2]|0)==1){z=23;break b}if(!(c[l>>2]&2)){z=23;break b}else{A=1;B=1}}else{A=v;B=w}while(0);v=A;w=B;x=x+8|0}do if((z|0)==18){if((!v?(c[p>>2]=e,x=d+40|0,c[x>>2]=(c[x>>2]|0)+1,(c[j>>2]|0)==1):0)?(c[i>>2]|0)==2:0){a[k>>0]=1;if(y){z=23;break}else{C=4;break}}if(y)z=23;else C=4}while(0);if((z|0)==23)C=3;c[n>>2]=C;break}if((f|0)==1)c[o>>2]=1}else Si(0,d,e,f);while(0);return}function mj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do if(!(Qi(b,c[d+8>>2]|0,0)|0)){g=c[b+12>>2]|0;h=b+16+(g<<3)|0;nj(b+16|0,d,e,f);if((g|0)>1){g=d+54|0;i=b+24|0;do{nj(i,d,e,f);if(a[g>>0]|0)break a;i=i+8|0}while(i>>>0<h>>>0)}}else Ri(0,d,e,f);while(0);return}function nj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[a+4>>2]|0;g=f>>8;if(!(f&1))h=g;else h=c[(c[d>>2]|0)+g>>2]|0;g=c[a>>2]|0;Ub[c[(c[g>>2]|0)+28>>2]&3](g,b,d+h|0,f&2|0?e:2);return}function oj(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[a+4>>2]|0;i=h>>8;if(!(h&1))j=i;else j=c[(c[e>>2]|0)+i>>2]|0;i=c[a>>2]|0;Gb[c[(c[i>>2]|0)+20>>2]&3](i,b,d,e+j|0,h&2|0?f:2,g);return}function pj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=c[a+4>>2]|0;h=g>>8;if(!(g&1))i=h;else i=c[(c[d>>2]|0)+h>>2]|0;h=c[a>>2]|0;Vb[c[(c[h>>2]|0)+24>>2]&3](h,b,d+i|0,g&2|0?e:2,f);return}function qj(a){a=a|0;c[a>>2]=2040;return}function rj(){var a=0;a=c[2402044]|0;c[2402044]=a+0;return a|0}function sj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=l;l=l+16|0;f=e;c[f>>2]=c[d>>2];g=Fb[c[(c[a>>2]|0)+16>>2]&7](a,b,f)|0;if(g)c[d>>2]=c[f>>2];l=e;return g&1|0}function tj(a){a=a|0;var b=0;if(!a)b=0;else b=(Ui(a,456,528,0)|0)!=0;return b&1|0}function uj(){}function vj(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 (E=e,a-c>>>0|0)|0}function wj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=f&-4|0;h=g-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(h|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function xj(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}E=a<<c-32;return 0}function yj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (E=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0}function zj(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}E=0;return b>>>c-32|0}function Aj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return Oa(b|0,d|0,e|0)|0;f=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}h=g&-4|0;e=h-64|0;while((b|0)<=(e|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(h|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{h=g-4|0;while((b|0)<(h|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return f|0}function Bj(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[n+(b>>>24)>>0]|0)+24|0}function Cj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0;g=a;h=b;i=h;j=d;k=e;l=k;if(!i){m=(f|0)!=0;if(!l){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (E=n,o)|0}else{if(!m){n=0;o=0;return (E=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return (E=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(W(l|0)|0)-(W(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<<r;v=i>>>(q>>>0)&s;w=0;x=g<<r;break}if(!f){n=0;o=0;return (E=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (E=n,o)|0}r=j-1|0;if(r&j|0){s=(W(j|0)|0)+33-(W(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<<p|g>>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<<q&y;x=(i<<q|g>>>(z>>>0))&y|g<<p&s-33>>31;break}if(f|0){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (E=n,o)|0}else{r=Bj(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (E=n,o)|0}}else{if(m){if(f|0){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (E=n,o)|0}if(!g){if(f|0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (E=n,o)|0}r=l-1|0;if(!(r&l)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((Bj(l|0)|0)>>>0);return (E=n,o)|0}r=(W(l|0)|0)-(W(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<<p|g>>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<<p;break}if(!f){n=0;o=0;return (E=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (E=n,o)|0}while(0);if(!t){B=x;C=w;D=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=yj(b|0,d|0,-1,-1)|0;k=E;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;vj(e|0,k|0,g|0,a|0)|0;i=E;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=vj(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d|0)|0;w=E;u=u-1|0}while((u|0)!=0);B=h;C=x;D=w;F=v;G=0;H=t}t=C;C=0;if(f|0){c[f>>2]=F;c[f+4>>2]=D}n=(t|0)>>>31|(B|C)<<1|(C<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return (E=n,o)|0}function Dj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Cj(a,b,c,d,0)|0}function Ej(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=T(d,c)|0;f=a>>>16;a=(e>>>16)+(T(d,f)|0)|0;d=b>>>16;b=T(d,c)|0;return (E=(a>>>16)+(T(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function Fj(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=Ej(e,a)|0;f=E;return (E=(T(b,a)|0)+(T(d,e)|0)+f|f&0,c|0|0)|0}function Gj(a){a=a|0;var b=0,d=0;a=a+15&-16|0;b=c[i>>2]|0;d=b+a|0;if((a|0)>0&(d|0)<(b|0)|(d|0)<0){$()|0;La(12);return -1}c[i>>2]=d;if((d|0)>(_()|0)?(Z()|0)==0:0){La(12);c[i>>2]=b;return -1}return b|0}function Hj(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else Aj(b,c,d)|0;return b|0}function Ij(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=f|0;Cj(a,b,d,e,g)|0;l=f;return (E=c[g+4>>2]|0,c[g>>2]|0)|0}function Jj(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function Kj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Fb[a&7](b|0,c|0,d|0)|0}function Lj(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;Gb[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Mj(a,b){a=a|0;b=+b;Hb[a&1](+b)}function Nj(a,b,c){a=a|0;b=b|0;c=+c;Ib[a&15](b|0,+c)}function Oj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Jb[a&3](b|0,c|0,d|0)}function Pj(a,b){a=a|0;b=b|0;Kb[a&63](b|0)}function Qj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=+e;return Lb[a&1](b|0,c|0,+d,+e)|0}function Rj(a,b,c){a=a|0;b=b|0;c=c|0;Mb[a&31](b|0,c|0)}function Sj(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=+c;d=d|0;e=+e;f=+f;g=+g;h=+h;Nb[a&1](b|0,+c,d|0,+e,+f,+g,+h)}function Tj(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;Ob[a&7](b|0,+c,+d)}function Uj(a,b){a=a|0;b=b|0;return Pb[a&7](b|0)|0}function Vj(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=+f;g=+g;h=+h;i=+i;Qb[a&1](b|0,c|0,+d,e|0,+f,+g,+h,+i)}function Wj(a,b,c){a=a|0;b=+b;c=+c;Rb[a&1](+b,+c)}function Xj(a){a=a|0;Sb[a&15]()}function Yj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;Tb[a&3](b|0,c|0,+d)}function Zj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Ub[a&3](b|0,c|0,d|0,e|0)}function _j(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Vb[a&3](b|0,c|0,d|0,e|0,f|0)}function $j(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=+e;Wb[a&3](b|0,c|0,+d,+e)}function ak(a,b,c){a=a|0;b=b|0;c=c|0;X(0);return 0}function bk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;X(1)}function ck(a){a=+a;X(2)}function dk(a,b){a=a|0;b=+b;X(3)}function ek(a,b,c){a=a|0;b=b|0;c=c|0;X(4)}function fk(a){a=a|0;X(5)}function gk(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;X(6);return 0}function hk(a,b){a=a|0;b=b|0;X(7)}function ik(a,b,c,d,e,f,g){a=a|0;b=+b;c=c|0;d=+d;e=+e;f=+f;g=+g;X(8)}function jk(a,b,c){a=a|0;b=+b;c=+c;X(9)}function kk(a){a=a|0;X(10);return 0}function lk(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=+c;d=d|0;e=+e;f=+f;g=+g;h=+h;X(11)}function mk(a,b){a=+a;b=+b;X(12)}function nk(){X(13)}function ok(){Cb()}function pk(a,b,c){a=a|0;b=b|0;c=+c;X(14)}function qk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;X(15)}function rk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;X(16)}function sk(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;X(17)}
// EMSCRIPTEN_END_FUNCS
var Fb=[ak,dh,eh,kh,Ph,Mi,ij,ak];var Gb=[bk,Ni,Wi,kj];var Hb=[ck,jc];var Ib=[dk,Cc,Dc,Uc,Vc,Ud,Vd,Ng,vc,Jg,dk,dk,dk,dk,dk,dk];var Jb=[ek,Cg,Vg,ek];var Kb=[fk,Ac,Bc,Lc,Mc,Sc,Tc,td,ud,Gd,Hd,Kd,Ld,Od,Pd,Sd,Td,ze,Ae,Be,De,jf,kf,lf,nf,ug,vg,wg,zg,Ag,Lg,Mg,Qg,Rg,Tg,Ug,Ii,Ji,Ki,Li,Vi,dj,ej,hj,jj,rc,ec,fc,re,ae,af,cg,$i,fk,fk,fk,fk,fk,fk,fk,fk,fk,fk,fk];var Lb=[gk,yc];var Mb=[hk,Ec,Xc,Nc,Wc,vd,Id,Md,Qd,Wd,ye,hf,Bg,Eg,Xg,sc,tc,hk,hk,hk,hk,hk,hk,hk,hk,hk,hk,hk,hk,hk,hk,hk];var Nb=[ik,mc];var Ob=[jk,Ce,mf,uc,nc,jk,jk,jk];var Pb=[kk,Fg,Yg,ch,fj,kk,kk,kk];var Qb=[lk,wc];var Rb=[mk,gc];var Sb=[nk,ok,Fi,dc,hc,ic,kc,lc,_i,nk,nk,nk,nk,nk,nk,nk];var Tb=[pk,Dg,Wg,pk];var Ub=[qk,Pi,Yi,mj];var Vb=[rk,Oi,Xi,lj];var Wb=[sk,xc,oc,pc];return{_memset:wj,_bitshift64Lshr:zj,_bitshift64Shl:xj,_fflush:ci,___cxa_is_pointer_type:tj,_llvm_cttz_i32:Bj,_sbrk:Gj,_memcpy:Aj,___errno_location:gh,___muldi3:Fj,___uremdi3:Ij,_i64Subtract:vj,___udivmoddi4:Cj,_i64Add:yj,_emscripten_get_global_libc:bh,___getTypeName:ah,___udivdi3:Dj,_llvm_bswap_i32:Jj,___muldsi3:Ej,___cxa_can_catch:sj,_free:ji,_memmove:Hj,_malloc:ii,__GLOBAL__sub_I_main_cpp:zc,__GLOBAL__sub_I_Matrix3_cpp:$d,__GLOBAL__sub_I_CanvasContext_cpp:$e,__GLOBAL__sub_I_WebGLRenderTarget_cpp:bg,__GLOBAL__sub_I_bind_cpp:_g,runPostSets:uj,stackAlloc:Xb,stackSave:Yb,stackRestore:Zb,establishStackSpace:_b,setTempRet0:ac,getTempRet0:bc,setThrew:$b,stackAlloc:Xb,stackSave:Yb,stackRestore:Zb,establishStackSpace:_b,setThrew:$b,setTempRet0:ac,getTempRet0:bc,dynCall_iiii:Kj,dynCall_viiiiii:Lj,dynCall_vd:Mj,dynCall_vid:Nj,dynCall_viii:Oj,dynCall_vi:Pj,dynCall_iiidd:Qj,dynCall_vii:Rj,dynCall_vididddd:Sj,dynCall_vidd:Tj,dynCall_ii:Uj,dynCall_viididddd:Vj,dynCall_vdd:Wj,dynCall_v:Xj,dynCall_viid:Yj,dynCall_viiii:Zj,dynCall_viiiii:_j,dynCall_viidd:$j}})
// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var stackSave=Module["stackSave"]=asm["stackSave"];var __GLOBAL__sub_I_main_cpp=Module["__GLOBAL__sub_I_main_cpp"]=asm["__GLOBAL__sub_I_main_cpp"];var _memset=Module["_memset"]=asm["_memset"];var __GLOBAL__sub_I_CanvasContext_cpp=Module["__GLOBAL__sub_I_CanvasContext_cpp"]=asm["__GLOBAL__sub_I_CanvasContext_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var __GLOBAL__sub_I_Matrix3_cpp=Module["__GLOBAL__sub_I_Matrix3_cpp"]=asm["__GLOBAL__sub_I_Matrix3_cpp"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _fflush=Module["_fflush"]=asm["_fflush"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var __GLOBAL__sub_I_WebGLRenderTarget_cpp=Module["__GLOBAL__sub_I_WebGLRenderTarget_cpp"]=asm["__GLOBAL__sub_I_WebGLRenderTarget_cpp"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=asm["__GLOBAL__sub_I_bind_cpp"];var ___udivmoddi4=Module["___udivmoddi4"]=asm["___udivmoddi4"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var ___getTypeName=Module["___getTypeName"]=asm["___getTypeName"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setThrew=Module["setThrew"]=asm["setThrew"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _memmove=Module["_memmove"]=asm["_memmove"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _malloc=Module["_malloc"]=asm["_malloc"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_vd=Module["dynCall_vd"]=asm["dynCall_vd"];var dynCall_vid=Module["dynCall_vid"]=asm["dynCall_vid"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_iiidd=Module["dynCall_iiidd"]=asm["dynCall_iiidd"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_vididddd=Module["dynCall_vididddd"]=asm["dynCall_vididddd"];var dynCall_vidd=Module["dynCall_vidd"]=asm["dynCall_vidd"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viididddd=Module["dynCall_viididddd"]=asm["dynCall_viididddd"];var dynCall_vdd=Module["dynCall_vdd"]=asm["dynCall_vdd"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_viidd=Module["dynCall_viidd"]=asm["dynCall_viidd"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,Runtime.GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}Module.printErr("exception thrown: "+toLog);Module["quit"](1,e)}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run()