(function(self){var Module=self.OggVorbisEncoderConfig;var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB;var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function e(e){process["stdout"].write(e+"\n")};if(!Module["printErr"])Module["printErr"]=function r(e){process["stderr"].write(e+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function i(e,i){e=nodePath["normalize"](e);var r=nodeFS["readFileSync"](e);if(!r&&e!=nodePath["resolve"](e)){e=path.join(__dirname,"..","src",e);r=nodeFS["readFileSync"](e)}if(r&&!i)r=r.toString();return r};Module["readBinary"]=function t(e){return Module["read"](e,true)};Module["load"]=function n(e){globalEval(read(e))};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(e){if(!(e instanceof ExitStatus)){throw e}});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 o(){throw"no read() available (jsc?)"}}Module["readBinary"]=function a(e){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(e))}var r=read(e,"binary");assert(typeof r==="object");return r};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function s(r){var e=new XMLHttpRequest;e.open("GET",r,false);e.send(null);return e.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function f(e){console.log(e)};if(!Module["printErr"])Module["printErr"]=function l(e){console.log(e)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?function(e){dump(e)}:function(e){}}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=function(e){document.title=e}}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(e){eval.call(null,e)}if(!Module["load"]&&Module["read"]){Module["load"]=function u(e){globalEval(Module["read"](e))}}if(!Module["print"]){Module["print"]=function(){}}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){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(e[e.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(e[0]==="i"){var r=parseInt(e.substr(1));assert(r%8===0);return r/8}else{return 0}}}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,r){if(r==="double"||r==="i64"){if(e&7){assert((e&7)===4);e+=4}}else{assert((e&3)===0)}return e},getAlignSize:function(e,r,i){if(!i&&(e=="i64"||e=="double"))return 8;if(!e)return Math.min(r,8);return Math.min(r||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE)},dynCall:function(r,i,e){if(e&&e.length){if(!e.splice)e=Array.prototype.slice.call(e);e.splice(0,0,i);return Module["dynCall_"+r].apply(null,e)}else{return Module["dynCall_"+r].call(null,i)}},functionPointers:[],addFunction:function(r){for(var e=0;e=TOTAL_MEMORY){var i=enlargeMemory();if(!i){DYNAMICTOP=e;return 0}}return e},alignMemory:function(r,e){var i=r=Math.ceil(r/(e?e:16))*(e?e:16);return i},makeBigInt:function(e,r,i){var t=i?+(e>>>0)+ +(r>>>0)*+4294967296:+(e>>>0)+ +(r|0)*+4294967296;return t},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(e,r){if(!e){abort("Assertion failed: "+r)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var r=Runtime.stackAlloc(e.length);writeArrayToMemory(e,r);return r},stringToC:function(e){var r=0;if(e!==null&&e!==undefined&&e!==0){r=Runtime.stackAlloc((e.length<<2)+1);writeStringToMemory(e,r)}return r}};var toC={string:JSfuncs["stringToC"],array:JSfuncs["arrayToC"]};ccall=function e(u,l,s,i,o){var f=getCFunc(u);var n=[];var r=0;if(i){for(var e=0;e>0]=r;break;case"i8":HEAP8[e>>0]=r;break;case"i16":HEAP16[e>>1]=r;break;case"i32":HEAP32[e>>2]=r;break;case"i64":tempI64=[r>>>0,(tempDouble=r,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=r;break;case"double":HEAPF64[e>>3]=r;break;default:abort("invalid type for setValue: "+i)}}Module["setValue"]=setValue;function getValue(e,r,i){r=r||"i8";if(r.charAt(r.length-1)==="*")r="i32";switch(r){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+r)}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(r,s,c,t){var l,n;if(typeof r==="number"){l=true;n=r}else{l=false;n=r.length}var u=typeof s==="string"?s:null;var e;if(c==ALLOC_NONE){e=t}else{e=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][c===undefined?ALLOC_STATIC:c](Math.max(n,u?1:s.length))}if(l){var t=e,f;assert((e&3)==0);f=e+(n&~3);for(;t>2]=0}f=e+n;while(t>0]=0}return e}if(u==="i8"){if(r.subarray||r.slice){HEAPU8.set(r,e)}else{HEAPU8.set(new Uint8Array(r),e)}return e}var o=0,i,d,h;while(o>0];s|=n;if(n==0&&!e)break;i++;if(e&&i==e)break}if(!e)e=i;var t="";if(s<128){var o=1024;var a;while(e>0){a=String.fromCharCode.apply(String,HEAPU8.subarray(r,r+Math.min(e,o)));t=t?t+a:a;r+=o;e-=o}return t}return Module["UTF8ToString"](r)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(i){var e="";while(1){var r=HEAP8[i++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(e,r){return writeAsciiToMemory(e,r,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(r,i){var e,t,n,a,s,f;var o="";while(1){e=r[i++];if(!e)return o;if(!(e&128)){o+=String.fromCharCode(e);continue}t=r[i++]&63;if((e&224)==192){o+=String.fromCharCode((e&31)<<6|t);continue}n=r[i++]&63;if((e&240)==224){e=(e&15)<<12|t<<6|n}else{a=r[i++]&63;if((e&248)==240){e=(e&7)<<18|t<<12|n<<6|a}else{s=r[i++]&63;if((e&252)==248){e=(e&3)<<24|t<<18|n<<12|a<<6|s}else{f=r[i++]&63;e=(e&1)<<30|t<<24|n<<18|a<<12|s<<6|f}}}if(e<65536){o+=String.fromCharCode(e)}else{var l=e-65536;o+=String.fromCharCode(55296|l>>10,56320|l&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(o,i,e,a){if(!(a>0))return 0;var s=e;var t=e+a-1;for(var n=0;n=55296&&r<=57343)r=65536+((r&1023)<<10)|o.charCodeAt(++n)&1023;if(r<=127){if(e>=t)break;i[e++]=r}else if(r<=2047){if(e+1>=t)break;i[e++]=192|r>>6;i[e++]=128|r&63}else if(r<=65535){if(e+2>=t)break;i[e++]=224|r>>12;i[e++]=128|r>>6&63;i[e++]=128|r&63}else if(r<=2097151){if(e+3>=t)break;i[e++]=240|r>>18;i[e++]=128|r>>12&63;i[e++]=128|r>>6&63;i[e++]=128|r&63}else if(r<=67108863){if(e+4>=t)break;i[e++]=248|r>>24;i[e++]=128|r>>18&63;i[e++]=128|r>>12&63;i[e++]=128|r>>6&63;i[e++]=128|r&63}else{if(e+5>=t)break;i[e++]=252|r>>30;i[e++]=128|r>>24&63;i[e++]=128|r>>18&63;i[e++]=128|r>>12&63;i[e++]=128|r>>6&63;i[e++]=128|r&63}}i[e]=0;return e-s}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(e,r,i){return stringToUTF8Array(e,HEAPU8,r,i)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(t){var r=0;for(var i=0;i=55296&&e<=57343)e=65536+((e&1023)<<10)|t.charCodeAt(++i)&1023;if(e<=127){++r}else if(e<=2047){r+=2}else if(e<=65535){r+=3}else if(e<=2097151){r+=4}else if(e<=67108863){r+=5}else{r+=6}}return r}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(t){var e=0;var r="";while(1){var i=HEAP16[t+e*2>>1];if(i==0)return r;++e;r+=String.fromCharCode(i)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(i,r,e){if(e===undefined){e=2147483647}if(e<2)return 0;e-=2;var n=r;var o=e>1]=a;r+=2}HEAP16[r>>1]=0;return r-n}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(e){return e.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(n){var i=0;var r="";while(1){var e=HEAP32[n+i*4>>2];if(e==0)return r;++i;if(e>=65536){var t=e-65536;r+=String.fromCharCode(55296|t>>10,56320|t&1023)}else{r+=String.fromCharCode(e)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(n,e,i){if(i===undefined){i=2147483647}if(i<4)return 0;var o=e;var a=o+i-4;for(var t=0;t=55296&&r<=57343){var s=n.charCodeAt(++t);r=65536+((r&1023)<<10)|s&1023}HEAP32[e>>2]=r;e+=4;if(e+4>a)break}HEAP32[e>>2]=0;return e-o}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(r){var i=0;for(var e=0;e=55296&&t<=57343)++e;i+=4}return i}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(r){var s=!!Module["___cxa_demangle"];if(s){try{var a=_malloc(r.length);writeStringToMemory(r.substr(1),a);var t=_malloc(4);var n=Module["___cxa_demangle"](a,0,0,t);if(getValue(t,"i32")===0&&n){return Pointer_stringify(n)}}catch(h){}finally{if(a)_free(a);if(t)_free(t);if(n)_free(n)}}var e=3;var u={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."};var f=[];var l=true;function d(i){if(i)Module.print(i);Module.print(r);var t="";for(var n=0;n"}else{a=o}e:while(e0){var f=r[e++];if(f in u){t.push(u[f])}else{switch(f){case"P":t.push(i(true,1,true)[0]+"*");break;case"R":t.push(i(true,1,true)[0]+"&");break;case"L":{e++;var E=r.indexOf("E",e);var n=E-e;t.push(r.substr(e,n));e+=n+2;break};case"A":{var n=parseInt(r.substr(e));e+=n.toString().length;if(r[e]!=="_")throw"?";e++;t.push(i(true,1,true)[0]+" ["+n+"]");break};case"E":break e;default:a+="?"+f;break e}}}if(!v&&t.length===1&&t[0]==="void")t=[];if(d){if(a){t.push(a+"?")}return t}else{return a+m()}}var o=r;try{if(r=="Object._main"||r=="_main"){return"main()"}if(typeof r==="number")r=Pointer_stringify(r);if(r[0]!=="_")return r;if(r[1]!=="_")return r;if(r[2]!=="Z")return r;switch(r[3]){case"n":return"operator new()";case"d":return"operator delete()"}o=i()}catch(h){o+="?"}if(o.indexOf("?")>=0&&!s){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return o}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,function(e){var r=demangle(e);return e===r?e:e+" ["+r+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(r){e=r}if(!e.stack){return"(no stack trace available)"}}return e.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(e){if(e%4096>0){e+=4096-e%4096}return e}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory0){var e=i.shift();if(typeof e=="function"){e();continue}var r=e.func;if(typeof r==="number"){if(e.arg===undefined){Runtime.dynCall("v",r)}else{Runtime.dynCall("vi",r,[e.arg])}}else{r(e.arg===undefined?null:e.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(e){__ATPRERUN__.unshift(e)}Module["addOnPreRun"]=Module.addOnPreRun=addOnPreRun;function addOnInit(e){__ATINIT__.unshift(e)}Module["addOnInit"]=Module.addOnInit=addOnInit;function addOnPreMain(e){__ATMAIN__.unshift(e)}Module["addOnPreMain"]=Module.addOnPreMain=addOnPreMain;function addOnExit(e){__ATEXIT__.unshift(e)}Module["addOnExit"]=Module.addOnExit=addOnExit;function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}Module["addOnPostRun"]=Module.addOnPostRun=addOnPostRun;function intArrayFromString(r,t,i){var n=i>0?i:lengthBytesUTF8(r)+1;var e=new Array(n);var o=stringToUTF8Array(r,e,0,e.length);if(t)e.length=o;return e}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(i){var t=[];for(var e=0;e255){r&=255}t.push(String.fromCharCode(r))}return t.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(i,t,n){var r=intArrayFromString(i,n);var e=0;while(e>0]=o;e=e+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(r,i){for(var e=0;e>0]=r[e]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(r,i,t){for(var e=0;e>0]=r.charCodeAt(e)}if(!t)HEAP8[i>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(e,r,i){if(e>=0){return e}return r<=32?2*Math.abs(1<=i&&(r<=32||e>i)){e=-2*i+e}return e}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function c(e,r){var n=e>>>16;var i=e&65535;var o=r>>>16;var t=r&65535;return i*t+(n*t+i*o<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=function(r){r=r>>>0;for(var e=0;e<32;e++){if(r&1<<31-e)return e}return 32};Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(r){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var e=dependenciesFulfilled;dependenciesFulfilled=null;e()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+553552;__ATINIT__.push();memoryInitializer="OggVorbisEncoder.min.js.mem";var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(e){HEAP8[tempDoublePtr]=HEAP8[e];HEAP8[tempDoublePtr+1]=HEAP8[e+1];HEAP8[tempDoublePtr+2]=HEAP8[e+2];HEAP8[tempDoublePtr+3]=HEAP8[e+3]}function copyTempDouble(e){HEAP8[tempDoublePtr]=HEAP8[e];HEAP8[tempDoublePtr+1]=HEAP8[e+1];HEAP8[tempDoublePtr+2]=HEAP8[e+2];HEAP8[tempDoublePtr+3]=HEAP8[e+3];HEAP8[tempDoublePtr+4]=HEAP8[e+4];HEAP8[tempDoublePtr+5]=HEAP8[e+5];HEAP8[tempDoublePtr+6]=HEAP8[e+6];HEAP8[tempDoublePtr+7]=HEAP8[e+7]}var _cosf=Math_cos;var _fabsf=Math_abs;var ___errno_state=0;function ___setErrNo(e){HEAP32[___errno_state>>2]=e;return e}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(e){switch(e){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}Module["_memset"]=_memset;var _BDtoILow=true;Module["_strlen"]=_strlen;Module["_strcat"]=_strcat;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}Module["_i64Add"]=_i64Add;var _floor=Math_floor;var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(e,r){TTY.ttys[e]={input:[],output:[],ops:r};FS.registerDevice(e,TTY.stream_ops)},stream_ops:{open:function(e){var r=TTY.ttys[e.node.rdev];if(!r){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}e.tty=r;e.seekable=false},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,n,o,a,s){if(!e.tty||!e.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var i=0;for(var t=0;t0){e=o.slice(0,i).toString("utf-8")}else{e=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){e=window.prompt("Input: ");if(e!==null){e+="\n"}}else if(typeof readline=="function"){e=readline();if(e!==null){e+="\n"}}if(!e){return null}r.input=intArrayFromString(e,true)}return r.input.shift()},put_char:function(r,e){if(e===null||e===10){Module["print"](UTF8ArrayToString(r.output,0));r.output=[]}else{if(e!=0)r.output.push(e)}},flush:function(e){if(e.output&&e.output.length>0){Module["print"](UTF8ArrayToString(e.output,0));e.output=[]}}},default_tty1_ops:{put_char:function(r,e){if(e===null||e===10){Module["printErr"](UTF8ArrayToString(r.output,0));r.output=[]}else{if(e!=0)r.output.push(e)}},flush:function(e){if(e.output&&e.output.length>0){Module["printErr"](UTF8ArrayToString(e.output,0));e.output=[]}}}};var MEMFS={ops_table:null,mount:function(e){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(r,t,i,n){if(FS.isBlkdev(i)||FS.isFIFO(i)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var e=FS.createNode(r,t,i,n);if(FS.isDir(e.mode)){e.node_ops=MEMFS.ops_table.dir.node;e.stream_ops=MEMFS.ops_table.dir.stream;e.contents={}}else if(FS.isFile(e.mode)){e.node_ops=MEMFS.ops_table.file.node;e.stream_ops=MEMFS.ops_table.file.stream;e.usedBytes=0;e.contents=null}else if(FS.isLink(e.mode)){e.node_ops=MEMFS.ops_table.link.node;e.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(e.mode)){e.node_ops=MEMFS.ops_table.chrdev.node;e.stream_ops=MEMFS.ops_table.chrdev.stream}e.timestamp=Date.now();if(r){r.contents[t]=e}return e},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){var i=[];for(var r=0;re.contents.length){e.contents=MEMFS.getFileDataAsRegularArray(e);e.usedBytes=e.contents.length}if(!e.contents||e.contents.subarray){var i=e.contents?e.contents.buffer.byteLength:0;if(i>=r)return;var t=1024*1024;r=Math.max(r,i*(i0)e.contents.set(n.subarray(0,e.usedBytes),0);return}if(!e.contents&&r>0)e.contents=[];while(e.contents.lengthr)e.contents.length=r;else while(e.contents.length=t.node.usedBytes)return 0;var r=Math.min(t.node.usedBytes-e,s);assert(r>=0);if(r>8&&n.subarray){o.set(n.subarray(e,e+r),a)}else{for(var i=0;i0||r+tn.timestamp){a.push(e);t++}});var s=[];Object.keys(r.entries).forEach(function(e){var o=r.entries[e];var n=i.entries[e];if(!n){s.push(e);t++}});if(!t){return n(null)}var c=false;var l=0;var u=i.type==="remote"?i.db:r.db;var f=u.transaction([IDBFS.DB_STORE_NAME],"readwrite");var o=f.objectStore(IDBFS.DB_STORE_NAME);function e(r){if(r){if(!e.errored){e.errored=true;return n(r)}return}if(++l>=t){return n(null)}}f.onerror=function(r){e(this.error);r.preventDefault()};a.sort().forEach(function(i){if(r.type==="local"){IDBFS.loadRemoteEntry(o,i,function(r,t){if(r)return e(r);IDBFS.storeLocalEntry(i,t,e)})}else{IDBFS.loadLocalEntry(i,function(r,t){if(r)return e(r);IDBFS.storeRemoteEntry(o,i,t,e)})}});s.sort().reverse().forEach(function(i){if(r.type==="local"){IDBFS.removeLocalEntry(i,e)}else{IDBFS.removeRemoteEntry(o,i,e)}})}};var NODEFS={isWindows:false,staticInit:function(){NODEFS.isWindows=!!process.platform.match(/^win/)},mount:function(e){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(e.opts.root),0)},createNode:function(i,t,e,n){if(!FS.isDir(e)&&!FS.isFile(e)&&!FS.isLink(e)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var r=FS.createNode(i,t,e);r.node_ops=NODEFS.node_ops;r.stream_ops=NODEFS.stream_ops;return r},getMode:function(i){var e;try{e=fs.lstatSync(i);if(NODEFS.isWindows){e.mode=e.mode|(e.mode&146)>>1}}catch(r){if(!r.code)throw r;throw new FS.ErrnoError(ERRNO_CODES[r.code])}return e.mode},realPath:function(e){var r=[];while(e.parent!==e){r.push(e.name);e=e.parent}r.push(e.mount.opts.root);r.reverse();return PATH.join.apply(null,r)},flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function(e){if(e in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[e]}else{return e}},node_ops:{getattr:function(i){var t=NODEFS.realPath(i);var e;try{e=fs.lstatSync(t)}catch(r){if(!r.code)throw r;throw new FS.ErrnoError(ERRNO_CODES[r.code])}if(NODEFS.isWindows&&!e.blksize){e.blksize=4096}if(NODEFS.isWindows&&!e.blocks){e.blocks=(e.size+e.blksize-1)/e.blksize|0}return{dev:e.dev,ino:e.ino,mode:e.mode,nlink:e.nlink,uid:e.uid,gid:e.gid,rdev:e.rdev,size:e.size,atime:e.atime,mtime:e.mtime,ctime:e.ctime,blksize:e.blksize,blocks:e.blocks}},setattr:function(t,e){var r=NODEFS.realPath(t);try{if(e.mode!==undefined){fs.chmodSync(r,e.mode);t.mode=e.mode}if(e.timestamp!==undefined){var n=new Date(e.timestamp);fs.utimesSync(r,n,n)}if(e.size!==undefined){fs.truncateSync(r,e.size)}}catch(i){if(!i.code)throw i;throw new FS.ErrnoError(ERRNO_CODES[i.code])}},lookup:function(e,r){var i=PATH.join2(NODEFS.realPath(e),r);var t=NODEFS.getMode(i);return NODEFS.createNode(e,r,t)},mknod:function(t,n,o,a){var e=NODEFS.createNode(t,n,o,a);var i=NODEFS.realPath(e);try{if(FS.isDir(e.mode)){fs.mkdirSync(i,e.mode)}else{fs.writeFileSync(i,"",{mode:e.mode})}}catch(r){if(!r.code)throw r;throw new FS.ErrnoError(ERRNO_CODES[r.code])}return e},rename:function(r,i,t){var n=NODEFS.realPath(r);var o=PATH.join2(NODEFS.realPath(i),t);try{fs.renameSync(n,o)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink:function(r,i){var t=PATH.join2(NODEFS.realPath(r),i);try{fs.unlinkSync(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir:function(r,i){var t=PATH.join2(NODEFS.realPath(r),i);try{fs.rmdirSync(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir:function(r){var i=NODEFS.realPath(r);try{return fs.readdirSync(i)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink:function(r,i,t){var n=PATH.join2(NODEFS.realPath(r),i);try{fs.symlinkSync(t,n)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink:function(i){var e=NODEFS.realPath(i);try{e=fs.readlinkSync(e);e=NODEJS_PATH.relative(NODEJS_PATH.resolve(i.mount.opts.root),e);return e}catch(r){if(!r.code)throw r;throw new FS.ErrnoError(ERRNO_CODES[r.code])}}},stream_ops:{open:function(e){var i=NODEFS.realPath(e.node);try{if(FS.isFile(e.node.mode)){e.nfd=fs.openSync(i,NODEFS.flagsToPermissionString(e.flags))}}catch(r){if(!r.code)throw r;throw new FS.ErrnoError(ERRNO_CODES[r.code])}},close:function(e){try{if(FS.isFile(e.node.mode)&&e.nfd){fs.closeSync(e.nfd)}}catch(r){if(!r.code)throw r;throw new FS.ErrnoError(ERRNO_CODES[r.code])}},read:function(n,o,a,i,s){if(i===0)return 0;var t=new Buffer(i);var e;try{e=fs.readSync(n.nfd,t,0,i,s)}catch(f){throw new FS.ErrnoError(ERRNO_CODES[f.code])}if(e>0){for(var r=0;r8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var n=PATH.normalizeArray(a.split("/").filter(function(e){return!!e}),false);var r=FS.root;var i="/";for(var t=0;t40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:i,node:r}},getPath:function(e){var r;while(true){if(FS.isRoot(e)){var i=e.mount.mountpoint;if(!r)return i;return i[i.length-1]!=="/"?i+"/"+r:i+r}r=r?e.name+"/"+r:e.name;e=e.parent}},hashName:function(t,i){var e=0;for(var r=0;r>>0)%FS.nameTable.length},hashAddNode:function(e){var r=FS.hashName(e.parent.id,e.name);e.name_next=FS.nameTable[r];FS.nameTable[r]=e},hashRemoveNode:function(e){var i=FS.hashName(e.parent.id,e.name);if(FS.nameTable[i]===e){FS.nameTable[i]=e.name_next}else{var r=FS.nameTable[i];while(r){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}}},lookupNode:function(r,i){var t=FS.mayLookup(r);if(t){throw new FS.ErrnoError(t,r)}var n=FS.hashName(r.id,i);for(var e=FS.nameTable[n];e;e=e.name_next){var o=e.name;if(e.parent.id===r.id&&o===i){return e}}return FS.lookup(r,i)},createNode:function(t,n,o,a){if(!FS.FSNode){FS.FSNode=function(e,r,i,t){if(!e){e=this}this.parent=e;this.mount=e.mount;this.mounted=null;this.id=FS.nextInode++;this.name=r;this.mode=i;this.node_ops={};this.stream_ops={};this.rdev=t};FS.FSNode.prototype={};var e=292|73;var r=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return(this.mode&e)===e},set:function(r){r?this.mode|=e:this.mode&=~e}},write:{get:function(){return(this.mode&r)===r},set:function(e){e?this.mode|=r:this.mode&=~r}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var i=new FS.FSNode(t,n,o,a);FS.hashAddNode(i);return i},destroyNode:function(e){FS.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return(e&61440)===32768},isDir:function(e){return(e&61440)===16384},isLink:function(e){return(e&61440)===40960},isChrdev:function(e){return(e&61440)===8192},isBlkdev:function(e){return(e&61440)===24576},isFIFO:function(e){return(e&61440)===4096},isSocket:function(e){return(e&49152)===49152},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var r=FS.flagModes[e];if(typeof r==="undefined"){throw new Error("Unknown file open mode: "+e)}return r},flagsToPermissionString:function(e){var i=e&2097155;var r=["r","w","rw"][i];if(e&512){r+="w"}return r},nodePermissions:function(e,r){if(FS.ignorePermissions){return 0}if(r.indexOf("r")!==-1&&!(e.mode&292)){return ERRNO_CODES.EACCES}else if(r.indexOf("w")!==-1&&!(e.mode&146)){return ERRNO_CODES.EACCES}else if(r.indexOf("x")!==-1&&!(e.mode&73)){return ERRNO_CODES.EACCES}return 0},mayLookup:function(e){var r=FS.nodePermissions(e,"x");if(r)return r;if(!e.node_ops.lookup)return ERRNO_CODES.EACCES;return 0},mayCreate:function(e,r){try{var i=FS.lookupNode(e,r);return ERRNO_CODES.EEXIST}catch(t){}return FS.nodePermissions(e,"wx")},mayDelete:function(r,t,n){var e;try{e=FS.lookupNode(r,t)}catch(o){return o.errno}var i=FS.nodePermissions(r,"wx");if(i){return i}if(n){if(!FS.isDir(e.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(e)||FS.getPath(e)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(e.mode)){return ERRNO_CODES.EISDIR}}return 0},mayOpen:function(e,r){if(!e){return ERRNO_CODES.ENOENT}if(FS.isLink(e.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(e.mode)){if((r&2097155)!==0||r&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(e,FS.flagsToPermissionString(r))},MAX_OPEN_FDS:4096,nextfd:function(r,i){r=r||0;i=i||FS.MAX_OPEN_FDS;for(var e=r;e<=i;e++){if(!FS.streams[e]){return e}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)},getStream:function(e){return FS.streams[e]},createStream:function(e,n,o){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}})}var r=new FS.FSStream;for(var i in e){r[i]=e[i]}e=r;var t=FS.nextfd(n,o);e.fd=t;FS.streams[t]=e;return e},closeStream:function(e){FS.streams[e]=null},getStreamFromPtr:function(e){return FS.streams[e-1]},getPtrForStream:function(e){return e?e.fd+1:0},chrdev_stream_ops:{open:function(e){var r=FS.getDevice(e.node.rdev);e.stream_ops=r.stream_ops;if(e.stream_ops.open){e.stream_ops.open(e)}},llseek:function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}},major:function(e){return e>>8},minor:function(e){return e&255},makedev:function(e,r){return e<<8|r},registerDevice:function(e,r){FS.devices[e]={stream_ops:r}},getDevice:function(e){return FS.devices[e]},getMounts:function(t){var r=[];var e=[t];while(e.length){var i=e.pop();r.push(i);e.push.apply(e,i.mounts)}return r},syncfs:function(e,i){if(typeof e==="function"){i=e;e=false}var t=FS.getMounts(FS.root.mount);var n=0;function r(e){if(e){if(!r.errored){r.errored=true;return i(e)}return}if(++n>=t.length){i(null)}}t.forEach(function(i){if(!i.type.syncfs){return r(null)}i.type.syncfs(i,e,r)})},mount:function(o,s,r){var n=r==="/";var f=!r;var e;if(n&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!n&&!f){var a=FS.lookupPath(r,{follow_mount:false});r=a.path;e=a.node;if(FS.isMountpoint(e)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(e.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var i={type:o,opts:s,mountpoint:r,mounts:[]};var t=o.mount(i);t.mount=i;i.root=t;if(n){FS.root=t}else if(e){e.mounted=i;if(e.mount){e.mount.mounts.push(i)}}return t},unmount:function(n){var r=FS.lookupPath(n,{follow_mount:false});if(!FS.isMountpoint(r.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var e=r.node;var i=e.mounted;var o=FS.getMounts(i);Object.keys(FS.nameTable).forEach(function(r){var e=FS.nameTable[r];while(e){var i=e.name_next;if(o.indexOf(e.mount)!==-1){FS.destroyNode(e)}e=i}});e.mounted=null;var t=e.mount.mounts.indexOf(i);assert(t!==-1);e.mount.mounts.splice(t,1)},lookup:function(e,r){return e.node_ops.lookup(e,r)},mknod:function(i,n,o){var a=FS.lookupPath(i,{parent:true});var r=a.node;var e=PATH.basename(i);if(!e||e==="."||e===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var t=FS.mayCreate(r,e);if(t){throw new FS.ErrnoError(t)}if(!r.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return r.node_ops.mknod(r,e,n,o)},create:function(r,e){e=e!==undefined?e:438;e&=4095;e|=32768;return FS.mknod(r,e,0)},mkdir:function(r,e){e=e!==undefined?e:511;e&=511|512;e|=16384;return FS.mknod(r,e,0)},mkdev:function(i,e,r){if(typeof r==="undefined"){r=e;e=438}e|=8192;return FS.mknod(i,e,r)},symlink:function(r,i){if(!PATH.resolve(r)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var o=FS.lookupPath(i,{parent:true});var e=o.node;if(!e){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var t=PATH.basename(i);var n=FS.mayCreate(e,t);if(n){throw new FS.ErrnoError(n)}if(!e.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return e.node_ops.symlink(e,t,r)},rename:function(r,t){var h=PATH.dirname(r);var m=PATH.dirname(t);var d=PATH.basename(r);var f=PATH.basename(t);var s,e,i;try{s=FS.lookupPath(r,{parent:true});e=s.node;s=FS.lookupPath(t,{parent:true});i=s.node}catch(l){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!e||!i)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(e.mount!==i.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var o=FS.lookupNode(e,d);var u=PATH.relative(r,m);if(u.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}u=PATH.relative(t,h);if(u.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var a;try{a=FS.lookupNode(i,f)}catch(l){}if(o===a){return}var c=FS.isDir(o.mode);var n=FS.mayDelete(e,d,c);if(n){throw new FS.ErrnoError(n)}n=a?FS.mayDelete(i,f,c):FS.mayCreate(i,f);if(n){throw new FS.ErrnoError(n)}if(!e.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(o)||a&&FS.isMountpoint(a)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(i!==e){n=FS.nodePermissions(e,"w");if(n){throw new FS.ErrnoError(n)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](r,t)}}catch(l){console.log("FS.trackingDelegate['willMovePath']('"+r+"', '"+t+"') threw an exception: "+l.message)}FS.hashRemoveNode(o);try{e.node_ops.rename(o,i,f)}catch(l){throw l}finally{FS.hashAddNode(o)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](r,t)}catch(l){console.log("FS.trackingDelegate['onMovePath']('"+r+"', '"+t+"') threw an exception: "+l.message)}},rmdir:function(e){var a=FS.lookupPath(e,{parent:true});var r=a.node;var i=PATH.basename(e);var t=FS.lookupNode(r,i);var n=FS.mayDelete(r,i,true);if(n){throw new FS.ErrnoError(n)}if(!r.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(t)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](e)}}catch(o){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+o.message)}r.node_ops.rmdir(r,i);FS.destroyNode(t);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](e)}catch(o){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+o.message)}},readdir:function(r){var i=FS.lookupPath(r,{follow:true});var e=i.node;if(!e.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return e.node_ops.readdir(e)},unlink:function(e){var a=FS.lookupPath(e,{parent:true});var r=a.node;var t=PATH.basename(e);var n=FS.lookupNode(r,t);var i=FS.mayDelete(r,t,false);if(i){if(i===ERRNO_CODES.EISDIR)i=ERRNO_CODES.EPERM;throw new FS.ErrnoError(i)}if(!r.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(n)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](e)}}catch(o){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+o.message)}r.node_ops.unlink(r,t);FS.destroyNode(n);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](e)}catch(o){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+o.message)}},readlink:function(i){var r=FS.lookupPath(i);var e=r.node;if(!e){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!e.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(r.node.parent),e.node_ops.readlink(e))},stat:function(r,i){var t=FS.lookupPath(r,{follow:!i});var e=t.node;if(!e){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!e.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return e.node_ops.getattr(e)},lstat:function(e){return FS.stat(e,true)},chmod:function(r,i,t){var e;if(typeof r==="string"){var n=FS.lookupPath(r,{follow:!t});e=n.node}else{e=r}if(!e.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}e.node_ops.setattr(e,{mode:i&4095|e.mode&~4095,timestamp:Date.now()})},lchmod:function(e,r){FS.chmod(e,r,true)},fchmod:function(r,i){var e=FS.getStream(r);if(!e){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(e.node,i)},chown:function(r,n,o,i){var e;if(typeof r==="string"){var t=FS.lookupPath(r,{follow:!i});e=t.node}else{e=r}if(!e.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}e.node_ops.setattr(e,{timestamp:Date.now()})},lchown:function(e,r,i){FS.chown(e,r,i,true)},fchown:function(r,i,t){var e=FS.getStream(r);if(!e){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(e.node,i,t)},truncate:function(r,i){if(i<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var e;if(typeof r==="string"){var n=FS.lookupPath(r,{follow:true});e=n.node}else{e=r}if(!e.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(e.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(e.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var t=FS.nodePermissions(e,"w");if(t){throw new FS.ErrnoError(t)}e.node_ops.setattr(e,{size:i,timestamp:Date.now()})},ftruncate:function(r,i){var e=FS.getStream(r);if(!e){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((e.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(e.node,i)},utime:function(r,i,t){var n=FS.lookupPath(r,{follow:true});var e=n.node;e.node_ops.setattr(e,{timestamp:Math.max(i,t)})},open:function(r,e,t,u,f){if(r===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}e=typeof e==="string"?FS.modeStringToFlags(e):e;t=typeof t==="undefined"?438:t;if(e&64){t=t&4095|32768}else{t=0}var i;if(typeof r==="object"){i=r}else{r=PATH.normalize(r);try{var c=FS.lookupPath(r,{follow:!(e&131072)});i=c.node}catch(l){}}var a=false;if(e&64){if(i){if(e&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{i=FS.mknod(r,t,0);a=true}}if(!i){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(i.mode)){e&=~512}if(!a){var s=FS.mayOpen(i,e);if(s){throw new FS.ErrnoError(s)}}if(e&512){FS.truncate(i,0)}e&=~(128|512);var n=FS.createStream({node:i,path:FS.getPath(i),flags:e,seekable:true,position:0,stream_ops:i.stream_ops,ungotten:[],error:false},u,f);if(n.stream_ops.open){n.stream_ops.open(n)}if(Module["logReadFiles"]&&!(e&1)){if(!FS.readFiles)FS.readFiles={};if(!(r in FS.readFiles)){FS.readFiles[r]=1;Module["printErr"]("read file: "+r)}}try{if(FS.trackingDelegate["onOpenFile"]){var o=0;if((e&2097155)!==1){o|=FS.tracking.openFlags.READ}if((e&2097155)!==0){o|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](r,o)}}catch(l){console.log("FS.trackingDelegate['onOpenFile']('"+r+"', flags) threw an exception: "+l.message)}return n},close:function(e){try{if(e.stream_ops.close){e.stream_ops.close(e)}}catch(r){throw r}finally{FS.closeStream(e.fd)}},llseek:function(e,r,i){if(!e.seekable||!e.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}e.position=e.stream_ops.llseek(e,r,i);e.ungotten=[];return e.position},read:function(e,o,a,i,r){if(i<0||r<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((e.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(e.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!e.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var t=true;if(typeof r==="undefined"){r=e.position;t=false}else if(!e.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var n=e.stream_ops.read(e,o,a,i,r);if(!t)e.position+=n;return n},write:function(e,o,a,i,r,s){if(i<0||r<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((e.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(e.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!e.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(e.flags&1024){FS.llseek(e,0,2)}var t=true;if(typeof r==="undefined"){r=e.position;t=false}else if(!e.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var n=e.stream_ops.write(e,o,a,i,r,s);if(!t)e.position+=n;try{if(e.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](e.path)}catch(f){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+f.message)}return n},allocate:function(e,r,i){if(r<0||i<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((e.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF); }if(!FS.isFile(e.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!e.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}e.stream_ops.allocate(e,r,i)},mmap:function(e,r,i,t,n,o,a){if((e.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!e.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return e.stream_ops.mmap(e,r,i,t,n,o,a)},msync:function(e,r,i,t,n){if(!e||!e.stream_ops.msync){return 0}return e.stream_ops.msync(e,r,i,t,n)},munmap:function(e){return 0},ioctl:function(e,r,i){if(!e.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return e.stream_ops.ioctl(e,r,i)},readFile:function(t,e){e=e||{};e.flags=e.flags||"r";e.encoding=e.encoding||"binary";if(e.encoding!=="utf8"&&e.encoding!=="binary"){throw new Error('Invalid encoding type "'+e.encoding+'"')}var r;var n=FS.open(t,e.flags);var a=FS.stat(t);var o=a.size;var i=new Uint8Array(o);FS.read(n,i,0,o,0);if(e.encoding==="utf8"){r=UTF8ArrayToString(i,0)}else if(e.encoding==="binary"){r=i}FS.close(n);return r},writeFile:function(n,r,e){e=e||{};e.flags=e.flags||"w";e.encoding=e.encoding||"utf8";if(e.encoding!=="utf8"&&e.encoding!=="binary"){throw new Error('Invalid encoding type "'+e.encoding+'"')}var i=FS.open(n,e.flags,e.mode);if(e.encoding==="utf8"){var t=new Uint8Array(lengthBytesUTF8(r)+1);var o=stringToUTF8Array(r,t,0,t.length);FS.write(i,t,0,o,0,e.canOwn)}else if(e.encoding==="binary"){FS.write(i,r,0,r.length,0,e.canOwn)}FS.close(i)},cwd:function(){return FS.currentPath},chdir:function(i){var e=FS.lookupPath(i,{follow:true});if(!FS.isDir(e.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var r=FS.nodePermissions(e.node,"x");if(r){throw new FS.ErrnoError(r)}FS.currentPath=e.path},createDefaultDirectories:function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(r,i,t,e,n){return e}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var e;if(typeof crypto!=="undefined"){var r=new Uint8Array(1);e=function(){crypto.getRandomValues(r);return r[0]}}else if(ENVIRONMENT_IS_NODE){e=function(){return require("crypto").randomBytes(1)[0]}}else{e=function(){return Math.random()*256|0}}FS.createDevice("/dev","random",e);FS.createDevice("/dev","urandom",e);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createStandardStreams:function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var e=FS.open("/dev/stdin","r");HEAP32[_stdin>>2]=FS.getPtrForStream(e);assert(e.fd===0,"invalid handle for stdin ("+e.fd+")");var r=FS.open("/dev/stdout","w");HEAP32[_stdout>>2]=FS.getPtrForStream(r);assert(r.fd===1,"invalid handle for stdout ("+r.fd+")");var i=FS.open("/dev/stderr","w");HEAP32[_stderr>>2]=FS.getPtrForStream(i);assert(i.fd===2,"invalid handle for stderr ("+i.fd+")")},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function e(e,r){this.node=r;this.setErrno=function(e){this.errno=e;for(var r in ERRNO_CODES){if(ERRNO_CODES[r]===e){this.code=r;break}}};this.setErrno(e);this.message=ERRNO_MESSAGES[e]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach(function(e){FS.genericErrors[e]=new FS.ErrnoError(e);FS.genericErrors[e].stack=""})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices()},init:function(e,r,i){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=e||Module["stdin"];Module["stdout"]=r||Module["stdout"];Module["stderr"]=i||Module["stderr"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;for(var e=0;ethis.length-1||e<0){return undefined}var r=e%this.chunkSize;var i=e/this.chunkSize|0;return this.getter(i)[r]};t.prototype.setDataGetter=function d(e){this.getter=e};t.prototype.cacheLength=function h(){var e=new XMLHttpRequest;e.open("HEAD",r,false);e.send(null);if(!(e.status>=200&&e.status<300||e.status===304))throw new Error("Couldn't load "+r+". Status: "+e.status);var i=Number(e.getResponseHeader("Content-length"));var o;var a=(o=e.getResponseHeader("Accept-Ranges"))&&o==="bytes";var t=1024*1024;if(!a)t=i;var s=function(o,n){if(o>n)throw new Error("invalid range ("+o+", "+n+") or no bytes requested!");if(n>i-1)throw new Error("only "+i+" bytes available! programmer error!");var e=new XMLHttpRequest;e.open("GET",r,false);if(i!==t)e.setRequestHeader("Range","bytes="+o+"-"+n);if(typeof Uint8Array!="undefined")e.responseType="arraybuffer";if(e.overrideMimeType){e.overrideMimeType("text/plain; charset=x-user-defined")}e.send(null);if(!(e.status>=200&&e.status<300||e.status===304))throw new Error("Couldn't load "+r+". Status: "+e.status);if(e.response!==undefined){return new Uint8Array(e.response||[])}else{return intArrayFromString(e.responseText||"",true)}};var n=this;n.setDataGetter(function(e){var o=e*t;var r=(e+1)*t-1;r=Math.min(r,i-1);if(typeof n.chunks[e]==="undefined"){n.chunks[e]=s(o,r)}if(typeof n.chunks[e]==="undefined")throw new Error("doXHR failed!");return n.chunks[e]});this._length=i;this._chunkSize=t;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var n=new t;Object.defineProperty(n,"length",{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}});Object.defineProperty(n,"chunkSize",{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}});var i={isDevice:false,contents:n}}else{var i={isDevice:false,url:r}}var e=FS.createFile(a,l,i,s,f);if(i.contents){e.contents=i.contents}else if(i.url){e.contents=null;e.url=i.url}Object.defineProperty(e,"usedBytes",{get:function(){return this.contents.length}});var o={};var u=Object.keys(e.stream_ops);u.forEach(function(r){var i=e.stream_ops[r];o[r]=function t(){if(!FS.forceLoadFile(e)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return i.apply(null,arguments)}});o.read=function m(s,o,a,f,t){if(!FS.forceLoadFile(e)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var i=s.node.contents;if(t>=i.length)return 0;var n=Math.min(i.length-t,f);assert(n>=0);if(i.slice){for(var r=0;r=0;r--){var t=e[r];if(t==="."){e.splice(r,1)}else if(t===".."){e.splice(r,1);i++}else if(i){e.splice(r,1);i--}}if(n){for(;i--;i){e.unshift("..")}}return e},normalize:function(e){var r=e.charAt(0)==="/",i=e.substr(-1)==="/";e=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!r).join("/");if(!e&&!r){e="."}if(e&&i){e+="/"}return(r?"/":"")+e},dirname:function(t){var r=PATH.splitPath(t),i=r[0],e=r[1];if(!i&&!e){return"."}if(e){e=e.substr(0,e.length-1)}return i+e},basename:function(e){if(e==="/")return"/";var r=e.lastIndexOf("/");if(r===-1)return e;return e.substr(r+1)},extname:function(e){return PATH.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return PATH.normalize(e.join("/"))},join2:function(e,r){return PATH.normalize(e+"/"+r)},resolve:function(){var e="",r=false;for(var i=arguments.length-1;i>=-1&&!r;i--){var t=i>=0?arguments[i]:FS.cwd();if(typeof t!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!t){return""}e=t+"/"+e;r=t.charAt(0)==="/"}e=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!r).join("/");return(r?"/":"")+e||"."},relative:function(i,t){i=PATH.resolve(i).substr(1);t=PATH.resolve(t).substr(1);function s(r){var e=0;for(;e=0;i--){if(r[i]!=="")break}if(e>i)return[];return r.slice(e,i-e+1)}var n=s(i.split("/"));var o=s(t.split("/"));var f=Math.min(n.length,o.length);var a=f;for(var e=0;e0){var a=Date.now();var r=Browser.mainLoop.queue.shift();r.func(r.arg);if(Browser.mainLoop.remainingBlockers){var n=Browser.mainLoop.remainingBlockers;var o=n%1==0?n-1:Math.floor(n);if(r.counted){Browser.mainLoop.remainingBlockers=o}else{o=o+.5;Browser.mainLoop.remainingBlockers=(8*n+o)/9}}console.log('main loop blocker "'+r.name+'" took '+(Date.now()-a)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(t1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter(function(){if(typeof i!=="undefined"){Runtime.dynCall("vi",e,[i])}else{Runtime.dynCall("v",e)}});if(t0)_emscripten_set_main_loop_timing(0,1e3/r);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(n){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var e=Browser.mainLoop.timingMode;var r=Browser.mainLoop.timingValue;var i=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(i,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(e,r);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var i=Module["statusMessage"]||"Please wait...";var e=Browser.mainLoop.remainingBlockers;var r=Browser.mainLoop.expectedBlockers;if(e){if(e=6){var s=i>>r-6&63;r-=6;e+=t[s]}}if(r==2){e+=t[(i&3)<<4];e+=n+n}else if(r==4){e+=t[(i&15)<<2];e+=n}return e}e.src="data:audio/x-"+r.substr(-3)+";base64,"+o(t);n(e)};e.src=l;Browser.safeSetTimeout(function(){n(e)},1e4)}else{return s()}};Module["preloadPlugins"].push(t);var e=Module["canvas"];function r(){Browser.pointerLock=document["pointerLockElement"]===e||document["mozPointerLockElement"]===e||document["webkitPointerLockElement"]===e||document["msPointerLockElement"]===e}if(e){e.requestPointerLock=e["requestPointerLock"]||e["mozRequestPointerLock"]||e["webkitRequestPointerLock"]||e["msRequestPointerLock"]||function(){};e.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};e.exitPointerLock=e.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",r,false);document.addEventListener("mozpointerlockchange",r,false);document.addEventListener("webkitpointerlockchange",r,false);document.addEventListener("mspointerlockchange",r,false);if(Module["elementPointerLock"]){e.addEventListener("click",function(r){if(!Browser.pointerLock&&e.requestPointerLock){e.requestPointerLock();r.preventDefault()}},false)}}},createContext:function(i,e,s,n){if(e&&Module.ctx&&i==Module.canvas)return Module.ctx;var r;var t;if(e){var o={antialias:false,alpha:false};if(n){for(var a in n){o[a]=n[a]}}t=GL.createContext(i,o);if(t){r=GL.getContext(t).GLctx}i.style.backgroundColor="black"}else{r=i.getContext("2d")}if(!r)return null;if(s){if(!e)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=r;if(e)GL.makeContextCurrent(t);Module.useWebGL=e;Browser.moduleContextCreatedCallbacks.forEach(function(e){e()});Browser.init()}return r},destroyContext:function(e,r,i){},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function(n,o,t){Browser.lockPointer=n;Browser.resizeCanvas=o;Browser.vrDevice=t;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var e=Module["canvas"];function i(){Browser.isFullScreen=false;var r=e.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===r){e.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||function(){};e.cancelFullScreen=e.cancelFullScreen.bind(document);if(Browser.lockPointer)e.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{r.parentNode.insertBefore(e,r);r.parentNode.removeChild(r);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(e)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",i,false);document.addEventListener("mozfullscreenchange",i,false);document.addEventListener("webkitfullscreenchange",i,false);document.addEventListener("MSFullscreenChange",i,false)}var r=document.createElement("div");e.parentNode.insertBefore(r,e);r.appendChild(e);r.requestFullScreen=r["requestFullScreen"]||r["mozRequestFullScreen"]||r["msRequestFullscreen"]||(r["webkitRequestFullScreen"]?function(){r["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);if(t){r.requestFullScreen({vrDisplay:t})}else{r.requestFullScreen()}},nextRAF:0,fakeRequestAnimationFrame:function(r){var e=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=e+1e3/60}else{while(e+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var i=Math.max(Browser.nextRAF-e,0);setTimeout(r,i)},requestAnimationFrame:function d(e){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(e)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(e)}},safeCallback:function(e){return function(){if(!ABORT)return e.apply(null,arguments)}},allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=false},resumeAsyncCallbacks:function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];e.forEach(function(e){e()})}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){e()}else{Browser.queuedAsyncCallbacks.push(e)}})},safeSetTimeout:function(e,r){Module["noExitRuntime"]=true;return setTimeout(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){e()}else{Browser.queuedAsyncCallbacks.push(e)}},r)},safeSetInterval:function(e,r){Module["noExitRuntime"]=true;return setInterval(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){e()}},r)},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(e)},getMovementX:function(e){return e["movementX"]||e["mozMovementX"]||e["webkitMovementX"]||0},getMovementY:function(e){return e["movementY"]||e["mozMovementY"]||e["webkitMovementY"]||0},getMouseWheelDelta:function(e){var r=0;switch(e.type){case"DOMMouseScroll":r=e.detail;break;case"mousewheel":r=e.wheelDelta;break;case"wheel":r=e["deltaY"];break;default:throw"unrecognized mouse wheel event: "+e.type}return r},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(Browser.pointerLock){if(e.type!="mousemove"&&"mozMovementX"in e){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(e);Browser.mouseMovementY=Browser.getMovementY(e)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var i=Module["canvas"].getBoundingClientRect();var d=Module["canvas"].width;var l=Module["canvas"].height;var u=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var c=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(e.type==="touchstart"||e.type==="touchend"||e.type==="touchmove"){var r=e.touch;if(r===undefined){return}var a=r.pageX-(u+i.left);var s=r.pageY-(c+i.top);a=a*(d/i.width);s=s*(l/i.height);var t={x:a,y:s};if(e.type==="touchstart"){Browser.lastTouches[r.identifier]=t;Browser.touches[r.identifier]=t}else if(e.type==="touchend"||e.type==="touchmove"){var f=Browser.touches[r.identifier];if(!f)f=t;Browser.lastTouches[r.identifier]=f;Browser.touches[r.identifier]=t}return}var n=e.pageX-(u+i.left);var o=e.pageY-(c+i.top);n=n*(d/i.width);o=o*(l/i.height);Browser.mouseMovementX=n-Browser.mouseX;Browser.mouseMovementY=o-Browser.mouseY;Browser.mouseX=n;Browser.mouseY=o}},xhrLoad:function(i,t,r){var e=new XMLHttpRequest;e.open("GET",i,true);e.responseType="arraybuffer";e.onload=function n(){if(e.status==200||e.status==0&&e.response){t(e.response)}else{r()}};e.onerror=r;e.send(null)},asyncLoad:function(e,t,r,i){Browser.xhrLoad(e,function(r){assert(r,'Loading data file "'+e+'" failed (no arrayBuffer).');t(new Uint8Array(r));if(!i)removeRunDependency("al "+e)},function(i){if(r){r()}else{throw'Loading data file "'+e+'" failed.'}});if(!i)addRunDependency("al "+e)},resizeListeners:[],updateResizeListeners:function(){var e=Module["canvas"];Browser.resizeListeners.forEach(function(r){r(e.width,e.height)})},setCanvasSize:function(e,r,i){var t=Module["canvas"];Browser.updateCanvasDimensions(t,e,r);if(!i)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){if(typeof SDL!="undefined"){var e=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];e=e|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=e}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var e=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];e=e&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=e}Browser.updateResizeListeners()},updateCanvasDimensions:function(e,t,n){if(t&&n){e.widthNative=t;e.heightNative=n}else{t=e.widthNative;n=e.heightNative}var r=t;var i=n;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(r/i>>0}return i}Module["_memmove"]=_memmove;function ___errno_location(){return ___errno_state}var _BItoD=true;Module["_strcpy"]=_strcpy;var _exp=Math_exp;function _time(e){var r=Date.now()/1e3|0;if(e){HEAP32[e>>2]=r}return r}function _floor0_exportbundle(){Module["printErr"]("missing function: floor0_exportbundle");abort(-1)}___errno_state=Runtime.staticAlloc(4);HEAP32[___errno_state>>2]=0;Module["requestFullScreen"]=function h(e,r,i){ Browser.requestFullScreen(e,r,i)};Module["requestAnimationFrame"]=function m(e){Browser.requestAnimationFrame(e)};Module["setCanvasSize"]=function w(e,r,i){Browser.setCanvasSize(e,r,i)};Module["pauseMainLoop"]=function p(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function v(){Browser.mainLoop.resume()};Module["getUserMedia"]=function E(){Browser.getUserMedia()};Module["createContext"]=function _(e,r,i,t){return Browser.createContext(e,r,i,t)};FS.staticInit();__ATINIT__.unshift(function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()});__ATMAIN__.push(function(){FS.ignorePermissions=false});__ATEXIT__.push(function(){FS.quit()});Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;__ATINIT__.unshift(function(){TTY.init()});__ATEXIT__.push(function(){TTY.shutdown()});if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE>0]=a[e>>0];a[p+1>>0]=a[e+1>>0];a[p+2>>0]=a[e+2>>0];a[p+3>>0]=a[e+3>>0]}function un(e){e=e|0;a[p>>0]=a[e>>0];a[p+1>>0]=a[e+1>>0];a[p+2>>0]=a[e+2>>0];a[p+3>>0]=a[e+3>>0];a[p+4>>0]=a[e+4>>0];a[p+5>>0]=a[e+5>>0];a[p+6>>0]=a[e+6>>0];a[p+7>>0]=a[e+7>>0]}function Ei(e){e=e|0;l=e}function _i(){return l|0}function Ee(r){r=r|0;var i=0;e[r>>2]=0;e[r+4>>2]=0;e[r+8>>2]=0;e[r+12>>2]=0;i=u(256)|0;e[r+8>>2]=i;e[r+12>>2]=i;a[i>>0]=0;e[r+16>>2]=256;return}function Mi(i,r){i=i|0;r=r|0;var t=0,n=0,o=0;t=r>>3;n=i+12|0;if(!(e[n>>2]|0))return;o=r-(t<<3)|0;r=(e[i+8>>2]|0)+t|0;e[n>>2]=r;e[i+4>>2]=o;e[i>>2]=t;a[r>>0]=(k[r>>0]|0)&e[8+(o<<2)>>2];return}function s(i,l,u){i=i|0;l=l|0;u=u|0;var r=0,t=0,f=0,o=0,s=0;do if(u>>>0<=32){t=i+16|0;o=e[t>>2]|0;s=i+12|0;r=e[s>>2]|0;if((e[i>>2]|0)>=(o+-4|0)){if(!r)return;if((o|0)>2147483391)break;f=i+8|0;r=M(e[f>>2]|0,o+256|0)|0;if(!r)break;e[f>>2]=r;e[t>>2]=(e[t>>2]|0)+256;r=r+(e[i>>2]|0)|0;e[s>>2]=r}f=e[8+(u<<2)>>2]&l;o=i+4|0;l=e[o>>2]|0;t=l+u|0;a[r>>0]=k[r>>0]|0|f<7?(a[(e[s>>2]|0)+1>>0]=f>>>(8-(e[o>>2]|0)|0),(t|0)>15):0)?(a[(e[s>>2]|0)+2>>0]=f>>>(16-(e[o>>2]|0)|0),(t|0)>23):0)?(a[(e[s>>2]|0)+3>>0]=f>>>(24-(e[o>>2]|0)|0),(t|0)>31):0){r=e[o>>2]|0;if(!r){a[(e[s>>2]|0)+4>>0]=0;break}else{a[(e[s>>2]|0)+4>>0]=f>>>(32-r|0);break}}while(0);r=(t|0)/8|0;e[i>>2]=(e[i>>2]|0)+r;e[s>>2]=(e[s>>2]|0)+r;e[o>>2]=t&7;return}while(0);r=e[i+8>>2]|0;if(r)n(r);e[i>>2]=0;e[i+4>>2]=0;e[i+8>>2]=0;e[i+12>>2]=0;e[i+16>>2]=0;return}function pe(r){r=r|0;var i=0;i=e[r+8>>2]|0;if(i)n(i);e[r>>2]=0;e[r+4>>2]=0;e[r+8>>2]=0;e[r+12>>2]=0;e[r+16>>2]=0;return}function b(r){r=r|0;var i=0,t=0;i=r+12|0;if(!(e[i>>2]|0))return;t=e[r+8>>2]|0;e[i>>2]=t;a[t>>0]=0;e[r>>2]=0;e[r+4>>2]=0;return}function me(i,r){i=i|0;r=r|0;var o=0,n=0,t=0,a=0;if(r>>>0>32){r=-1;return r|0}a=e[8+(r<<2)>>2]|0;t=e[i+4>>2]|0;n=t+r|0;r=e[i>>2]|0;o=e[i+16>>2]|0;if((r|0)>=(o+-4|0)){if((r|0)>(o-(n+7>>3)|0)){r=-1;return r|0}if(!n){r=0;return r|0}}i=e[i+12>>2]|0;r=(k[i>>0]|0)>>>t;if((n|0)>8){r=(k[i+1>>0]|0)<<8-t|r;if((n|0)>16){r=(k[i+2>>0]|0)<<16-t|r;if((n|0)>24){r=(k[i+3>>0]|0)<<24-t|r;if(!((n|0)<33|(t|0)==0))r=(k[i+4>>0]|0)<<32-t|r}}}r=r&a;return r|0}function he(i,r){i=i|0;r=r|0;var o=0,t=0,n=0,a=0;n=i+4|0;r=(e[n>>2]|0)+r|0;o=e[i>>2]|0;t=e[i+16>>2]|0;if((o|0)>(t-(r+7>>3)|0)){e[i+12>>2]=0;e[i>>2]=t;r=1;e[n>>2]=r;return}else{t=(r|0)/8|0;a=i+12|0;e[a>>2]=(e[a>>2]|0)+t;e[i>>2]=o+t;r=r&7;e[n>>2]=r;return}}function m(t,r){t=t|0;r=r|0;var s=0,i=0,a=0,n=0,o=0,f=0,l=0;do if(r>>>0>32){i=t;s=t+4|0;r=e[t+16>>2]|0}else{l=e[8+(r<<2)>>2]|0;s=t+4|0;n=e[s>>2]|0;o=n+r|0;f=e[t>>2]|0;r=e[t+16>>2]|0;if((f|0)>=(r+-4|0)){if((f|0)>(r-(o+7>>3)|0)){i=t;break}if(!o){r=0;return r|0}}r=t+12|0;a=e[r>>2]|0;i=(k[a>>0]|0)>>>n;if((o|0)>8){i=(k[a+1>>0]|0)<<8-n|i;if((o|0)>16){i=(k[a+2>>0]|0)<<16-n|i;if((o|0)>24){i=(k[a+3>>0]|0)<<24-n|i;if(!((o|0)<33|(n|0)==0))i=(k[a+4>>0]|0)<<32-n|i}}}n=(o|0)/8|0;e[r>>2]=a+n;e[t>>2]=f+n;e[s>>2]=o&7;r=i&l;return r|0}while(0);e[t+12>>2]=0;e[i>>2]=r;e[s>>2]=1;r=-1;return r|0}function _(r){r=r|0;return(((e[r+4>>2]|0)+7|0)/8|0)+(e[r>>2]|0)|0}function Te(r){r=r|0;return e[r+8>>2]|0}function at(i,o){i=i|0;o=o|0;var r=0,t=0,a=0,s=0,f=0;if(!i){r=-1;return r|0}w(i|0,0,360)|0;e[i+4>>2]=16384;e[i+24>>2]=1024;t=u(16384)|0;e[i>>2]=t;r=u(4096)|0;a=i+16|0;e[a>>2]=r;s=u(8192)|0;f=i+20|0;e[f>>2]=s;do if(t){if((s|0)==0|(r|0)==0){n(t);r=e[a>>2]|0;break}e[i+336>>2]=o;r=0;return r|0}while(0);if(r)n(r);r=e[f>>2]|0;if(r)n(r);w(i|0,0,360)|0;r=-1;return r|0}function st(i){i=i|0;var r=0;if(!i)return 0;r=e[i>>2]|0;if(r)n(r);r=e[i+16>>2]|0;if(r)n(r);r=e[i+20>>2]|0;if(r)n(r);w(i|0,0,360)|0;return 0}function ft(r){r=r|0;var i=0,n=0,o=0,t=0;if(!r)return;a[(e[r>>2]|0)+22>>0]=0;a[(e[r>>2]|0)+23>>0]=0;a[(e[r>>2]|0)+24>>0]=0;a[(e[r>>2]|0)+25>>0]=0;n=e[r+4>>2]|0;if((n|0)>0){o=e[r>>2]|0;i=0;t=0;do{i=e[144+(((k[o+t>>0]|0)^i>>>24)<<2)>>2]^i<<8;t=t+1|0}while((t|0)<(n|0))}else i=0;o=e[r+12>>2]|0;if((o|0)>0){n=e[r+8>>2]|0;t=0;do{i=e[144+(((k[n+t>>0]|0)^i>>>24)<<2)>>2]^i<<8;t=t+1|0}while((t|0)<(o|0))}a[(e[r>>2]|0)+22>>0]=i;a[(e[r>>2]|0)+23>>0]=i>>>8;a[(e[r>>2]|0)+24>>0]=i>>>16;a[(e[r>>2]|0)+25>>0]=i>>>24;return}function lt(o,s,h,S,E,v){o=o|0;s=s|0;h=h|0;S=S|0;E=E|0;v=v|0;var t=0,a=0,i=0,f=0,m=0,u=0,c=0,r=0,_=0,p=0,g=0;if(!o){r=-1;return r|0}c=e[o>>2]|0;if(!c){r=-1;return r|0}if(!s){r=0;return r|0}m=(h|0)>0;e:do if(m){t=0;i=0;while(1){a=e[s+(i<<3)+4>>2]|0;if((a|0)<0|(t|0)>(2147483647-a|0)){t=-1;break}t=a+t|0;i=i+1|0;if((i|0)>=(h|0))break e}return t|0}else t=0;while(0);r=(t|0)/255|0;_=r+1|0;f=o+12|0;i=e[f>>2]|0;u=o+8|0;if(i){p=e[u>>2]|0;a=p-i|0;e[u>>2]=a;if((p|0)!=(i|0))B(c|0,c+i|0,a|0)|0;e[f>>2]=0}f=o+4|0;i=e[f>>2]|0;do if((i-t|0)<=(e[u>>2]|0)){if((i|0)>(2147483647-t|0)){t=e[o>>2]|0;if(t)n(t);t=e[o+16>>2]|0;if(t)n(t);t=e[o+20>>2]|0;if(t)n(t);w(o|0,0,360)|0;r=-1;return r|0}i=i+t|0;i=(i|0)<2147482623?i+1024|0:i;a=M(e[o>>2]|0,i)|0;if(a){e[f>>2]=i;e[o>>2]=a;break}t=e[o>>2]|0;if(t)n(t);t=e[o+16>>2]|0;if(t)n(t);t=e[o+20>>2]|0;if(t)n(t);w(o|0,0,360)|0;r=-1;return r|0}while(0);if(dr(o,_)|0){r=-1;return r|0}if(m){a=e[u>>2]|0;i=0;do{c=s+(i<<3)+4|0;d((e[o>>2]|0)+a|0,e[s+(i<<3)>>2]|0,e[c>>2]|0)|0;a=(e[u>>2]|0)+(e[c>>2]|0)|0;e[u>>2]=a;i=i+1|0}while((i|0)!=(h|0))}m=o+28|0;u=e[m>>2]|0;c=e[o+16>>2]|0;if((t|0)>254){i=o+352|0;a=e[o+20>>2]|0;h=(r|0)>1;f=0;do{s=u+f|0;e[c+(s<<2)>>2]=255;g=i;p=e[g+4>>2]|0;s=a+(s<<3)|0;e[s>>2]=e[g>>2];e[s+4>>2]=p;f=f+1|0}while((f|0)<(r|0));f=i;i=h?r:1}else{f=o+352|0;a=e[o+20>>2]|0;i=0}r=u+i|0;e[c+(r<<2)>>2]=(t|0)%255|0;r=a+(r<<3)|0;e[r>>2]=E;e[r+4>>2]=v;r=f;e[r>>2]=E;e[r+4>>2]=v;r=c+(u<<2)|0;e[r>>2]=e[r>>2]|256;e[m>>2]=u+_;r=o+344|0;s=r;s=N(e[s>>2]|0,e[s+4>>2]|0,1,0)|0;e[r>>2]=s;e[r+4>>2]=l;if(!S){r=0;return r|0}e[o+328>>2]=1;r=0;return r|0}function Q(n,r){n=n|0;r=r|0;var o=0,a=0,t=0;o=i;i=i+16|0;t=o;e[t>>2]=e[r>>2];e[t+4>>2]=e[r+4>>2];a=r+16|0;r=lt(n,t,1,e[r+12>>2]|0,e[a>>2]|0,e[a+4>>2]|0)|0;i=o;return r|0}function De(e,r){e=e|0;r=r|0;return Le(e,r,1,4096)|0}function Pe(i,t){i=i|0;t=t|0;var r=0,n=0;if(!i){r=0;return r|0}if(!(e[i>>2]|0)){r=0;return r|0}r=(e[i+28>>2]|0)==0;if(!(e[i+328>>2]|0))if(!r?(e[i+332>>2]|0)==0:0)n=7;else r=0;else if(r)r=0;else n=7;if((n|0)==7)r=1;r=Le(i,t,r,4096)|0;return r|0}function dr(i,t){i=i|0;t=t|0;var r=0,a=0,s=0,o=0;s=i+24|0;r=e[s>>2]|0;if((r-t|0)>(e[i+28>>2]|0)){r=0;return r|0}if((r|0)>(2147483647-t|0)){r=e[i>>2]|0;if(r)n(r);r=e[i+16>>2]|0;if(r)n(r);r=e[i+20>>2]|0;if(r)n(r);w(i|0,0,360)|0;r=-1;return r|0}r=r+t|0;r=(r|0)<2147483615?r+32|0:r;o=i+16|0;t=M(e[o>>2]|0,r<<2)|0;if(!t){r=e[i>>2]|0;if(r)n(r);r=e[o>>2]|0;if(r)n(r);r=e[i+20>>2]|0;if(r)n(r);w(i|0,0,360)|0;r=-1;return r|0}e[o>>2]=t;a=i+20|0;t=M(e[a>>2]|0,r<<3)|0;if(t){e[a>>2]=t;e[s>>2]=r;r=0;return r|0}r=e[i>>2]|0;if(r)n(r);r=e[o>>2]|0;if(r)n(r);r=e[a>>2]|0;if(r)n(r);w(i|0,0,360)|0;r=-1;return r|0}function Le(r,E,w,g){r=r|0;E=E|0;w=w|0;g=g|0;var i=0,o=0,S=0,t=0,l=0,v=0,d=0,h=0,f=0,m=0,p=0,s=0,u=0,_=0,A=0,M=0,b=0,y=0,c=0,n=0,F=0,k=0;k=r+28|0;S=e[k>>2]|0;b=(S|0)>255?255:S;if(!r){n=0;return n|0}F=e[r>>2]|0;if((b|0)==0|(F|0)==0){n=0;return n|0}c=r+332|0;n=(e[c>>2]|0)==0;e:do if(!n)if((b|0)>0){i=r+16|0;A=r+20|0;M=0;s=-1;o=-1;h=-1;f=-1;m=-1;p=-1;d=-1;v=-1;l=0;_=0;t=0;while(1){if((M|0)>(g|0)&(l|0)>3){w=1;l=s;break}u=e[(e[i>>2]|0)+(t<<2)>>2]&255;if((u|0)==255)l=0;else{f=(e[A>>2]|0)+(t<<3)|0;s=e[f>>2]|0;f=e[f+4>>2]|0;_=_+1|0;v=T(s|0,f|0,8)|0;o=T(s|0,f|0,16)|0;h=T(s|0,f|0,24)|0;m=T(s|0,f|0,40)|0;p=T(s|0,f|0,48)|0;d=T(s|0,f|0,56)|0;s=s&255;o=o&255;h=h&255;f=f&255;m=m&255;p=p&255;d=d&255;v=v&255;l=_}t=t+1|0;if((t|0)<(b|0))M=u+M|0;else{l=s;break}}if((t|0)==255){g=l;_=o;u=255}else y=14}else{l=-1;o=-1;h=-1;f=-1;m=-1;p=-1;d=-1;v=-1;t=0;y=14}else{o=r+16|0;i=0;while(1){if((i|0)>=(b|0)){l=0;o=0;h=0;f=0;m=0;p=0;d=0;v=0;t=i;y=14;break e}t=i+1|0;if((e[(e[o>>2]|0)+(i<<2)>>2]&255|0)==255)i=t;else{l=0;o=0;h=0;f=0;m=0;p=0;d=0;v=0;y=14;break}}}while(0);if((y|0)==14)if(!w){n=0;return n|0}else{g=l;_=o;u=t}s=r+40|0;a[s>>0]=79;a[s+1>>0]=103;a[s+2>>0]=103;a[s+3>>0]=83;a[r+44>>0]=0;t=r+45|0;a[t>>0]=0;w=r+16|0;o=e[w>>2]|0;i=(e[o>>2]|0)>>>8&1^1;l=i|2;a[t>>0]=n?l:i;if((e[r+328>>2]|0)!=0&(S|0)==(u|0))a[t>>0]=(n?l:i)|4;e[c>>2]=1;a[r+46>>0]=g;a[r+47>>0]=v;a[r+48>>0]=_;a[r+49>>0]=h;a[r+50>>0]=f;a[r+51>>0]=m;a[r+52>>0]=p;a[r+53>>0]=d;t=e[r+336>>2]|0;a[r+54>>0]=t;a[r+55>>0]=t>>>8;a[r+56>>0]=t>>>16;a[r+57>>0]=t>>>24;t=r+340|0;i=e[t>>2]|0;if((i|0)==-1){e[t>>2]=0;i=0}e[t>>2]=i+1;a[r+58>>0]=i;a[r+59>>0]=i>>>8;a[r+60>>0]=i>>>16;a[r+61>>0]=i>>>24;n=r+62|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[r+66>>0]=u;if((u|0)>0){i=e[o>>2]|0;a[r+67>>0]=i;i=i&255;if((u|0)!=1){o=1;do{n=e[(e[w>>2]|0)+(o<<2)>>2]|0;a[o+27+(r+40)>>0]=n;i=(n&255)+i|0;o=o+1|0}while((o|0)!=(u|0))}t=e[r>>2]|0;S=e[k>>2]|0;o=e[w>>2]|0}else{t=F;i=0}e[E>>2]=s;n=u+27|0;e[r+324>>2]=n;e[E+4>>2]=n;n=r+12|0;e[E+8>>2]=t+(e[n>>2]|0);e[E+12>>2]=i;c=S-u|0;e[k>>2]=c;B(o|0,o+(u<<2)|0,c<<2|0)|0;c=e[r+20>>2]|0;B(c|0,c+(u<<3)|0,e[k>>2]<<3|0)|0;e[n>>2]=(e[n>>2]|0)+i;ft(E);n=1;return n|0}function mr(i,n){i=i|0;n=n|0;var r=0,t=0,o=0;r=e[i+104>>2]|0;t=i+88|0;e[t>>2]=0;e[t+4>>2]=0;e[t+8>>2]=0;e[t+12>>2]=0;b(e[r+12>>2]|0);b(e[r+16>>2]|0);b(e[r+20>>2]|0);b(e[r+24>>2]|0);b(e[r+28>>2]|0);b(e[r+32>>2]|0);b(e[r+36>>2]|0);b(e[r+40>>2]|0);b(e[r+44>>2]|0);b(e[r+48>>2]|0);b(e[r+52>>2]|0);b(e[r+56>>2]|0);b(e[r+60>>2]|0);b(e[r+64>>2]|0);b(e[r+68>>2]|0);r=ke[e[(e[25664>>2]|0)+12>>2]&1](i)|0;if(r)return r|0;if(!n){r=0;return r|0}if(K(i)|0){r=-131;return r|0}o=i+4|0;e[n>>2]=Te(o)|0;e[n+4>>2]=_(o)|0;e[n+8>>2]=0;e[n+12>>2]=e[i+44>>2];o=i+48|0;r=e[o+4>>2]|0;t=n+16|0;e[t>>2]=e[o>>2];e[t+4>>2]=r;t=i+56|0;i=e[t+4>>2]|0;r=n+24|0;e[r>>2]=e[t>>2];e[r+4>>2]=i;r=0;return r|0}function wr(o,i){o=o|0;i=i|0;var r=0,a=0,n=0,s=0,f=0;n=e[o+28>>2]|0;r=i;a=r+48|0;do{e[r>>2]=0;r=r+4|0}while((r|0)<(a|0));r=e[n+3372>>2]|0;if((r|0)<=0)return;a=e[o+8>>2]|0;o=e[n>>2]|0;e[i+24>>2]=(e[n+4>>2]|0)/(o|0)|0;e[i>>2]=1;f=+(o>>1|0);s=+(a|0);e[i+12>>2]=~~+F(+(e[n+3360>>2]|0)*f/s);e[i+16>>2]=~~+F(+(e[n+3364>>2]|0)*f/s);e[i+20>>2]=~~+F(+(e[n+3368>>2]|0)*f/s);t[i+32>>3]=7;r=~~(+(r|0)*+t[n+3376>>3]);e[i+8>>2]=r;e[i+4>>2]=r;return}function pr(r){r=r|0;var i=0;i=r+48|0;do{e[r>>2]=0;r=r+4|0}while((r|0)<(i|0));return}function K(r){r=r|0;return(e[(e[(e[r+64>>2]|0)+104>>2]|0)+80>>2]|0)!=0|0}function Er(l){l=l|0;var u=0,i=0,r=0,o=0,d=0,m=0,v=0,R=0,B=0,y=0,E=0,k=0,A=0,S=0,w=0,g=0,b=0,L=0,T=0,c=0,h=0,n=0,O=0,a=0,N=0,D=0,P=0,p=0,M=0;w=e[l+104>>2]|0;E=e[l+64>>2]|0;a=e[E+104>>2]|0;E=e[E+4>>2]|0;m=e[E+28>>2]|0;y=a+112|0;r=~~+F(+t[y>>3]);u=(_(e[w+12+(r<<2)>>2]|0)|0)<<3;O=l+28|0;i=e[O>>2]|0;d=(i|0)==0;b=a+96|0;o=e[b>>2]|0;if(d){n=a+100|0;h=o;g=n;n=e[n>>2]|0}else{c=e[a+104>>2]|0;n=a+100|0;h=f(c,o)|0;g=n;n=f(c,e[n>>2]|0)|0}B=e[m+(i<<2)>>2]>>1;S=m+3372|0;c=~~(+(e[S>>2]|0)*+t[m+3376>>3]);i=a+120|0;if(!(e[a+80>>2]|0)){if(e[i>>2]|0){n=-1;return n|0}e[i>>2]=l;n=0;return n|0}e[i>>2]=l;T=a+92|0;i=e[T>>2]|0;if((i|0)>0){if(d)d=i;else d=f(e[a+104>>2]|0,i)|0;v=15/+t[m+3384>>3];m=a+84|0;o=e[m>>2]|0;i=o+(u-d)|0;e:do if((i|0)>(c|0)){if((u|0)>(d|0)&(r|0)>0?(u-d+o|0)>(c|0):0)while(1){o=r+-1|0;i=(_(e[w+12+(o<<2)>>2]|0)|0)<<3;if(!((i|0)>(d|0)&(r|0)>1)){r=o;break e}if((i-d+(e[m>>2]|0)|0)>(c|0))r=o;else{r=o;break}}}else if(((i|0)<(c|0)?(R=r+1|0,(u|0)<(d|0)&(R|0)<15):0)?(u-d+o|0)<(c|0):0){r=R;while(1){o=(_(e[w+12+(r<<2)>>2]|0)|0)<<3;i=r+1|0;if(!((o|0)<(d|0)&(i|0)<15))break e;if((o-d+(e[m>>2]|0)|0)<(c|0))r=i;else break}}while(0);N=+t[y>>3];D=+(B|0);p=+F(+(r|0)-N)/D;P=+(e[E+8>>2]|0);p=P*p;M=-v;p=pv?v:p)/P*D+N;t[y>>3]=v;r=~~+F(v);u=(_(e[w+12+(r<<2)>>2]|0)|0)<<3;o=e[b>>2]|0}e:do if((u|0)<(h|0)&(o|0)>0?(k=a+88|0,(u-h+(e[k>>2]|0)|0)<0):0){o=r;while(1){r=o+1|0;if((o|0)>13)break e;u=(_(e[w+12+(r<<2)>>2]|0)|0)<<3;if((u-h+(e[k>>2]|0)|0)<0)o=r;else break}}while(0);e:do if((u|0)>(n|0)&(e[g>>2]|0)>0?(A=a+88|0,(u-n+(e[A>>2]|0)|0)>(e[S>>2]|0)):0){o=r;while(1){r=o+-1|0;if((o|0)<1)break e;u=(_(e[w+12+(r<<2)>>2]|0)|0)<<3;if((u-n+(e[A>>2]|0)|0)>(e[S>>2]|0))o=r;else break}}while(0);if((r|0)<0){i=((e[S>>2]|0)+n-(e[a+88>>2]|0)|0)/8|0;e[a+124>>2]=0;r=w+12|0;if((_(e[r>>2]|0)|0)>(i|0)){Mi(e[r>>2]|0,i<<3);o=(_(e[r>>2]|0)|0)<<3}else o=u}else{l=(h+7-(e[a+88>>2]|0)|0)/8|0;i=(r|0)>14?14:r;e[a+124>>2]=i;i=w+12+(i<<2)|0;r=l-(_(e[i>>2]|0)|0)|0;l=e[i>>2]|0;if((r|0)>0)while(1){s(l,0,8);l=e[i>>2]|0;if((r|0)>1)r=r+-1|0;else break}o=(_(l)|0)<<3}if(!((e[b>>2]|0)<=0?(e[g>>2]|0)<=0:0))L=37;do if((L|0)==37){l=(n|0)>0;if(l&(o|0)>(n|0)){h=a+88|0;e[h>>2]=o-n+(e[h>>2]|0);break}u=(h|0)>0;if(u&(o|0)<(h|0)){n=a+88|0;e[n>>2]=o-h+(e[n>>2]|0);break}i=a+88|0;r=e[i>>2]|0;if((r|0)>(c|0))if(l){n=r+(o-n)|0;e[i>>2]=(n|0)<(c|0)?c:n;break}else{e[i>>2]=c;break}else if(u){n=r+(o-h)|0;e[i>>2]=(n|0)>(c|0)?c:n;break}else{e[i>>2]=c;break}}while(0);l=e[T>>2]|0;if((l|0)<=0){n=0;return n|0}if(e[O>>2]|0)l=f(e[a+104>>2]|0,l)|0;n=a+84|0;e[n>>2]=o-l+(e[n>>2]|0);n=0;return n|0}function Ce(r,i){r=r|0;i=i|0;var a=0,t=0,n=0,o=0;r=e[r+104>>2]|0;a=r+120|0;t=e[a>>2]|0;if(!t){r=0;return r|0}if(i){if(!(e[(e[(e[t+64>>2]|0)+104>>2]|0)+80>>2]|0))r=7;else r=e[r+124>>2]|0;o=(e[t+104>>2]|0)+12+(r<<2)|0;e[i>>2]=Te(e[o>>2]|0)|0;e[i+4>>2]=_(e[o>>2]|0)|0;e[i+8>>2]=0;e[i+12>>2]=e[t+44>>2];o=t+48|0;r=e[o+4>>2]|0;n=i+16|0;e[n>>2]=e[o>>2];e[n+4>>2]=r;n=t+56|0;t=e[n+4>>2]|0;r=i+24|0;e[r>>2]=e[n>>2];e[r+4>>2]=t}e[a>>2]=0;r=1;return r|0}function Sr(i,t){i=i|0;t=t|0;var n=0,o=0,a=0;n=t;o=n+112|0;do{e[n>>2]=0;n=n+4|0}while((n|0)<(o|0));e[t+64>>2]=i;e[t+76>>2]=0;e[t+68>>2]=0;if(!(e[i>>2]|0))return 0;o=h(1,72)|0;e[t+104>>2]=o;r[o+4>>2]=-9999;n=t+4|0;t=o+12|0;o=o+40|0;i=0;while(1)if((i|0)!=7){a=h(1,20)|0;e[t+(i<<2)>>2]=a;Ee(a);i=i+1|0;if((i|0)==15)break;else continue}else{e[o>>2]=n;Ee(n);i=8;continue}return 0}function g(n,i){n=n|0;i=i|0;var o=0,r=0,t=0,a=0,s=0,f=0,l=0;i=i+7&-8;o=n+72|0;r=e[o>>2]|0;t=n+76|0;a=n+68|0;s=e[a>>2]|0;if((r+i|0)<=(e[t>>2]|0)){a=s;t=r;r=a+t|0;i=t+i|0;e[o>>2]=i;return r|0}if(s){f=u(8)|0;l=n+80|0;e[l>>2]=(e[l>>2]|0)+r;r=n+84|0;e[f+4>>2]=e[r>>2];e[f>>2]=s;e[r>>2]=f}e[t>>2]=i;r=u(i)|0;e[a>>2]=r;e[o>>2]=0;t=0;r=r+t|0;i=t+i|0;e[o>>2]=i;return r|0}function br(i){i=i|0;var r=0,t=0,f=0,o=0,l=0,a=0,s=0;a=e[i+104>>2]|0;l=i+84|0;r=e[l>>2]|0;if(r)do{t=r;r=e[r+4>>2]|0;n(e[t>>2]|0);n(t)}while((r|0)!=0);o=i+80|0;f=e[o>>2]|0;t=i+68|0;r=e[t>>2]|0;if(f){s=i+76|0;r=M(r,(e[s>>2]|0)+f|0)|0;e[t>>2]=r;e[s>>2]=(e[s>>2]|0)+(e[o>>2]|0);e[o>>2]=0}e[i+72>>2]=0;e[l>>2]=0;if(r)n(r);if(!a){r=i+112|0;do{e[i>>2]=0;i=i+4|0}while((i|0)<(r|0));return 0}else t=0;while(1){r=a+12+(t<<2)|0;pe(e[r>>2]|0);if((t|0)==7){t=8;continue}n(e[r>>2]|0);t=t+1|0;if((t|0)==15)break}n(a);r=i+112|0;do{e[i>>2]=0;i=i+4|0}while((i|0)<(r|0));return 0}function yr(r,i){r=r|0;i=i|0;var t=0,n=0;if(Rr(r,i,1)|0){r=1;return r|0}t=e[r+104>>2]|0;e[t+60>>2]=gi(i)|0;n=h(1,180)|0;e[t>>2]=n;Ir(n,i);wr(i,t+80|0);r=r+64|0;e[r>>2]=3;e[r+4>>2]=0;r=0;return r|0}function xe(a){a=a|0;var r=0,t=0,u=0,i=0,s=0,l=0,h=0,f=0,c=0,d=0,m=0,w=0,p=0,o=0;if(!a)return;d=e[a+4>>2]|0;m=(d|0)!=0;if(m)f=e[d+28>>2]|0;else f=0;o=e[a+104>>2]|0;p=(o|0)!=0;if(p){i=e[o>>2]|0;if(i){xr(i);n(e[o>>2]|0)}i=o+12|0;t=e[i>>2]|0;if(t){ce(e[t>>2]|0);n(e[e[i>>2]>>2]|0);n(e[i>>2]|0)}i=o+16|0;t=e[i>>2]|0;if(t){ce(e[t>>2]|0);n(e[e[i>>2]>>2]|0);n(e[i>>2]|0)}s=o+48|0;t=e[s>>2]|0;if(t){if((f|0)!=0?(l=f+16|0,(e[l>>2]|0)>0):0){r=f+800|0;R[e[(e[25640+(e[r>>2]<<2)>>2]|0)+16>>2]&7](e[t>>2]|0);if((e[l>>2]|0)>1){i=1;do{R[e[(e[25640+(e[r+(i<<2)>>2]<<2)>>2]|0)+16>>2]&7](e[(e[s>>2]|0)+(i<<2)>>2]|0);i=i+1|0}while((i|0)<(e[l>>2]|0))}t=e[s>>2]|0}n(t)}r=o+52|0;t=e[r>>2]|0;if(t){if((f|0)!=0?(h=f+20|0,(e[h>>2]|0)>0):0){s=f+1312|0;R[e[(e[25648+(e[s>>2]<<2)>>2]|0)+16>>2]&7](e[t>>2]|0);if((e[h>>2]|0)>1){i=1;do{R[e[(e[25648+(e[s+(i<<2)>>2]<<2)>>2]|0)+16>>2]&7](e[(e[r>>2]|0)+(i<<2)>>2]|0);i=i+1|0}while((i|0)<(e[h>>2]|0))}t=e[r>>2]|0}n(t)}i=o+56|0;r=e[i>>2]|0;if(r){if((f|0)!=0?(c=f+28|0,(e[c>>2]|0)>0):0){Ze(r);if((e[c>>2]|0)>1){t=1;do{Ze((e[i>>2]|0)+(t*52|0)|0);t=t+1|0}while((t|0)<(e[c>>2]|0))}r=e[i>>2]|0}n(r)}r=e[o+60>>2]|0;if(r)bi(r);pr(o+80|0);ar(o+20|0);ar(o+32|0)}s=a+8|0;r=e[s>>2]|0;if(r){if(m?(w=d+4|0,u=e[w>>2]|0,(u|0)>0):0){t=0;while(1){r=e[r+(t<<2)>>2]|0;if(r){n(r);u=e[w>>2]|0}t=t+1|0;if((t|0)>=(u|0))break;r=e[s>>2]|0}r=e[s>>2]|0}n(r);r=e[a+12>>2]|0;if(r)n(r)}if(p){r=e[o+64>>2]|0;if(r)n(r);r=e[o+68>>2]|0;if(r)n(r);r=e[o+72>>2]|0;if(r)n(r);n(o)}r=a+112|0;do{e[a>>2]=0;a=a+4|0}while((a|0)<(r|0));return}function He(a,s){a=a|0;s=s|0;var t=0,i=0,o=0,r=0,l=0,c=0,u=0,f=0;t=e[a+4>>2]|0;i=e[a+104>>2]|0;r=i+64|0;o=e[r>>2]|0;if(o)n(o);e[r>>2]=0;r=i+68|0;o=e[r>>2]|0;if(o)n(o);e[r>>2]=0;o=i+72|0;i=e[o>>2]|0;if(i)n(i);e[o>>2]=0;c=a+20|0;r=e[c>>2]|0;l=a+16|0;if((r+s|0)>=(e[l>>2]|0)){r=r+(s<<1)|0;e[l>>2]=r;s=t+4|0;if((e[s>>2]|0)>0){t=a+8|0;i=M(e[e[t>>2]>>2]|0,r<<2)|0;e[e[t>>2]>>2]=i;i=e[s>>2]|0;if((i|0)>1){r=1;do{o=M(e[(e[t>>2]|0)+(r<<2)>>2]|0,e[l>>2]<<2)|0;e[(e[t>>2]|0)+(r<<2)>>2]=o;r=r+1|0;o=e[s>>2]|0}while((r|0)<(o|0));f=o;u=11}else{f=i;u=11}}}else{f=e[t+4>>2]|0;u=11}if((u|0)==11?(f|0)>0:0){r=a+8|0;o=e[c>>2]|0;t=a+12|0;i=0;do{e[(e[t>>2]|0)+(i<<2)>>2]=(e[(e[r>>2]|0)+(i<<2)>>2]|0)+(o<<2);i=i+1|0}while((i|0)<(f|0));t=e[t>>2]|0;return t|0}t=a+12|0;t=e[t>>2]|0;return t|0}function Fr(t,r){t=t|0;r=r|0;var n=0,o=0,u=0,s=0,f=0,l=0,c=0,a=0;a=i;n=e[t+4>>2]|0;o=e[n+28>>2]|0;if((r|0)>=1){n=t+20|0;r=(e[n>>2]|0)+r|0;if((r|0)>(e[t+16>>2]|0)){r=-131;i=a;return r|0}e[n>>2]=r;if(e[t+28>>2]|0){r=0;i=a;return r|0}if((r-(e[t+48>>2]|0)|0)<=(e[o+4>>2]|0)){r=0;i=a;return r|0}ze(t);r=0;i=a;return r|0}c=i;i=i+128|0;if(!(e[t+28>>2]|0))ze(t);l=o+4|0;He(t,(e[l>>2]|0)*3|0)|0;s=t+20|0;o=e[s>>2]|0;f=t+32|0;e[f>>2]=o;e[s>>2]=o+((e[l>>2]|0)*3|0);u=n+4|0;if((e[u>>2]|0)<=0){r=0;i=a;return r|0}r=t+8|0;n=o;o=0;while(1){if((n|0)>64){t=e[l>>2]|0;t=(n|0)>(t|0)?t:n;+je((e[(e[r>>2]|0)+(o<<2)>>2]|0)+(n-t<<2)|0,c,t,32);t=e[(e[r>>2]|0)+(o<<2)>>2]|0;n=e[f>>2]|0;We(c,t+(n+-32<<2)|0,32,t+(n<<2)|0,(e[s>>2]|0)-n|0)}else w((e[(e[r>>2]|0)+(o<<2)>>2]|0)+(n<<2)|0,0,(e[s>>2]|0)-n<<2|0)|0;o=o+1|0;if((o|0)>=(e[u>>2]|0)){r=0;break}n=e[f>>2]|0}i=a;return r|0}function Ue(c,t){c=c|0;t=t|0;var i=0,o=0,a=0,y=0,L=0,m=0,_=0,h=0,A=0,R=0,O=0,b=0,g=0,v=0,E=0,f=0,S=0,x=0,w=0,C=0,p=0,s=0,P=0,H=0,T=0,F=0,I=0,D=0,k=0;h=e[c+4>>2]|0;s=e[h+28>>2]|0;H=e[c+104>>2]|0;A=e[H+60>>2]|0;D=c+48|0;F=c+40|0;C=(e[D>>2]|0)-((e[s+(e[F>>2]<<2)>>2]|0)/2|0)|0;p=e[t+104>>2]|0;if(!(e[c+28>>2]|0)){t=0;return t|0}k=c+32|0;if((e[k>>2]|0)==-1){t=0;return t|0}o=Hr(c)|0;do if((o|0)==-1)if(!(e[k>>2]|0)){t=0;return t|0}else{T=c+44|0;e[T>>2]=0;i=0;break}else{i=c+44|0;if((e[s>>2]|0)==(e[s+4>>2]|0)){e[i>>2]=0;T=i;i=0;break}else{e[i>>2]=o;T=i;i=o;break}}while(0);w=e[s+(i<<2)>>2]|0;x=((e[s+(e[F>>2]<<2)>>2]|0)/4|0)+(e[D>>2]|0)+((w|0)/4|0)|0;P=c+20|0;if((e[P>>2]|0)<(x+((w|0)/2|0)|0)){t=0;return t|0}S=t+84|0;o=e[S>>2]|0;if(o)do{w=o;o=e[o+4>>2]|0;n(e[w>>2]|0);n(w)}while((o|0)!=0);E=t+80|0;a=e[E>>2]|0;if(a){f=t+68|0;w=t+76|0;e[f>>2]=M(e[f>>2]|0,(e[w>>2]|0)+a|0)|0;e[w>>2]=(e[w>>2]|0)+(e[E>>2]|0);e[E>>2]=0}v=t+72|0;e[v>>2]=0;e[S>>2]=0;w=c+36|0;a=e[w>>2]|0;e[t+24>>2]=a;f=e[F>>2]|0;e[t+28>>2]=f;o=e[T>>2]|0;e[t+32>>2]=o;do if(!f){a=p+8|0;if(!(Ur(c)|0)){e[a>>2]=1;break}else{e[a>>2]=0;break}}else{i=p+8|0;if((a|0)==0|(o|0)==0){e[i>>2]=0;break}else{e[i>>2]=1;break}}while(0);e[t+64>>2]=c;f=c+64|0;i=f;a=e[i>>2]|0;i=e[i+4>>2]|0;g=N(a|0,i|0,1,0)|0;e[f>>2]=g;e[f+4>>2]=l;f=t+56|0;e[f>>2]=a;e[f+4>>2]=i;f=c+56|0;i=f;a=e[i+4>>2]|0;g=t+48|0;e[g>>2]=e[i>>2];e[g+4>>2]=a;g=t+36|0;e[g>>2]=e[s+(e[F>>2]<<2)>>2];a=p+4|0;L=+r[a>>2];y=+r[A>>2];if(L>y){r[A>>2]=L;y=L}y=+Oi(y,c);r[A>>2]=y;r[a>>2]=y;b=h+4|0;i=e[b>>2]|0;h=(i<<2)+7&-8;o=e[v>>2]|0;R=t+76|0;m=e[R>>2]|0;O=t+68|0;a=e[O>>2]|0;if((h+o|0)>(m|0)){if(a){i=u(8)|0;e[E>>2]=(e[E>>2]|0)+o;e[i+4>>2]=e[S>>2];e[i>>2]=a;e[S>>2]=i}e[R>>2]=h;a=u(h)|0;e[O>>2]=a;e[v>>2]=0;o=0;i=e[b>>2]|0;_=h}else _=m;m=o+h|0;e[v>>2]=m;e[t>>2]=a+o;h=(i<<2)+7&-8;if((h+m|0)>(_|0)){if(a){i=u(8)|0;e[E>>2]=(e[E>>2]|0)+m;e[i+4>>2]=e[S>>2];e[i>>2]=a;e[S>>2]=i}e[R>>2]=h;a=u(h)|0;e[O>>2]=a;e[v>>2]=0;m=0;i=e[b>>2]|0;_=h}o=m+h|0;e[v>>2]=o;e[p>>2]=a+m;e:do if((i|0)>0){A=c+8|0;i=o;o=0;while(1){h=(e[g>>2]|0)+C<<2;m=h+7&-8;if((m+i|0)>(_|0)){if(a){_=u(8)|0;e[E>>2]=(e[E>>2]|0)+i;e[_+4>>2]=e[S>>2];e[_>>2]=a;e[S>>2]=_}e[R>>2]=m;a=u(m)|0;e[O>>2]=a;e[v>>2]=0;i=0}e[v>>2]=i+m;e[(e[p>>2]|0)+(o<<2)>>2]=a+i;d(e[(e[p>>2]|0)+(o<<2)>>2]|0,e[(e[A>>2]|0)+(o<<2)>>2]|0,h|0)|0;e[(e[t>>2]|0)+(o<<2)>>2]=(e[(e[p>>2]|0)+(o<<2)>>2]|0)+(C<<2);o=o+1|0;if((o|0)>=(e[b>>2]|0))break e;i=e[v>>2]|0;_=e[R>>2]|0;a=e[O>>2]|0}}while(0);p=e[k>>2]|0;if((p|0)!=0?(e[D>>2]|0)>=(p|0):0){e[k>>2]=-1;e[t+44>>2]=1;t=1;return t|0}a=(e[s+4>>2]|0)/2|0;o=x-a|0;if((o|0)<=0){t=1;return t|0}it(e[H>>2]|0,o);i=(e[P>>2]|0)-o|0;e[P>>2]=i;if((e[b>>2]|0)>0?(I=c+8|0,t=e[e[I>>2]>>2]|0,B(t|0,t+(o<<2)|0,i<<2|0)|0,(e[b>>2]|0)>1):0){i=1;do{t=e[(e[I>>2]|0)+(i<<2)>>2]|0;B(t|0,t+(o<<2)|0,e[P>>2]<<2|0)|0;i=i+1|0}while((i|0)<(e[b>>2]|0))}e[w>>2]=e[F>>2];e[F>>2]=e[T>>2];e[D>>2]=a;i=e[k>>2]|0;if(!i){s=f;s=N(e[s>>2]|0,e[s+4>>2]|0,o|0,((o|0)<0)<<31>>31|0)|0;t=f;e[t>>2]=s;e[t+4>>2]=l;t=1;return t|0}i=i-o|0;i=(i|0)<1?-1:i;e[k>>2]=i;if((i|0)>(a|0)){s=f;s=N(e[s>>2]|0,e[s+4>>2]|0,o|0,((o|0)<0)<<31>>31|0)|0;t=f;e[t>>2]=s;e[t+4>>2]=l;t=1;return t|0}else{s=i+o-a|0;t=f;s=N(e[t>>2]|0,e[t+4>>2]|0,s|0,((s|0)<0)<<31>>31|0)|0;t=f;e[t>>2]=s;e[t+4>>2]=l;t=1;return t|0}return 0}function Rr(f,m,s){f=f|0;m=m|0;s=s|0;var a=0,r=0,i=0,n=0,l=0,v=0,w=0,E=0,t=0,c=0,d=0,o=0,p=0;o=e[m+28>>2]|0;if(!o){t=1;return t|0}r=o+8|0;if((e[r>>2]|0)<1){t=1;return t|0}n=e[o>>2]|0;if((n|0)<64){t=1;return t|0}d=o+4|0;if((e[d>>2]|0)<(n|0)){t=1;return t|0}i=e[o+3656>>2]|0;l=f;n=l+112|0;do{e[l>>2]=0;l=l+4|0}while((l|0)<(n|0));c=h(1,136)|0;e[f+104>>2]=c;e[f+4>>2]=m;e[c+44>>2]=S((e[r>>2]|0)+-1|0)|0;p=h(1,4)|0;e[c+12>>2]=p;r=h(1,4)|0;l=c+16|0;e[l>>2]=r;n=h(1,20)|0;e[p>>2]=n;e[r>>2]=h(1,20)|0;ve(n,e[o>>2]>>i);ve(e[e[l>>2]>>2]|0,e[d>>2]>>i);e[c+4>>2]=(S(e[o>>2]|0)|0)+-7;e[c+8>>2]=(S(e[d>>2]|0)|0)+-7;e:do if(!s){l=o+2848|0;if((e[l>>2]|0)==0?(t=o+24|0,e[l>>2]=h(e[t>>2]|0,56)|0,a=e[t>>2]|0,(a|0)>0):0){r=0;while(1){n=o+1824+(r<<2)|0;i=e[n>>2]|0;if(!i)break;if(tt((e[l>>2]|0)+(r*56|0)|0,i)|0){E=20;break}fe(e[n>>2]|0);e[n>>2]=0;r=r+1|0;a=e[t>>2]|0;if((r|0)>=(a|0))break e}if((E|0)==20)a=e[t>>2]|0;if((a|0)>0){i=0;do{s=o+1824+(i<<2)|0;r=e[s>>2]|0;if(r){fe(r);e[s>>2]=0;a=e[t>>2]|0}i=i+1|0}while((i|0)<(a|0))}xe(f);t=-1;return t|0}}else{or(c+20|0,e[o>>2]|0);or(c+32|0,e[d>>2]|0);n=o+2848|0;if(((e[n>>2]|0)==0?(w=o+24|0,v=h(e[w>>2]|0,56)|0,e[n>>2]=v,(e[w>>2]|0)>0):0)?(nr(v,e[o+1824>>2]|0)|0,(e[w>>2]|0)>1):0){i=1;do{nr((e[n>>2]|0)+(i*56|0)|0,e[o+1824+(i<<2)>>2]|0)|0;i=i+1|0}while((i|0)<(e[w>>2]|0))}r=o+28|0;n=h(e[r>>2]|0,52)|0;s=c+56|0;e[s>>2]=n;r:do if((e[r>>2]|0)>0){a=o+2868|0;l=m+8|0;i=0;while(1){t=e[o+2852+(i<<2)>>2]|0;lr(n+(i*52|0)|0,t,a,(e[o+(e[t>>2]<<2)>>2]|0)/2|0,e[l>>2]|0);i=i+1|0;if((i|0)>=(e[r>>2]|0))break r;n=e[s>>2]|0}}while(0);e[f>>2]=1}while(0);n=e[d>>2]|0;e[f+16>>2]=n;i=e[m+4>>2]|0;t=i<<2;r=u(t)|0;s=f+8|0;e[s>>2]=r;e[f+12>>2]=u(t)|0;if((i|0)>0?(e[r>>2]=h(n,4)|0,(i|0)>1):0){r=1;do{t=e[s>>2]|0;e[t+(r<<2)>>2]=h(n,4)|0;r=r+1|0}while((r|0)<(i|0))}e[f+36>>2]=0;e[f+40>>2]=0;s=(e[d>>2]|0)/2|0;e[f+48>>2]=s;e[f+20>>2]=s;s=o+16|0;a=c+48|0;e[a>>2]=h(e[s>>2]|0,4)|0;n=o+20|0;i=c+52|0;e[i>>2]=h(e[n>>2]|0,4)|0;if((e[s>>2]|0)>0){r=0;do{t=y[e[(e[25640+(e[o+800+(r<<2)>>2]<<2)>>2]|0)+8>>2]&15](f,e[o+1056+(r<<2)>>2]|0)|0;e[(e[a>>2]|0)+(r<<2)>>2]=t;r=r+1|0}while((r|0)<(e[s>>2]|0))}if((e[n>>2]|0)>0)a=0;else{t=0;return t|0}do{t=y[e[(e[25648+(e[o+1312+(a<<2)>>2]<<2)>>2]|0)+8>>2]&15](f,e[o+1568+(a<<2)>>2]|0)|0;e[(e[i>>2]|0)+(a<<2)>>2]=t;a=a+1|0}while((a|0)<(e[n>>2]|0));a=0;return a|0}function ze(t){t=t|0;var n=0,r=0,o=0,c=0,d=0,f=0,u=0,a=0,l=0,s=0;s=i;i=i+64|0;d=s;f=t+20|0;n=e[f>>2]|0;a=i;i=i+((1*(n<<2)|0)+15&-16)|0;e[t+28>>2]=1;l=t+48|0;if((n-(e[l>>2]|0)|0)<=32){i=s;return}u=t+4|0;if((e[(e[u>>2]|0)+4>>2]|0)<=0){i=s;return}c=t+8|0;o=0;do{if((n|0)>0){t=e[(e[c>>2]|0)+(o<<2)>>2]|0;r=0;do{e[a+(r<<2)>>2]=e[t+(n+~r<<2)>>2];r=r+1|0}while((n|0)>(r|0))}+je(a,d,n-(e[l>>2]|0)|0,16);r=e[l>>2]|0;t=(e[f>>2]|0)-r|0;We(d,a+(t+-16<<2)|0,16,a+(t<<2)|0,r);n=e[f>>2]|0;if((n|0)>0){t=e[(e[c>>2]|0)+(o<<2)>>2]|0;r=0;do{e[t+(n+~r<<2)>>2]=e[a+(r<<2)>>2];r=r+1|0}while((n|0)>(r|0))}o=o+1|0}while((o|0)<(e[(e[u>>2]|0)+4>>2]|0));i=s;return}function Tr(t,n){t=t|0;n=n|0;var r=0,i=0,o=0,l=0,c=0,h=0,d=0,m=0,u=0;s(n,5653314,24);s(n,e[t>>2]|0,16);u=t+4|0;s(n,e[u>>2]|0,24);l=e[u>>2]|0;e:do if((l|0)>1){o=e[t+8>>2]|0;r=a[o>>0]|0;i=1;do{if(!(r<<24>>24))break e;d=r;r=a[o+i>>0]|0;if(r<<24>>24>24)break e;i=i+1|0}while((i|0)<(l|0))}else i=1;while(0);e:do if((i|0)!=(l|0)){s(n,0,1);o=e[u>>2]|0;r:do if((o|0)>0){r=e[t+8>>2]|0;i=0;do{if(!(a[r+i>>0]|0))break r;i=i+1|0}while((i|0)<(o|0))}else i=0;while(0);if((i|0)==(o|0)){s(n,0,1);if((e[u>>2]|0)<=0)break;i=t+8|0;r=0;while(1){s(n,(a[(e[i>>2]|0)+r>>0]|0)+-1|0,5);r=r+1|0;if((r|0)>=(e[u>>2]|0))break e}}s(n,1,1);if((e[u>>2]|0)>0){i=t+8|0;r=0;do{if(!(a[(e[i>>2]|0)+r>>0]|0))s(n,0,1);else{s(n,1,1);s(n,(a[(e[i>>2]|0)+r>>0]|0)+-1|0,5)}r=r+1|0}while((r|0)<(e[u>>2]|0))}}else{s(n,1,1);d=t+8|0;s(n,(a[e[d>>2]>>0]|0)+-1|0,5);i=e[u>>2]|0;if((i|0)>1){o=0;r=1;do{c=e[d>>2]|0;l=a[c+r>>0]|0;c=a[c+(r+-1)>>0]|0;if(l<<24>>24>c<<24>>24){h=l<<24>>24;l=c<<24>>24;while(1){s(n,r-o|0,S(i-o|0)|0);l=l+1|0;i=e[u>>2]|0;if((l|0)==(h|0)){o=r;break}else o=r}}r=r+1|0}while((r|0)<(i|0))}else{o=0;r=1}s(n,r-o|0,S(i-o|0)|0)}while(0);r=t+12|0;s(n,e[r>>2]|0,4);i=e[r>>2]|0;if((i|0)==2|(i|0)==1)m=28;else if(i){t=-1;return t|0}do if((m|0)==28){o=t+32|0;if(!(e[o>>2]|0)){t=-1;return t|0}s(n,e[t+16>>2]|0,32);s(n,e[t+20>>2]|0,32);l=t+24|0;s(n,(e[l>>2]|0)+-1|0,4);s(n,e[t+28>>2]|0,1);i=e[r>>2]|0;if((i|0)==1)i=Qi(t)|0;else if((i|0)==2)i=f(e[t>>2]|0,e[u>>2]|0)|0;else break;if((i|0)>0){r=0;do{t=e[(e[o>>2]|0)+(r<<2)>>2]|0;s(n,(t|0)>-1?t:0-t|0,e[l>>2]|0);r=r+1|0}while((r|0)!=(i|0))}}while(0);t=0;return t|0}function X(t,i,n){t=t|0;i=i|0;n=n|0;var r=0,o=0;if((i|0)<0){r=0;return r|0}r=t+12|0;o=e[r>>2]|0;if((e[o+4>>2]|0)<=(i|0)){r=0;return r|0}s(n,e[(e[t+20>>2]|0)+(i<<2)>>2]|0,a[(e[o+8>>2]|0)+i>>0]|0);r=a[(e[(e[r>>2]|0)+8>>2]|0)+i>>0]|0;return r|0}function J(i,r){i=i|0;r=r|0;if((e[i+8>>2]|0)<=0){r=-1;return r|0}r=W(i,r)|0;if((r|0)<=-1){r=-1;return r|0}r=e[(e[i+24>>2]|0)+(r<<2)>>2]|0;return r|0}function Pr(o,s,d,t){o=o|0;s=s|0;d=d|0;t=t|0;var a=0,n=0,u=0,h=0,l=0,m=0,c=0;c=i;if((e[o+8>>2]|0)<=0){s=0;i=c; return s|0}n=e[o>>2]|0;l=(t|0)/(n|0)|0;m=i;i=i+((1*(l<<2)|0)+15&-16)|0;h=(l|0)>0;e:do if(h){a=o+16|0;t=0;while(1){n=W(o,d)|0;if((n|0)==-1){t=-1;break}u=e[o>>2]|0;e[m+(t<<2)>>2]=(e[a>>2]|0)+((f(u,n)|0)<<2);t=t+1|0;if((t|0)>=(l|0))break e}i=c;return t|0}else u=n;while(0);if((u|0)<1|h^1){s=0;i=c;return s|0}else{t=0;n=0}while(1){a=0;do{o=s+(a+n<<2)|0;r[o>>2]=+r[o>>2]+ +r[(e[m+(a<<2)>>2]|0)+(t<<2)>>2];a=a+1|0}while((a|0)!=(l|0));t=t+1|0;if((t|0)>=(u|0)){t=0;break}else n=n+l|0}i=c;return t|0}function Lr(s,a,P,E){s=s|0;a=a|0;P=P|0;E=E|0;var t=0,o=0,p=0,n=0,i=0,ne=0,v=0,S=0,q=0,te=0,ie=0,J=0,j=0,Y=0,X=0,K=0,G=0,Z=0,Q=0,$=0,ee=0,re=0,g=0,u=0,w=0,R=0,m=0,k=0,h=0,A=0,d=0,y=0,c=0,M=0,_=0,z=0,F=0,b=0,O=0,T=0,N=0,D=0,l=0,L=0,B=0,C=0,I=0,x=0,H=0,V=0,U=0;if((e[s+8>>2]|0)<=0){l=0;return l|0}if((e[s>>2]|0)>8){if((E|0)<=0){l=0;return l|0}S=s+16|0;t=0;while(1){o=W(s,P)|0;if((o|0)==-1){t=-1;i=29;break}ne=e[S>>2]|0;v=e[s>>2]|0;i=f(v,o)|0;if((v|0)>0){o=(v|0)>1?v:1;n=t;p=0;while(1){U=a+(n<<2)|0;r[U>>2]=+r[U>>2]+ +r[ne+(p+i<<2)>>2];p=p+1|0;if((p|0)>=(v|0))break;else n=n+1|0}t=t+o|0}if((t|0)>=(E|0)){t=0;i=29;break}}if((i|0)==29)return t|0}p=s+16|0;if((E|0)>0)n=0;else{l=0;return l|0}e:while(1){r:while(1){t=W(s,P)|0;if((t|0)==-1){t=-1;i=29;break e}o=e[p>>2]|0;switch(e[s>>2]|0){case 5:{j=t;Q=o;i=17;break r}case 7:{ie=t;G=o;i=13;break r}case 3:{X=t;ee=o;i=21;break r}case 4:{Y=t;$=o;i=19;break r}case 2:{K=t;re=o;i=23;break r}case 6:{J=t;Z=o;i=15;break r}case 8:{q=o;te=t;i=12;break r}case 1:{_=t;z=o;l=n;V=0;break r}default:{}}}if((i|0)==12){g=te<<3;u=a+(n<<2)|0;r[u>>2]=+r[u>>2]+ +r[q+(g<<2)>>2];u=q;F=n+1|0;L=1;i=14}else if((i|0)==13){g=ie*7|0;u=G;F=n;L=0;i=14}else if((i|0)==15){w=J*6|0;R=Z;b=n;B=0;i=16}else if((i|0)==17){m=j*5|0;k=Q;O=n;C=0;i=18}else if((i|0)==19){h=Y<<2;A=$;T=n;I=0;i=20}else if((i|0)==21){d=X*3|0;y=ee;N=n;x=0;i=22}else if((i|0)==23){c=K<<1;M=re;D=n;H=0;i=24}if((i|0)==14){w=a+(F<<2)|0;r[w>>2]=+r[w>>2]+ +r[u+(L+g<<2)>>2];w=g;R=u;b=F+1|0;B=L+1|0;i=16}if((i|0)==16){m=a+(b<<2)|0;r[m>>2]=+r[m>>2]+ +r[R+(B+w<<2)>>2];m=w;k=R;O=b+1|0;C=B+1|0;i=18}if((i|0)==18){h=a+(O<<2)|0;r[h>>2]=+r[h>>2]+ +r[k+(C+m<<2)>>2];h=m;A=k;T=O+1|0;I=C+1|0;i=20}if((i|0)==20){d=a+(T<<2)|0;r[d>>2]=+r[d>>2]+ +r[A+(I+h<<2)>>2];d=h;y=A;N=T+1|0;x=I+1|0;i=22}if((i|0)==22){c=a+(N<<2)|0;r[c>>2]=+r[c>>2]+ +r[y+(x+d<<2)>>2];c=d;M=y;D=N+1|0;H=x+1|0;i=24}if((i|0)==24){i=0;_=a+(D<<2)|0;r[_>>2]=+r[_>>2]+ +r[M+(H+c<<2)>>2];_=c;z=M;l=D+1|0;V=H+1|0}n=l+1|0;S=a+(l<<2)|0;r[S>>2]=+r[S>>2]+ +r[z+(V+_<<2)>>2];if((n|0)>=(E|0)){t=0;i=29;break}}if((i|0)==29)return t|0;return 0}function Br(a,u,t,s,o,n){a=a|0;u=u|0;t=t|0;s=s|0;o=o|0;n=n|0;var i=0,h=0,m=0,l=0,c=0,w=0,d=0;if((e[a+8>>2]|0)<=0){o=0;return o|0}i=(t|0)/(s|0)|0;c=(n+t|0)/(s|0)|0;if((i|0)>=(c|0)){o=0;return o|0}w=a+16|0;t=0;n=i;while(1){i=W(a,o)|0;if((i|0)==-1){t=-1;n=8;break}m=e[w>>2]|0;l=e[a>>2]|0;h=f(l,i)|0;if((l|0)>0){i=t;t=0;do{d=i+1|0;i=(e[u+(i<<2)>>2]|0)+(n<<2)|0;r[i>>2]=+r[i>>2]+ +r[m+(t+h<<2)>>2];i=(d|0)==(s|0);n=(i&1)+n|0;i=i?0:d;t=t+1|0}while((t|0)<(l|0))}else i=t;if((n|0)<(c|0))t=i;else{t=0;n=8;break}}if((n|0)==8)return t|0;return 0}function W(t,o){t=t|0;o=o|0;var r=0,n=0,s=0,i=0,l=0,c=0,f=0,u=0;l=e[t+40>>2]|0;r=me(o,e[t+36>>2]|0)|0;do if((r|0)>-1){r=e[(e[t+32>>2]|0)+(r<<2)>>2]|0;if((r|0)<0){f=(e[t+8>>2]|0)-(r&32767)|0;n=r>>>15&32767;break}r=r+-1|0;he(o,a[(e[t+28>>2]|0)+r>>0]|0);return r|0}else{f=e[t+8>>2]|0;n=0}while(0);i=me(o,l)|0;r=(i|0)<0;if(r&(l|0)>1){r=l;do{r=r+-1|0;i=me(o,r)|0;s=(i|0)<0}while(s&(r|0)>1);l=r}else s=r;if(s){r=-1;return r|0}r=i>>>16|i<<16;r=r>>>8&16711935|r<<8&-16711936;r=r>>>4&252645135|r<<4&-252645136;r=r>>>2&858993459|r<<2&-858993460;r=r>>>1&1431655765|r<<1&-1431655766;i=f-n|0;if((i|0)>1){c=e[t+20>>2]|0;s=f;do{f=i>>1;u=(e[c+(f+n<<2)>>2]|0)>>>0>r>>>0;n=(u?0:f)+n|0;s=s-(u?f:0)|0;i=s-n|0}while((i|0)>1)}r=a[(e[t+28>>2]|0)+n>>0]|0;if((r|0)>(l|0)){he(o,l);r=-1;return r|0}else{he(o,r);r=n;return r|0}return 0}function Ir(i,t){i=i|0;t=t|0;var n=0,o=0,a=0,m=0,s=0,f=0,c=0,d=0,l=0;n=e[t+28>>2]|0;c=e[t+4>>2]|0;e[i+4>>2]=128;e[i+8>>2]=64;e[i+12>>2]=e[n+2932>>2];e[i>>2]=c;d=i+164|0;e[d>>2]=128;e[i+176>>2]=(e[n+4>>2]|0)/2|0;t=i+36|0;e[t>>2]=h(128,4)|0;ve(i+16|0,128);t=e[t>>2]|0;n=0;do{o=+I(+(+(n|0)*.024736950028266088));r[t+(n<<2)>>2]=o*o;n=n+1|0}while((n|0)!=128);e[i+40>>2]=2;e[i+44>>2]=4;e[i+56>>2]=4;e[i+60>>2]=5;e[i+72>>2]=6;e[i+76>>2]=6;e[i+88>>2]=9;e[i+92>>2]=8;e[i+104>>2]=13;e[i+108>>2]=8;e[i+120>>2]=17;e[i+124>>2]=8;e[i+136>>2]=22;e[i+140>>2]=8;f=4;t=0;while(1){a=u(f<<2)|0;e[i+40+(t<<4)+8>>2]=a;if((f|0)>0){m=+(f|0);n=i+40+(t<<4)+12|0;o=+r[n>>2];s=0;do{l=+I(+((+(s|0)+.5)/m*3.141592653589793));r[a+(s<<2)>>2]=l;o=o+l;s=s+1|0}while((s|0)!=(f|0));r[n>>2]=o}else{a=i+40+(t<<4)+12|0;n=a;o=+r[a>>2]}r[n>>2]=1/o;t=t+1|0;if((t|0)==7)break;f=e[i+40+(t<<4)+4>>2]|0}e[i+152>>2]=h(c*7|0,144)|0;e[i+160>>2]=h(e[d>>2]|0,4)|0;return}function xr(r){r=r|0;ce(r+16|0);n(e[r+48>>2]|0);n(e[r+64>>2]|0);n(e[r+80>>2]|0);n(e[r+96>>2]|0);n(e[r+112>>2]|0);n(e[r+128>>2]|0);n(e[r+144>>2]|0);n(e[r+36>>2]|0);n(e[r+152>>2]|0);n(e[r+160>>2]|0);w(r|0,0,180)|0;return}function Hr(l){l=l|0;var t=0,s=0,u=0,o=0,r=0,a=0,i=0,d=0,w=0,c=0,m=0,p=0,h=0,n=0,v=0;h=e[(e[l+4>>2]|0)+28>>2]|0;c=h+2868|0;n=e[e[l+104>>2]>>2]|0;p=n+168|0;w=n+8|0;r=e[w>>2]|0;i=(e[p>>2]|0)/(r|0)|0;r=(e[l+20>>2]|0)/(r|0)|0;m=r+-4|0;i=(i|0)<0?0:i;r=r+2|0;o=n+164|0;if((r|0)>(e[o>>2]|0)){e[o>>2]=r;d=n+160|0;e[d>>2]=M(e[d>>2]|0,r<<2)|0}if((i|0)<(m|0)){o=n+156|0;u=n+160|0;s=l+8|0;t=n+40|0;d=n+152|0;do{a=e[o>>2]|0;e[o>>2]=(a|0)>23?24:a+1|0;if((e[n>>2]|0)>0){r=0;a=0;do{v=(e[(e[s>>2]|0)+(r<<2)>>2]|0)+((f(e[w>>2]|0,i)|0)<<2)|0;a=qr(n,c,v,t,(e[d>>2]|0)+((r*7|0)*144|0)|0)|0|a;r=r+1|0}while((r|0)<(e[n>>2]|0));r=e[u>>2]|0;e[r+(i+2<<2)>>2]=0;if(a&1){e[r+(i<<2)>>2]=1;e[r+(i+1<<2)>>2]=1}if((a&2|0)!=0?(e[r+(i<<2)>>2]=1,(i|0)>0):0)e[r+(i+-1<<2)>>2]=1;if(a&4)e[o>>2]=-1}else e[(e[u>>2]|0)+(i+2<<2)>>2]=0;i=i+1|0}while((i|0)!=(m|0))}i=e[w>>2]|0;o=f(i,m)|0;e[p>>2]=o;a=e[l+48>>2]|0;s=((e[h+(e[l+40>>2]<<2)>>2]|0)/4|0)+a+((e[h+4>>2]|0)/2|0)+((e[h>>2]|0)/4|0)|0;u=n+176|0;t=e[u>>2]|0;o=o-i|0;if((t|0)>=(o|0)){c=-1;return c|0}r=n+160|0;while(1){if((t|0)>=(s|0)){t=1;s=22;break}e[u>>2]=t;if((t|0)>(a|0)?(e[(e[r>>2]|0)+(((t|0)/(i|0)|0)<<2)>>2]|0)!=0:0){s=21;break}t=i+t|0;if((t|0)>=(o|0)){t=-1;s=22;break}}if((s|0)==21){e[n+172>>2]=t;c=0;return c|0}else if((s|0)==22)return t|0;return 0}function Ur(r){r=r|0;var i=0,t=0,n=0,a=0,o=0;o=e[e[r+104>>2]>>2]|0;t=e[(e[r+4>>2]|0)+28>>2]|0;a=e[r+48>>2]|0;i=e[r+40>>2]|0;n=(e[t+(i<<2)>>2]|0)/4|0;if(!i){r=(e[t>>2]|0)/4|0;i=r}else{i=(e[t+(e[r+44>>2]<<2)>>2]|0)/4|0;r=(e[t+(e[r+36>>2]<<2)>>2]|0)/4|0}t=a-n-r|0;i=n+a+i|0;r=e[o+172>>2]|0;if((r|0)>=(t|0)&(r|0)<(i|0)){i=1;return i|0}n=e[o+8>>2]|0;r=(t|0)/(n|0)|0;t=(i|0)/(n|0)|0;if((r|0)>=(t|0)){i=0;return i|0}i=e[o+160>>2]|0;while(1){if(e[i+(r<<2)>>2]|0){i=1;r=9;break}r=r+1|0;if((r|0)>=(t|0)){i=0;r=9;break}}if((r|0)==9)return i|0;return 0}function it(t,n){t=t|0;n=n|0;var i=0,r=0,o=0,a=0;i=t+168|0;o=e[t+8>>2]|0;r=(n|0)/(o|0)|0;a=e[t+160>>2]|0;B(a|0,a+(r<<2)|0,((e[i>>2]|0)/(o|0)|0)+2-r<<2|0)|0;e[i>>2]=(e[i>>2]|0)-n;i=t+172|0;r=e[i>>2]|0;if((r|0)<=-1){i=t+176|0;r=e[i>>2]|0;r=r-n|0;e[i>>2]=r;return}e[i>>2]=r-n;i=t+176|0;r=e[i>>2]|0;r=r-n|0;e[i>>2]=r;return}function qr(l,S,c,v,d){l=l|0;S=S|0;c=c|0;v=v|0;d=d|0;var a=0,t=0,f=0,s=0,n=0,u=0,o=0,y=0,_=0,h=0,E=0,m=0,w=0,b=0,g=0;b=i;o=e[l+4>>2]|0;_=+r[l+12>>2];m=i;i=i+((1*(o<<2)|0)+15&-16)|0;E=e[l+156>>2]|0;n=(E|0)/2|0;E=(E|0)>5?n:2;t=+r[S+60>>2];w=t-+(n+-2|0);w=w<0?0:w;w=w>t?t:w;if((o|0)>0){a=e[l+36>>2]|0;f=0;do{r[m+(f<<2)>>2]=+r[a+(f<<2)>>2]*+r[c+(f<<2)>>2];f=f+1|0}while((f|0)!=(o|0))}Xe(l+16|0,m,m);t=+r[m>>2];u=+r[m+4>>2];s=+r[m+8>>2];s=u*u*.7+t*t+s*s*.2;l=d+140|0;f=e[l>>2]|0;if(!f){c=d+136|0;u=+r[c>>2]+s;n=d+132|0;r[n>>2]=u;r[c>>2]=s}else{n=d+132|0;u=+r[n>>2]+s;r[n>>2]=u;c=d+136|0;r[c>>2]=+r[c>>2]+s}f=d+72+(f<<2)|0;r[n>>2]=u-+r[f>>2];r[f>>2]=s;n=e[l>>2]|0;e[l>>2]=(n|0)>13?0:n+1|0;n=(o|0)/2|0;e:do if((o|0)>1){s=(+(((r[p>>2]=u*.0625,e[p>>2]|0)&2147483647)>>>0)*7.177114298428933e-7+-764.6162109375)*.5+-15;a=0;while(1){u=+r[m+((a|1)<<2)>>2];t=+(((r[p>>2]=u*u+t*t,e[p>>2]|0)&2147483647)>>>0)*3.5885571492144663e-7+-382.30810546875;t=t>1<<2)>>2]=t<_?_:t;a=a+2|0;if((a|0)>=(n|0))break e;s=s+-8;t=+r[m+(a<<2)>>2]}}while(0);if((E|0)>0){h=0;a=0}else{o=0;a=0;do{l=e[v+(o<<4)+4>>2]|0;if((l|0)>0){f=e[v+(o<<4)>>2]|0;c=e[v+(o<<4)+8>>2]|0;t=0;n=0;do{t=+r[c+(n<<2)>>2]*+r[m+(f+n<<2)>>2]+t;n=n+1|0}while((n|0)<(l|0))}else t=0;t=+r[v+(o<<4)+12>>2]*t;E=d+(o*144|0)+68|0;n=e[E>>2]|0;s=+r[d+(o*144|0)+(((n|0)<1?16:-1)+n<<2)>>2];r[d+(o*144|0)+(n<<2)>>2]=t;n=e[E>>2]|0;e[E>>2]=(n|0)>15?0:n+1|0;a=(t+r[S+4+(o<<2)>>2]+w?a|5:a;a=(t>s?s:t)+-99999<+r[S+32+(o<<2)>>2]-w?a|2:a;o=o+1|0}while((o|0)!=7);i=b;return a|0}do{f=e[v+(h<<4)+4>>2]|0;if((f|0)>0){n=e[v+(h<<4)>>2]|0;l=e[v+(h<<4)+8>>2]|0;t=0;c=0;do{t=+r[l+(c<<2)>>2]*+r[m+(n+c<<2)>>2]+t;c=c+1|0}while((c|0)<(f|0))}else t=0;_=+r[v+(h<<4)+12>>2]*t;f=d+(h*144|0)+68|0;l=e[f>>2]|0;n=((l|0)<1?16:-1)+l|0;t=+r[d+(h*144|0)+(n<<2)>>2];y=_t?t:_;o=0;u=-99999;s=99999;do{n=((n|0)<1?16:-1)+n|0;g=+r[d+(h*144|0)+(n<<2)>>2];u=ug?g:s;o=o+1|0}while((o|0)!=(E|0));r[d+(h*144|0)+(l<<2)>>2]=_;o=e[f>>2]|0;e[f>>2]=(o|0)>15?0:o+1|0;a=y-u>+r[S+4+(h<<2)>>2]+w?a|5:a;a=t-s<+r[S+32+(h<<2)>>2]-w?a|2:a;h=h+1|0}while((h|0)!=7);i=b;return a|0}function j(te,D,Y,X){te=te|0;D=D|0;Y=Y|0;X=X|0;var s=0,n=0,p=0,o=0,t=0,h=0,u=0,S=0,d=0,k=0,T=0,y=0,N=0,F=0,m=0,c=0,P=0,l=0,x=0,V=0,ee=0,G=0,E=0,C=0,A=0,z=0,Q=0,re=0,ne=0,H=0,R=0,q=0,U=0,B=0,a=0,J=0,j=0,Z=0,$=0,K=0,W=0,ie=0,O=0,v=0,M=0,b=0,L=0,I=0,_=0;_=i;i=i+4912|0;a=_+1328|0;L=_+1064|0;I=_+804|0;$=_+544|0;J=_+284|0;ie=_+24|0;U=_+20|0;q=_+16|0;K=_+12|0;W=_+8|0;j=_+4|0;Z=_;M=e[D+1296>>2]|0;B=e[D+1288>>2]|0;b=e[D+1284>>2]|0;o=(b|0)>0;if(o){t=0;do{e[L+(t<<2)>>2]=-200;t=t+1|0}while((t|0)!=(b|0));if(o){t=0;do{e[I+(t<<2)>>2]=-200;t=t+1|0}while((t|0)!=(b|0));if(o){w($|0,0,b<<2|0)|0;t=0;do{e[J+(t<<2)>>2]=1;t=t+1|0}while((t|0)!=(b|0));if(o){w(ie|0,-1,b<<2|0)|0;if((b|0)<=1){v=0;i=_;return v|0}G=B+-1|0;ee=M+1112|0;C=b+-1|0;A=e[D>>2]|0;z=0;t=0;do{E=z;z=z+1|0;n=A;A=e[D+(z<<2)>>2]|0;o=a+(E*56|0)|0;s=o;h=s+56|0;do{e[s>>2]=0;s=s+4|0}while((s|0)<(h|0));e[o>>2]=n;e[a+(E*56|0)+4>>2]=A;V=(A|0)<(B|0)?A:G;if((V|0)<(n|0)){u=0;P=0;l=0;c=0;h=0;o=0;n=0;y=0;s=0;m=0;F=0;N=0}else{u=0;P=0;l=0;c=0;h=0;o=0;k=0;y=0;s=0;m=0;F=0;N=0;while(1){T=+r[X+(n<<2)>>2];d=~~(T*7.314285755157471+1023.5);d=(d|0)>1023?1023:(d|0)<0?0:d;do if(d)if(!(+r[ee>>2]+ +r[Y+(n<<2)>>2]>=T)){P=P+1|0;c=(f(n,n)|0)+c|0;o=n+o|0;y=(f(d,n)|0)+y|0;m=(f(d,d)|0)+m|0;N=d+N|0;break}else{u=u+1|0;l=(f(n,n)|0)+l|0;h=n+h|0;k=(f(d,n)|0)+k|0;s=(f(d,d)|0)+s|0;F=d+F|0;break}while(0);if((n|0)<(V|0))n=n+1|0;else{n=k;break}}}e[a+(E*56|0)+8>>2]=h;e[a+(E*56|0)+12>>2]=F;e[a+(E*56|0)+16>>2]=l;e[a+(E*56|0)+20>>2]=s;e[a+(E*56|0)+24>>2]=n;e[a+(E*56|0)+28>>2]=u;e[a+(E*56|0)+32>>2]=o;e[a+(E*56|0)+36>>2]=N;e[a+(E*56|0)+40>>2]=c;e[a+(E*56|0)+44>>2]=m;e[a+(E*56|0)+48>>2]=y;e[a+(E*56|0)+52>>2]=P;t=u+t|0}while((z|0)!=(C|0))}else O=9}else O=9}else O=9}else O=9;if((O|0)==9){if(b){v=0;i=_;return v|0}t=a+4|0;s=a;h=s+56|0;do{e[s>>2]=0;s=s+4|0}while((s|0)<(h|0));e[t>>2]=B;if((B|0)<1){t=0;m=0;F=0;N=0;y=0;k=0;d=0;u=0;s=0;h=0;n=0;o=0}else{P=M+1112|0;l=0;t=0;m=0;F=0;N=0;y=0;k=0;d=0;u=0;s=0;h=0;n=0;o=0;do{S=+r[X+(l<<2)>>2];c=~~(S*7.314285755157471+1023.5);c=(c|0)>1023?1023:(c|0)<0?0:c;do if(c)if(!(+r[P>>2]+ +r[Y+(l<<2)>>2]>=S)){m=m+1|0;N=(f(l,l)|0)+N|0;k=l+k|0;u=(f(c,l)|0)+u|0;h=(f(c,c)|0)+h|0;o=c+o|0;break}else{t=t+1|0;F=(f(l,l)|0)+F|0;y=l+y|0;d=(f(c,l)|0)+d|0;s=(f(c,c)|0)+s|0;n=c+n|0;break}while(0);l=l+1|0}while((l|0)!=(B|0))}e[a+8>>2]=y;e[a+12>>2]=n;e[a+16>>2]=F;e[a+20>>2]=s;e[a+24>>2]=d;e[a+28>>2]=t;e[a+32>>2]=k;e[a+36>>2]=o;e[a+40>>2]=N;e[a+44>>2]=h;e[a+48>>2]=u;e[a+52>>2]=m}if(!t){v=0;i=_;return v|0}e[U>>2]=-200;e[q>>2]=-200;se(a,b+-1|0,U,q,M)|0;t=e[U>>2]|0;e[L>>2]=t;e[I>>2]=t;B=e[q>>2]|0;U=I+4|0;e[U>>2]=B;q=L+4|0;e[q>>2]=B;B=(b|0)>2;do if(B){z=M+1112|0;Q=M+1096|0;re=M+1100|0;ne=M+1104|0;R=2;e:while(1){C=e[D+520+(R<<2)>>2]|0;H=e[$+(C<<2)>>2]|0;A=e[J+(C<<2)>>2]|0;t=ie+(H<<2)|0;r:do if((e[t>>2]|0)!=(A|0)){o=e[D+520+(H<<2)>>2]|0;ee=e[D+520+(A<<2)>>2]|0;e[t>>2]=A;c=e[M+836+(H<<2)>>2]|0;V=e[M+836+(A<<2)>>2]|0;h=e[L+(H<<2)>>2]|0;G=I+(H<<2)|0;t=e[G>>2]|0;if((h|0)>=0)if((t|0)<0)n=h;else n=t+h>>1;else n=t;E=L+(A<<2)|0;d=e[E>>2]|0;u=e[I+(A<<2)>>2]|0;if((d|0)>=0){if((u|0)>=0)d=u+d>>1}else d=u;if((n|0)==-1|(d|0)==-1){O=38;break e}u=d-n|0;F=V-c|0;N=(u|0)/(F|0)|0;s=u>>31|1;S=+r[X+(c<<2)>>2];m=~~(S*7.314285755157471+1023.5);m=(m|0)>1023?1023:(m|0)<0?0:m;y=f(N,F)|0;y=((u|0)>-1?u:0-u|0)-((y|0)>-1?y:0-y|0)|0;u=n-m|0;u=f(u,u)|0;x=+r[z>>2];if(x+ +r[Y+(c<<2)>>2]>=S){T=+(n|0);S=+(m|0);if(!(+r[Q>>2]+T>2]>S):0)O=42}else O=42;i:do if((O|0)==42){O=0;m=c+1|0;if((m|0)<(V|0)){c=0;k=1;P=n;do{h=c+y|0;l=(h|0)<(F|0);c=h-(l?0:F)|0;P=P+N+(l?0:s)|0;S=+r[X+(m<<2)>>2];l=~~(S*7.314285755157471+1023.5);l=(l|0)>1023?1023:(l|0)<0?0:l;h=P-l|0;u=(f(h,h)|0)+u|0;k=k+1|0;if((l|0)!=0?+r[Y+(m<<2)>>2]+x>=S:0){S=+(P|0);T=+(l|0);if(+r[Q>>2]+S>2]>T)break i}m=m+1|0}while((m|0)<(V|0))}else k=1;x=+r[Q>>2];S=+(k|0);T=+r[ne>>2];if((!(x*x/S>T)?(x=+r[re>>2],!(x*x/S>T)):0)?+((u|0)/(k|0)|0|0)>T:0)break;e[L+(R<<2)>>2]=-200;e[I+(R<<2)>>2]=-200;break r}while(0);e[K>>2]=-200;e[W>>2]=-200;e[j>>2]=-200;e[Z>>2]=-200;t=se(a+(o*56|0)|0,C-o|0,K,W,M)|0;h=se(a+(C*56|0)|0,ee-C|0,j,Z,M)|0;t=(t|0)!=0;if(t){e[K>>2]=n;e[W>>2]=e[j>>2]}if((h|0)!=0?(e[j>>2]=e[W>>2],e[Z>>2]=d,t):0){e[L+(R<<2)>>2]=-200;e[I+(R<<2)>>2]=-200;break}t=e[K>>2]|0;e[G>>2]=t;if(!H)e[L>>2]=t;t=e[W>>2]|0;e[L+(R<<2)>>2]=t;o=e[j>>2]|0;e[I+(R<<2)>>2]=o;n=e[Z>>2]|0;e[E>>2]=n;if((A|0)==1)e[U>>2]=n;if((o&t|0)>-1){i:do if((C|0)>0){o=C;do{n=o;o=o+-1|0;t=J+(o<<2)|0;if((e[t>>2]|0)!=(A|0))break i;e[t>>2]=R}while((n|0)>1)}while(0);t=C+1|0;if((t|0)<(b|0))do{o=$+(t<<2)|0;if((e[o>>2]|0)!=(H|0))break r;e[o>>2]=R;t=t+1|0}while((t|0)<(b|0))}}while(0);R=R+1|0;if((R|0)>=(b|0)){O=68;break}}if((O|0)==38)kr(1);else if((O|0)==68){p=e[L>>2]|0;v=e[I>>2]|0;break}}else{p=t;v=t}while(0);s=g(te,b<<2)|0;if((p|0)>=0){if((v|0)>=0)p=v+p>>1}else p=v;e[s>>2]=p;n=e[q>>2]|0;p=e[U>>2]|0;if((n|0)>=0){if((p|0)>=0)n=p+n>>1}else n=p;e[s+4>>2]=n;if(B)t=2;else{v=s;i=_;return v|0}do{v=t+-2|0;o=e[D+1032+(v<<2)>>2]|0;v=e[D+780+(v<<2)>>2]|0;n=e[M+836+(o<<2)>>2]|0;o=e[s+(o<<2)>>2]&32767;p=(e[s+(v<<2)>>2]&32767)-o|0;n=(f((p|0)>-1?p:0-p|0,(e[M+836+(t<<2)>>2]|0)-n|0)|0)/((e[M+836+(v<<2)>>2]|0)-n|0)|0;o=((p|0)<0?0-n|0:n)+o|0;n=e[L+(t<<2)>>2]|0;p=e[I+(t<<2)>>2]|0;if((n|0)>=0){if((p|0)>=0)n=p+n>>1}else n=p;e[s+(t<<2)>>2]=(n|0)<0|(o|0)==(n|0)?o|32768:n;t=t+1|0}while((t|0)!=(b|0));i=_;return s|0}function E(i,r,n,o,a){i=i|0;r=r|0;n=n|0;o=o|0;a=a|0;var c=0,d=0,t=0,s=0,u=0,l=0;s=e[r+1284>>2]|0;if(!((n|0)!=0&(o|0)!=0)){r=0;return r|0}r=g(i,s<<2)|0;if((s|0)<=0)return r|0;d=65536-a|0;t=0;do{l=n+(t<<2)|0;i=f(e[l>>2]&32767,d)|0;u=o+(t<<2)|0;i=i+32768+(f(e[u>>2]&32767,a)|0)>>16;c=r+(t<<2)|0;e[c>>2]=i;if((e[l>>2]&32768|0)!=0?(e[u>>2]&32768|0)!=0:0)e[c>>2]=i|32768;t=t+1|0}while((t|0)!=(s|0));return r|0}function Wr(F,O,_,b,T){F=F|0;O=O|0;_=_|0;b=b|0;T=T|0;var a=0,o=0,t=0,n=0,u=0,r=0,E=0,M=0,c=0,m=0,l=0,g=0,A=0,d=0,k=0,N=0,D=0,B=0,p=0,y=0,v=0,P=0,h=0,L=0,R=0;R=i;i=i+336|0;v=R+64|0;p=R+32|0;y=R;h=e[_+1296>>2]|0;L=_+1284|0;d=e[L>>2]|0;P=e[(e[(e[O+64>>2]|0)+4>>2]|0)+28>>2]|0;D=e[P+2848>>2]|0;if(!b){s(F,0,1);w(T|0,0,((e[O+36>>2]|0)/2|0)<<2|0)|0;v=0;i=R;return v|0}if((d|0)>0){n=h+832|0;r=0;do{a=b+(r<<2)|0;u=e[a>>2]|0;t=u&32767;o=e[n>>2]|0;if((o|0)==4)t=t>>>4;else if((o|0)==1)t=t>>>2;else if((o|0)==2)t=t>>>3;else if((o|0)==3)t=(t>>>0)/12|0;e[a>>2]=u&32768|t;r=r+1|0}while((r|0)!=(d|0))}o=e[b>>2]|0;e[v>>2]=o;t=e[b+4>>2]|0;E=v+4|0;e[E>>2]=t;g=_+1292|0;if((d|0)>2){t=2;do{c=t+-2|0;l=e[_+1032+(c<<2)>>2]|0;c=e[_+780+(c<<2)>>2]|0;n=e[h+836+(l<<2)>>2]|0;l=b+(l<<2)|0;a=b+(c<<2)|0;o=e[l>>2]&32767;r=(e[a>>2]&32767)-o|0;n=(f((r|0)>-1?r:0-r|0,(e[h+836+(t<<2)>>2]|0)-n|0)|0)/((e[h+836+(c<<2)>>2]|0)-n|0)|0;n=((r|0)<0?0-n|0:n)+o|0;r=b+(t<<2)|0;c=e[r>>2]|0;if((c&32768|0)!=0|(c|0)==(n|0)){e[r>>2]=n|32768;e[v+(t<<2)>>2]=0}else{u=(e[g>>2]|0)-n|0;u=(u|0)<(n|0)?u:n;r=c-n|0;do if((r|0)<0)if((r|0)<(0-u|0)){r=u+~r|0;break}else{r=~(r<<1);break}else if((u|0)>(r|0)){r=r<<1;break}else{r=u+r|0;break}while(0);e[v+(t<<2)>>2]=r;e[l>>2]=o;e[a>>2]=e[a>>2]&32767}t=t+1|0}while((t|0)!=(d|0));o=e[v>>2]|0;t=e[E>>2]|0}s(F,1,1);k=_+1308|0;e[k>>2]=(e[k>>2]|0)+1;k=(S((e[g>>2]|0)+-1|0)|0)<<1;N=_+1304|0;e[N>>2]=(e[N>>2]|0)+k;s(F,o,S((e[g>>2]|0)+-1|0)|0);s(F,t,S((e[g>>2]|0)+-1|0)|0);if((e[h>>2]|0)>0){g=_+1300|0;c=0;k=2;while(1){E=e[h+4+(c<<2)>>2]|0;M=e[h+128+(E<<2)>>2]|0;d=e[h+192+(E<<2)>>2]|0;A=1<>2]=0;e[p+4>>2]=0;e[p+8>>2]=0;e[p+12>>2]=0;e[p+16>>2]=0;e[p+20>>2]=0;e[p+24>>2]=0;e[p+28>>2]=0;if(d){e[y>>2]=0;e[y+4>>2]=0;e[y+8>>2]=0;e[y+12>>2]=0;e[y+16>>2]=0;e[y+20>>2]=0;e[y+24>>2]=0;e[y+28>>2]=0;m=(d|0)==31;if(!m){l=0;do{r=e[h+320+(E<<5)+(l<<2)>>2]|0;if((r|0)<0)r=1;else r=e[(e[P+1824+(r<<2)>>2]|0)+4>>2]|0;e[y+(l<<2)>>2]=r;l=l+1|0}while((l|0)<(A|0))}e:do if((M|0)>0){if(m){r=0;n=0;u=0;while(1){n=e[p+(u<<2)>>2]<>2]|0;a=0;while(1){if((l|0)<(e[y+(a<<2)>>2]|0)){l=a;a=31;break}a=a+1|0;if((a|0)>=(A|0)){a=33;break}}if((a|0)==31)e[p+(t<<2)>>2]=l;else if((a|0)==33)l=e[p+(t<<2)>>2]|0;n=l<>2]|0)*56|0)|0,n,F)|0;e[g>>2]=(e[g>>2]|0)+d}if((M|0)>0){r=0;do{n=e[h+320+(E<<5)+(e[p+(r<<2)>>2]<<2)>>2]|0;if((n|0)>-1?(B=e[v+(r+k<<2)>>2]|0,(B|0)<(e[D+(n*56|0)+4>>2]|0)):0){d=X(D+(n*56|0)|0,B,F)|0;e[N>>2]=(e[N>>2]|0)+d}r=r+1|0}while((r|0)!=(M|0))}c=c+1|0;if((c|0)>=(e[h>>2]|0))break;else k=M+k|0}}d=h+832|0;t=f(e[d>>2]|0,e[b>>2]|0)|0;g=(e[P+(e[O+28>>2]<<2)>>2]|0)/2|0;if((e[L>>2]|0)>1){a=0;A=1;n=0;r=t;while(1){o=e[_+260+(A<<2)>>2]|0;t=e[b+(o<<2)>>2]|0;if((t&32767|0)==(t|0)){t=f(e[d>>2]|0,t)|0;l=e[h+836+(o<<2)>>2]|0;m=t-r|0;u=l-n|0;E=(m|0)/(u|0)|0;M=m>>31|1;c=f(E,u)|0;c=((m|0)>-1?m:0-m|0)-((c|0)>-1?c:0-c|0)|0;m=(g|0)>(l|0)?l:g;if((m|0)>(n|0))e[T+(n<<2)>>2]=r;o=n+1|0;if((o|0)<(m|0)){n=0;while(1){a=n+c|0;n=(a|0)<(u|0);r=r+E+(n?0:M)|0;e[T+(o<<2)>>2]=r;o=o+1|0;if((o|0)==(m|0)){a=l;o=l;break}else n=a-(n?0:u)|0}}else{a=l;o=l}}else{o=n;t=r}A=A+1|0;if((A|0)>=(e[L>>2]|0))break;else{n=o;r=t}}}else a=0;o=O+36|0;if((a|0)>=((e[o>>2]|0)/2|0|0)){v=1;i=R;return v|0}do{e[T+(a<<2)>>2]=t;a=a+1|0}while((a|0)<((e[o>>2]|0)/2|0|0));a=1;i=R;return a|0}function se(t,p,d,u,i){t=t|0;p=p|0;d=d|0;u=u|0;i=i|0;var n=0,a=0,s=0,o=0,l=0,h=0,m=0,w=0,v=0,c=0,E=0;m=e[t>>2]|0;w=e[t+((p+-1|0)*56|0)+4>>2]|0;if((p|0)>0){h=+r[i+1108>>2];n=0;i=0;l=0;o=0;s=0;a=0;do{E=e[t+(i*56|0)+52>>2]|0;v=e[t+(i*56|0)+28>>2]|0;c=+(v+E|0)*h/+(v+1|0)+1;o=+(e[t+(i*56|0)+32>>2]|0)+o+ +(e[t+(i*56|0)+8>>2]|0)*c;a=+(e[t+(i*56|0)+36>>2]|0)+a+ +(e[t+(i*56|0)+12>>2]|0)*c;l=+(e[t+(i*56|0)+40>>2]|0)+l+ +(e[t+(i*56|0)+16>>2]|0)*c;s=+(e[t+(i*56|0)+48>>2]|0)+s+ +(e[t+(i*56|0)+24>>2]|0)*c;n=+(E|0)+n+c*+(v|0);i=i+1|0}while((i|0)!=(p|0))}else{n=0;l=0;o=0;s=0;a=0}i=e[d>>2]|0;if((i|0)>-1){n=n+1;l=l+ +(f(m,m)|0);o=o+ +(m|0);s=+(f(i,m)|0)+s;a=+(i|0)+a}i=e[u>>2]|0;if((i|0)>-1){h=n+1;l=l+ +(f(w,w)|0);o=o+ +(w|0);s=+(f(i,w)|0)+s;a=+(i|0)+a}else h=n;n=l*h-o*o;if(!(n>0)){e[d>>2]=0;e[u>>2]=0;t=1;return t|0}c=(a*l-o*s)/n;n=(s*h-o*a)/n;e[d>>2]=~~+F(n*+(m|0)+c);t=~~+F(n*+(w|0)+c);e[u>>2]=t;i=e[d>>2]|0;if((i|0)>1023){e[d>>2]=1023;t=e[u>>2]|0;i=1023}if((t|0)>1023){e[u>>2]=1023;i=e[d>>2]|0;t=1023}if((i|0)<0){e[d>>2]=0;t=e[u>>2]|0}if((t|0)>=0){t=0;return t|0}e[u>>2]=0;t=0;return t|0}function Xr(r,o){r=r|0;o=o|0;var a=0,c=0,t=0,l=0,u=0,f=0,n=0,i=0,h=0,d=0,m=0;m=r+836|0;h=e[r+840>>2]|0;s(o,e[r>>2]|0,5);if((e[r>>2]|0)>0){c=r+4|0;t=0;a=-1;do{i=c+(t<<2)|0;s(o,e[i>>2]|0,4);i=e[i>>2]|0;a=(a|0)<(i|0)?i:a;t=t+1|0}while((t|0)<(e[r>>2]|0));if((a|0)>-1){u=r+128|0;f=r+192|0;t=r+256|0;c=r+320|0;n=0;while(1){s(o,(e[u+(n<<2)>>2]|0)+-1|0,3);l=f+(n<<2)|0;s(o,e[l>>2]|0,2);if(!((e[l>>2]|0)!=0?(s(o,e[t+(n<<2)>>2]|0,8),(e[l>>2]|0)==31):0)){i=0;d=8}if((d|0)==8)while(1){d=0;s(o,(e[c+(n<<5)+(i<<2)>>2]|0)+1|0,8);i=i+1|0;if((i|0)>=(1<>2]|0))break;else d=8}if((n|0)==(a|0))break;else n=n+1|0}}}s(o,(e[r+832>>2]|0)+-1|0,2);i=h+-1|0;s(o,S(i)|0,4);i=S(i)|0;a=e[r>>2]|0;if((a|0)<=0)return;u=r+4|0;l=r+128|0;f=0;n=0;t=0;do{f=(e[l+(e[u+(n<<2)>>2]<<2)>>2]|0)+f|0;if((t|0)<(f|0)){do{s(o,e[m+(t+2<<2)>>2]|0,i);t=t+1|0}while((t|0)!=(f|0));a=e[r>>2]|0;t=f}n=n+1|0}while((n|0)<(a|0));return}function Kr(s,c){s=s|0;c=c|0;var r=0,t=0,l=0,o=0,_=0,u=0,S=0,E=0,f=0,v=0,p=0,a=0,w=0,d=0;d=i;i=i+272|0;w=d;o=e[s+28>>2]|0;a=h(1,1120)|0;f=m(c,5)|0;e[a>>2]=f;e:do if((f|0)>0){s=a+4|0;r=0;t=-1;do{l=m(c,4)|0;e[s+(r<<2)>>2]=l;if((l|0)<0)break e;t=(t|0)<(l|0)?l:t;r=r+1|0}while((r|0)<(e[a>>2]|0));if((t|0)>-1){S=a+128|0;E=a+192|0;f=a+256|0;s=o+24|0;r=a+320|0;u=0;while(1){e[S+(u<<2)>>2]=(m(c,3)|0)+1;o=m(c,2)|0;_=E+(u<<2)|0;e[_>>2]=o;if((o|0)<0)break e;if(!o)o=e[f+(u<<2)>>2]|0;else{o=m(c,8)|0;e[f+(u<<2)>>2]=o}if((o|0)<0)break e;if((o|0)>=(e[s>>2]|0))break e;if((e[_>>2]|0)!=31){l=0;do{o=m(c,8)|0;e[r+(u<<5)+(l<<2)>>2]=o+-1;if((o|0)<0)break e;l=l+1|0;if((o|0)>(e[s>>2]|0))break e}while((l|0)<(1<>2]|0))}if((u|0)<(t|0))u=u+1|0;else{v=18;break}}}else v=18}else v=18;while(0);e:do if((v|0)==18?(e[a+832>>2]=(m(c,2)|0)+1,p=m(c,4)|0,(p|0)>=0):0){t=e[a>>2]|0;if((t|0)>0){E=a+4|0;S=a+128|0;l=a+836|0;s=1<>2]<<2)>>2]|0)+r|0;if((r|0)>63)break e;if((o|0)<(r|0)){t=o;while(1){u=m(c,p)|0;e[l+(t+2<<2)>>2]=u;if(!((u|0)>-1&(u|0)<(s|0)))break e;t=t+1|0;if((t|0)>=(r|0)){o=t;break}}t=e[a>>2]|0}f=f+1|0}while((f|0)<(t|0))}else{l=a+836|0;s=1<>2]=0;e[a+840>>2]=s;t=r+2|0;if((r|0)>-2){r=0;do{e[w+(r<<2)>>2]=l+(r<<2);r=r+1|0}while((r|0)<(t|0))}Z(w,t,4,8);r:do if((t|0)>1){r=e[e[w>>2]>>2]|0;s=1;while(1){f=r;r=e[e[w+(s<<2)>>2]>>2]|0;s=s+1|0;if((f|0)==(r|0))break;if((s|0)>=(t|0))break r}if(!a)r=0;else break e;i=d;return r|0}while(0);f=a;i=d;return f|0}while(0);n(a);f=0;i=d;return f|0}function Gr(t,a){t=t|0;a=a|0;var r=0,n=0,s=0,f=0,d=0,c=0,p=0,u=0,w=0,l=0,_=0,S=0,o=0,m=0,E=0,v=0;v=i;i=i+272|0;l=v;o=h(1,1312)|0;e[o+1296>>2]=a;m=a+836|0;E=o+1288|0;e[E>>2]=e[a+840>>2];r=e[a>>2]|0;if((r|0)>0){t=a+4|0;s=a+128|0;f=0;n=0;do{n=(e[s+(e[t+(f<<2)>>2]<<2)>>2]|0)+n|0;f=f+1|0}while((f|0)<(r|0));t=n+2|0;e[o+1284>>2]=t;if((n|0)>-2){f=n;d=7}else Z(l,t,4,8)}else{e[o+1284>>2]=2;t=2;f=0;d=7}if((d|0)==7){r=0;do{e[l+(r<<2)>>2]=m+(r<<2);r=r+1|0}while((r|0)<(t|0));Z(l,t,4,8);s=m;n=o+260|0;r=0;do{e[n+(r<<2)>>2]=(e[l+(r<<2)>>2]|0)-s>>2;r=r+1|0}while((r|0)<(t|0));n=o+260|0;r=o+520|0;s=0;do{e[r+(e[n+(s<<2)>>2]<<2)>>2]=s;s=s+1|0}while((s|0)<(t|0));r=o+260|0;n=0;do{e[o+(n<<2)>>2]=e[m+(e[r+(n<<2)>>2]<<2)>>2];n=n+1|0}while((n|0)<(t|0));n=f}t=e[a+832>>2]|0;if((t|0)==2)e[o+1292>>2]=128;else if((t|0)==3)e[o+1292>>2]=86;else if((t|0)==1)e[o+1292>>2]=256;else if((t|0)==4)e[o+1292>>2]=64;if((n|0)<=0){i=v;return o|0}_=o+1032|0;S=o+780|0;a=0;do{d=a+2|0;t=e[m+(d<<2)>>2]|0;r=1;p=e[E>>2]|0;u=0;s=0;w=0;while(1){c=e[m+(u<<2)>>2]|0;l=(c|0)>(w|0)&(c|0)<(t|0);s=l?u:s;f=(c|0)<(p|0)&(c|0)>(t|0);r=f?u:r;u=u+1|0;if((u|0)>=(d|0))break;else{p=f?c:p;w=l?c:w}}e[_+(a<<2)>>2]=s;e[S+(a<<2)>>2]=r;a=a+1|0}while((a|0)!=(n|0));i=v;return o|0}function Zr(e){e=e|0;if(e)n(e);return}function Jr(e){e=e|0;if(e)n(e);return}function Qr(i,h){i=i|0;h=h|0;var r=0,o=0,t=0,c=0,d=0,l=0,n=0,s=0,a=0,w=0,E=0,p=0,u=0,v=0;u=e[h+1296>>2]|0;E=e[(e[(e[(e[i+64>>2]|0)+4>>2]|0)+28>>2]|0)+2848>>2]|0;w=i+4|0;if((m(w,1)|0)!=1){a=0;return a|0}v=h+1284|0;i=g(i,e[v>>2]<<2)|0;p=h+1292|0;e[i>>2]=m(w,S((e[p>>2]|0)+-1|0)|0)|0;e[i+4>>2]=m(w,S((e[p>>2]|0)+-1|0)|0)|0;e:do if((e[u>>2]|0)>0){o=0;r=2;r:while(1){l=e[u+4+(o<<2)>>2]|0;d=e[u+128+(l<<2)>>2]|0;t=e[u+192+(l<<2)>>2]|0;a=1<>2]|0)*56|0)|0,w)|0;if((c|0)==-1){i=0;r=25;break}}else c=0;if((d|0)>0){n=a+-1|0;s=0;do{a=e[u+320+(l<<5)+((c&n)<<2)>>2]|0;c=c>>t;if((a|0)>-1){a=J(E+(a*56|0)|0,w)|0;e[i+(s+r<<2)>>2]=a;if((a|0)==-1){i=0;r=25;break r}}else e[i+(s+r<<2)>>2]=0;s=s+1|0}while((s|0)<(d|0))}o=o+1|0;if((o|0)>=(e[u>>2]|0))break e;else r=d+r|0}if((r|0)==25)return i|0}while(0);if((e[v>>2]|0)<=2){a=i;return a|0}a=h+1032|0;c=h+780|0;s=2;do{l=s+-2|0;d=a+(l<<2)|0;t=e[d>>2]|0;r=e[u+836+(t<<2)>>2]|0;l=c+(l<<2)|0;o=e[l>>2]|0;t=e[i+(t<<2)>>2]&32767;n=(e[i+(o<<2)>>2]&32767)-t|0;r=(f((n|0)>-1?n:0-n|0,(e[u+836+(s<<2)>>2]|0)-r|0)|0)/((e[u+836+(o<<2)>>2]|0)-r|0)|0;t=((n|0)<0?0-r|0:r)+t|0;r=(e[p>>2]|0)-t|0;n=i+(s<<2)|0;o=e[n>>2]|0;if(!o)e[n>>2]=t|32768;else{do if((o|0)<(((r|0)<(t|0)?r:t)<<1|0))if(!(o&1)){r=o>>1;break}else{r=0-(o+1>>1)|0;break}else if((r|0)>(t|0)){r=o-t|0;break}else{r=~(o-r);break}while(0);e[n>>2]=r+t&32767;n=i+(e[d>>2]<<2)|0;e[n>>2]=e[n>>2]&32767;n=i+(e[l>>2]<<2)|0;e[n>>2]=e[n>>2]&32767}s=s+1|0}while((s|0)<(e[v>>2]|0));return i|0}function $r(i,t,m,d){i=i|0;t=t|0;m=m|0;d=d|0;var y=0,o=0,a=0,s=0,h=0,v=0,k=0,u=0,n=0,l=0,b=0,p=0,S=0,g=0,E=0,c=0,_=0;E=e[t+1296>>2]|0;c=(e[(e[(e[(e[i+64>>2]|0)+4>>2]|0)+28>>2]|0)+(e[i+28>>2]<<2)>>2]|0)/2|0;if(!m){w(d|0,0,c<<2|0)|0;n=0;return n|0}S=e[E+832>>2]|0;i=f(S,e[m>>2]|0)|0;i=(i|0)<0?0:(i|0)>255?255:i;g=e[t+1284>>2]|0;if((g|0)>1){b=t+260|0;t=0;p=1;a=0;s=i;while(1){i=e[b+(p<<2)>>2]|0;o=e[m+(i<<2)>>2]|0;if((o&32767|0)==(o|0)){l=e[E+836+(i<<2)>>2]|0;i=f(S,o)|0;i=(i|0)<0?0:(i|0)>255?255:i;n=i-s|0;h=l-a|0;v=(n|0)/(h|0)|0;k=n>>31|1;u=f(v,h)|0;u=((n|0)>-1?n:0-n|0)-((u|0)>-1?u:0-u|0)|0;n=(c|0)>(l|0)?l:c;if((n|0)>(a|0)){o=d+(a<<2)|0;r[o>>2]=+r[o>>2]*+r[1768+(s<<2)>>2]}o=a+1|0;if((o|0)<(n|0)){a=0;while(1){t=a+u|0;a=(t|0)<(h|0);s=s+v+(a?0:k)|0;_=d+(o<<2)|0;r[_>>2]=+r[_>>2]*+r[1768+(s<<2)>>2];o=o+1|0;if((o|0)==(n|0)){t=l;o=l;break}else a=t-(a?0:h)|0}}else{t=l;o=l}}else{o=a;i=s}p=p+1|0;if((p|0)>=(g|0))break;else{a=o;s=i}}}else t=0;if((t|0)>=(c|0)){n=1;return n|0}y=+r[1768+(i<<2)>>2];do{n=d+(t<<2)|0;r[n>>2]=+r[n>>2]*y;t=t+1|0}while((t|0)!=(c|0));t=1;return t|0}function ei(r,i){r=r|0;i=i|0;return(e[e[r>>2]>>2]|0)-(e[e[i>>2]>>2]|0)|0}function ri(r){r=r|0;e[r>>2]=0;e[r+4>>2]=0;e[r+8>>2]=0;e[r+12>>2]=0;return}function ii(o,r,n){o=o|0;r=r|0;n=n|0;var l=0,s=0,t=0,f=0;l=i;t=V(r|0)|0;t=t+2+(V(n|0)|0)|0;s=i;i=i+((1*t|0)+15&-16)|0;le(s|0,r|0)|0;r=s+(V(s|0)|0)|0;a[r>>0]=61;a[r+1>>0]=0;Ie(s|0,n|0)|0;r=o+8|0;e[o>>2]=M(e[o>>2]|0,(e[r>>2]<<2)+8|0)|0;t=o+4|0;f=M(e[t>>2]|0,(e[r>>2]<<2)+8|0)|0;e[t>>2]=f;t=V(s|0)|0;n=e[r>>2]|0;e[f+(n<<2)>>2]=t;t=u(t+1|0)|0;e[(e[o>>2]|0)+(n<<2)>>2]=t;le(e[(e[o>>2]|0)+(n<<2)>>2]|0,s|0)|0;n=(e[r>>2]|0)+1|0;e[r>>2]=n;e[(e[o>>2]|0)+(n<<2)>>2]=0;i=l;return}function ti(i){i=i|0;var r=0,o=0,t=0,a=0;if(!i)return;r=e[i>>2]|0;if(r){a=i+8|0;o=e[a>>2]|0;if((o|0)>0){t=0;while(1){r=e[r+(t<<2)>>2]|0;if(r){n(r);o=e[a>>2]|0}t=t+1|0;if((t|0)>=(o|0))break;r=e[i>>2]|0}r=e[i>>2]|0}n(r)}r=e[i+4>>2]|0;if(r)n(r);r=e[i+12>>2]|0;if(r)n(r);e[i>>2]=0;e[i+4>>2]=0;e[i+8>>2]=0;e[i+12>>2]=0;return}function ni(r){r=r|0;e[r>>2]=0;e[r+4>>2]=0;e[r+8>>2]=0;e[r+12>>2]=0;e[r+16>>2]=0;e[r+20>>2]=0;e[r+24>>2]=0;e[r+28>>2]=h(1,3664)|0;return}function ae(o){o=o|0;var i=0,t=0,r=0,s=0,a=0;a=e[o+28>>2]|0;if(!a){e[o>>2]=0;e[o+4>>2]=0;e[o+8>>2]=0;e[o+12>>2]=0;e[o+16>>2]=0;e[o+20>>2]=0;e[o+24>>2]=0;e[o+28>>2]=0;return}s=a+8|0;i=e[s>>2]|0;if((i|0)>0){r=0;do{t=e[a+32+(r<<2)>>2]|0;if(t){n(t);i=e[s>>2]|0}r=r+1|0}while((r|0)<(i|0))}s=a+12|0;i=e[s>>2]|0;if((i|0)>0){r=0;do{t=e[a+544+(r<<2)>>2]|0;if(t){R[e[(e[25664+(e[a+288+(r<<2)>>2]<<2)>>2]|0)+8>>2]&7](t);i=e[s>>2]|0}r=r+1|0}while((r|0)<(i|0))}s=a+16|0;i=e[s>>2]|0;if((i|0)>0){r=0;do{t=e[a+1056+(r<<2)>>2]|0;if(t){R[e[(e[25640+(e[a+800+(r<<2)>>2]<<2)>>2]|0)+12>>2]&7](t);i=e[s>>2]|0}r=r+1|0}while((r|0)<(i|0))}s=a+20|0;i=e[s>>2]|0;if((i|0)>0){r=0;do{t=e[a+1568+(r<<2)>>2]|0;if(t){R[e[(e[25648+(e[a+1312+(r<<2)>>2]<<2)>>2]|0)+12>>2]&7](t);i=e[s>>2]|0}r=r+1|0}while((r|0)<(i|0))}i=a+24|0;r=a+2848|0;if((e[i>>2]|0)>0){s=0;do{t=e[a+1824+(s<<2)>>2]|0;if(t)fe(t);t=e[r>>2]|0;if(t)rt(t+(s*56|0)|0);s=s+1|0}while((s|0)<(e[i>>2]|0))}i=e[r>>2]|0;if(i)n(i);i=a+28|0;if((e[i>>2]|0)>0){t=0;do{yi(e[a+2852+(t<<2)>>2]|0);t=t+1|0}while((t|0)<(e[i>>2]|0))}n(a);e[o>>2]=0;e[o+4>>2]=0;e[o+8>>2]=0;e[o+12>>2]=0;e[o+16>>2]=0;e[o+20>>2]=0;e[o+24>>2]=0;e[o+28>>2]=0;return}function ai(t,w,l,f,c){t=t|0;w=w|0;l=l|0;f=f|0;c=c|0;var a=0,o=0,p=0,m=0,y=0,h=0,v=0,E=0,r=0,g=0;g=i;i=i+32|0;r=g;v=e[t+4>>2]|0;E=e[t+104>>2]|0;if(!E){e[l>>2]=0;e[l+4>>2]=0;e[l+8>>2]=0;e[l+12>>2]=0;e[l+16>>2]=0;e[l+20>>2]=0;e[l+24>>2]=0;e[l+28>>2]=0;e[f>>2]=0;e[f+4>>2]=0;e[f+8>>2]=0;e[f+12>>2]=0;e[f+16>>2]=0;e[f+20>>2]=0;e[f+24>>2]=0;e[f+28>>2]=0;e[c>>2]=0;e[c+4>>2]=0;e[c+8>>2]=0;e[c+12>>2]=0;e[c+16>>2]=0;e[c+20>>2]=0;e[c+24>>2]=0;e[c+28>>2]=0;h=-129;i=g;return h|0}p=v+4|0;if((e[p>>2]|0)>=1){Ee(r);m=v+28|0;t=e[m>>2]|0;if(((t|0)!=0?(o=e[t>>2]|0,(o|0)>=64):0)?(a=t+4|0,(e[a>>2]|0)>=(o|0)):0){s(r,1,8);s(r,118,8);s(r,111,8);s(r,114,8);s(r,98,8);s(r,105,8);s(r,115,8);s(r,0,32);s(r,e[p>>2]|0,8);s(r,e[v+8>>2]|0,32);s(r,e[v+12>>2]|0,32);s(r,e[v+16>>2]|0,32);s(r,e[v+20>>2]|0,32);s(r,S((e[t>>2]|0)+-1|0)|0,4);s(r,S((e[a>>2]|0)+-1|0)|0,4);s(r,1,1);p=E+64|0;t=e[p>>2]|0;if(t)n(t);o=u(_(r)|0)|0;e[p>>2]=o;y=r+8|0;t=e[y>>2]|0;d(o|0,t|0,_(r)|0)|0;e[l>>2]=e[p>>2];e[l+4>>2]=_(r)|0;e[l+8>>2]=1;t=l+12|0;e[t>>2]=0;e[t+4>>2]=0;e[t+8>>2]=0;e[t+12>>2]=0;e[t+16>>2]=0;b(r);si(r,w);t=E+68|0;o=e[t>>2]|0;if(o)n(o);a=u(_(r)|0)|0;e[t>>2]=a;o=e[y>>2]|0;d(a|0,o|0,_(r)|0)|0;e[f>>2]=e[t>>2];e[f+4>>2]=_(r)|0;t=f+8|0;e[t>>2]=0;e[t+4>>2]=0;e[t+8>>2]=0;e[t+12>>2]=0;t=f+24|0;e[t>>2]=1;e[t+4>>2]=0;b(r);m=e[m>>2]|0;e:do if(m){s(r,5,8);s(r,118,8);s(r,111,8);s(r,114,8);s(r,98,8);s(r,105,8);s(r,115,8);t=m+24|0;s(r,(e[t>>2]|0)+-1|0,8);if((e[t>>2]|0)>0){o=0;do{if(Tr(e[m+1824+(o<<2)>>2]|0,r)|0)break e;o=o+1|0}while((o|0)<(e[t>>2]|0))}s(r,0,6);s(r,0,16);t=m+16|0;s(r,(e[t>>2]|0)+-1|0,6);if((e[t>>2]|0)>0){a=0;do{o=m+800+(a<<2)|0;s(r,e[o>>2]|0,16);o=e[e[25640+(e[o>>2]<<2)>>2]>>2]|0;if(!o)break e;ue[o&3](e[m+1056+(a<<2)>>2]|0,r);a=a+1|0}while((a|0)<(e[t>>2]|0))}o=m+20|0;s(r,(e[o>>2]|0)+-1|0,6);if((e[o>>2]|0)>0){a=0;do{h=m+1312+(a<<2)|0;s(r,e[h>>2]|0,16);ue[e[e[25648+(e[h>>2]<<2)>>2]>>2]&3](e[m+1568+(a<<2)>>2]|0,r);a=a+1|0}while((a|0)<(e[o>>2]|0))}o=m+12|0;s(r,(e[o>>2]|0)+-1|0,6);if((e[o>>2]|0)>0){a=0;do{h=m+288+(a<<2)|0;s(r,e[h>>2]|0,16);ye[e[e[25664+(e[h>>2]<<2)>>2]>>2]&1](v,e[m+544+(a<<2)>>2]|0,r);a=a+1|0}while((a|0)<(e[o>>2]|0))}a=m+8|0;s(r,(e[a>>2]|0)+-1|0,6);if((e[a>>2]|0)>0){o=0;do{h=m+32+(o<<2)|0;s(r,e[e[h>>2]>>2]|0,1);s(r,e[(e[h>>2]|0)+4>>2]|0,16);s(r,e[(e[h>>2]|0)+8>>2]|0,16);s(r,e[(e[h>>2]|0)+12>>2]|0,8);o=o+1|0}while((o|0)<(e[a>>2]|0))}s(r,1,1);w=E+72|0;a=e[w>>2]|0;if(a)n(a);f=u(_(r)|0)|0;e[w>>2]=f;h=e[y>>2]|0;d(f|0,h|0,_(r)|0)|0;e[c>>2]=e[w>>2];e[c+4>>2]=_(r)|0;h=c+8|0;e[h>>2]=0;e[h+4>>2]=0;e[h+8>>2]=0;e[h+12>>2]=0;h=c+24|0;e[h>>2]=2;e[h+4>>2]=0;pe(r);h=0;i=g;return h|0}while(0);e[l>>2]=0;e[l+4>>2]=0;e[l+8>>2]=0;e[l+12>>2]=0;e[l+16>>2]=0;e[l+20>>2]=0;e[l+24>>2]=0;e[l+28>>2]=0;e[f>>2]=0;e[f+4>>2]=0;e[f+8>>2]=0;e[f+12>>2]=0;e[f+16>>2]=0;e[f+20>>2]=0;e[f+24>>2]=0;e[f+28>>2]=0;e[c>>2]=0;e[c+4>>2]=0;e[c+8>>2]=0;e[c+12>>2]=0;e[c+16>>2]=0;e[c+20>>2]=0;e[c+24>>2]=0;e[c+28>>2]=0;t=-130}else{o=-130;h=27}}else{o=-129;h=27}if((h|0)==27){e[l>>2]=0;e[l+4>>2]=0;e[l+8>>2]=0;e[l+12>>2]=0;e[l+16>>2]=0;e[l+20>>2]=0;e[l+24>>2]=0;e[l+28>>2]=0;e[f>>2]=0;e[f+4>>2]=0;e[f+8>>2]=0;e[f+12>>2]=0;e[f+16>>2]=0;e[f+20>>2]=0;e[f+24>>2]=0;e[f+28>>2]=0;e[c>>2]=0;e[c+4>>2]=0;e[c+8>>2]=0;e[c+12>>2]=0;e[c+16>>2]=0;e[c+20>>2]=0;e[c+24>>2]=0;e[c+28>>2]=0;p=E+64|0;t=o}pe(r);w=e[p>>2]|0;if(w)n(w);o=E+68|0;a=e[o>>2]|0;if(a)n(a);a=E+72|0;w=e[a>>2]|0;if(w)n(w);e[p>>2]=0;e[o>>2]=0;e[a>>2]=0;h=t;i=g;return h|0}function si(r,o){r=r|0;o=o|0;var t=0,i=0,f=0,l=0,n=0;s(r,3,8);s(r,118,8);s(r,111,8);s(r,114,8);s(r,98,8);s(r,105,8);s(r,115,8);s(r,44,32);t=1200;i=44;while(1){i=i+-1|0;s(r,a[t>>0]|0,8);if(!i)break;else t=t+1|0}f=o+8|0;s(r,e[f>>2]|0,32);if((e[f>>2]|0)<=0){s(r,1,1);return}l=o+4|0;n=0;do{if(e[(e[o>>2]|0)+(n<<2)>>2]|0){s(r,e[(e[l>>2]|0)+(n<<2)>>2]|0,32);i=e[(e[l>>2]|0)+(n<<2)>>2]|0;if(i){t=e[(e[o>>2]|0)+(n<<2)>>2]|0;while(1){i=i+-1|0;s(r,a[t>>0]|0,8);if(!i)break;else t=t+1|0}}}else s(r,0,32);n=n+1|0}while((n|0)<(e[f>>2]|0));s(r,1,1);return}function je(o,S,a,f){o=o|0;S=S|0;a=a|0;f=f|0;var l=0,e=0,n=0,s=0,E=0,d=0,b=0,c=0,m=0,p=0,u=0,v=0,_=0,h=0,g=0;v=i;c=f+1|0;m=i;i=i+((1*(c<<3)|0)+15&-16)|0;u=i;i=i+((1*(f<<3)|0)+15&-16)|0;if(!c)n=0;else{s=f;while(1){ if((s|0)<(a|0)){n=0;e=s;do{n=+r[o+(e-s<<2)>>2]*+r[o+(e<<2)>>2]+n;e=e+1|0}while((e|0)!=(a|0))}else n=0;t[m+(s<<3)>>3]=n;if(!s)break;else s=s+-1|0}n=+t[m>>3]}l=n*1.0000000001;b=n*1e-9+1e-10;c=(f|0)>0;if(c)d=0;else{i=v;return+l}do{e=d;d=d+1|0;if(l>3];if((e|0)>0){a=0;do{n=n-+t[m+(e-a<<3)>>3]*+t[u+(a<<3)>>3];a=a+1|0}while((a|0)!=(e|0));n=n/l;t[u+(e<<3)>>3]=n;s=(e|0)/2|0;if((e|0)>1){a=e+-1|0;E=(s|0)>1;o=0;do{g=u+(o<<3)|0;h=+t[g>>3];_=u+(a-o<<3)|0;t[g>>3]=+t[_>>3]*n+h;t[_>>3]=+t[_>>3]+h*n;o=o+1|0}while((o|0)<(s|0));o=E?s:1}else o=0}else{n=n/l;t[u+(e<<3)>>3]=n;o=0}if(e&1){E=u+(o<<3)|0;h=+t[E>>3];t[E>>3]=h*n+h}l=(1-n*n)*l}while((d|0)<(f|0));if((p|0)==8)w(u+(e<<3)|0,0,f-e<<3|0)|0;if(c){n=.99;e=0}else{i=v;return+l}while(1){p=u+(e<<3)|0;t[p>>3]=+t[p>>3]*n;e=e+1|0;if((e|0)==(f|0))break;else n=n*.99}if(c)e=0;else{i=v;return+l}do{r[S+(e<<2)>>2]=+t[u+(e<<3)>>3];e=e+1|0}while((e|0)!=(f|0));i=v;return+l}function We(h,n,t,u,o){h=h|0;n=n|0;t=t|0;u=u|0;o=o|0;var e=0,f=0,a=0,l=0,s=0,c=0,m=0;c=i;s=i;i=i+((1*(o+t<<2)|0)+15&-16)|0;e=(t|0)>0;if(!n){if(e)w(s|0,0,t<<2|0)|0}else if(e)d(s|0,n|0,t<<2|0)|0;if((o|0)<=0){i=c;return}if((t|0)>0){a=0;l=t}else{e=o<<2;w(s|0,0,e|0)|0;w(u|0,0,e|0)|0;i=c;return}while(1){n=a;e=t;f=0;do{m=n;n=n+1|0;e=e+-1|0;f=f-+r[h+(e<<2)>>2]*+r[s+(m<<2)>>2]}while((n|0)!=(l|0));r[s+(l<<2)>>2]=f;r[u+(a<<2)>>2]=f;a=a+1|0;if((a|0)==(o|0))break;else l=l+1|0}i=c;return}function ui(l,t,r){l=l|0;t=t|0;r=r|0;var o=0,n=0,i=0,f=0,a=0,c=0,d=0,u=0;if((e[t>>2]|0)>1){s(r,1,1);s(r,(e[t>>2]|0)+-1|0,4)}else s(r,0,1);f=t+1156|0;if((e[f>>2]|0)>0){s(r,1,1);s(r,(e[f>>2]|0)+-1|0,8);if((e[f>>2]|0)>0){i=t+1160|0;n=l+4|0;o=t+2184|0;a=0;do{u=e[i+(a<<2)>>2]|0;s(r,u,S((e[n>>2]|0)+-1|0)|0);u=e[o+(a<<2)>>2]|0;s(r,u,S((e[n>>2]|0)+-1|0)|0);a=a+1|0}while((a|0)<(e[f>>2]|0))}}else s(r,0,1);s(r,0,2);i=e[t>>2]|0;if((i|0)>1){i=l+4|0;if((e[i>>2]|0)>0){o=t+4|0;n=0;do{s(r,e[o+(n<<2)>>2]|0,4);n=n+1|0}while((n|0)<(e[i>>2]|0));c=e[t>>2]|0;d=13}}else{c=i;d=13}if((d|0)==13?(c|0)<=0:0)return;o=t+1028|0;n=t+1092|0;i=0;do{s(r,0,8);s(r,e[o+(i<<2)>>2]|0,8);s(r,e[n+(i<<2)>>2]|0,8);i=i+1|0}while((i|0)<(e[t>>2]|0));return}function ci(i,s){i=i|0;s=s|0;var t=0,f=0,o=0,p=0,d=0,l=0,u=0,a=0,r=0,v=0,c=0;t=h(1,3208)|0;v=e[i+28>>2]|0;w(t|0,0,3208)|0;r=i+4|0;e:do if((e[r>>2]|0)>=1?(o=m(s,1)|0,(o|0)>=0):0){if(o){a=m(s,4)|0;e[t>>2]=a+1;if((a|0)<0)break}else e[t>>2]=1;i=m(s,1)|0;if((i|0)>=0){if(i){a=m(s,8)|0;d=t+1156|0;e[d>>2]=a+1;if((a|0)<0)break;p=t+1160|0;o=t+2184|0;i=e[r>>2]|0;a=0;do{l=m(s,S(i+-1|0)|0)|0;e[p+(a<<2)>>2]=l;u=m(s,S((e[r>>2]|0)+-1|0)|0)|0;e[o+(a<<2)>>2]=u;if((l|0)==(u|0)|(u|l|0)<0)break e;i=e[r>>2]|0;a=a+1|0;if(!((l|0)<(i|0)&(u|0)<(i|0)))break e}while((a|0)<(e[d>>2]|0))}if(!(m(s,2)|0)){i=e[t>>2]|0;if((i|0)>1){if((e[r>>2]|0)>0){i=t+4|0;o=0;while(1){a=m(s,4)|0;e[i+(o<<2)>>2]=a;f=e[t>>2]|0;o=o+1|0;if((a|0)<0|(a|0)>=(f|0))break e;if((o|0)>=(e[r>>2]|0)){c=17;break}}}}else{f=i;c=17}if((c|0)==17?(f|0)<=0:0){r=t;return r|0}f=t+1028|0;p=v+16|0;d=t+1092|0;i=v+20|0;o=0;do{m(s,8)|0;r=m(s,8)|0;e[f+(o<<2)>>2]=r;if((r|0)<0?1:(r|0)>=(e[p>>2]|0))break e;r=m(s,8)|0;e[d+(o<<2)>>2]=r;o=o+1|0;if((r|0)<0?1:(r|0)>=(e[i>>2]|0))break e}while((o|0)<(e[t>>2]|0));return t|0}}}else c=24;while(0);if((c|0)==24?(t|0)==0:0){r=0;return r|0}n(t);r=0;return r|0}function di(e){e=e|0;if(e)n(e);return}function hi(o){o=o|0;var a=0,n=0,_=0,m=0,h=0,c=0,l=0,f=0,T=0,d=0,S=0,z=0,W=0,u=0,C=0,M=0,O=0,R=0,B=0,t=0,F=0,v=0,b=0,w=0,x=0,N=0,L=0,I=0,D=0,P=0,y=0,k=0,A=0,q=0,H=0,V=0;H=i;b=e[o+64>>2]|0;w=e[b+4>>2]|0;A=e[w+28>>2]|0;b=e[b+104>>2]|0;q=e[o+104>>2]|0;t=e[o+36>>2]|0;w=w+4|0;N=e[w>>2]<<2;x=i;i=i+((1*N|0)+15&-16)|0;N=g(o,N)|0;L=g(o,e[w>>2]<<2)|0;I=g(o,e[w>>2]<<2)|0;O=q+4|0;_=+r[O>>2];v=e[w>>2]|0;B=i;i=i+((1*(v<<2)|0)+15&-16)|0;D=o+28|0;P=e[D>>2]|0;y=e[A+544+(P<<2)>>2]|0;k=(e[b+56>>2]|0)+((((P|0)!=0?2:0)+(e[q+8>>2]|0)|0)*52|0)|0;R=o+40|0;e[R>>2]=P;if((v|0)>0){M=(t|0)/2|0;a=M<<2;C=+(((r[p>>2]=4/+(t|0),e[p>>2]|0)&2147483647)>>>0)*7.177114298428933e-7+-764.6162109375+.345;c=b+4|0;h=o+24|0;m=o+32|0;W=C+-764.6162109375;n=t+-1|0;u=(n|0)>1;C=C+-382.30810546875;z=_;l=0;while(1){f=e[(e[o>>2]|0)+(l<<2)>>2]|0;e[L+(l<<2)>>2]=g(o,a)|0;S=N+(l<<2)|0;e[S>>2]=g(o,a)|0;mt(f,c,A,e[h>>2]|0,e[D>>2]|0,e[m>>2]|0);Xe(e[e[b+12+(e[D>>2]<<2)>>2]>>2]|0,f,e[S>>2]|0);ot(b+20+((e[D>>2]|0)*12|0)|0,f);_=W+ +((e[f>>2]&2147483647)>>>0)*7.177114298428933e-7+.345;r[f>>2]=_;S=B+(l<<2)|0;r[S>>2]=_;if(u){d=1;do{T=+r[f+(d<<2)>>2];v=d+1|0;V=+r[f+(v<<2)>>2];T=C+ +(((r[p>>2]=V*V+T*T,e[p>>2]|0)&2147483647)>>>0)*3.5885571492144663e-7+.345;r[f+(v>>1<<2)>>2]=T;if(T>_){r[S>>2]=T;_=T}d=d+2|0}while((d|0)<(n|0))}if(_>0){r[S>>2]=0;_=0}_=_>z?_:z;l=l+1|0;if((l|0)>=(e[w>>2]|0))break;else z=_}}else{M=(t|0)/2|0;a=M<<2}F=g(o,a)|0;v=g(o,a)|0;a=e[w>>2]|0;e:do if((a|0)>0){u=b+48|0;if((t|0)>1)d=0;else{f=0;while(1){n=e[y+4+(f<<2)>>2]|0;m=e[N+(f<<2)>>2]|0;h=e[(e[o>>2]|0)+(f<<2)>>2]|0;c=h+(M<<2)|0;e[R>>2]=P;a=g(o,60)|0;l=I+(f<<2)|0;e[l>>2]=a;S=a+60|0;do{e[a>>2]=0;a=a+4|0}while((a|0)<(S|0));Je(k,c,F);Qe(k,h,v,_,+r[B+(f<<2)>>2]);U(k,F,v,1,h,m,c);n=y+1028+(n<<2)|0;a=e[n>>2]|0;if((e[A+800+(a<<2)>>2]|0)!=1){a=-1;break}t=j(o,e[(e[u>>2]|0)+(a<<2)>>2]|0,c,h)|0;e[(e[l>>2]|0)+28>>2]=t;if((K(o)|0)!=0?(e[(e[l>>2]|0)+28>>2]|0)!=0:0){U(k,F,v,2,h,m,c);t=j(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,c,h)|0;e[(e[l>>2]|0)+56>>2]=t;U(k,F,v,0,h,m,c);t=j(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,c,h)|0;e[e[l>>2]>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,9362)|0;e[(e[l>>2]|0)+4>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,18724)|0;e[(e[l>>2]|0)+8>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,28086)|0;e[(e[l>>2]|0)+12>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,37449)|0;e[(e[l>>2]|0)+16>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,46811)|0;e[(e[l>>2]|0)+20>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,56173)|0;e[(e[l>>2]|0)+24>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,9362)|0;e[(e[l>>2]|0)+32>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,18724)|0;e[(e[l>>2]|0)+36>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,28086)|0;e[(e[l>>2]|0)+40>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,37449)|0;e[(e[l>>2]|0)+44>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,46811)|0;e[(e[l>>2]|0)+48>>2]=t;t=e[l>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,56173)|0;e[(e[l>>2]|0)+52>>2]=t}f=f+1|0;a=e[w>>2]|0;if((f|0)>=(a|0))break e}i=H;return a|0}while(1){m=e[y+4+(d<<2)>>2]|0;h=e[N+(d<<2)>>2]|0;c=e[(e[o>>2]|0)+(d<<2)>>2]|0;l=c+(M<<2)|0;e[R>>2]=P;a=g(o,60)|0;f=I+(d<<2)|0;e[f>>2]=a;S=a+60|0;do{e[a>>2]=0;a=a+4|0}while((a|0)<(S|0));n=0;do{r[c+(n+M<<2)>>2]=+((e[h+(n<<2)>>2]&2147483647)>>>0)*7.177114298428933e-7+-764.6162109375+.345;n=n+1|0}while((n|0)<(M|0));Je(k,l,F);Qe(k,c,v,_,+r[B+(d<<2)>>2]);U(k,F,v,1,c,h,l);n=y+1028+(m<<2)|0;a=e[n>>2]|0;if((e[A+800+(a<<2)>>2]|0)!=1){a=-1;break}t=j(o,e[(e[u>>2]|0)+(a<<2)>>2]|0,l,c)|0;e[(e[f>>2]|0)+28>>2]=t;if((K(o)|0)!=0?(e[(e[f>>2]|0)+28>>2]|0)!=0:0){U(k,F,v,2,c,h,l);t=j(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,l,c)|0;e[(e[f>>2]|0)+56>>2]=t;U(k,F,v,0,c,h,l);t=j(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,l,c)|0;e[e[f>>2]>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,9362)|0;e[(e[f>>2]|0)+4>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,18724)|0;e[(e[f>>2]|0)+8>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,28086)|0;e[(e[f>>2]|0)+12>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,37449)|0;e[(e[f>>2]|0)+16>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,46811)|0;e[(e[f>>2]|0)+20>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t>>2]|0,e[t+28>>2]|0,56173)|0;e[(e[f>>2]|0)+24>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,9362)|0;e[(e[f>>2]|0)+32>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,18724)|0;e[(e[f>>2]|0)+36>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,28086)|0;e[(e[f>>2]|0)+40>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,37449)|0;e[(e[f>>2]|0)+44>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,46811)|0;e[(e[f>>2]|0)+48>>2]=t;t=e[f>>2]|0;t=E(o,e[(e[u>>2]|0)+(e[n>>2]<<2)>>2]|0,e[t+28>>2]|0,e[t+56>>2]|0,56173)|0;e[(e[f>>2]|0)+52>>2]=t}d=d+1|0;a=e[w>>2]|0;if((d|0)>=(a|0))break e}i=H;return a|0}else u=b+48|0;while(0);r[O>>2]=_;c=a<<2;O=i;i=i+((1*c|0)+15&-16)|0;R=i;i=i+((1*c|0)+15&-16)|0;c=(K(o)|0)!=0;B=b+44|0;t=o+24|0;F=o+32|0;v=A+2868|0;M=b+52|0;c=c?0:7;while(1){h=e[q+12+(c<<2)>>2]|0;s(h,0,1);s(h,P,e[B>>2]|0);if(e[D>>2]|0){s(h,e[t>>2]|0,1);s(h,e[F>>2]|0,1)}a=e[w>>2]|0;if((a|0)>0){n=0;do{e[x+(n<<2)>>2]=Wr(h,o,e[(e[u>>2]|0)+(e[y+1028+(e[y+4+(n<<2)>>2]<<2)>>2]<<2)>>2]|0,e[(e[I+(n<<2)>>2]|0)+(c<<2)>>2]|0,e[L+(n<<2)>>2]|0)|0;n=n+1|0;a=e[w>>2]|0}while((n|0)<(a|0))}Ti(c,v,k,y,N,L,x,e[A+3240+((e[D>>2]|0)*60|0)+(c<<2)>>2]|0,a);if((e[y>>2]|0)>0){d=0;do{S=e[y+1092+(d<<2)>>2]|0;n=e[w>>2]|0;if((n|0)>0){a=0;m=0;do{if((e[y+4+(m<<2)>>2]|0)==(d|0)){e[R+(a<<2)>>2]=(e[x+(m<<2)>>2]|0)!=0&1;e[O+(a<<2)>>2]=e[L+(m<<2)>>2];n=e[w>>2]|0;a=a+1|0}m=m+1|0}while((m|0)<(n|0));n=a}else n=0;f=A+1312+(S<<2)|0;l=Se[e[(e[25648+(e[f>>2]<<2)>>2]|0)+20>>2]&7](o,e[(e[M>>2]|0)+(S<<2)>>2]|0,O,R,n)|0;m=e[w>>2]|0;if((m|0)>0){n=0;a=0;do{if((e[y+4+(a<<2)>>2]|0)==(d|0)){e[O+(n<<2)>>2]=e[L+(a<<2)>>2];n=n+1|0}a=a+1|0}while((a|0)<(m|0))}else n=0;qe[e[(e[25648+(e[f>>2]<<2)>>2]|0)+24>>2]&3](h,o,e[(e[M>>2]|0)+(S<<2)>>2]|0,O,R,n,l,d)|0;d=d+1|0}while((d|0)<(e[y>>2]|0))}b=(K(o)|0)!=0;if((c|0)<((b?14:7)|0))c=c+1|0;else{a=0;break}}i=H;return a|0}function mi(l,s){l=l|0;s=s|0;var a=0,h=0,u=0,n=0,t=0,o=0,f=0,d=0,E=0,m=0,k=0,S=0,g=0,F=0,M=0,_=0,b=0,R=0,v=0,c=0,p=0,O=0,A=0;A=i;p=e[l+64>>2]|0;c=e[p+4>>2]|0;v=e[c+28>>2]|0;p=e[p+104>>2]|0;O=l+28|0;b=e[v+(e[O>>2]<<2)>>2]|0;e[l+36>>2]=b;c=c+4|0;t=e[c>>2]<<2;m=i;i=i+((1*t|0)+15&-16)|0;k=i;i=i+((1*t|0)+15&-16)|0;_=i;i=i+((1*t|0)+15&-16)|0;R=i;i=i+((1*t|0)+15&-16)|0;t=e[c>>2]|0;if((t|0)>0){n=s+4|0;u=s+1028|0;h=p+48|0;a=b<<1&2147483646;o=0;do{t=e[u+(e[n+(o<<2)>>2]<<2)>>2]|0;t=y[e[(e[25640+(e[v+800+(t<<2)>>2]<<2)>>2]|0)+20>>2]&15](l,e[(e[h>>2]|0)+(t<<2)>>2]|0)|0;e[R+(o<<2)>>2]=t;e[_+(o<<2)>>2]=(t|0)!=0&1;w(e[(e[l>>2]|0)+(o<<2)>>2]|0,0,a|0)|0;o=o+1|0;t=e[c>>2]|0}while((o|0)<(t|0))}S=s+1156|0;o=e[S>>2]|0;if((o|0)>0){n=s+1160|0;u=s+2184|0;f=0;do{h=_+(e[n+(f<<2)>>2]<<2)|0;a=e[u+(f<<2)>>2]|0;if(!((e[h>>2]|0)==0?(e[_+(a<<2)>>2]|0)==0:0)){e[h>>2]=1;e[_+(a<<2)>>2]=1}f=f+1|0}while((f|0)<(o|0))}if((e[s>>2]|0)>0){M=s+1092|0;F=p+52|0;g=s+4|0;n=0;while(1){if((t|0)>0){f=0;o=0;do{if((e[g+(o<<2)>>2]|0)==(n|0)){e[k+(f<<2)>>2]=(e[_+(o<<2)>>2]|0)!=0&1;e[m+(f<<2)>>2]=e[(e[l>>2]|0)+(o<<2)>>2];t=e[c>>2]|0;f=f+1|0}o=o+1|0}while((o|0)<(t|0));t=f}else t=0;a=e[M+(n<<2)>>2]|0;Se[e[(e[25648+(e[v+1312+(a<<2)>>2]<<2)>>2]|0)+28>>2]&7](l,e[(e[F>>2]|0)+(a<<2)>>2]|0,m,k,t)|0;n=n+1|0;if((n|0)>=(e[s>>2]|0))break;t=e[c>>2]|0}t=e[S>>2]|0}else t=o;if((t|0)>0){S=s+1160|0;g=e[l>>2]|0;F=s+2184|0;M=(b|0)/2|0;k=(b|0)>1;do{a=t;t=t+-1|0;f=e[g+(e[S+(t<<2)>>2]<<2)>>2]|0;o=e[g+(e[F+(t<<2)>>2]<<2)>>2]|0;if(k){m=0;do{n=f+(m<<2)|0;d=+r[n>>2];u=o+(m<<2)|0;E=+r[u>>2];h=E>0;do if(d>0)if(h){r[n>>2]=d;r[u>>2]=d-E;break}else{r[u>>2]=d;r[n>>2]=E+d;break}else if(h){r[n>>2]=d;r[u>>2]=E+d;break}else{r[u>>2]=d;r[n>>2]=d-E;break}while(0);m=m+1|0}while((m|0)<(M|0))}}while((a|0)>1)}if((e[c>>2]|0)<=0){i=A;return 0}t=s+4|0;h=s+1028|0;u=p+48|0;n=0;do{a=e[h+(e[t+(n<<2)>>2]<<2)>>2]|0;de[e[(e[25640+(e[v+800+(a<<2)>>2]<<2)>>2]|0)+24>>2]&3](l,e[(e[u>>2]|0)+(a<<2)>>2]|0,e[R+(n<<2)>>2]|0,e[(e[l>>2]|0)+(n<<2)>>2]|0)|0;n=n+1|0;a=e[c>>2]|0}while((n|0)<(a|0));if((a|0)<=0){i=A;return 0}a=0;do{v=e[(e[l>>2]|0)+(a<<2)>>2]|0;vi(e[e[p+12+(e[O>>2]<<2)>>2]>>2]|0,v,v);a=a+1|0}while((a|0)<(e[c>>2]|0));i=A;return 0}function ve(l,t){l=l|0;t=t|0;var i=0,o=0,p=0,a=0,n=0,s=0,c=0,f=0,m=0,h=0,d=0,w=0;i=(t|0)/4|0;m=u(i<<2)|0;c=u(i+t<<2)|0;a=t>>1;h=+(t|0);s=~~+F(+D(+h)*1.4426950408889634);e[l+4>>2]=s;e[l>>2]=t;e[l+8>>2]=c;e[l+12>>2]=m;if((t|0)<=3){o=4/h;i=l+16|0;r[i>>2]=o;return}o=3.141592653589793/+(t|0);p=3.141592653589793/+(t<<1|0);n=0;do{d=o*+(n<<2|0);f=n<<1;r[c+(f<<2)>>2]=+G(+d);w=f|1;r[c+(w<<2)>>2]=-+I(+d);d=p*+(w|0);f=f+a|0;r[c+(f<<2)>>2]=+G(+d);r[c+(f+1<<2)>>2]=+I(+d);n=n+1|0}while((n|0)<(i|0));f=(t|0)/8|0;n=(t|0)>7;if(!n){o=4/h;i=l+16|0;r[i>>2]=o;return}o=3.141592653589793/+(t|0);i=0;do{d=o*+(i<<2|2|0);a=(i<<1)+t|0;r[c+(a<<2)>>2]=+G(+d)*.5;r[c+(a+1<<2)>>2]=+I(+d)*-.5;i=i+1|0}while((i|0)<(f|0));c=(1<>2]=o;return}do{a=t;i=0;n=0;do{i=((a&s|0)==0?0:1<>n}while((a|0)!=0);a=s<<1;e[m+(a<<2)>>2]=(c&~i)+-1;e[m+((a|1)<<2)>>2]=i;s=s+1|0}while((s|0)<(f|0));o=4/h;i=l+16|0;r[i>>2]=o;return}function ce(r){r=r|0;var i=0;if(!r)return;i=e[r+8>>2]|0;if(i)n(i);i=e[r+12>>2]|0;if(i)n(i);e[r>>2]=0;e[r+4>>2]=0;e[r+8>>2]=0;e[r+12>>2]=0;e[r+16>>2]=0;return}function vi(s,a,v){s=s|0;a=a|0;v=v|0;var n=0,i=0,t=0,o=0,p=0,u=0,l=0,f=0,E=0,w=0,c=0,h=0,m=0,d=0;f=e[s>>2]|0;p=f>>1;f=f>>2;w=v+(p+f<<2)|0;u=s+8|0;l=e[u>>2]|0;n=l+(f<<2)|0;o=n;t=a+(p+-7<<2)|0;i=w;while(1){E=i;i=i+-16|0;c=t+8|0;h=o+12|0;m=o+8|0;r[i>>2]=-(+r[c>>2]*+r[h>>2])-+r[m>>2]*+r[t>>2];r[E+-12>>2]=+r[h>>2]*+r[t>>2]-+r[m>>2]*+r[c>>2];c=t+24|0;m=o+4|0;h=t+16|0;r[E+-8>>2]=-(+r[c>>2]*+r[m>>2])-+r[o>>2]*+r[h>>2];r[E+-4>>2]=+r[m>>2]*+r[h>>2]-+r[o>>2]*+r[c>>2];t=t+-32|0;if(t>>>0>>0)break;else o=o+16|0}E=v+(p<<2)|0;o=n;t=a+(p+-8<<2)|0;i=w;while(1){h=t+16|0;n=o+-4|0;c=t+24|0;m=o+-8|0;r[i>>2]=+r[m>>2]*+r[c>>2]+ +r[n>>2]*+r[h>>2];r[i+4>>2]=+r[m>>2]*+r[h>>2]-+r[n>>2]*+r[c>>2];c=o+-12|0;o=o+-16|0;n=t+8|0;r[i+8>>2]=+r[o>>2]*+r[n>>2]+ +r[c>>2]*+r[t>>2];r[i+12>>2]=+r[o>>2]*+r[t>>2]-+r[c>>2]*+r[n>>2];t=t+-32|0;if(t>>>0>>0)break;else i=i+16|0}Ke(e[s+4>>2]|0,l,E,p);Ge(e[s>>2]|0,e[u>>2]|0,e[s+12>>2]|0,v);t=(e[u>>2]|0)+(p<<2)|0;i=v;n=w;o=w;while(1){a=t+4|0;l=i+4|0;r[n+-4>>2]=+r[a>>2]*+r[i>>2]-+r[t>>2]*+r[l>>2];r[o>>2]=-(+r[t>>2]*+r[i>>2]+ +r[a>>2]*+r[l>>2]);l=i+8|0;a=t+12|0;s=i+12|0;u=t+8|0;r[n+-8>>2]=+r[a>>2]*+r[l>>2]-+r[u>>2]*+r[s>>2];r[o+4>>2]=-(+r[u>>2]*+r[l>>2]+ +r[a>>2]*+r[s>>2]);s=i+16|0;a=t+20|0;l=i+20|0;u=t+16|0;r[n+-12>>2]=+r[a>>2]*+r[s>>2]-+r[u>>2]*+r[l>>2];n=n+-16|0;r[o+8>>2]=-(+r[u>>2]*+r[s>>2]+ +r[a>>2]*+r[l>>2]);l=i+24|0;a=t+28|0;s=i+28|0;u=t+24|0;r[n>>2]=+r[a>>2]*+r[l>>2]-+r[u>>2]*+r[s>>2];r[o+12>>2]=-(+r[u>>2]*+r[l>>2]+ +r[a>>2]*+r[s>>2]);i=i+32|0;if(i>>>0>=n>>>0)break;else{t=t+32|0;o=o+16|0}}t=v+(f<<2)|0;i=w;n=t;do{f=n;n=n+-16|0;d=+r[i+-4>>2];r[f+-4>>2]=d;r[t>>2]=-d;d=+r[i+-8>>2];r[f+-8>>2]=d;r[t+4>>2]=-d;d=+r[i+-12>>2];i=i+-16|0;r[f+-12>>2]=d;r[t+8>>2]=-d;d=+r[i>>2];r[n>>2]=d;r[t+12>>2]=-d;t=t+16|0}while(t>>>0>>0);i=w;n=w;while(1){f=n;n=n+-16|0;e[n>>2]=e[i+12>>2];e[f+-12>>2]=e[i+8>>2];e[f+-8>>2]=e[i+4>>2];e[f+-4>>2]=e[i>>2];if(n>>>0<=E>>>0)break;else i=i+16|0}return}function Xe(w,m,y){w=w|0;m=m|0;y=y|0;var n=0,u=0,t=0,a=0,o=0,S=0,p=0,h=0,l=0,f=0,E=0,M=0,_=0,g=0,s=0,b=0,k=0,d=0,c=0,v=0;k=i;E=e[w>>2]|0;s=E>>1;b=E>>2;l=E>>3;u=i;i=i+((1*(E<<2)|0)+15&-16)|0;M=u+(s<<2)|0;o=s+b|0;a=m+(o<<2)|0;g=w+8|0;_=e[g>>2]|0;n=_+(s<<2)|0;if((l|0)>0){h=(l+-1|0)>>>1;p=h<<1;S=s+-2-p|0;h=o+-4-(h<<2)|0;t=0;o=m+(o+1<<2)|0;while(1){v=a;a=a+-16|0;f=n;n=n+-8|0;d=+r[o>>2]+ +r[v+-8>>2];c=+r[o+8>>2]+ +r[a>>2];f=f+-4|0;r[u+(t+s<<2)>>2]=+r[n>>2]*d+c*+r[f>>2];r[u+((t|1)+s<<2)>>2]=+r[n>>2]*c-+r[f>>2]*d;t=t+2|0;if((t|0)>=(l|0))break;else o=o+16|0}f=S;n=_+(S<<2)|0;t=p+2|0;a=m+(h<<2)|0}else{f=s;t=0}o=m+4|0;h=s-l|0;if((t|0)<(h|0)){l=(s+-1-t-l|0)>>>1;p=l<<1;S=t+p|0;l=(l<<2)+5|0;p=-2-p|0;while(1){v=n;n=n+-8|0;d=+r[a+-8>>2]-+r[o>>2];a=a+-16|0;c=+r[a>>2]-+r[o+8>>2];v=v+-4|0;r[u+(t+s<<2)>>2]=+r[n>>2]*d+c*+r[v>>2];r[u+((t|1)+s<<2)>>2]=+r[n>>2]*c-+r[v>>2]*d;t=t+2|0;if((t|0)>=(h|0))break;else o=o+16|0}n=_+(f+p<<2)|0;t=S+2|0;o=m+(l<<2)|0}if((t|0)<(s|0)){a=m+(E<<2)|0;while(1){f=n;n=n+-8|0;d=-+r[a+-8>>2]-+r[o>>2];a=a+-16|0;c=-+r[a>>2]-+r[o+8>>2];f=f+-4|0;r[u+(t+s<<2)>>2]=+r[n>>2]*d+c*+r[f>>2];r[u+((t|1)+s<<2)>>2]=+r[n>>2]*c-+r[f>>2]*d;t=t+2|0;if((t|0)>=(s|0))break;else o=o+16|0}}Ke(e[w+4>>2]|0,_,M,s);Ge(e[w>>2]|0,e[g>>2]|0,e[w+12>>2]|0,u);if((b|0)<=0){i=k;return}o=w+16|0;t=(e[g>>2]|0)+(s<<2)|0;a=0;n=y+(s<<2)|0;while(1){n=n+-4|0;f=u+4|0;l=t+4|0;r[y+(a<<2)>>2]=(+r[l>>2]*+r[f>>2]+ +r[t>>2]*+r[u>>2])*+r[o>>2];r[n>>2]=(+r[l>>2]*+r[u>>2]-+r[t>>2]*+r[f>>2])*+r[o>>2];a=a+1|0;if((a|0)==(b|0))break;else{t=t+8|0;u=u+8|0}}i=k;return}function Ke(t,H,a,j){t=t|0;H=H|0;a=a|0;j=j|0;var F=0,m=0,z=0,W=0,q=0,M=0,b=0,p=0,v=0,x=0,C=0,V=0,N=0,I=0,A=0,y=0,U=0,n=0,e=0,o=0,i=0,s=0,O=0,g=0,k=0,D=0,R=0,P=0,l=0,h=0,u=0,E=0,w=0,c=0,T=0,d=0,L=0,B=0,_=0,S=0,X=0,re=0,K=0,ie=0,ee=0,J=0,Q=0,$=0,Z=0,Y=0,G=0;U=t+-6|0;if((t|0)>6){t=H;F=a+(j+-8<<2)|0;m=a+((j>>1)+-8<<2)|0;while(1){b=F+24|0;i=+r[b>>2];M=m+24|0;e=+r[M>>2];n=i-e;p=F+28|0;o=+r[p>>2];v=m+28|0;s=o-+r[v>>2];r[b>>2]=e+i;r[p>>2]=+r[v>>2]+o;p=t+4|0;r[M>>2]=+r[t>>2]*n+ +r[p>>2]*s;r[v>>2]=+r[t>>2]*s-+r[p>>2]*n;v=F+16|0;n=+r[v>>2];p=m+16|0;s=+r[p>>2];o=n-s;M=F+20|0;i=+r[M>>2];b=m+20|0;e=i-+r[b>>2];r[v>>2]=s+n;r[M>>2]=+r[b>>2]+i;M=t+20|0;v=t+16|0;r[p>>2]=+r[v>>2]*o+ +r[M>>2]*e;r[b>>2]=+r[v>>2]*e-+r[M>>2]*o;b=F+8|0;o=+r[b>>2];M=m+8|0;e=+r[M>>2];i=o-e;v=F+12|0;n=+r[v>>2];p=m+12|0;s=n-+r[p>>2];r[b>>2]=e+o;r[v>>2]=+r[p>>2]+n;v=t+36|0;b=t+32|0;r[M>>2]=+r[b>>2]*i+ +r[v>>2]*s;r[p>>2]=+r[b>>2]*s-+r[v>>2]*i;i=+r[F>>2];s=+r[m>>2];n=i-s;p=F+4|0;o=+r[p>>2];v=m+4|0;e=o-+r[v>>2];r[F>>2]=s+i;r[p>>2]=+r[v>>2]+o;p=t+52|0;b=t+48|0;r[m>>2]=+r[b>>2]*n+ +r[p>>2]*e;r[v>>2]=+r[b>>2]*e-+r[p>>2]*n;m=m+-32|0;if(m>>>0>>0)break;else{t=t+64|0;F=F+-32|0}}}if((U|0)>1){N=1;do{v=1<>N;C=4<>1)+-8|0;z=C+1|0;W=C<<1;q=W|1;M=C*3|0;b=M+1|0;p=C<<2;I=0;do{y=f(I,x)|0;V=a+(y<<2)|0;m=H;A=a+(F+y<<2)|0;y=a+(t+y<<2)|0;while(1){R=A+24|0;i=+r[R>>2];g=y+24|0;e=+r[g>>2];n=i-e;k=A+28|0;o=+r[k>>2];D=y+28|0;s=o-+r[D>>2];r[R>>2]=e+i;r[k>>2]=+r[D>>2]+o;k=m+4|0;r[g>>2]=+r[m>>2]*n+ +r[k>>2]*s;r[D>>2]=+r[m>>2]*s-+r[k>>2]*n;D=m+(C<<2)|0;k=A+16|0;n=+r[k>>2];g=y+16|0;s=+r[g>>2];o=n-s;R=A+20|0;i=+r[R>>2];O=y+20|0;e=i-+r[O>>2];r[k>>2]=s+n;r[R>>2]=+r[O>>2]+i;R=m+(z<<2)|0;r[g>>2]=+r[D>>2]*o+ +r[R>>2]*e;r[O>>2]=+r[D>>2]*e-+r[R>>2]*o;O=m+(W<<2)|0;R=A+8|0;o=+r[R>>2];D=y+8|0;e=+r[D>>2];i=o-e;g=A+12|0;n=+r[g>>2];k=y+12|0;s=n-+r[k>>2];r[R>>2]=e+o;r[g>>2]=+r[k>>2]+n;g=m+(q<<2)|0;r[D>>2]=+r[O>>2]*i+ +r[g>>2]*s;r[k>>2]=+r[O>>2]*s-+r[g>>2]*i;k=m+(M<<2)|0;i=+r[A>>2];s=+r[y>>2];n=i-s;g=A+4|0;o=+r[g>>2];O=y+4|0;e=o-+r[O>>2];r[A>>2]=s+i;r[g>>2]=+r[O>>2]+o;g=m+(b<<2)|0;r[y>>2]=+r[k>>2]*n+ +r[g>>2]*e;r[O>>2]=+r[k>>2]*e-+r[g>>2]*n;y=y+-32|0;if(y>>>0>>0)break;else{m=m+(p<<2)|0;A=A+-32|0}}I=I+1|0}while((I|0)<(v|0))}N=N+1|0}while((N|0)!=(U|0))}if((j|0)>0)t=0;else return;do{Q=a+(t<<2)|0;C=a+((t|30)<<2)|0;l=+r[C>>2];X=a+((t|14)<<2)|0;d=+r[X>>2];U=a+((t|31)<<2)|0;e=+r[U>>2];p=a+((t|15)<<2)|0;u=+r[p>>2];r[C>>2]=d+l;r[U>>2]=u+e;r[X>>2]=l-d;r[p>>2]=e-u;V=a+((t|28)<<2)|0;u=+r[V>>2];R=a+((t|12)<<2)|0;e=+r[R>>2];d=u-e;H=a+((t|29)<<2)|0;l=+r[H>>2];b=a+((t|13)<<2)|0;w=+r[b>>2];h=l-w;r[V>>2]=e+u;r[H>>2]=w+l;r[R>>2]=d*.9238795042037964-h*.3826834261417389;r[b>>2]=h*.9238795042037964+d*.3826834261417389;I=a+((t|26)<<2)|0;d=+r[I>>2];k=a+((t|10)<<2)|0;h=+r[k>>2];l=d-h;A=a+((t|27)<<2)|0;w=+r[A>>2];g=a+((t|11)<<2)|0;u=+r[g>>2];e=w-u;r[I>>2]=h+d;r[A>>2]=u+w;r[k>>2]=(l-e)*.7071067690849304;r[g>>2]=(e+l)*.7071067690849304;N=a+((t|24)<<2)|0;l=+r[N>>2];D=a+((t|8)<<2)|0;e=+r[D>>2];w=l-e;y=a+((t|25)<<2)|0;u=+r[y>>2];v=a+((t|9)<<2)|0;d=+r[v>>2];h=u-d;r[N>>2]=e+l;r[y>>2]=d+u;u=w*.3826834261417389-h*.9238795042037964;w=h*.3826834261417389+w*.9238795042037964;M=a+((t|22)<<2)|0;h=+r[M>>2];Z=a+((t|6)<<2)|0;d=+r[Z>>2];l=h-d;K=a+((t|7)<<2)|0;e=+r[K>>2];F=a+((t|23)<<2)|0;E=+r[F>>2];G=e-E;r[M>>2]=d+h;r[F>>2]=E+e;r[Z>>2]=G;r[K>>2]=l;$=a+((t|4)<<2)|0;e=+r[$>>2];q=a+((t|20)<<2)|0;E=+r[q>>2];h=e-E;re=a+((t|5)<<2)|0;d=+r[re>>2];x=a+((t|21)<<2)|0;n=+r[x>>2];_=d-n;r[q>>2]=E+e;r[x>>2]=n+d;d=_*.9238795042037964+h*.3826834261417389;h=_*.3826834261417389-h*.9238795042037964;J=a+((t|2)<<2)|0;_=+r[J>>2];z=a+((t|18)<<2)|0;n=+r[z>>2];e=_-n;ee=a+((t|3)<<2)|0;E=+r[ee>>2];O=a+((t|19)<<2)|0;i=+r[O>>2];o=E-i;r[z>>2]=n+_;r[O>>2]=i+E;E=(o+e)*.7071067690849304;e=(o-e)*.7071067690849304;o=+r[Q>>2];W=a+((t|16)<<2)|0;i=+r[W>>2];_=o-i;ie=a+((t|1)<<2)|0;n=+r[ie>>2];m=a+((t|17)<<2)|0;T=+r[m>>2];c=n-T;o=i+o;r[W>>2]=o;n=T+n;r[m>>2]=n;T=c*.3826834261417389+_*.9238795042037964;_=c*.9238795042037964-_*.3826834261417389;c=_-w;i=T-u;u=T+u;w=_+w;_=i+c;i=c-i;c=+r[g>>2];T=e-c;s=+r[k>>2];P=s-E;E=s+E;e=c+e;c=+r[R>>2];s=c-d;Y=+r[b>>2];S=Y-h;d=c+d;h=Y+h;Y=s-S;s=S+s;S=+r[X>>2];c=S-G;B=+r[p>>2];L=B-l;S=G+S;B=l+B;l=c+T;T=c-T;c=(Y+_)*.7071067690849304;_=(Y-_)*.7071067690849304;r[Z>>2]=c+l;r[$>>2]=l-c;c=(s-i)*.7071067690849304;l=L-P;r[Q>>2]=c+T;r[J>>2]=T-c;i=(s+i)*.7071067690849304;P=L+P;r[ee>>2]=l+_;r[ie>>2]=l-_;r[K>>2]=P+i;r[re>>2]=P-i;i=S+E;E=S-E;S=u+d;u=d-u;r[X>>2]=i+S;r[R>>2]=i-S;S=h-w;i=B-e;r[D>>2]=E+S;r[k>>2]=E-S;w=h+w;e=B+e;r[g>>2]=i+u;r[v>>2]=i-u;r[p>>2]=e+w;r[b>>2]=e-w;w=+r[y>>2];e=n-w;u=+r[N>>2];i=o-u;o=u+o;n=w+n;w=i+e;i=e-i;e=+r[O>>2];u=+r[A>>2];B=e-u;h=+r[I>>2];S=+r[z>>2];E=h-S;h=S+h;e=u+e;u=+r[V>>2];S=+r[q>>2];d=u-S;P=+r[H>>2];_=+r[x>>2];l=P-_;u=S+u;P=_+P;_=d-l;d=l+d;l=+r[C>>2];S=+r[M>>2];L=l-S;s=+r[U>>2];c=+r[F>>2];T=s-c;l=S+l;s=c+s;c=L+B;B=L-B;L=(_+w)*.7071067690849304;w=(_-w)*.7071067690849304;r[M>>2]=L+c;r[q>>2]=c-L;L=(d-i)*.7071067690849304;c=T-E;r[W>>2]=L+B;r[z>>2]=B-L;i=(d+i)*.7071067690849304;E=T+E;r[O>>2]=c+w;r[m>>2]=c-w;r[F>>2]=E+i;r[x>>2]=E-i;i=l+h;h=l-h;l=u+o;o=u-o;r[C>>2]=i+l;r[V>>2]=i-l;l=P-n;i=s-e;r[N>>2]=h+l;r[I>>2]=h-l;n=P+n;e=s+e;r[A>>2]=i+o;r[y>>2]=i-o;r[U>>2]=e+n;r[H>>2]=e-n;t=t+32|0}while((t|0)<(j|0));return}function Ge(o,a,n,i){o=o|0;a=a|0;n=n|0;i=i|0;var d=0,h=0,c=0,u=0,f=0,E=0,t=0,s=0,l=0,w=0,p=0,v=0,_=0,m=0;h=o>>1;d=a+(o<<2)|0;a=n;n=i;o=i+(h<<2)|0;while(1){m=(e[a>>2]|0)+h|0;c=(e[a+4>>2]|0)+h|0;s=+r[i+(m+1<<2)>>2];p=+r[i+(c+1<<2)>>2];l=s-p;u=+r[i+(m<<2)>>2];t=+r[i+(c<<2)>>2];v=t+u;w=+r[d>>2];E=+r[d+4>>2];f=E*l+v*w;l=E*v-w*l;c=o;o=o+-16|0;s=(p+s)*.5;t=(u-t)*.5;r[n>>2]=f+s;r[c+-8>>2]=s-f;r[n+4>>2]=l+t;r[c+-4>>2]=l-t;m=(e[a+8>>2]|0)+h|0;_=(e[a+12>>2]|0)+h|0;t=+r[i+(m+1<<2)>>2];l=+r[i+(_+1<<2)>>2];f=t-l;s=+r[i+(m<<2)>>2];u=+r[i+(_<<2)>>2];p=u+s;w=+r[d+8>>2];v=+r[d+12>>2];E=v*f+p*w;f=v*p-w*f;t=(l+t)*.5;u=(s-u)*.5;r[n+8>>2]=E+t;r[o>>2]=t-E;r[n+12>>2]=f+u;r[c+-12>>2]=f-u;n=n+16|0;if(n>>>0>=o>>>0)break;else{d=d+16|0;a=a+16|0}}return}function gi(t){t=t|0;var i=0,n=0;n=(e[t+28>>2]|0)+2868|0;i=h(1,36)|0;e[i+4>>2]=e[t+4>>2];r[i>>2]=-9999;e[i+8>>2]=n;return i|0}function bi(e){e=e|0;if(!e)return;n(e);return}function yi(e){e=e|0;if(e)n(e);return}function lr(m,v,c,s,w){m=m|0;v=v|0;c=c|0;s=s|0;w=w|0;var n=0,t=0,o=0,i=0,l=0,d=0,b=0,T=0,h=0,E=0,S=0,y=0,k=0,g=0,a=0,p=0,M=0,A=0,R=0,_=0,O=0;n=m;t=n+48|0;do{e[n>>2]=0;n=n+4|0}while((n|0)<(t|0));p=e[c>>2]|0;e[m+36>>2]=p;h=~~(+F(+D(+(+(p|0)*8))*1.4426950408889634)+-1);k=m+32|0;e[k>>2]=h;l=+(w|0);a=+(s|0);d=+(1<>2]=p;e[m+40>>2]=1-p+~~(d*(+D(+((+(s|0)+.25)*l*.5/a))*1.4426950216293335+-5.965784072875977)+.5);p=s<<2;h=u(p)|0;e[m+16>>2]=h;g=u(p)|0;e[m+20>>2]=g;y=u(p)|0;e[m+24>>2]=y;M=m+4|0;e[M>>2]=v;e[m>>2]=s;e[m+44>>2]=w;i=m+48|0;r[i>>2]=1;do if((w|0)>=26e3){if((w|0)<38e3){r[i>>2]=.9399999976158142;break}if((w|0)>46e3)r[i>>2]=1.274999976158142}else r[i>>2]=0;while(0);R=a*2;_=+(w|0);o=(s|0)>0;t=0;c=0;e:while(1){n=o^1;while(1){i=t;t=t+1|0;o=~~+F(R*+C(+(+(t|0)*.08664337545633316+2.7488713472395148))/_);if(!((o|0)<=(c|0)|n))break;if((t|0)>=87){i=c;break e}}d=+r[1272+(i<<2)>>2];l=(+r[1272+(t<<2)>>2]-d)/+(o-c|0);o=c-o|0;i=c-s|0;i=c-(o>>>0>i>>>0?o:i)|0;o=c;while(1){r[h+(o<<2)>>2]=d+100;o=o+1|0;if((o|0)==(i|0))break;else d=d+l}if((t|0)<87){o=(i|0)<(s|0);c=i}else break}if((i|0)<(s|0))do{e[h+(i<<2)>>2]=e[h+(i+-1<<2)>>2];i=i+1|0}while((i|0)!=(s|0));S=(s|0)>0;if(S){c=(w|0)/(s<<1|0)|0;b=e[v+120>>2]|0;T=v+124|0;w=v+116|0;h=v+112|0;i=1;E=0;o=-99;do{t=f(c,E)|0;l=+(t|0);l=+H(+(+(f(t,t)|0)*1.8499999754340024e-8))*2.240000009536743+ +H(+(l*.0007399999885819852))*13.100000381469727+l*9999999747378752e-20;e:do if((b+o|0)<(E|0)){d=l-+r[h>>2];do{t=f(o,c)|0;O=+(t|0);if(!(+H(+(O*.0007399999885819852))*13.100000381469727+O*9999999747378752e-20+ +H(+(+(f(t,t)|0)*1.8499999754340024e-8))*2.240000009536743>2]|0)+E|0;t=i;while(1){if((t|0)>=(n|0)?(i=f(t,c)|0,d=+(i|0),d=+H(+(d*.0007399999885819852))*13.100000381469727+d*9999999747378752e-20+ +H(+(+(f(i,i)|0)*1.8499999754340024e-8))*2.240000009536743,!(d<+r[w>>2]+l)):0){i=t;break e}i=t+1|0;if((t|0)<(s|0))t=i;else break}}while(0);e[y+(E<<2)>>2]=(o<<16)+-65537+i;E=E+1|0}while((E|0)!=(s|0));if(S){l=_*.5;d=+(1<<(e[k>>2]|0)+1|0);i=0;do{e[g+(i<<2)>>2]=~~(d*(+D(+(l*(+(i|0)+.25)/a))*1.4426950216293335+-5.965784072875977)+.5);i=i+1|0}while((i|0)!=(s|0))}else A=19}else A=19;if((A|0)==19)l=_*.5;e[m+8>>2]=Ni(v+36|0,l/a,s,+r[v+24>>2],+r[v+28>>2])|0;n=u(12)|0;e[m+12>>2]=n;e[n>>2]=u(p)|0;e[n+4>>2]=u(p)|0;e[n+8>>2]=u(p)|0;if(!S)return;i=e[M>>2]|0;t=e[n>>2]|0;o=e[n+4>>2]|0;c=e[n+8>>2]|0;n=0;do{a=+D(+((+(n|0)+.5)*_/R))*2.885390043258667+-11.931568145751953;a=a<0?0:a;a=a>=16?16:a;h=~~a;a=a-+(h|0);l=1-a;w=h+1|0;r[t+(n<<2)>>2]=+r[i+132+(w<<2)>>2]*a+ +r[i+132+(h<<2)>>2]*l;r[o+(n<<2)>>2]=+r[i+200+(w<<2)>>2]*a+ +r[i+200+(h<<2)>>2]*l;r[c+(n<<2)>>2]=+r[i+268+(w<<2)>>2]*a+ +r[i+268+(h<<2)>>2]*l;n=n+1|0}while((n|0)!=(s|0));return}function Ze(o){o=o|0;var r=0,t=0,i=0;if(!o)return;r=e[o+16>>2]|0;if(r)n(r);r=e[o+20>>2]|0;if(r)n(r);r=e[o+24>>2]|0;if(r)n(r);i=o+8|0;t=e[i>>2]|0;if(t){r=0;while(1){n(e[e[t+(r<<2)>>2]>>2]|0);n(e[(e[(e[i>>2]|0)+(r<<2)>>2]|0)+4>>2]|0);n(e[(e[(e[i>>2]|0)+(r<<2)>>2]|0)+8>>2]|0);n(e[(e[(e[i>>2]|0)+(r<<2)>>2]|0)+12>>2]|0);n(e[(e[(e[i>>2]|0)+(r<<2)>>2]|0)+16>>2]|0);n(e[(e[(e[i>>2]|0)+(r<<2)>>2]|0)+20>>2]|0);n(e[(e[(e[i>>2]|0)+(r<<2)>>2]|0)+24>>2]|0);n(e[(e[(e[i>>2]|0)+(r<<2)>>2]|0)+28>>2]|0);n(e[(e[i>>2]|0)+(r<<2)>>2]|0);r=r+1|0;if((r|0)==17)break;t=e[i>>2]|0}n(e[i>>2]|0)}t=o+12|0;r=e[t>>2]|0;if(r){n(e[r>>2]|0);n(e[(e[t>>2]|0)+4>>2]|0);n(e[(e[t>>2]|0)+8>>2]|0);n(e[t>>2]|0)}r=o;t=r+52|0;do{e[r>>2]=0;r=r+4|0}while((r|0)<(t|0));return}function Je(n,l,f){n=n|0;l=l|0;f=f|0;var t=0,a=0,o=0,s=0,u=0,c=0;c=i;s=e[n>>2]|0;u=i;i=i+((1*(s<<2)|0)+15&-16)|0;a=n+24|0;$e(s,e[a>>2]|0,l,f,140,-1);o=(s|0)>0;if(o){t=0;do{r[u+(t<<2)>>2]=+r[l+(t<<2)>>2]-+r[f+(t<<2)>>2];t=t+1|0}while((t|0)!=(s|0))}n=n+4|0;$e(s,e[a>>2]|0,u,f,0,e[(e[n>>2]|0)+128>>2]|0);if(o)t=0;else{i=c;return}do{a=u+(t<<2)|0;r[a>>2]=+r[l+(t<<2)>>2]-+r[a>>2];t=t+1|0}while((t|0)!=(s|0));if(!o){i=c;return}n=e[n>>2]|0;t=0;do{a=f+(t<<2)|0;o=~~(+r[a>>2]+.5);o=(o|0)>39?39:o;r[a>>2]=+r[n+336+(((o|0)<0?0:o)<<2)>>2]+ +r[u+(t<<2)>>2];t=t+1|0}while((t|0)!=(s|0));i=c;return}function Qe(u,M,E,n,t){u=u|0;M=M|0;E=E|0;n=+n;t=+t;var s=0,f=0,c=0,l=0,o=0,a=0,_=0,p=0,w=0,h=0,b=0,k=0,y=0,d=0,m=0,F=0,A=0,R=0,O=0,g=0,S=0,T=0,N=0,v=0,D=0;D=i;k=e[u>>2]|0;N=u+40|0;S=e[N>>2]|0;v=i;i=i+((1*(S<<2)|0)+15&-16)|0;T=u+4|0;a=e[T>>2]|0;t=+r[a+4>>2]+t;if((S|0)>0){o=0;do{r[v+(o<<2)>>2]=-9999;o=o+1|0}while((o|0)<(S|0))}b=+r[a+8>>2];t=t0;if(c){o=e[u+16>>2]|0;l=0;do{r[E+(l<<2)>>2]=+r[o+(l<<2)>>2]+t;l=l+1|0}while((l|0)!=(k|0));h=e[u+8>>2]|0;b=+r[a+496>>2]-n;if(c){_=e[u+20>>2]|0;c=u+32|0;f=u+36|0;s=u+28|0;o=0;while(1){w=e[_+(o<<2)>>2]|0;a=o;n=+r[M+(o<<2)>>2];e:while(1)while(1){o=a+1|0;if((o|0)>=(k|0)){p=0;t=n;break e}if((e[_+(o<<2)>>2]|0)!=(w|0)){p=1;t=n;break e}t=+r[M+(o<<2)>>2];if(t>n){a=o;n=t;continue e}else a=o}if(t+6>+r[E+(a<<2)>>2]?(m=w>>e[c>>2],m=(m|0)>16?16:m,y=e[f>>2]|0,d=~~((b+t+-30)*.10000000149011612),d=(d|0)<0?0:d,d=e[(e[h+(((m|0)<0?0:m)<<2)>>2]|0)+(((d|0)>7?7:d)<<2)>>2]|0,m=~~+r[d+4>>2],F=+r[d>>2],A=~~F,(A|0)<(m|0)):0){l=A;a=~~((F+-16)*+(y|0)-+(y>>1|0)+ +((e[_+(a<<2)>>2]|0)-(e[s>>2]|0)|0));do{if((a|0)>0?(R=+r[d+(l+2<<2)>>2]+t,O=v+(a<<2)|0,+r[O>>2]>2]=R;a=a+y|0;l=l+1|0}while((l|0)<(m|0)&(a|0)<(S|0))}if(!p)break}}else g=7}else g=7;if((g|0)==7)f=u+36|0;c=e[f>>2]|0;Pi(v,c,S);h=e[u>>2]|0;e:do if((h|0)>1){w=e[u+20>>2]|0;g=e[w>>2]|0;p=e[u+28>>2]|0;_=(e[T>>2]|0)+32|0;s=1;a=g;f=0;c=g-(c>>1)-p|0;while(1){n=+r[v+(c<<2)>>2];o=((e[w+(s<<2)>>2]|0)+a>>1)-p|0;t=+r[_>>2];n=n>t?t:n;r:do if((c|0)<(o|0)){s=c;while(1){l=n==-9999;while(1){s=s+1|0;t=+r[v+(s<<2)>>2];if(t>-9999){if(l|t=(o|0)){c=s;break r}}if((s|0)>=(o|0)){c=s;break}}}while(0);l=c+p|0;r:do if(!((f|0)>=(h|0)|(a|0)>(l|0)))do{s=E+(f<<2)|0;if(+r[s>>2]>2]=n;f=f+1|0;if((f|0)>=(h|0))break r}while((e[w+(f<<2)>>2]|0)<=(l|0));while(0);s=f+1|0;if((s|0)>=(h|0))break e;a=e[w+(f<<2)>>2]|0}}else f=0;while(0);n=+r[v+((e[N>>2]|0)+-1<<2)>>2];if((f|0)>=(h|0)){i=D;return}do{s=E+(f<<2)|0;if(+r[s>>2]>2]=n;f=f+1|0}while((f|0)!=(h|0));i=D;return}function U(i,u,f,o,c,d,m){i=i|0;u=u|0;f=f|0;o=o|0;c=c|0;d=d|0;m=m|0;var a=0,t=0,v=0,s=0,h=0,p=0,w=0,n=0,l=0;h=e[i>>2]|0;a=e[i+4>>2]|0;w=+r[a+12+(o<<2)>>2];if((h|0)<=0)return;p=e[(e[i+12>>2]|0)+(o<<2)>>2]|0;a=a+108|0;o=(o|0)==1;s=+r[i+48>>2];v=s*.005;s=s*3e-4;i=0;do{t=+r[p+(i<<2)>>2]+ +r[u+(i<<2)>>2];n=+r[a>>2];t=t>n?n:t;n=+r[f+(i<<2)>>2]+w;r[c+(i<<2)>>2]=t>2];t=n+17.200000762939453;if(n>-17.200000762939453){t=1-v*t;if(t<0)t=9999999747378752e-20}else t=1-s*t;l=d+(i<<2)|0;r[l>>2]=+r[l>>2]*t}i=i+1|0}while((i|0)!=(h|0));return}function Oi(i,t){i=+i;t=t|0;var n=0,o=0;n=e[t+4>>2]|0;o=e[n+28>>2]|0;i=+r[o+2936>>2]*(+((e[o+(e[t+40>>2]<<2)>>2]|0)/2|0|0)/+(e[n+8>>2]|0))+i;return+(i<-9999?-9999:i)}function Ti(l,h,n,T,Z,z,L,K,F){l=l|0;h=h|0;n=n|0;T=T|0;Z=Z|0;z=z|0;L=L|0;K=K|0;F=F|0;var m=0,u=0,v=0,s=0,a=0,c=0,S=0,P=0,o=0,O=0,J=0,Q=0,oe=0,Y=0,ne=0,D=0,te=0,ae=0,ie=0,k=0,x=0,re=0,j=0,C=0,p=0,_=0,B=0,ee=0,I=0,$=0,R=0,b=0,y=0,M=0,g=0,q=0,V=0,E=0,N=0,H=0,U=0,X=0,W=0,G=0;X=i;N=e[n>>2]|0;V=n+4|0;n=e[V>>2]|0;if(!(e[n+500>>2]|0))E=16;else E=e[n+508>>2]|0;I=e[h+132+((e[n>>2]|0)*60|0)+(l<<2)>>2]|0;$=+t[1624+(e[h+252+(l<<2)>>2]<<3)>>3];R=F<<2;b=i;i=i+((1*R|0)+15&-16)|0;y=i;i=i+((1*R|0)+15&-16)|0;M=i;i=i+((1*R|0)+15&-16)|0;g=i;i=i+((1*R|0)+15&-16)|0;q=i;i=i+((1*R|0)+15&-16)|0;U=T+1156|0;ee=+t[((N|0)>1e3?1696:1624)+(e[h+312+(l<<2)>>2]<<3)>>3];B=f(R,E)|0;n=i;i=i+((1*B|0)+15&-16)|0;e[b>>2]=n;l=i;i=i+((1*B|0)+15&-16)|0;e[y>>2]=l;h=i;i=i+((1*B|0)+15&-16)|0;e[M>>2]=h;m=i;i=i+((1*B|0)+15&-16)|0;e[g>>2]=m;if((F|0)>1?(e[b+4>>2]=n+(E<<2),e[y+4>>2]=l+(E<<2),e[M+4>>2]=h+(E<<2),e[g+4>>2]=m+(E<<2),(F|0)!=2):0){n=2;do{j=e[y>>2]|0;C=e[M>>2]|0;p=e[g>>2]|0;_=f(n,E)|0;e[b+(n<<2)>>2]=(e[b>>2]|0)+(_<<2);e[y+(n<<2)>>2]=j+(_<<2);e[M+(n<<2)>>2]=C+(_<<2);e[g+(n<<2)>>2]=p+(_<<2);n=n+1|0}while((n|0)!=(F|0))}m=e[U>>2]|0;if((N|0)>0){re=e[g>>2]|0;j=(F|0)>0;C=~E;p=0;_=~N;while(1){x=~((_|0)>(C|0)?_:C);k=N-p|0;k=(E|0)>(k|0)?k:E;d(q|0,L|0,R|0)|0;w(re|0,0,B|0)|0;if(j){S=(k|0)>0;P=I-p|0;o=0;do{v=e[z+(o<<2)>>2]|0;s=v+(p<<2)|0;if(!(e[q+(o<<2)>>2]|0)){if(S){n=e[M+(o<<2)>>2]|0;l=e[b+(o<<2)>>2]|0;h=e[y+(o<<2)>>2]|0;m=e[g+(o<<2)>>2]|0;u=0;do{r[n+(u<<2)>>2]=1.000000013351432e-10;r[l+(u<<2)>>2]=0;r[h+(u<<2)>>2]=0;e[m+(u<<2)>>2]=0;e[v+(u+p<<2)>>2]=0;u=u+1|0}while((u|0)!=(x|0))}}else{a=e[M+(o<<2)>>2]|0;if(S){n=0;do{e[a+(n<<2)>>2]=e[1768+(e[v+(n+p<<2)>>2]<<2)>>2];n=n+1|0}while((n|0)!=(x|0));v=e[Z+(o<<2)>>2]|0;n=e[g+(o<<2)>>2]|0;if(S){l=0;do{c=+A(+ +r[v+(l+p<<2)>>2]);e[n+(l<<2)>>2]=!(c/+r[a+(l<<2)>>2]<((l|0)>=(P|0)?ee:$))&1;l=l+1|0}while((l|0)!=(k|0));if(S){n=e[b+(o<<2)>>2]|0;l=y+(o<<2)|0;u=e[l>>2]|0;m=0;do{O=v+(m+p<<2)|0;c=+r[O>>2];c=c*c;h=n+(m<<2)|0;r[h>>2]=c;r[u+(m<<2)>>2]=c;if(+r[O>>2]<0)r[h>>2]=-+r[h>>2];h=a+(m<<2)|0;c=+r[h>>2];r[h>>2]=c*c;m=m+1|0}while((m|0)!=(x|0))}else H=21}else H=21}else H=21;if((H|0)==21){H=0;l=y+(o<<2)|0;n=e[b+(o<<2)>>2]|0}+er(e[V>>2]|0,I,n,e[l>>2]|0,a,0,p,k,s)}o=o+1|0}while((o|0)!=(F|0))}m=e[U>>2]|0;if((m|0)>0){te=(k|0)>0;ae=K-p|0;ie=I-p|0;D=0;do{a=e[T+1160+(D<<2)>>2]|0;s=e[T+2184+(D<<2)>>2]|0; h=e[z+(a<<2)>>2]|0;l=h+(p<<2)|0;n=e[z+(s<<2)>>2]|0;S=e[b+(a<<2)>>2]|0;P=e[b+(s<<2)>>2]|0;O=e[y+(a<<2)>>2]|0;J=e[y+(s<<2)>>2]|0;Q=e[M+(a<<2)>>2]|0;oe=e[M+(s<<2)>>2]|0;Y=e[g+(a<<2)>>2]|0;ne=e[g+(s<<2)>>2]|0;a=q+(a<<2)|0;s=q+(s<<2)|0;if(!((e[a>>2]|0)==0?(e[s>>2]|0)==0:0)){e[s>>2]=1;e[a>>2]=1;if(te){o=0;do{do if((o|0)<(ae|0)){a=Y+(o<<2)|0;v=ne+(o<<2)|0;if((e[a>>2]|0)==0?(e[v>>2]|0)==0:0){do if((o|0)>=(ie|0)){s=S+(o<<2)|0;W=+r[s>>2];a=P+(o<<2)|0;G=+r[a>>2];c=+A(+G)+ +A(+W);r[O+(o<<2)>>2]=c;if(G+W<0){r[s>>2]=-c;break}else{r[s>>2]=c;break}}else{a=P+(o<<2)|0;s=S+(o<<2)|0;c=+r[s>>2]+ +r[a>>2];r[s>>2]=c;r[O+(o<<2)>>2]=+A(+c)}while(0);r[J+(o<<2)>>2]=0;r[a>>2]=0;e[v>>2]=1;e[n+(o+p<<2)>>2]=0;break}u=S+(o<<2)|0;c=+A(+ +r[u>>2]);r[u>>2]=+A(+ +r[P+(o<<2)>>2])+c;u=O+(o<<2)|0;r[u>>2]=+r[J+(o<<2)>>2]+ +r[u>>2];e[v>>2]=1;e[a>>2]=1;u=o+p|0;v=h+(u<<2)|0;a=e[v>>2]|0;u=n+(u<<2)|0;s=e[u>>2]|0;if((((a|0)>-1?a:0-a|0)|0)>(((s|0)>-1?s:0-s|0)|0)){a=(a|0)>0?a-s|0:s-a|0;e[u>>2]=a;s=e[v>>2]|0}else{e[u>>2]=(s|0)>0?a-s|0:s-a|0;e[v>>2]=s;a=e[u>>2]|0}if((a|0)>=(((s|0)>-1?s:0-s|0)<<1|0)){e[u>>2]=0-a;e[v>>2]=0-(e[v>>2]|0)}}while(0);a=Q+(o<<2)|0;s=oe+(o<<2)|0;c=+r[s>>2]+ +r[a>>2];r[s>>2]=c;r[a>>2]=c;o=o+1|0}while((o|0)!=(x|0))}+er(e[V>>2]|0,I,S,O,Q,Y,p,k,l);m=e[U>>2]|0}D=D+1|0}while((D|0)<(m|0))}p=p+E|0;if((N|0)<=(p|0))break;else _=_+E|0}}if((m|0)>0)n=0;else{i=X;return}do{h=L+(e[T+1160+(n<<2)>>2]<<2)|0;l=T+2184+(n<<2)|0;if(!((e[h>>2]|0)==0?(e[L+(e[l>>2]<<2)>>2]|0)==0:0)){e[h>>2]=1;e[L+(e[l>>2]<<2)>>2]=1;m=e[U>>2]|0}n=n+1|0}while((n|0)<(m|0));i=X;return}function Ni(m,R,h,E,k){m=m|0;R=+R;h=h|0;E=+E;k=+k;var f=0,s=0,l=0,a=0,o=0,n=0,t=0,v=0,b=0,N=0,y=0,c=0,F=0,L=0,O=0,S=0,M=0,_=0,A=0,P=0,p=0,T=0,g=0;T=i;i=i+32480|0;N=T+32256|0;p=T+1792|0;y=T;A=i;i=i+((1*(h<<2)|0)+15&-16)|0;P=u(68)|0;w(p|0,0,30464)|0;v=E>0;b=E<0;c=0;do{t=c<<2;o=0;do{n=o+t|0;if((n|0)<88)l=+r[1272+(n<<2)>>2];else l=-30;s=n+1|0;if((s|0)<88){a=+r[1272+(s<<2)>>2];if(!(l>a))a=l}else if(l>-30)a=-30;else a=l;s=n+2|0;if((s|0)<88){l=+r[1272+(s<<2)>>2];if(!(a>l))l=a}else if(a>-30)l=-30;else l=a;s=n+3|0;if((s|0)<88){a=+r[1272+(s<<2)>>2];if(l>a)l=a}else if(l>-30)l=-30;r[N+(o<<2)>>2]=l;o=o+1|0}while((o|0)!=56);t=2792+(c*1344|0)|0;d(p+(c*1792|0)+448|0,t|0,224)|0;d(p+(c*1792|0)+672|0,2792+(c*1344|0)+224|0,224)|0;d(p+(c*1792|0)+896|0,2792+(c*1344|0)+448|0,224)|0;d(p+(c*1792|0)+1120|0,2792+(c*1344|0)+672|0,224)|0;d(p+(c*1792|0)+1344|0,2792+(c*1344|0)+896|0,224)|0;d(p+(c*1792|0)+1568|0,2792+(c*1344|0)+1120|0,224)|0;d(p+(c*1792|0)|0,t|0,224)|0;d(p+(c*1792|0)+224|0,t|0,224)|0;if(v){s=0;do{if(b){f=0;do{t=16-f|0;l=+(((t|0)>-1?t:0-t|0)|0)*k+E;l=l<0?0:l;t=p+(c*1792|0)+(s*224|0)+(f<<2)|0;r[t>>2]=+r[t>>2]+(l>0?0:l);f=f+1|0}while((f|0)!=56)}else{f=0;do{t=16-f|0;l=+(((t|0)>-1?t:0-t|0)|0)*k+E;t=p+(c*1792|0)+(s*224|0)+(f<<2)|0;r[t>>2]=+r[t>>2]+(l<0?0:l);f=f+1|0}while((f|0)!=56)}s=s+1|0}while((s|0)!=8)}else{s=0;do{if(b){f=0;do{t=16-f|0;l=+(((t|0)>-1?t:0-t|0)|0)*k+E;t=p+(c*1792|0)+(s*224|0)+(f<<2)|0;r[t>>2]=+r[t>>2]+(l>0?0:l);f=f+1|0}while((f|0)!=56)}else{f=0;do{n=16-f|0;t=p+(c*1792|0)+(s*224|0)+(f<<2)|0;r[t>>2]=+r[t>>2]+(+(((n|0)>-1?n:0-n|0)|0)*k+E);f=f+1|0}while((f|0)!=56)}s=s+1|0}while((s|0)!=8)}l=+r[m+(c<<2)>>2];n=0;do{a=((n|0)<2?50:70-+(n|0)*10)+l;s=0;do{t=p+(c*1792|0)+(n*224|0)+(s<<2)|0;r[t>>2]=+r[t>>2]+a;s=s+1|0}while((s|0)!=56);d(y+(n*224|0)|0,N|0,224)|0;a=70-+(n|0)*10;s=0;do{t=y+(n*224|0)+(s<<2)|0;r[t>>2]=a+ +r[t>>2];s=s+1|0}while((s|0)!=56);o=0;do{a=+r[p+(c*1792|0)+(n*224|0)+(o<<2)>>2];s=y+(n*224|0)+(o<<2)|0;if(a>+r[s>>2])r[s>>2]=a;o=o+1|0}while((o|0)!=56);n=n+1|0}while((n|0)!=8);n=1;do{f=n+-1|0;o=0;do{a=+r[y+(f*224|0)+(o<<2)>>2];s=y+(n*224|0)+(o<<2)|0;if(a<+r[s>>2])r[s>>2]=a;o=o+1|0}while((o|0)!=56);f=0;do{l=+r[y+(n*224|0)+(f<<2)>>2];s=p+(c*1792|0)+(n*224|0)+(f<<2)|0;if(l<+r[s>>2])r[s>>2]=l;f=f+1|0}while((f|0)!=56);n=n+1|0}while((n|0)!=8);c=c+1|0}while((c|0)!=17);F=R;L=(h|0)>0;O=~h;S=0;do{b=u(32)|0;e[P+(S<<2)>>2]=b;E=+(S|0);k=E*.5;c=~~+Y(+(+C(+(E*.34657350182533264+4.135165354540845))/F));M=~~+zr(+(+D(+(+(c|0)*R+1))*2.885390043258667+-11.931568145751953));c=~~+Y(+(+D(+(+(c+1|0)*R))*2.885390043258667+-11.931568145751953));M=(M|0)>(S|0)?S:M;M=(M|0)<0?0:M;c=(c|0)>16?16:c;N=(M|0)>(c|0);S=S+1|0;y=(S|0)<17;E=k+3.9657840728759766;_=0;do{m=u(232)|0;e[b+(_<<2)>>2]=m;if(L){o=0;do{r[A+(o<<2)>>2]=999;o=o+1|0}while((o|0)!=(h|0))}if(!N){v=M;while(1){l=+(v|0)*.5;f=0;n=0;do{a=+(f|0)*.125+l;t=~~(+C(+((a+3.9032840728759766)*.6931470036506653))/F);s=~~(+C(+((a+4.028284072875977)*.6931470036506653))/F+1);o=(t|0)<0?0:t;o=(o|0)>(h|0)?h:o;o=(o|0)<(n|0)?o:n;g=(s|0)<0?0:s;if((o|0)<(h|0)?(o|0)<(((g|0)>(h|0)?h:g)|0):0){a=+r[p+(v*1792|0)+(_*224|0)+(f<<2)>>2];n=~((n|0)<(h|0)?n:h);g=(t|0)>0?~t:-1;g=(g|0)<(n|0)?n:g;t=(s|0)>0?~s:-1;t=((t|0)<(O|0)?O:t)-g|0;n=~(g+h);n=~g-(t>>>0>n>>>0?t:n)|0;do{t=A+(o<<2)|0;if(+r[t>>2]>a)r[t>>2]=a;o=o+1|0}while((o|0)!=(n|0))}else n=o;f=f+1|0}while((f|0)!=56);if((n|0)<(h|0)){a=+r[p+(v*1792|0)+(_*224|0)+220>>2];do{o=A+(n<<2)|0;if(+r[o>>2]>a)r[o>>2]=a;n=n+1|0}while((n|0)!=(h|0))}if((v|0)<(c|0))v=v+1|0;else break}}if(y){f=0;o=0;do{l=+(f|0)*.125+k;n=~~(+C(+((l+3.9032840728759766)*.6931470036506653))/F);s=~~(+C(+((l+4.028284072875977)*.6931470036506653))/F+1);t=(n|0)<0?0:n;t=(t|0)>(h|0)?h:t;t=(t|0)<(o|0)?t:o;v=(s|0)<0?0:s;if((t|0)<(h|0)?(t|0)<(((v|0)>(h|0)?h:v)|0):0){a=+r[p+(S*1792|0)+(_*224|0)+(f<<2)>>2];v=~((o|0)<(h|0)?o:h);n=(n|0)>0?~n:-1;n=(n|0)<(v|0)?v:n;v=(s|0)>0?~s:-1;v=((v|0)<(O|0)?O:v)-n|0;o=~(n+h);o=~n-(v>>>0>o>>>0?v:o)|0;do{n=A+(t<<2)|0;if(+r[n>>2]>a)r[n>>2]=a;t=t+1|0}while((t|0)!=(o|0))}else o=t;f=f+1|0}while((f|0)!=56);if((o|0)<(h|0)){a=+r[p+(S*1792|0)+(_*224|0)+220>>2];do{s=A+(o<<2)|0;if(+r[s>>2]>a)r[s>>2]=a;o=o+1|0}while((o|0)!=(h|0))}}n=b+(_<<2)|0;o=b+(_<<2)|0;s=b+(_<<2)|0;t=0;do{f=~~(+C(+((E+ +(t|0)*.125)*.6931470036506653))/F);do if((f|0)>=0)if((f|0)<(h|0)){e[(e[o>>2]|0)+(t+2<<2)>>2]=e[A+(f<<2)>>2];break}else{r[(e[s>>2]|0)+(t+2<<2)>>2]=-999;break}else r[(e[n>>2]|0)+(t+2<<2)>>2]=-999;while(0);t=t+1|0}while((t|0)!=56);do if(!(+r[m+8>>2]>-200))if(!(+r[m+12>>2]>-200))if(!(+r[m+16>>2]>-200))if(!(+r[m+20>>2]>-200))if(!(+r[m+24>>2]>-200))if(!(+r[m+28>>2]>-200))if(!(+r[m+32>>2]>-200))if(!(+r[m+36>>2]>-200))if(!(+r[m+40>>2]>-200))if(!(+r[m+44>>2]>-200))if(!(+r[m+48>>2]>-200))if(!(+r[m+52>>2]>-200))if(!(+r[m+56>>2]>-200))if(+r[m+60>>2]>-200)a=13;else{if(+r[m+64>>2]>-200){a=14;break}if(+r[m+68>>2]>-200){a=15;break}a=16}else a=12;else a=11;else a=10;else a=9;else a=8;else a=7;else a=6;else a=5;else a=4;else a=3;else a=2;else a=1;else a=0;while(0);r[m>>2]=a;o=55;do{if(+r[m+(o+2<<2)>>2]>-200)break;o=o+-1|0}while((o|0)>17);r[m+4>>2]=+(o|0);_=_+1|0}while((_|0)!=8)}while((S|0)!=17);i=T;return P|0}function $e(m,w,s,y,g,k){m=m|0;w=w|0;s=s|0;y=y|0;g=+g;k=k|0;var c=0,o=0,l=0,t=0,n=0,f=0,d=0,M=0,a=0,E=0,_=0,S=0,v=0,p=0,F=0,b=0,u=0,h=0;F=i;a=m<<2;E=i;i=i+((1*a|0)+15&-16)|0;_=i;i=i+((1*a|0)+15&-16)|0;S=i;i=i+((1*a|0)+15&-16)|0;v=i;i=i+((1*a|0)+15&-16)|0;p=i;i=i+((1*a|0)+15&-16)|0;n=+r[s>>2]+g;n=n<1?1:n;o=n*n*.5;n=o*n;r[E>>2]=o;r[_>>2]=o;r[S>>2]=0;r[v>>2]=n;r[p>>2]=0;if((m|0)>1){t=1;M=o;c=0;d=0;f=1;while(1){b=+r[s+(t<<2)>>2]+g;b=b<1?1:b;h=b*b;M=h+M;u=h*f;o=u+o;c=u*f+c;n=h*b+n;d=u*b+d;r[E+(t<<2)>>2]=M;r[_+(t<<2)>>2]=o;r[S+(t<<2)>>2]=c;r[v+(t<<2)>>2]=n;r[p+(t<<2)>>2]=d;t=t+1|0;if((t|0)==(m|0))break;else f=f+1}}t=e[w>>2]|0;l=t>>16;if((l|0)>-1){c=0;f=0;n=1;l=0;o=0}else{s=0;o=0;do{a=t&65535;t=0-l|0;u=+r[E+(t<<2)>>2]+ +r[E+(a<<2)>>2];n=+r[_+(a<<2)>>2]-+r[_+(t<<2)>>2];h=+r[S+(t<<2)>>2]+ +r[S+(a<<2)>>2];f=+r[v+(t<<2)>>2]+ +r[v+(a<<2)>>2];d=+r[p+(a<<2)>>2]-+r[p+(t<<2)>>2];c=f*h-d*n;f=d*u-f*n;n=h*u-n*n;u=(f*o+c)/n;r[y+(s<<2)>>2]=(u<0?0:u)-g;s=s+1|0;o=o+1;t=e[w+(s<<2)>>2]|0;l=t>>16}while((l|0)<=-1);l=s}s=t&65535;if((s|0)<(m|0)){do{a=t>>16;u=+r[E+(s<<2)>>2]-+r[E+(a<<2)>>2];n=+r[_+(s<<2)>>2]-+r[_+(a<<2)>>2];h=+r[S+(s<<2)>>2]-+r[S+(a<<2)>>2];f=+r[v+(s<<2)>>2]-+r[v+(a<<2)>>2];d=+r[p+(s<<2)>>2]-+r[p+(a<<2)>>2];c=f*h-d*n;f=d*u-f*n;n=h*u-n*n;u=(f*o+c)/n;r[y+(l<<2)>>2]=(u<0?0:u)-g;l=l+1|0;o=o+1;t=e[w+(l<<2)>>2]|0;s=t&65535}while((s|0)<(m|0));t=l}else t=l;if((t|0)<(m|0))while(1){u=(o*f+c)/n;r[y+(t<<2)>>2]=(u<0?0:u)-g;t=t+1|0;if((t|0)==(m|0))break;else o=o+1}if((k|0)<1){i=F;return}w=(k|0)/2|0;t=w-k|0;if((t|0)>-1){d=c;s=0;c=0}else{s=k-w|0;l=w;a=0;c=0;while(1){t=0-t|0;o=+r[E+(t<<2)>>2]+ +r[E+(l<<2)>>2];n=+r[_+(l<<2)>>2]-+r[_+(t<<2)>>2];u=+r[S+(t<<2)>>2]+ +r[S+(l<<2)>>2];f=+r[v+(t<<2)>>2]+ +r[v+(l<<2)>>2];h=+r[p+(l<<2)>>2]-+r[p+(t<<2)>>2];d=f*u-h*n;f=h*o-f*n;n=u*o-n*n;o=(f*c+d)/n-g;t=y+(a<<2)|0;if(o<+r[t>>2])r[t>>2]=o;a=a+1|0;c=c+1;t=w+a|0;if((a|0)==(s|0))break;else{l=t;t=t-k|0}}}t=s+w|0;if((t|0)<(m|0)){l=m-w|0;while(1){a=t-k|0;o=+r[E+(t<<2)>>2]-+r[E+(a<<2)>>2];n=+r[_+(t<<2)>>2]-+r[_+(a<<2)>>2];u=+r[S+(t<<2)>>2]-+r[S+(a<<2)>>2];f=+r[v+(t<<2)>>2]-+r[v+(a<<2)>>2];h=+r[p+(t<<2)>>2]-+r[p+(a<<2)>>2];d=f*u-h*n;f=h*o-f*n;n=u*o-n*n;o=(f*c+d)/n-g;t=y+(s<<2)|0;if(o<+r[t>>2])r[t>>2]=o;s=s+1|0;c=c+1;if((s|0)==(l|0))break;else t=s+w|0}}else l=s;if((l|0)<(m|0))t=l;else{i=F;return}while(1){o=(c*f+d)/n-g;l=y+(t<<2)|0;if(o<+r[l>>2])r[l>>2]=o;t=t+1|0;if((t|0)==(m|0))break;else c=c+1}i=F;return}function Pi(c,a,f){c=c|0;a=a|0;f=f|0;var n=0,s=0,w=0,t=0,d=0,E=0,v=0,h=0,o=0,u=0,l=0,p=0,m=0;m=i;o=f<<2;u=i;i=i+((1*o|0)+15&-16)|0;l=i;i=i+((1*o|0)+15&-16)|0;if((f|0)>0){o=0;n=0}else{i=m;return}do{do if((n|0)>=2){h=+r[c+(o<<2)>>2];while(1){s=n+-1|0;w=+r[l+(s<<2)>>2];if(h1?(o|0)<((e[u+(s<<2)>>2]|0)+a|0):0)){t=12;break}t=n+-2|0;if(!(w<=+r[l+(t<<2)>>2])){t=12;break}if((o|0)<((e[u+(t<<2)>>2]|0)+a|0))n=s;else{t=12;break}}if((t|0)==8){e[u+(n<<2)>>2]=o;r[l+(n<<2)>>2]=h;s=n;break}else if((t|0)==12){e[u+(n<<2)>>2]=o;r[l+(n<<2)>>2]=h;s=n;break}}else{e[u+(n<<2)>>2]=o;e[l+(n<<2)>>2]=e[c+(o<<2)>>2];s=n}while(0);n=s+1|0;o=o+1|0}while((o|0)!=(f|0));o=s;if((o|0)<=-1){i=m;return}v=a+1|0;a=0;d=0;while(1){if((a|0)<(o|0)?(p=a+1|0,+r[l+(p<<2)>>2]>+r[l+(a<<2)>>2]):0)t=e[u+(p<<2)>>2]|0;else t=v+(e[u+(a<<2)>>2]|0)|0;if((d|0)<(((t|0)>(f|0)?f:t)|0)){E=e[l+(a<<2)>>2]|0;s=(t|0)<(f|0)?t:f;t=d;do{e[c+(t<<2)>>2]=E;t=t+1|0}while((t|0)!=(s|0))}else s=d;a=a+1|0;if((a|0)==(n|0))break;else d=s}i=m;return}function er(S,g,y,E,_,h,a,c,m){S=S|0;g=g|0;y=y|0;E=E|0;_=_|0;h=h|0;a=a|0;c=c|0;m=m|0;var u=0,s=0,l=0,d=0,n=0,o=0,w=0,b=0,v=0,M=0,k=0;k=i;M=i;i=i+((1*(c<<2)|0)+15&-16)|0;if(!(e[S+500>>2]|0))s=c;else s=(e[S+504>>2]|0)-a|0;if((((s|0)>(c|0)?c:s)|0)>0){d=(h|0)==0;o=(s|0)<(c|0)?s:c;n=0;do{if(!(!d?(e[h+(n<<2)>>2]|0)!=0:0))v=9;do if((v|0)==9){v=0;b=+r[y+(n<<2)>>2]<0;l=+F(+Ye(+(+r[E+(n<<2)>>2]/+r[_+(n<<2)>>2])));if(b){e[m+(n<<2)>>2]=~~-l;break}else{e[m+(n<<2)>>2]=~~l;break}}while(0);n=n+1|0}while((n|0)!=(o|0))}else o=0;if((o|0)>=(c|0)){u=0;i=k;return+u}b=(h|0)!=0;g=g-a|0;u=0;n=0;do{if(!(b?(e[h+(o<<2)>>2]|0)!=0:0))v=15;do if((v|0)==15){v=0;d=E+(o<<2)|0;s=_+(o<<2)|0;w=+r[d>>2]/+r[s>>2];if(!(w<.25)|b&(o|0)<(g|0)){a=+r[y+(o<<2)>>2]<0;l=+F(+Ye(+w));a=~~(a?-l:l);e[m+(o<<2)>>2]=a;l=+(f(a,a)|0);r[d>>2]=l*+r[s>>2];break}else{e[M+(n<<2)>>2]=d;u=w+u;n=n+1|0;break}}while(0);o=o+1|0}while((o|0)!=(c|0));a=n;if(!a){i=k;return+u}Z(M,a,4,9);if((a|0)<=0){i=k;return+u}w=+t[S+512>>3];o=0;do{d=e[M+(o<<2)>>2]|0;n=d-E>>2;if(!(u>=w)){s=0;l=0}else{u=u+-1;s=~~(e[p>>2]=e[y+(n<<2)>>2]&-2147483648|1065353216,+r[p>>2]);l=+r[_+(n<<2)>>2]}e[m+(n<<2)>>2]=s;r[d>>2]=l;o=o+1|0}while((o|0)!=(a|0));i=k;return+u}function Bi(i,t){i=i|0;t=t|0;var n=0,o=0;o=+r[e[i>>2]>>2];n=+r[e[t>>2]>>2];return(on&1)|0}function Ci(e){e=e|0;if(e)n(e);return}function Ii(r){r=r|0;var i=0,o=0,t=0,a=0,s=0;if(!r)return;a=r+4|0;o=e[a>>2]|0;s=r+20|0;if((o|0)>0){i=0;do{t=e[(e[s>>2]|0)+(i<<2)>>2]|0;if(t){n(t);o=e[a>>2]|0}i=i+1|0}while((i|0)<(o|0))}n(e[s>>2]|0);i=r+24|0;o=r+28|0;if((e[i>>2]|0)>0){t=0;do{n(e[(e[o>>2]|0)+(t<<2)>>2]|0);t=t+1|0}while((t|0)<(e[i>>2]|0))}n(e[o>>2]|0);n(r);return}function xi(t,i){t=t|0;i=i|0;var n=0,r=0,o=0,l=0,f=0,a=0,u=0;s(i,e[t>>2]|0,24);s(i,e[t+4>>2]|0,24);s(i,(e[t+8>>2]|0)+-1|0,24);f=t+12|0;s(i,(e[f>>2]|0)+-1|0,6);s(i,e[t+20>>2]|0,8);if((e[f>>2]|0)<=0)return;l=t+24|0;o=0;a=0;do{r=l+(a<<2)|0;u=(S(e[r>>2]|0)|0)>3;n=e[r>>2]|0;if(u){s(i,n,3);s(i,1,1);s(i,e[r>>2]>>3,5)}else s(i,n,4);r=e[r>>2]|0;if(!r)r=0;else{n=0;do{n=(r&1)+n|0;r=r>>>1}while((r|0)!=0);r=n}o=r+o|0;a=a+1|0}while((a|0)<(e[f>>2]|0));if((o|0)<=0)return;n=t+280|0;r=0;do{s(i,e[n+(r<<2)>>2]|0,8);r=r+1|0}while((r|0)!=(o|0));return}function Hi(r,s){r=r|0;s=s|0;var t=0,u=0,i=0,c=0,a=0,p=0,d=0,l=0,w=0,o=0;o=h(1,2840)|0;d=e[r+28>>2]|0;e[o>>2]=m(s,24)|0;e[o+4>>2]=m(s,24)|0;e[o+8>>2]=(m(s,24)|0)+1;r=m(s,6)|0;l=o+12|0;e[l>>2]=r+1;a=m(s,8)|0;p=o+20|0;e[p>>2]=a;e:do if((a|0)>=0){if((r|0)>-1){a=o+24|0;u=0;c=0;do{i=m(s,3)|0;t=m(s,1)|0;if((t|0)<0){w=26;break e}if(t){t=m(s,5)|0;if((t|0)<0){w=26;break e}i=t<<3|i}e[a+(c<<2)>>2]=i;if(!i)i=0;else{t=0;do{t=(i&1)+t|0;i=i>>>1}while((i|0)!=0);i=t}u=i+u|0;c=c+1|0}while((c|0)<(e[l>>2]|0));i=(u|0)>0;if(i){t=o+280|0;a=0;do{r=m(s,8)|0;if((r|0)<0)break e;e[t+(a<<2)>>2]=r;a=a+1|0}while((a|0)<(u|0))}else i=0}else{i=0;u=0}c=e[p>>2]|0;a=e[d+24>>2]|0;if((c|0)<(a|0)){if(i){i=o+280|0;r=0;do{t=e[i+(r<<2)>>2]|0;if((t|0)>=(a|0))break e;r=r+1|0;if(!(e[(e[d+1824+(t<<2)>>2]|0)+12>>2]|0))break e}while((r|0)<(u|0))}r=e[d+1824+(c<<2)>>2]|0;i=e[r+4>>2]|0;r=e[r>>2]|0;if((r|0)>=1){u=e[l>>2]|0;t=r;r=1;while(1){r=f(u,r)|0;if((r|0)>(i|0))break e;if((t|0)>1)t=t+-1|0;else break}e[o+16>>2]=r;l=o;return l|0}}}else w=26;while(0);if((w|0)==26?(o|0)==0:0){l=0;return l|0}n(o);l=0;return l|0}function Ui(r,i){r=r|0;i=i|0;var l=0,a=0,d=0,o=0,w=0,c=0,t=0,p=0,v=0,s=0,m=0,n=0;n=h(1,44)|0;v=e[(e[r+4>>2]|0)+28>>2]|0;e[n>>2]=i;m=e[i+12>>2]|0;e[n+4>>2]=m;v=v+2848|0;s=e[v>>2]|0;e[n+12>>2]=s;s=s+((e[i+20>>2]|0)*56|0)|0;e[n+16>>2]=s;s=e[s>>2]|0;r=h(m,4)|0;e[n+20>>2]=r;if((m|0)>0){p=i+24|0;d=i+280|0;l=0;i=0;a=0;do{o=p+(i<<2)|0;t=S(e[o>>2]|0)|0;if(t){a=(t|0)>(a|0)?t:a;e[r+(i<<2)>>2]=h(t,4)|0;if((t|0)>0){w=e[o>>2]|0;o=r+(i<<2)|0;c=0;do{if(w&1<>2]|0)+(c<<2)>>2]=(e[v>>2]|0)+((e[d+(l<<2)>>2]|0)*56|0);l=l+1|0}c=c+1|0}while((c|0)!=(t|0))}}i=i+1|0}while((i|0)<(m|0))}else a=0;l=n+24|0;e[l>>2]=1;o=(s|0)>0;if(o){r=1;i=0;do{r=f(r,m)|0;i=i+1|0}while((i|0)!=(s|0));e[l>>2]=r;t=r}else t=1;e[n+8>>2]=a;w=u(t<<2)|0;r=n+28|0;e[r>>2]=w;if((t|0)<=0)return n|0;c=s<<2;if(!o){r=0;do{e[w+(r<<2)>>2]=u(c)|0;r=r+1|0}while((r|0)<(t|0));return n|0}l=e[r>>2]|0;r=0;do{e[w+(r<<2)>>2]=u(c)|0;i=e[l+(r<<2)>>2]|0;a=t;d=0;o=r;do{a=(a|0)/(m|0)|0;p=(o|0)/(a|0)|0;o=o-(f(p,a)|0)|0;e[i+(d<<2)>>2]=p;d=d+1|0}while((d|0)!=(s|0));r=r+1|0}while((r|0)<(t|0));return n|0}function zi(o,a,t,s,n){o=o|0;a=a|0;t=t|0;s=s|0;n=n|0;var r=0,i=0;if((n|0)>0){i=0;r=0}else return 0;do{if(e[s+(i<<2)>>2]|0){e[t+(r<<2)>>2]=e[t+(i<<2)>>2];r=r+1|0}i=i+1|0}while((i|0)!=(n|0));if(!r)return 0;rr(o,a,t,r,2);return 0}function qi(o,r,a,t,s,n,f,i){o=o|0;r=r|0;a=a|0;t=t|0;s=s|0;n=n|0;f=f|0;i=i|0;if((n|0)>0){r=0;i=0}else return 0;do{if(e[s+(r<<2)>>2]|0){e[t+(i<<2)>>2]=e[t+(r<<2)>>2];i=i+1|0}r=r+1|0}while((r|0)!=(n|0));if(!i)return 0;ir(o,a,t,i,f);return 0}function Vi(o,m,h,r,t){o=o|0;m=m|0;h=h|0;r=r|0;t=t|0;var a=0,i=0,S=0,E=0,d=0,c=0,n=0,b=0,s=0,u=0,p=0,v=0,y=0,_=0,l=0;if((t|0)>0){i=0;a=0}else{n=0;return n|0}do{if(e[r+(i<<2)>>2]|0){e[h+(a<<2)>>2]=e[h+(i<<2)>>2];a=a+1|0}i=i+1|0}while((i|0)!=(t|0));if(!a){n=0;return n|0}s=e[m>>2]|0;u=e[s+8>>2]|0;t=e[s+12>>2]|0;p=((e[s+4>>2]|0)-(e[s>>2]|0)|0)/(u|0)|0;v=g(o,a<<2)|0;y=100/+(u|0);_=(a|0)>0;if(_){r=p<<2;i=0;do{n=g(o,r)|0;e[v+(i<<2)>>2]=n;w(n|0,0,r|0)|0;i=i+1|0}while((i|0)!=(a|0))}if((p|0)>0){n=(u|0)>0;b=t+-1|0;S=(t|0)>1;d=0;do{E=f(d,u)|0;E=(e[s>>2]|0)+E|0;if(_){c=0;do{if(n){i=e[h+(c<<2)>>2]|0;r=0;t=0;o=0;do{l=e[i+(E+t<<2)>>2]|0;l=(l|0)>-1?l:0-l|0;o=(l|0)>(o|0)?l:o;r=l+r|0;t=t+1|0}while((t|0)!=(u|0));i=o}else{r=0;i=0}o=~~(+(r|0)*y);e:do if(S){r=0;do{if((i|0)<=(e[s+2328+(r<<2)>>2]|0)?(t=e[s+2584+(r<<2)>>2]|0,(t|0)<0|(o|0)<(t|0)):0)break e;r=r+1|0}while((r|0)<(b|0))}else r=0;while(0);e[(e[v+(c<<2)>>2]|0)+(d<<2)>>2]=r;c=c+1|0}while((c|0)!=(a|0))}d=d+1|0}while((d|0)!=(p|0))}n=m+40|0;e[n>>2]=(e[n>>2]|0)+1;n=v;return n|0}function ji(o,a,t,s,n){o=o|0;a=a|0;t=t|0;s=s|0;n=n|0;var r=0,i=0;if((n|0)>0){i=0;r=0}else return 0;do{if(e[s+(i<<2)>>2]|0){e[t+(r<<2)>>2]=e[t+(i<<2)>>2];r=r+1|0}i=i+1|0}while((i|0)!=(n|0));if(!r)return 0;rr(o,a,t,r,3);return 0}function Wi(r,c,m,n,s){r=r|0;c=c|0;m=m|0;n=n|0;s=s|0;var i=0,o=0,E=0,u=0,S=0,v=0,l=0,t=0,_=0,b=0,d=0,h=0,a=0,p=0,f=0;if((s|0)>0){o=0;i=0}else{t=0;return t|0}do{i=((e[n+(o<<2)>>2]|0)!=0&1)+i|0;o=o+1|0}while((o|0)!=(s|0));if(!i){t=0;return t|0}a=e[c>>2]|0;p=e[a+8>>2]|0;n=e[a+12>>2]|0;d=((e[a+4>>2]|0)-(e[a>>2]|0)|0)/(p|0)|0;h=g(r,4)|0;t=d<<2;l=g(r,t)|0;e[h>>2]=l;w(l|0,0,t|0)|0;if((d|0)>0){_=(p|0)>0;b=n+-1|0;S=(n|0)>1;v=e[h>>2]|0;l=(s|0)>1;t=0;r=(e[a>>2]|0)/(s|0)|0;while(1){if(_){E=e[m>>2]|0;o=0;u=0;n=0;do{i=e[E+(r<<2)>>2]|0;i=(i|0)>-1?i:0-i|0;n=(i|0)>(n|0)?i:n;if(l){i=1;do{f=e[(e[m+(i<<2)>>2]|0)+(r<<2)>>2]|0;f=(f|0)>-1?f:0-f|0;o=(f|0)>(o|0)?f:o;i=i+1|0}while((i|0)!=(s|0))}r=r+1|0;u=u+s|0}while((u|0)<(p|0));i=r}else{o=0;i=r;n=0}e:do if(S){r=0;do{if((n|0)<=(e[a+2328+(r<<2)>>2]|0)?(o|0)<=(e[a+2584+(r<<2)>>2]|0):0)break e;r=r+1|0}while((r|0)<(b|0))}else r=0;while(0);e[v+(t<<2)>>2]=r;t=t+1|0;if((t|0)==(d|0))break;else r=i}}t=c+40|0;e[t>>2]=(e[t>>2]|0)+1;t=h;return t|0}function Yi(p,r,d,c,u,o,l,t){p=p|0;r=r|0;d=d|0;c=c|0;u=u|0;o=o|0;l=l|0;t=t|0;var s=0,v=0,E=0,n=0,h=0,m=0,w=0,a=0;a=i;i=i+16|0;w=a;t=e[r+36>>2]|0;m=(t|0)/2|0;h=g(r,f(o<<2,m)|0)|0;e[w>>2]=h;if((o|0)<=0){i=a;return 0}v=(t|0)>1;n=0;t=0;do{E=e[c+(n<<2)>>2]|0;t=((e[u+(n<<2)>>2]|0)!=0&1)+t|0;if(v){r=0;s=n;while(1){e[h+(s<<2)>>2]=e[E+(r<<2)>>2];r=r+1|0;if((r|0)>=(m|0))break;else s=s+o|0}}n=n+1|0}while((n|0)!=(o|0));if(!t){i=a;return 0}ir(p,d,w,1,l);i=a;return 0}function Xi(t,n,w,i,a){t=t|0;n=n|0;w=w|0;i=i|0;a=a|0;var r=0,M=0,k=0,c=0,s=0,y=0,E=0,F=0,b=0,S=0,v=0,_=0,u=0,l=0,o=0,h=0,p=0,d=0,m=0;o=e[n>>2]|0;h=e[o+8>>2]|0;p=n+16|0;d=e[e[p>>2]>>2]|0;r=(f(e[t+36>>2]|0,a)|0)>>1;l=e[o+4>>2]|0;r=((l|0)<(r|0)?l:r)-(e[o>>2]|0)|0;if((r|0)<=0)return 0;u=(r|0)/(h|0)|0;l=g(t,((d+-1+u|0)/(d|0)|0)<<2)|0;e:do if((a|0)>0){r=0;do{if(e[i+(r<<2)>>2]|0)break e;r=r+1|0}while((r|0)<(a|0))}else r=0;while(0);if((r|0)==(a|0))return 0;v=n+8|0;i=e[v>>2]|0;if((i|0)<=0)return 0;_=(u|0)>0;E=t+4|0;F=o+16|0;b=n+28|0;S=(d|0)>0;y=n+20|0;s=0;e:while(1){if(_){M=(s|0)==0;k=1<>2]|0,E)|0;if((i|0)==-1){r=23;break e}if((i|0)>=(e[F>>2]|0)){r=23;break e}r=e[(e[b>>2]|0)+(i<<2)>>2]|0;e[l+(c<<2)>>2]=r;if(!r){r=23;break e}}if(S&(t|0)<(u|0)){r=l+(c<<2)|0;i=0;do{n=e[(e[r>>2]|0)+(i<<2)>>2]|0;if(((e[o+24+(n<<2)>>2]&k|0)!=0?(m=e[(e[(e[y>>2]|0)+(n<<2)>>2]|0)+(s<<2)>>2]|0,(m|0)!=0):0)?(n=f(t,h)|0,(Br(m,w,(e[o>>2]|0)+n|0,a,E,h)|0)==-1):0){r=23;break e}i=i+1|0;t=t+1|0}while((i|0)<(d|0)&(t|0)<(u|0))}if((t|0)<(u|0))c=c+1|0;else break}i=e[v>>2]|0}s=s+1|0;if((s|0)>=(i|0)){r=23;break}}if((r|0)==23)return 0;return 0}function rr(n,t,k,a,b){n=n|0;t=t|0;k=k|0;a=a|0;b=b|0;var r=0,o=0,d=0,w=0,R=0,P=0,F=0,D=0,m=0,c=0,_=0,T=0,A=0,O=0,S=0,N=0,u=0,v=0,l=0,s=0,p=0,y=0,h=0,M=0,E=0;E=i;s=e[t>>2]|0;p=e[s+8>>2]|0;y=t+16|0;h=e[e[y>>2]>>2]|0;r=e[n+36>>2]>>1;l=e[s+4>>2]|0;r=((l|0)<(r|0)?l:r)-(e[s>>2]|0)|0;if((r|0)<=0){i=E;return}u=(r|0)/(p|0)|0;v=i;i=i+((1*(a<<2)|0)+15&-16)|0;l=(a|0)>0;if(l){r=((h+-1+u|0)/(h|0)|0)<<2;o=0;do{e[v+(o<<2)>>2]=g(n,r)|0;o=o+1|0}while((o|0)!=(a|0))}S=t+8|0;if((e[S>>2]|0)<=0){i=E;return}N=(u|0)>0;_=n+4|0;T=s+16|0;A=t+28|0;O=(h|0)>0;P=t+20|0;R=l^1;c=0;e:while(1){if(N){F=1<>2]|0,_)|0;if((n|0)==-1){r=25;break e}if((n|0)>=(e[T>>2]|0)){r=25;break e}r=e[(e[A>>2]|0)+(n<<2)>>2]|0;e[(e[v+(o<<2)>>2]|0)+(m<<2)>>2]=r;o=o+1|0;if(!r){r=25;break e}}while((o|0)<(a|0))}r:do if(O&(t|0)<(u|0)){if(l)w=0;else{n=0;while(1){n=n+1|0;t=t+1|0;if(!((n|0)<(h|0)&(t|0)<(u|0)))break r}}do{o=f(t,p)|0;d=0;do{n=(e[s>>2]|0)+o|0;r=e[(e[(e[v+(d<<2)>>2]|0)+(m<<2)>>2]|0)+(w<<2)>>2]|0;if(((e[s+24+(r<<2)>>2]&F|0)!=0?(M=e[(e[(e[P>>2]|0)+(r<<2)>>2]|0)+(c<<2)>>2]|0,(M|0)!=0):0)?(de[b&3](M,(e[k+(d<<2)>>2]|0)+(n<<2)|0,_,p)|0)==-1:0){r=25;break e}d=d+1|0}while((d|0)<(a|0));w=w+1|0;t=t+1|0}while((w|0)<(h|0)&(t|0)<(u|0))}while(0);if((t|0)<(u|0))m=m+1|0;else break}}c=c+1|0;if((c|0)>=(e[S>>2]|0)){r=25;break}}if((r|0)==25){i=E;return}}function ir(L,r,$,R,B){L=L|0;r=r|0;$=$|0;R=R|0;B=B|0;var m=0,t=0,s=0,h=0,S=0,n=0,u=0,v=0,p=0,c=0,E=0,C=0,d=0,Q=0,U=0,k=0,z=0,b=0,te=0,ie=0,me=0,le=0,ue=0,P=0,q=0,D=0,A=0,fe=0,j=0,T=0,O=0,V=0,g=0,Z=0,se=0,de=0,M=0,G=0,J=0,y=0,N=0,K=0,ce=0,Y=0,he=0,H=0,x=0,ne=0,oe=0,ae=0,W=0,I=0,_=0,o=0,l=0,ee=0,re=0,F=0;F=i;i=i+1088|0;l=F+1056|0;o=F+1024|0;ee=F+512|0;re=F;y=e[r>>2]|0;x=e[y+8>>2]|0;ae=e[y+12>>2]|0;W=r+16|0;I=e[e[W>>2]>>2]|0;N=((e[y+4>>2]|0)-(e[y>>2]|0)|0)/(x|0)|0;w(ee|0,0,512)|0;w(re|0,0,512)|0;K=r+8|0;m=e[K>>2]|0;if((m|0)<=0){i=F;return}ce=(N|0)>0;Y=(R|0)>0;he=(I|0)>1;H=r+36|0;ne=(I|0)>0;oe=r+20|0;G=r+32|0;J=0-I|0;M=0;do{if(ce){Z=(M|0)==0;se=1<>2]|0)+(m<<2)>>2]|0;t=e[W>>2]|0;if((r|0)<(e[t+4>>2]|0)){g=X(t,r,L)|0;e[H>>2]=(e[H>>2]|0)+g}s=s+1|0;if((s|0)==(R|0))break e}}do{r=e[B+(S<<2)>>2]|0;h=1;s=e[r+(m<<2)>>2]|0;do{s=f(s,ae)|0;t=h+m|0;if((t|0)<(N|0))s=(e[r+(t<<2)>>2]|0)+s|0;h=h+1|0}while((h|0)!=(I|0));r=e[W>>2]|0;if((s|0)<(e[r+4>>2]|0)){g=X(r,s,L)|0;e[H>>2]=(e[H>>2]|0)+g}S=S+1|0}while((S|0)!=(R|0))}while(0);if(ne&(m|0)<(N|0)){g=m-N|0;g=g>>>0>>0?J:g;fe=0-g|0;T=m;V=0;while(1){j=f(T,x)|0;j=(e[y>>2]|0)+j|0;if(Y){O=0;do{A=B+(O<<2)|0;s=e[A>>2]|0;h=e[s+(T<<2)>>2]|0;if(Z){D=re+(h<<2)|0;e[D>>2]=(e[D>>2]|0)+x}if((e[y+24+(h<<2)>>2]&se|0)!=0?(_=e[(e[(e[oe>>2]|0)+(h<<2)>>2]|0)+(M<<2)>>2]|0,(_|0)!=0):0){P=e[$+(O<<2)>>2]|0;q=e[_>>2]|0;D=(x|0)/(q|0)|0;if((D|0)>0){te=_+48|0;ie=_+52|0;me=_+44|0;le=_+12|0;ue=_+4|0;b=q;h=0;S=0;while(1){U=(f(S,q)|0)+j|0;s=P+(U<<2)|0;C=e[te>>2]|0;k=e[ie>>2]|0;d=e[me>>2]|0;E=d>>1;e[l>>2]=0;e[l+4>>2]=0;e[l+8>>2]=0;e[l+12>>2]=0;e[l+16>>2]=0;e[l+20>>2]=0;e[l+24>>2]=0;e[l+28>>2]=0;z=(b|0)>0;do if((k|0)==1){if(!z){r=0;break}v=d+-1|0;p=0;r=0;c=b;do{c=c+-1|0;u=e[P+(U+c<<2)>>2]|0;n=u-C|0;if((n|0)<(E|0))n=(E-n<<1)+-1|0;else n=n-E<<1;r=f(r,d)|0;r=((n|0)<0?0:(n|0)>=(d|0)?v:n)+r|0;e[l+(c<<2)>>2]=u;p=p+1|0}while((p|0)!=(b|0))}else{if(!z){r=0;break}v=(k>>1)-C|0;n=d+-1|0;p=0;r=0;c=b;do{c=c+-1|0;t=(v+(e[P+(U+c<<2)>>2]|0)|0)/(k|0)|0;if((t|0)<(E|0))u=(E-t<<1)+-1|0;else u=t-E<<1;r=f(r,d)|0;r=((u|0)<0?0:(u|0)>=(d|0)?n:u)+r|0;e[l+(c<<2)>>2]=(f(t,k)|0)+C;p=p+1|0}while((p|0)!=(b|0))}while(0);Q=e[(e[le>>2]|0)+8>>2]|0;do if((a[Q+r>>0]|0)<1){e[o>>2]=0;e[o+4>>2]=0;e[o+8>>2]=0;e[o+12>>2]=0;e[o+16>>2]=0;e[o+20>>2]=0;e[o+24>>2]=0;e[o+28>>2]=0;E=(f(d+-1|0,k)|0)+C|0;p=e[ue>>2]|0;if((p|0)>0){c=-1;d=0}else break;while(1){do if((a[Q+d>>0]|0)>0){if(z){u=0;t=0;do{v=(e[o+(u<<2)>>2]|0)-(e[P+(U+u<<2)>>2]|0)|0;t=(f(v,v)|0)+t|0;u=u+1|0}while((u|0)!=(b|0))}else t=0;if(!((c|0)==-1|(t|0)<(c|0))){t=c;break}e[l>>2]=e[o>>2];e[l+4>>2]=e[o+4>>2];e[l+8>>2]=e[o+8>>2];e[l+12>>2]=e[o+12>>2];e[l+16>>2]=e[o+16>>2];e[l+20>>2]=e[o+20>>2];e[l+24>>2]=e[o+24>>2];e[l+28>>2]=e[o+28>>2];r=d}else t=c;while(0);n=e[o>>2]|0;if((n|0)<(E|0))u=o;else{n=o;v=0;while(1){v=v+1|0;e[n>>2]=0;u=o+(v<<2)|0;n=e[u>>2]|0;if((n|0)<(E|0))break;else n=u}}if((n|0)>-1){n=n+k|0;e[u>>2]=n}e[u>>2]=0-n;d=d+1|0;if((d|0)==(p|0))break;else c=t}}while(0);if(z&(r|0)>-1){t=0;while(1){e[s>>2]=(e[s>>2]|0)-(e[l+(t<<2)>>2]|0);t=t+1|0;if((t|0)==(b|0))break;else s=s+4|0}}h=(X(_,r,L)|0)+h|0;S=S+1|0;if((S|0)==(D|0))break;b=e[_>>2]|0}s=e[A>>2]|0}else h=0;e[G>>2]=(e[G>>2]|0)+h;A=ee+(e[s+(T<<2)>>2]<<2)|0;e[A>>2]=(e[A>>2]|0)+h}O=O+1|0}while((O|0)!=(R|0))}V=V+1|0;if((V|0)==(fe|0))break;else T=T+1|0}m=m-g|0}}while((m|0)<(N|0));m=e[K>>2]|0}M=M+1|0}while((M|0)<(m|0));i=F;return}function S(e){e=e|0;var r=0;if(!e)e=0;else{r=e;e=0;do{r=r>>>1;e=e+1|0}while((r|0)!=0)}return e|0}function tr(_,v,r){_=_|0;v=v|0;r=r|0;var m=0,s=0,c=0,h=0,t=0,f=0,o=0,y=0,p=0,b=0,S=0,g=0,d=0,l=0,E=0;E=i;i=i+144|0;d=E;S=(r|0)!=0;m=u((S?r:v)<<2)|0;w(d|0,0,132)|0;g=(v|0)>0;do if(g){b=d+4|0;y=(r|0)==0&1;r=0;p=0;e:while(1){o=a[_+p>>0]|0;s=o<<24>>24;r:do if(o<<24>>24>0){h=e[d+(s<<2)>>2]|0;if(!(o<<24>>24>31|(h>>>s|0)==0)){l=5;break e}e[m+(r<<2)>>2]=h;o=d+(s<<2)|0;i:do if(!(h&1)){c=h;t=s;while(1){e[o>>2]=c+1;f=t+-1|0;if((t|0)<=1)break i;c=e[d+(f<<2)>>2]|0;o=d+(f<<2)|0;if(c&1){l=8;break}else t=f}}else{f=s;l=8}while(0);do if((l|0)==8){l=0;if((f|0)==1){e[b>>2]=(e[b>>2]|0)+1;break}else{e[o>>2]=e[d+(f+-1<<2)>>2]<<1;break}}while(0);o=s+1|0;if((o|0)<33){f=s;t=o;while(1){o=d+(t<<2)|0;c=h;h=e[o>>2]|0;if((h>>>1|0)!=(c|0)){t=1;break r}e[o>>2]=e[d+(f<<2)>>2]<<1;o=t+1|0;if((o|0)>=33){t=1;break}else{f=t;t=o}}}else t=1}else t=y;while(0);r=r+t|0;p=p+1|0;if((p|0)>=(v|0)){l=16;break}}if((l|0)==5){n(m);p=0;i=E;return p|0}else if((l|0)==16){if((r|0)!=1){r=1;l=27;break}if((e[d+8>>2]|0)==2)break;else{r=1;l=27;break}}}else{r=1;l=27}while(0);e:do if((l|0)==27){while(1){if(e[d+(r<<2)>>2]&-1>>>(32-r|0))break;r=r+1|0;if((r|0)>=33)break e;else l=27}n(m);p=0;i=E;return p|0}while(0);if(!g){p=m;i=E;return p|0}if(S){s=0;o=0}else{f=0;t=0;while(1){s=a[_+t>>0]|0;if(s<<24>>24>0){h=e[m+(f<<2)>>2]|0;r=s<<24>>24;c=0;s=0;do{s=h>>>c&1|s<<1;c=c+1|0}while((c|0)<(r|0))}else s=0;e[m+(f<<2)>>2]=s;t=t+1|0;if((t|0)==(v|0))break;else f=f+1|0}i=E;return m|0}do{f=a[_+o>>0]|0;if(f<<24>>24>0){c=e[m+(s<<2)>>2]|0;h=f<<24>>24;t=0;r=0;do{r=c>>>t&1|r<<1;t=t+1|0}while((t|0)<(h|0))}else r=0;if(f<<24>>24){e[m+(s<<2)>>2]=r;s=s+1|0}o=o+1|0}while((o|0)!=(v|0));i=E;return m|0}function Qi(r){r=r|0;var n=0,i=0,s=0,o=0,a=0,t=0;t=e[r+4>>2]|0;a=e[r>>2]|0;if((a|0)<=0)while(1){}r=~~+Y(+ +_e(+ +(t|0),+(1/+(a|0))));while(1){s=r+1|0;i=1;n=1;o=0;do{i=f(i,r)|0;n=f(n,s)|0;o=o+1|0}while((o|0)<(a|0));if((i|0)<=(t|0)&(n|0)>(t|0))break;r=r+((i|0)>(t|0)?-1:1)|0}return r|0}function $i(n,u,y){n=n|0;u=u|0;y=y|0;var t=0,l=0,o=0,s=0,d=0,m=0,g=0,S=0,p=0,c=0,F=0,_=0,E=0,k=0,v=0,w=0,M=0,b=0,i=0;t=e[n+12>>2]|0;if((t+-1|0)>>>0>=2){c=0;return c|0}i=e[n+16>>2]|0;_=+(i&2097151|0);_=+ne((i|0)<0?-_:_,(i>>>21&1023)+-788|0);i=e[n+20>>2]|0;E=+(i&2097151|0);E=+ne((i|0)<0?-E:E,(i>>>21&1023)+-788|0);i=e[n>>2]|0;u=h(f(i,u)|0,4)|0;if((t|0)==1){b=e[n+4>>2]|0;if((i|0)<=0)while(1){}d=~~+Y(+ +_e(+ +(b|0),+(1/+(i|0))));while(1){o=d+1|0;l=1;t=1;s=0;do{l=f(l,d)|0;t=f(t,o)|0;s=s+1|0}while((s|0)!=(i|0));if((t|0)>(b|0)&(l|0)<=(b|0))break;d=((l|0)>(b|0)?-1:1)+d|0}if((b|0)<=0){c=u;return c|0}k=(y|0)==0;F=n+8|0;c=n+32|0;M=n+28|0;l=0;w=0;do{if(k){t=e[c>>2]|0;g=f(i,l)|0;if(!(e[M>>2]|0)){s=1;o=0;do{r[u+(g+o<<2)>>2]=_+ +A(+ +(e[t+((((w|0)/(s|0)|0|0)%(d|0)|0)<<2)>>2]|0))*E;s=f(s,d)|0;o=o+1|0}while((o|0)<(i|0));v=21}else{s=1;o=0;m=0;do{m=m+_+ +A(+ +(e[t+((((w|0)/(s|0)|0|0)%(d|0)|0)<<2)>>2]|0))*E;r[u+(g+o<<2)>>2]=m;s=f(s,d)|0;o=o+1|0}while((o|0)<(i|0));v=21}}else if(a[(e[F>>2]|0)+w>>0]|0){g=e[c>>2]|0;s=(e[M>>2]|0)==0;o=f(e[y+(l<<2)>>2]|0,i)|0;t=1;S=0;p=0;while(1){m=p+_+ +A(+ +(e[g+((((w|0)/(t|0)|0|0)%(d|0)|0)<<2)>>2]|0))*E;r[u+(o+S<<2)>>2]=m;t=f(t,d)|0;S=S+1|0;if((S|0)>=(i|0)){v=21;break}else p=s?p:m}}if((v|0)==21){v=0;l=l+1|0}w=w+1|0}while((w|0)<(b|0));return u|0}else if((t|0)==2){k=e[n+4>>2]|0;if((k|0)<=0){c=u;return c|0}v=(y|0)!=0;w=n+8|0;M=n+32|0;c=n+28|0;F=(i|0)>0;l=0;n=0;do{if(!(v?(a[(e[w>>2]|0)+n>>0]|0)==0:0)){if(F){S=e[M>>2]|0;g=(e[c>>2]|0)==0;d=y+(l<<2)|0;s=f(i,n)|0;o=f(i,l)|0;t=0;m=0;while(1){p=m+_+ +A(+ +(e[S+(s+t<<2)>>2]|0))*E;if(v)r[u+((f(e[d>>2]|0,i)|0)+t<<2)>>2]=p;else r[u+(o+t<<2)>>2]=p;t=t+1|0;if((t|0)>=(i|0))break;else m=g?m:p}}l=l+1|0}n=n+1|0}while((n|0)<(k|0));return u|0}else{c=u;return c|0}return 0}function fe(r){r=r|0;var i=0;if(!(e[r+36>>2]|0))return;i=e[r+32>>2]|0;if(i)n(i);i=e[r+8>>2]|0;if(i)n(i);n(r);return}function rt(i){i=i|0;var r=0;r=e[i+16>>2]|0;if(r)n(r);r=e[i+20>>2]|0;if(r)n(r);r=e[i+24>>2]|0;if(r)n(r);r=e[i+28>>2]|0;if(r)n(r);r=e[i+32>>2]|0;if(r)n(r);r=i;i=r+56|0;do{e[r>>2]=0;r=r+4|0}while((r|0)<(i|0));return}function nr(i,t){i=i|0;t=t|0;var r=0,a=0,l=0,c=0,u=0,n=0,o=0,s=0;r=i;a=r+56|0;do{e[r>>2]=0;r=r+4|0}while((r|0)<(a|0));e[i+12>>2]=t;n=t+4|0;o=e[n>>2]|0;e[i+4>>2]=o;e[i+8>>2]=o;e[i>>2]=e[t>>2];e[i+20>>2]=tr(e[t+8>>2]|0,o,0)|0;n=e[n>>2]|0;o=e[t>>2]|0;if((o|0)<=0)while(1){}r=~~+Y(+ +_e(+ +(n|0),+(1/+(o|0))));while(1){c=r+1|0;l=1;a=1;u=0;do{l=f(l,r)|0;a=f(a,c)|0;u=u+1|0}while((u|0)!=(o|0));if((a|0)>(n|0)&(l|0)<=(n|0))break;r=((l|0)>(n|0)?-1:1)+r|0}e[i+44>>2]=r;r=e[t+16>>2]|0;s=+(r&2097151|0);e[i+48>>2]=~~+Ve(+ne((r|0)<0?-s:s,(r>>>21&1023)+-788|0));r=e[t+20>>2]|0;s=+(r&2097151|0);e[i+52>>2]=~~+Ve(+ne((r|0)<0?-s:s,(r>>>21&1023)+-788|0));return 0}function tt(c,p){c=c|0;p=p|0;var t=0,o=0,f=0,r=0,l=0,d=0,s=0,_=0,m=0,E=0,v=0,w=0,g=0,S=0;S=i;t=c;o=t+56|0;do{e[t>>2]=0;t=t+4|0}while((t|0)<(o|0));v=p+4|0;r=e[v>>2]|0;if((r|0)>0){t=e[p+8>>2]|0;f=0;o=0;do{o=((a[t+f>>0]|0)>0&1)+o|0;f=f+1|0}while((f|0)<(r|0))}else o=0;e[c+4>>2]=r;m=c+8|0;e[m>>2]=o;e[c>>2]=e[p>>2];if((o|0)<=0){m=0;i=S;return m|0}_=p+8|0;d=tr(e[_>>2]|0,r,o)|0;s=o<<2;t=i;i=i+((1*s|0)+15&-16)|0;if(!d){t=e[c+16>>2]|0;if(t)n(t);t=e[c+20>>2]|0;if(t)n(t);t=e[c+24>>2]|0;if(t)n(t);t=e[c+28>>2]|0;if(t)n(t);t=e[c+32>>2]|0;if(t)n(t);t=c;o=t+56|0;do{e[t>>2]=0;t=t+4|0}while((t|0)<(o|0));m=-1;i=S;return m|0}else f=0;do{l=d+(f<<2)|0;r=e[l>>2]|0;r=r>>>16|r<<16;r=r>>>8&16711935|r<<8&-16711936;r=r>>>4&252645135|r<<4&-252645136;r=r>>>2&858993459|r<<2&-858993460;e[l>>2]=r>>>1&1431655765|r<<1&-1431655766;e[t+(f<<2)>>2]=l;f=f+1|0}while((f|0)!=(o|0));Z(t,o,4,10);E=i;i=i+((1*s|0)+15&-16)|0;f=u(s)|0;g=c+20|0;e[g>>2]=f;l=d;r=0;do{e[E+((e[t+(r<<2)>>2]|0)-l>>2<<2)>>2]=r;r=r+1|0}while((r|0)!=(o|0));r=0;do{e[f+(e[E+(r<<2)>>2]<<2)>>2]=e[d+(r<<2)>>2];r=r+1|0}while((r|0)!=(o|0));n(d);e[c+16>>2]=$i(p,o,E)|0;o=u(s)|0;e[c+24>>2]=o;t=e[v>>2]|0;s=(t|0)>0;if(s){r=e[_>>2]|0;l=0;f=0;do{if((a[r+l>>0]|0)>0){e[o+(e[E+(f<<2)>>2]<<2)>>2]=l;f=f+1|0}l=l+1|0}while((l|0)<(t|0))}else f=0;p=c+28|0;e[p>>2]=u(f)|0;f=c+40|0;e[f>>2]=0;if(s){t=0;r=e[_>>2]|0;d=0;s=0;while(1){l=a[r+d>>0]|0;if(l<<24>>24>0){o=s+1|0;a[(e[p>>2]|0)+(e[E+(s<<2)>>2]|0)>>0]=l;l=e[_>>2]|0;r=a[l+d>>0]|0;t=e[f>>2]|0;if((r|0)>(t|0)){e[f>>2]=r;t=r}}else{l=r;o=s}d=d+1|0;if((d|0)>=(e[v>>2]|0))break;else{r=l;s=o}}if((o|0)==1)if((t|0)==1){e[c+36>>2]=1;m=h(2,4)|0;e[c+32>>2]=m;e[m+4>>2]=1;e[m>>2]=1;m=0;i=S;return m|0}else v=1;else v=o}else v=0;o=e[m>>2]|0;if(!o)o=-4;else{t=0;while(1){o=o>>>1;if(!o){o=t;break}else t=t+1|0}o=o+-3|0}E=c+36|0;d=(o|0)<5?5:o;d=(d|0)>8?8:d;e[E>>2]=d;_=1<>2]=m;if((v|0)>0){o=d;s=0;do{t=(e[p>>2]|0)+s|0;r=a[t>>0]|0;if((o|0)>=(r|0)?(w=e[(e[g>>2]|0)+(s<<2)>>2]|0,w=w>>>16|w<<16,w=w>>>8&16711935|w<<8&-16711936,w=w>>>4&252645135|w<<4&-252645136,w=w>>>2&858993459|w<<2&-858993460,w=w>>>1&1431655765|w<<1&-1431655766,(o-r|0)!=31):0){f=s+1|0;l=0;do{e[m+((w|l<>2]=f;l=l+1|0;o=e[E>>2]|0;r=a[t>>0]|0}while((l|0)<(1<>>16|l<<16;s=s>>>8&16711935|s<<8&-16711936;s=s>>>4&252645135|s<<4&-252645136;s=s>>>2&858993459|s<<2&-858993460;s=m+((s>>>1&1431655765|s<<1&-1431655766)<<2)|0;if(!(e[s>>2]|0)){o=r;while(1){r=o+1|0;if((r|0)>=(v|0))break;if((e[(e[g>>2]|0)+(r<<2)>>2]|0)>>>0>l>>>0)break;else o=r}e:do if((v|0)>(f|0)){r=e[g>>2]|0;do{if(l>>>0<(e[r+(f<<2)>>2]&p)>>>0)break e;f=f+1|0}while((v|0)>(f|0))}while(0);r=v-f|0;e[s>>2]=(o>>>0>32767?-1073774592:o<<15|-2147483648)|(r>>>0>32767?32767:r);r=o}t=t+1|0;if((t|0)>=(_|0)){t=0;break}o=e[E>>2]|0}i=S;return t|0}function nt(r,i){r=r|0;i=i|0;var t=0;t=e[e[r>>2]>>2]|0;r=e[e[i>>2]>>2]|0;return(t>>>0>r>>>0&1)-(t>>>0>>0&1)|0}function ot(r,o){r=r|0;o=o|0;var u=0,t=0,w=0,n=0,c=0,d=0,p=0,m=0,v=0,l=0,h=0,a=0,s=0,i=0;s=e[r>>2]|0;if((s|0)==1)return;i=e[r+4>>2]|0;p=e[r+8>>2]|0;m=e[p+4>>2]|0;if((m|0)<=0)return;v=m+1|0;d=s+-1|0;l=s;h=0;a=s;r=1;do{t=e[p+(v-h<<2)>>2]|0;n=(s|0)/(a|0)|0;a=(a|0)/(t|0)|0;u=f(n,a)|0;l=l-(f(n,t+-1|0)|0)|0;c=1-r|0;do if((t|0)==2){r=i+(d+l<<2)|0;if(!c){fr(n,a,o,i,r);r=0;break}else{fr(n,a,i,o,r);r=c;break}}else if((t|0)==4){t=l+n|0;r=i+(d+l<<2)|0;u=i+(d+t<<2)|0;t=i+(d+n+t<<2)|0;if(!c){sr(n,a,o,i,r,u,t);r=0;break}else{sr(n,a,i,o,r,u,t);r=c;break}}else{w=i+(d+l<<2)|0;if(!(((n|0)==1?r:c)|0)){be(n,t,a,u,o,o,o,i,i,w);r=1;break}else{be(n,t,a,u,i,i,i,o,o,w);r=0;break}}while(0);h=h+1|0}while((h|0)!=(m|0));if((s|0)>0&(r|0)!=1)r=0;else return;do{e[o+(r<<2)>>2]=e[i+(r<<2)>>2];r=r+1|0}while((r|0)!=(s|0));return}function or(i,a){i=i|0;a=a|0;var s=0,n=0,t=0,l=0,m=0,d=0,o=0,v=0,u=0,k=0,E=0,b=0,g=0,w=0,p=0,y=0,_=0,c=0,S=0; e[i>>2]=a;_=h(a*3|0,4)|0;e[i+4>>2]=_;c=h(32,4)|0;e[i+8>>2]=c;if((a|0)==1)return;v=c+8|0;i=-1;n=0;t=a;s=0;e:while(1){d=i+1|0;if((d|0)<4)o=e[25768+(d<<2)>>2]|0;else o=s+2|0;m=(o|0)!=2;u=n;l=t;while(1){i=u+1|0;t=l;l=(l|0)/(o|0)|0;if((t|0)!=(f(l,o)|0)){i=d;n=u;s=o;continue e}e[c+(u+2<<2)>>2]=o;s=(u|0)==0;if(!(m|s)){if((u|0)>=1){n=1;do{t=i-n|0;e[c+(t+2<<2)>>2]=e[c+(t+1<<2)>>2];n=n+1|0}while((n|0)!=(i|0))}e[v>>2]=2}if((l|0)==1)break e;else u=i}}e[c>>2]=a;e[c+4>>2]=i;y=6.2831854820251465/+(a|0);if(!((u|0)>0&(s^1)))return;g=a+1|0;s=0;w=0;p=1;do{t=e[c+(w+2<<2)>>2]|0;b=p;p=f(t,p)|0;n=(a|0)/(p|0)|0;if((t|0)>1){i=(n|0)>2;v=t+-1|0;m=s;l=0;t=0;while(1){t=t+b|0;k=+(t|0)*y;if(i){E=0;o=m;d=2;while(1){E=E+1;S=k*E;r[_+(o+a<<2)>>2]=+G(+S);r[_+(g+o<<2)>>2]=+I(+S);d=d+2|0;if((d|0)>=(n|0))break;else o=o+2|0}}l=l+1|0;if((l|0)==(v|0))break;else m=m+n|0}s=(f(n,v)|0)+s|0}w=w+1|0}while((w|0)!=(u|0));return}function ar(r){r=r|0;var i=0;if(!r)return;i=e[r+4>>2]|0;if(i)n(i);i=e[r+8>>2]|0;if(i)n(i);e[r>>2]=0;e[r+4>>2]=0;e[r+8>>2]=0;return}function sr(e,b,o,n,N,T,R){e=e|0;b=b|0;o=o|0;n=n|0;N=N|0;T=T|0;R=R|0;var t=0,s=0,d=0,m=0,h=0,E=0,g=0,O=0,P=0,S=0,l=0,A=0,F=0,i=0,_=0,a=0,c=0,w=0,y=0,p=0,M=0,k=0,u=0,v=0,D=0;S=f(b,e)|0;P=S<<1;O=(b|0)>0;if(O){g=(e<<2)+-1|0;E=e<<1;h=0;m=S;d=S*3|0;s=0;t=P;while(1){A=o+(m<<2)|0;F=o+(d<<2)|0;a=+r[F>>2]+ +r[A>>2];_=o+(s<<2)|0;i=o+(t<<2)|0;c=+r[i>>2]+ +r[_>>2];l=s<<2;r[n+(l<<2)>>2]=c+a;r[n+(g+l<<2)>>2]=c-a;l=l+E|0;r[n+(l+-1<<2)>>2]=+r[_>>2]-+r[i>>2];r[n+(l<<2)>>2]=+r[F>>2]-+r[A>>2];h=h+1|0;if((h|0)==(b|0))break;else{m=m+e|0;d=d+e|0;s=s+e|0;t=t+e|0}}}if((e|0)<2)return;if((e|0)!=2){if(O){g=e<<1;h=0;m=0;while(1){t=m<<2;E=2;d=m;s=t;t=t+g|0;do{F=d;d=d+2|0;A=s;s=s+2|0;l=t;t=t+-2|0;i=d+S|0;D=E+-2|0;p=+r[N+(D<<2)>>2];v=+r[o+(i+-1<<2)>>2];_=E+-1|0;u=+r[N+(_<<2)>>2];a=+r[o+(i<<2)>>2];M=a*u+v*p;v=a*p-u*v;i=i+S|0;u=+r[T+(D<<2)>>2];p=+r[o+(i+-1<<2)>>2];a=+r[T+(_<<2)>>2];w=+r[o+(i<<2)>>2];k=w*a+p*u;p=w*u-a*p;i=i+S|0;a=+r[R+(D<<2)>>2];u=+r[o+(i+-1<<2)>>2];w=+r[R+(_<<2)>>2];y=+r[o+(i<<2)>>2];c=y*w+u*a;u=y*a-w*u;w=c+M;M=c-M;c=u+v;u=v-u;v=+r[o+(d<<2)>>2];a=v+p;p=v-p;v=+r[o+(F+1<<2)>>2];y=v+k;k=v-k;r[n+((A|1)<<2)>>2]=w+y;r[n+(s<<2)>>2]=c+a;r[n+(l+-3<<2)>>2]=k-u;r[n+(t<<2)>>2]=M-p;l=s+g|0;r[n+(l+-1<<2)>>2]=u+k;r[n+(l<<2)>>2]=M+p;l=t+g|0;r[n+(l+-1<<2)>>2]=y-w;r[n+(l<<2)>>2]=c-a;E=E+2|0}while((E|0)<(e|0));h=h+1|0;if((h|0)==(b|0))break;else m=m+e|0}}if(e&1)return}t=e+-1+S|0;E=e<<2;g=e<<1;if(!O)return;m=0;h=t;t=t+P|0;s=e;d=e;while(1){w=+r[o+(h<<2)>>2];c=+r[o+(t<<2)>>2];a=(c+w)*-.7071067690849304;c=(w-c)*.7071067690849304;i=o+(d+-1<<2)|0;r[n+(s+-1<<2)>>2]=c+ +r[i>>2];_=s+g|0;r[n+(_+-1<<2)>>2]=+r[i>>2]-c;i=o+(h+S<<2)|0;r[n+(s<<2)>>2]=a-+r[i>>2];r[n+(_<<2)>>2]=+r[i>>2]+a;m=m+1|0;if((m|0)==(b|0))break;else{h=h+e|0;t=t+e|0;s=s+E|0;d=d+e|0}}return}function fr(i,h,s,l,_){i=i|0;h=h|0;s=s|0;l=l|0;_=_|0;var o=0,t=0,a=0,n=0,w=0,d=0,c=0,u=0,E=0,g=0,S=0,A=0,y=0,p=0,F=0,v=0,m=0,M=0,b=0,k=0;g=f(h,i)|0;S=i<<1;E=(h|0)>0;if(E){n=S+-1|0;a=0;t=0;o=g;while(1){d=s+(t<<2)|0;c=s+(o<<2)|0;u=t<<1;r[l+(u<<2)>>2]=+r[c>>2]+ +r[d>>2];r[l+(n+u<<2)>>2]=+r[d>>2]-+r[c>>2];a=a+1|0;if((a|0)==(h|0))break;else{t=t+i|0;o=o+i|0}}}if((i|0)<2)return;if((i|0)!=2){if(E){a=0;t=0;o=g;while(1){u=t<<1;n=2;w=o;d=u+S|0;c=t;do{v=w;w=w+2|0;A=d;d=d+-2|0;p=c;c=c+2|0;F=u;u=u+2|0;b=+r[_+(n+-2<<2)>>2];m=+r[s+(v+1<<2)>>2];M=+r[_+(n+-1<<2)>>2];k=+r[s+(w<<2)>>2];y=k*M+m*b;m=k*b-M*m;v=s+(c<<2)|0;r[l+(u<<2)>>2]=m+ +r[v>>2];r[l+(d<<2)>>2]=m-+r[v>>2];p=s+(p+1<<2)|0;r[l+((F|1)<<2)>>2]=+r[p>>2]+y;r[l+(A+-3<<2)>>2]=+r[p>>2]-y;n=n+2|0}while((n|0)<(i|0));a=a+1|0;if((a|0)==(h|0))break;else{t=t+i|0;o=o+i|0}}}if(((i|0)%2|0|0)==1)return}o=i+-1|0;if(!E)return;a=0;n=i;t=g+o|0;while(1){r[l+(n<<2)>>2]=-+r[s+(t<<2)>>2];e[l+(n+-1<<2)>>2]=e[s+(o<<2)>>2];a=a+1|0;if((a|0)==(h|0))break;else{n=n+S|0;t=t+i|0;o=o+i|0}}return}function be(o,F,w,b,A,m,S,p,k,_){o=o|0;F=F|0;w=w|0;b=b|0;A=A|0;m=m|0;S=S|0;p=p|0;k=k|0;_=_|0;var a=0,i=0,n=0,s=0,t=0,c=0,l=0,g=0,v=0,u=0,d=0,h=0,P=0,B=0,T=0,N=0,E=0,H=0,L=0,x=0,C=0,z=0,R=0,M=0,D=0,y=0,O=0,U=0,q=0;L=6.2831854820251465/+(F|0);H=+G(+L);L=+I(+L);R=F+1>>1;C=o+-1>>1;M=f(w,o)|0;D=f(F,o)|0;x=(o|0)==1;e:do if(!x){if((b|0)>0){t=0;do{e[k+(t<<2)>>2]=e[S+(t<<2)>>2];t=t+1|0}while((t|0)!=(b|0))}n=(F|0)>1;if(n){d=(w|0)>0;u=1;a=0;do{a=a+M|0;if(d){h=0;i=a;while(1){e[p+(i<<2)>>2]=e[m+(i<<2)>>2];h=h+1|0;if((h|0)==(w|0))break;else i=i+o|0}}u=u+1|0}while((u|0)!=(F|0))}d=0-o|0;if((C|0)>(w|0)){if(n){l=(w|0)>0;g=(o|0)>2;i=1;s=0;do{s=s+M|0;d=d+o|0;if(l){h=d+-1|0;n=0;t=s-o|0;do{t=t+o|0;if(g){u=2;a=h;c=t;do{y=a;a=a+2|0;y=_+(y+1<<2)|0;U=c+1|0;c=c+2|0;v=m+(U<<2)|0;E=_+(a<<2)|0;O=m+(c<<2)|0;r[p+(U<<2)>>2]=+r[O>>2]*+r[E>>2]+ +r[v>>2]*+r[y>>2];r[p+(c<<2)>>2]=+r[O>>2]*+r[y>>2]-+r[v>>2]*+r[E>>2];u=u+2|0}while((u|0)<(o|0))}n=n+1|0}while((n|0)!=(w|0))}i=i+1|0}while((i|0)!=(F|0))}}else if(n){g=(o|0)>2;v=(w|0)>0;t=1;c=0;do{d=d+o|0;c=c+M|0;if(g){n=2;s=d+-1|0;l=c;do{h=s;s=s+2|0;l=l+2|0;if(v){h=_+(h+1<<2)|0;u=_+(s<<2)|0;a=0;i=l;while(1){O=i+-1|0;E=m+(O<<2)|0;y=m+(i<<2)|0;r[p+(O<<2)>>2]=+r[y>>2]*+r[u>>2]+ +r[E>>2]*+r[h>>2];r[p+(i<<2)>>2]=+r[y>>2]*+r[h>>2]-+r[E>>2]*+r[u>>2];a=a+1|0;if((a|0)==(w|0))break;else i=i+o|0}}n=n+2|0}while((n|0)<(o|0))}t=t+1|0}while((t|0)!=(F|0))}h=f(M,F)|0;t=(R|0)>1;if((C|0)>=(w|0)){if(!t)break;t=(w|0)>0;c=(o|0)>2;l=1;g=0;while(1){g=g+M|0;h=h-M|0;if(t){u=0;a=g;i=h;while(1){if(c){d=2;n=a;s=i;do{v=n;n=n+2|0;v=v+1|0;E=p+(v<<2)|0;O=s+1|0;s=s+2|0;_=p+(O<<2)|0;r[m+(v<<2)>>2]=+r[_>>2]+ +r[E>>2];v=p+(n<<2)|0;y=p+(s<<2)|0;r[m+(O<<2)>>2]=+r[v>>2]-+r[y>>2];r[m+(n<<2)>>2]=+r[y>>2]+ +r[v>>2];r[m+(s<<2)>>2]=+r[_>>2]-+r[E>>2];d=d+2|0}while((d|0)<(o|0))}u=u+1|0;if((u|0)==(w|0))break;else{a=a+o|0;i=i+o|0}}}l=l+1|0;if((l|0)==(R|0))break e}}if(t){t=(o|0)>2;c=(w|0)>0;l=1;g=0;do{g=g+M|0;h=h-M|0;if(t){d=2;a=g;i=h;do{a=a+2|0;i=i+2|0;if(c){u=0;n=a-o|0;s=i-o|0;do{n=n+o|0;s=s+o|0;v=n+-1|0;E=p+(v<<2)|0;O=s+-1|0;_=p+(O<<2)|0;r[m+(v<<2)>>2]=+r[_>>2]+ +r[E>>2];v=p+(n<<2)|0;y=p+(s<<2)|0;r[m+(O<<2)>>2]=+r[v>>2]-+r[y>>2];r[m+(n<<2)>>2]=+r[y>>2]+ +r[v>>2];r[m+(s<<2)>>2]=+r[_>>2]-+r[E>>2];u=u+1|0}while((u|0)!=(w|0))}d=d+2|0}while((d|0)<(o|0))}l=l+1|0}while((l|0)!=(R|0))}}while(0);_=(b|0)>0;if(_){t=0;do{e[S+(t<<2)>>2]=e[k+(t<<2)>>2];t=t+1|0}while((t|0)!=(b|0))}t=f(b,F)|0;E=(R|0)>1;if(E){h=(w|0)>0;d=1;a=0;i=t;do{a=a+M|0;i=i-M|0;if(h){u=0;n=a-o|0;s=i-o|0;do{n=n+o|0;s=s+o|0;c=p+(n<<2)|0;l=p+(s<<2)|0;r[m+(n<<2)>>2]=+r[l>>2]+ +r[c>>2];r[m+(s<<2)>>2]=+r[l>>2]-+r[c>>2];u=u+1|0}while((u|0)!=(w|0))}d=d+1|0}while((d|0)!=(R|0));l=f(F+-1|0,b)|0;if(E){g=(R|0)>2;T=0;N=1;v=1;m=0;do{m=m+b|0;t=t-b|0;P=N;N=N*H-T*L;T=P*L+T*H;if(_){h=0;d=m;u=t;a=l;i=b;while(1){r[k+(d<<2)>>2]=+r[S+(i<<2)>>2]*N+ +r[S+(h<<2)>>2];r[k+(u<<2)>>2]=+r[S+(a<<2)>>2]*T;h=h+1|0;if((h|0)==(b|0))break;else{d=d+1|0;u=u+1|0;a=a+1|0;i=i+1|0}}}if(g){P=T;B=N;d=2;u=b;a=l;do{u=u+b|0;a=a-b|0;q=B;B=B*N-P*T;P=q*T+P*N;if(_){h=0;i=m;n=t;s=u;c=a;while(1){y=k+(i<<2)|0;r[y>>2]=+r[y>>2]+ +r[S+(s<<2)>>2]*B;y=k+(n<<2)|0;r[y>>2]=+r[y>>2]+ +r[S+(c<<2)>>2]*P;h=h+1|0;if((h|0)==(b|0))break;else{i=i+1|0;n=n+1|0;s=s+1|0;c=c+1|0}}}d=d+1|0}while((d|0)!=(R|0))}v=v+1|0}while((v|0)!=(R|0));if(E){c=1;t=0;do{t=t+b|0;if(_){l=0;s=t;while(1){h=k+(l<<2)|0;r[h>>2]=+r[h>>2]+ +r[S+(s<<2)>>2];l=l+1|0;if((l|0)==(b|0))break;else s=s+1|0}}c=c+1|0}while((c|0)!=(R|0))}}}if((o|0)<(w|0)){if((o|0)>0){a=(w|0)>0;i=0;do{if(a){n=0;s=i;t=i;while(1){e[A+(t<<2)>>2]=e[p+(s<<2)>>2];n=n+1|0;if((n|0)==(w|0))break;else{s=s+o|0;t=t+D|0}}}i=i+1|0}while((i|0)!=(o|0))}}else if((w|0)>0){t=(o|0)>0;n=0;i=0;a=0;while(1){if(t){s=0;c=i;l=a;while(1){e[A+(l<<2)>>2]=e[p+(c<<2)>>2];s=s+1|0;if((s|0)==(o|0))break;else{c=c+1|0;l=l+1|0}}}n=n+1|0;if((n|0)==(w|0))break;else{i=i+o|0;a=a+D|0}}}_=o<<1;s=f(M,F)|0;if(E){m=(w|0)>0;u=1;a=0;i=0;n=s;do{a=a+_|0;i=i+M|0;n=n-M|0;if(m){d=0;t=a;c=i;l=n;while(1){e[A+(t+-1<<2)>>2]=e[p+(c<<2)>>2];e[A+(t<<2)>>2]=e[p+(l<<2)>>2];d=d+1|0;if((d|0)==(w|0))break;else{t=t+D|0;c=c+o|0;l=l+o|0}}}u=u+1|0}while((u|0)!=(R|0))}if(x)return;t=0-o|0;if((C|0)>=(w|0)){if(!E)return;u=(w|0)<1|(o|0)<3;d=1;v=0;m=0;do{t=t+_|0;v=v+_|0;m=m+M|0;s=s-M|0;if(!u){c=0;n=t;i=v;a=m;g=s;while(1){l=2;do{S=l+a|0;F=p+(S+-1<<2)|0;E=l+g|0;b=p+(E+-1<<2)|0;h=l+i|0;r[A+(h+-1<<2)>>2]=+r[b>>2]+ +r[F>>2];k=o-l+n|0;r[A+(k+-1<<2)>>2]=+r[F>>2]-+r[b>>2];S=p+(S<<2)|0;E=p+(E<<2)|0;r[A+(h<<2)>>2]=+r[E>>2]+ +r[S>>2];r[A+(k<<2)>>2]=+r[E>>2]-+r[S>>2];l=l+2|0}while((l|0)<(o|0));c=c+1|0;if((c|0)==(w|0))break;else{n=n+D|0;i=i+D|0;a=a+o|0;g=g+o|0}}}d=d+1|0}while((d|0)!=(R|0));return}if(!E)return;v=(o|0)>2;m=(w|0)>0;h=1;l=0;g=0;do{t=t+_|0;l=l+_|0;g=g+M|0;s=s-M|0;if(v?(z=t+o|0,m):0){u=2;do{d=0;a=z-u|0;i=u+l|0;n=u+g|0;c=u+s|0;while(1){S=p+(n+-1<<2)|0;k=p+(c+-1<<2)|0;r[A+(i+-1<<2)>>2]=+r[k>>2]+ +r[S>>2];r[A+(a+-1<<2)>>2]=+r[S>>2]-+r[k>>2];k=p+(n<<2)|0;S=p+(c<<2)|0;r[A+(i<<2)>>2]=+r[S>>2]+ +r[k>>2];r[A+(a<<2)>>2]=+r[S>>2]-+r[k>>2];d=d+1|0;if((d|0)==(w|0))break;else{a=a+D|0;i=i+D|0;n=n+o|0;c=c+o|0}}u=u+2|0}while((u|0)<(o|0))}h=h+1|0}while((h|0)!=(R|0));return}function ct(D){D=D|0;var y=0,p=0,w=0,a=0,l=0,i=0,E=0,o=0,n=0,O=0,s=0,m=0,v=0,R=0,b=0,M=0,P=0,C=0,I=0,F=0,T=0,S=0,c=0,z=0,U=0,q=0,L=0,j=0,V=0,x=0,k=0,A=0,N=0,H=0,g=0,B=0,_=0,W=0;B=D+28|0;_=e[B>>2]|0;if(!_){c=-131;return c|0}N=(e[_+3456>>2]|0)==0;H=N&1;w=_+3496|0;a=+t[w>>3];if(!(a>-80)){if(a<-200)t[w>>3]=-200}else t[w>>3]=-80;w=_+3512|0;a=+t[w>>3];if(!(a>0)){if(a<-99999)t[w>>3]=-99999}else t[w>>3]=0;k=e[_+3396>>2]|0;if(!k){c=-131;return c|0}e[_+3392>>2]=1;x=_+3400|0;a=+t[x>>3];A=~~a;c=e[(e[k+24>>2]|0)+(A<<2)>>2]|0;A=e[(e[k+28>>2]|0)+(A<<2)>>2]|0;e[_>>2]=c;e[_+4>>2]=A;A=(c|0)==(A|0);c=k+144|0;if((e[c>>2]|0)>0){z=k+136|0;U=k+140|0;q=k+148|0;S=_;i=0;while(1){F=e[z>>2]|0;n=e[U>>2]|0;I=e[(e[q>>2]|0)+(i<<2)>>2]|0;T=h(1,1120)|0;I=I+(~~a<<2)|0;C=e[I>>2]|0;d(T|0,n+(C*1120|0)|0,1120)|0;n=e[T>>2]|0;if((n|0)>0){o=T+4|0;l=0;s=-1;do{P=e[o+(l<<2)>>2]|0;s=(P|0)>(s|0)?P:s;l=l+1|0}while((l|0)!=(n|0));if((s|0)>=0){m=T+256|0;P=S+24|0;y=T+192|0;b=T+320|0;M=0;n=-1;while(1){p=m+(M<<2)|0;o=e[p>>2]|0;n=(o|0)>(n|0)?o:n;e[p>>2]=(e[P>>2]|0)+o;p=y+(M<<2)|0;o=e[p>>2]|0;if((o|0)!=31){v=0;do{l=b+(M<<5)+(v<<2)|0;w=e[l>>2]|0;n=(w|0)>(n|0)?w:n;if((w|0)>-1){e[l>>2]=(e[P>>2]|0)+w;o=e[p>>2]|0}v=v+1|0}while((v|0)<(1<=0?(M=e[e[F+(C<<2)>>2]>>2]|0,C=e[P>>2]|0,e[P>>2]=C+1,e[S+1824+(C<<2)>>2]=M,(n|0)!=0):0){s=0;do{s=s+1|0;M=e[(e[F+(e[I>>2]<<2)>>2]|0)+(s<<2)>>2]|0;C=e[P>>2]|0;e[P>>2]=C+1;e[S+1824+(C<<2)>>2]=M}while((s|0)!=(n|0))}}}F=S+16|0;e[S+800+(e[F>>2]<<2)>>2]=1;e[S+1056+(e[F>>2]<<2)>>2]=T;e[F>>2]=(e[F>>2]|0)+1;i=i+1|0;if((i|0)>=(e[c>>2]|0))break;a=+t[x>>3];S=e[B>>2]|0}w=e[B>>2]|0}else w=_;a=+t[_+3520>>3];p=e[k+124>>2]|0;c=e[k+128>>2]|0;m=~~a;a=a-+(m|0);v=c+(m<<3)|0;d(w+2868|0,p+(~~+t[v>>3]*492|0)|0,492)|0;a=+t[c+(m+1<<3)>>3]*a+ +t[v>>3]*(1-a);v=~~a;a=a-+(v|0);m=(v|0)>0&a==0;a=m?1:a;v=(m<<31>>31)+v|0;R=1-a;m=v+1|0;r[w+2872>>2]=R*+r[p+(v*492|0)+4>>2]+a*+r[p+(m*492|0)+4>>2];r[w+2900>>2]=R*+r[p+(v*492|0)+32>>2]+a*+r[p+(m*492|0)+32>>2];r[w+2876>>2]=R*+r[p+(v*492|0)+8>>2]+a*+r[p+(m*492|0)+8>>2];r[w+2904>>2]=+r[p+(m*492|0)+36>>2]*a+R*+r[p+(v*492|0)+36>>2];r[w+2880>>2]=+r[p+(m*492|0)+12>>2]*a+ +r[p+(v*492|0)+12>>2]*R;r[w+2908>>2]=+r[p+(m*492|0)+40>>2]*a+ +r[p+(v*492|0)+40>>2]*R;r[w+2884>>2]=+r[p+(m*492|0)+16>>2]*a+ +r[p+(v*492|0)+16>>2]*R;r[w+2912>>2]=+r[p+(m*492|0)+44>>2]*a+ +r[p+(v*492|0)+44>>2]*R;r[w+2936>>2]=+t[w+3512>>3];v=e[k+132>>2]|0;R=+t[_+3472>>3];p=~~R;R=R-+(p|0);m=e[B>>2]|0;e:do if(!v){S=e[m>>2]|0;e[m+3240>>2]=S;c=e[m+4>>2]|0;e[m+3300>>2]=c;e[m+3244>>2]=S;e[m+3304>>2]=c;e[m+3248>>2]=S;e[m+3308>>2]=c;e[m+3252>>2]=S;e[m+3312>>2]=c;e[m+3256>>2]=S;e[m+3316>>2]=c;e[m+3260>>2]=S;e[m+3320>>2]=c;e[m+3264>>2]=S;e[m+3324>>2]=c;e[m+3268>>2]=S;e[m+3328>>2]=c;e[m+3272>>2]=S;e[m+3332>>2]=c;e[m+3276>>2]=S;e[m+3336>>2]=c;e[m+3280>>2]=S;e[m+3340>>2]=c;e[m+3284>>2]=S;e[m+3344>>2]=c;e[m+3288>>2]=S;e[m+3348>>2]=c;e[m+3292>>2]=S;e[m+3352>>2]=c;e[m+3296>>2]=S;e[m+3356>>2]=c}else{i=m+3120|0;l=v+(p*240|0)|0;w=i+60|0;do{e[i>>2]=e[l>>2];i=i+4|0;l=l+4|0}while((i|0)<(w|0));i=m+3180|0;l=v+(p*240|0)+60|0;w=i+60|0;do{e[i>>2]=e[l>>2];i=i+4|0;l=l+4|0}while((i|0)<(w|0));if(e[_+3420>>2]|0){a=1-R;i=p+1|0;l=m+4|0;E=+(e[D+8>>2]|0);o=0;while(1){O=+r[v+(i*240|0)+120+(o<<2)>>2]*R+ +r[v+(p*240|0)+120+(o<<2)>>2]*a;W=O*1e3/E;e[m+3e3+(o<<2)>>2]=~~(+(e[m>>2]|0)*W);e[m+3060+(o<<2)>>2]=~~(+(e[l>>2]|0)*W);e[m+2940+(o<<2)>>2]=~~O;O=(+r[v+(i*240|0)+180+(o<<2)>>2]*R+ +r[v+(p*240|0)+180+(o<<2)>>2]*a)*1e3/E;e[m+3240+(o<<2)>>2]=~~(+(e[m>>2]|0)*O);e[m+3300+(o<<2)>>2]=~~(+(e[l>>2]|0)*O);o=o+1|0;if((o|0)==15)break e}}E=1-R;n=p+1|0;O=+r[v+(n*240|0)+148>>2]*R+ +r[v+(p*240|0)+148>>2]*E;l=m+4|0;o=~~O;a=+(e[D+8>>2]|0);O=O*1e3/a;s=0;do{e[m+3e3+(s<<2)>>2]=~~(+(e[m>>2]|0)*O);e[m+3060+(s<<2)>>2]=~~(+(e[l>>2]|0)*O);e[m+2940+(s<<2)>>2]=o;s=s+1|0}while((s|0)!=15);a=(+r[v+(n*240|0)+208>>2]*R+ +r[v+(p*240|0)+208>>2]*E)*1e3/a;i=0;do{e[m+3240+(i<<2)>>2]=~~(+(e[m>>2]|0)*a);e[m+3300+(i<<2)>>2]=~~(+(e[l>>2]|0)*a);i=i+1|0}while((i|0)!=15)}while(0);s=k+92|0;l=e[s>>2]|0;v=k+100|0;w=e[v>>2]|0;P=k+108|0;p=e[P>>2]|0;y=e[B>>2]|0;n=y+2852|0;o=e[n>>2]|0;m=~~+t[x>>3];i=y+28|0;if((e[i>>2]|0)<=0)e[i>>2]=1;if(!o){o=h(1,520)|0;e[n>>2]=o}d(o|0,25784,520)|0;e[o>>2]=0;if(e[y+3460>>2]|0){e[o+500>>2]=1;e[o+504>>2]=e[l+(m<<2)>>2];e[o+508>>2]=e[w+(m<<2)>>2];t[o+512>>3]=+t[p+(m<<3)>>3]}s=e[s>>2]|0;o=e[v>>2]|0;p=e[P>>2]|0;y=e[B>>2]|0;l=y+2856|0;i=e[l>>2]|0;n=~~+t[x>>3];w=y+28|0;if((e[w>>2]|0)<=1)e[w>>2]=2;if(!i){i=h(1,520)|0;e[l>>2]=i}d(i|0,25784,520)|0;e[i>>2]=0;if(e[y+3460>>2]|0){e[i+500>>2]=1;e[i+504>>2]=e[s+(n<<2)>>2];e[i+508>>2]=e[o+(n<<2)>>2];t[i+512>>3]=+t[p+(n<<3)>>3]}if(!A){i=k+96|0;l=e[i>>2]|0;v=k+104|0;w=e[v>>2]|0;p=e[P>>2]|0;m=e[B>>2]|0;s=m+2860|0;o=e[s>>2]|0;y=~~+t[x>>3];n=m+28|0;if((e[n>>2]|0)<=2)e[n>>2]=3;if(!o){o=h(1,520)|0;e[s>>2]=o}d(o|0,25784,520)|0;e[o>>2]=1;if(e[m+3460>>2]|0){e[o+500>>2]=1;e[o+504>>2]=e[l+(y<<2)>>2];e[o+508>>2]=e[w+(y<<2)>>2];t[o+512>>3]=+t[p+(y<<3)>>3]}s=e[i>>2]|0;n=e[v>>2]|0;p=e[P>>2]|0;y=e[B>>2]|0;l=y+2864|0;i=e[l>>2]|0;o=~~+t[x>>3];w=y+28|0;if((e[w>>2]|0)<=3)e[w>>2]=4;if(!i){i=h(1,520)|0;e[l>>2]=i}d(i|0,25784,520)|0;e[i>>2]=1;if(e[y+3460>>2]|0){e[i+500>>2]=1;e[i+504>>2]=e[s+(o<<2)>>2];e[i+508>>2]=e[n+(o<<2)>>2];t[i+512>>3]=+t[p+(o<<3)>>3]}}l=k+32|0;w=k+36|0;ie(D,+t[_+3528+(H<<5)>>3],0,e[l>>2]|0,e[w>>2]|0,e[k+44>>2]|0);p=k+52|0;ie(D,+t[_+3560>>3],1,e[l>>2]|0,e[w>>2]|0,e[p>>2]|0);if(!A){ie(D,+t[_+3592>>3],2,e[l>>2]|0,e[w>>2]|0,e[p>>2]|0);ie(D,+t[_+3624>>3],3,e[l>>2]|0,e[w>>2]|0,e[k+48>>2]|0)}a=+t[_+3528+(H<<5)+24>>3];v=e[k+80>>2]|0;n=e[k+84>>2]|0;i=~~a;a=a-+(i|0);M=e[B>>2]|0;b=e[M+2852>>2]|0;a=+t[n+(i+1<<3)>>3]*a+ +t[n+(i<<3)>>3]*(1-a);i=~~a;a=a-+(i|0);o=(i|0)>0&a==0;a=o?1:a;i=(o<<31>>31)+i|0;E=1-a;o=i+1|0;l=0;do{r[b+336+(l<<2)>>2]=+(e[v+(o*160|0)+(l<<2)>>2]|0)*a+ +(e[v+(i*160|0)+(l<<2)>>2]|0)*E;l=l+1|0}while((l|0)!=40);a=+t[_+3584>>3];i=~~a;a=a-+(i|0);w=e[M+2856>>2]|0;a=+t[n+(i+1<<3)>>3]*a+ +t[n+(i<<3)>>3]*(1-a);i=~~a;a=a-+(i|0);o=(i|0)>0&a==0;a=o?1:a;i=(o<<31>>31)+i|0;E=1-a;o=i+1|0;l=0;do{r[w+336+(l<<2)>>2]=+(e[v+(o*160|0)+(l<<2)>>2]|0)*a+ +(e[v+(i*160|0)+(l<<2)>>2]|0)*E;l=l+1|0}while((l|0)!=40);if(!A){E=+t[_+3616>>3];l=e[k+88>>2]|0;n=~~E;E=E-+(n|0);s=e[M+2860>>2]|0;E=+t[l+(n+1<<3)>>3]*E+ +t[l+(n<<3)>>3]*(1-E);n=~~E;E=E-+(n|0);o=(n|0)>0&E==0;E=o?1:E;n=(o<<31>>31)+n|0;O=1-E;o=n+1|0;i=0;do{r[s+336+(i<<2)>>2]=+(e[v+(o*160|0)+(i<<2)>>2]|0)*E+ +(e[v+(n*160|0)+(i<<2)>>2]|0)*O;i=i+1|0}while((i|0)!=40);E=+t[_+3648>>3];o=~~E;E=E-+(o|0);s=e[M+2864>>2]|0;E=+t[l+(o+1<<3)>>3]*E+ +t[l+(o<<3)>>3]*(1-E);o=~~E;E=E-+(o|0);n=(o|0)>0&E==0;E=n?1:E;o=(n<<31>>31)+o|0;a=1-E;n=o+1|0;i=0;do{r[s+336+(i<<2)>>2]=+(e[v+(n*160|0)+(i<<2)>>2]|0)*E+ +(e[v+(o*160|0)+(i<<2)>>2]|0)*a;i=i+1|0}while((i|0)!=40)}a=+t[_+3528+(H<<5)+8>>3];i=e[k+40>>2]|0;c=~~a;a=a-+(c|0);r[b+32>>2]=+(e[i+(c+1<<2)>>2]|0)*a+ +(e[i+(c<<2)>>2]|0)*(1-a);a=+t[_+3568>>3];c=~~a;a=a-+(c|0);r[w+32>>2]=+(e[i+(c+1<<2)>>2]|0)*a+ +(e[i+(c<<2)>>2]|0)*(1-a);if(!A){a=+t[_+3600>>3];c=~~a;a=a-+(c|0);r[(e[M+2860>>2]|0)+32>>2]=+(e[i+(c+1<<2)>>2]|0)*a+ +(e[i+(c<<2)>>2]|0)*(1-a);a=+t[_+3632>>3];c=~~a;a=a-+(c|0);r[(e[M+2864>>2]|0)+32>>2]=+(e[i+(c+1<<2)>>2]|0)*a+ +(e[i+(c<<2)>>2]|0)*(1-a)}l=k+76|0;w=k+56|0;if(N)a=0;else a=+t[_+3408>>3];ee(D,+t[_+3528+(H<<5)+16>>3],0,e[l>>2]|0,e[k+60>>2]|0,e[w>>2]|0,a);ee(D,+t[_+3576>>3],1,e[l>>2]|0,e[k+64>>2]|0,e[w>>2]|0,0);if(A){N=e[B>>2]|0;c=e[N+2852>>2]|0;E=+t[N+3496>>3];r[c+4>>2]=E;a=+t[N+3504>>3];r[c+8>>2]=a;c=e[N+2856>>2]|0;r[c+4>>2]=E;r[c+8>>2]=a}else{ee(D,+t[_+3608>>3],2,e[l>>2]|0,e[k+68>>2]|0,e[w>>2]|0,0);ee(D,+t[_+3640>>3],3,e[l>>2]|0,e[k+72>>2]|0,e[w>>2]|0,0);N=e[B>>2]|0;c=e[N+2852>>2]|0;E=+t[N+3496>>3];r[c+4>>2]=E;a=+t[N+3504>>3];r[c+8>>2]=a;c=e[N+2856>>2]|0;r[c+4>>2]=E;r[c+8>>2]=a;c=e[N+2860>>2]|0;r[c+4>>2]=E;r[c+8>>2]=a;c=e[N+2864>>2]|0;r[c+4>>2]=E;r[c+8>>2]=a}U=e[k+152>>2]|0;L=~~+t[x>>3];q=e[U+(L<<3)>>2]|0;L=e[U+(L<<3)+4>>2]|0;U=(e[N>>2]|0)==(e[N+4>>2]|0)?1:2;j=N+8|0;V=N+12|0;x=D+8|0;H=D+4|0;A=0;do{i=N+544+(A<<2)|0;e[i>>2]=h(1,3208)|0;c=h(1,16)|0;e[N+32+(A<<2)>>2]=c;S=26304+(A<<4)|0;e[c>>2]=e[S>>2];e[c+4>>2]=e[S+4>>2];e[c+8>>2]=e[S+8>>2];e[c+12>>2]=e[S+12>>2];if((A|0)>=(e[j>>2]|0))e[j>>2]=A+1;e[N+288+(A<<2)>>2]=0;k=q+(A*3208|0)|0;d(e[i>>2]|0,k|0,3208)|0;if((A|0)>=(e[V>>2]|0))e[V>>2]=A+1;if((e[k>>2]|0)>0){m=0;do{M=e[q+(A*3208|0)+1092+(m<<2)>>2]|0;b=e[B>>2]|0;y=u(2840)|0;e[b+1568+(M<<2)>>2]=y;d(y|0,e[L+(M<<5)+12>>2]|0,2840)|0;n=b+20|0;if((e[n>>2]|0)<=(M|0))e[n>>2]=M+1;z=y+8|0;e[z>>2]=e[L+(M<<5)+8>>2];P=b+1312+(M<<2)|0;e[P>>2]=e[L+(M<<5)>>2];C=b+3420|0;I=y+12|0;s=e[I>>2]|0;n=(s|0)>0;do if(!(e[C>>2]|0)){if(n){n=e[L+(M<<5)+24>>2]|0;o=y+24|0;i=0;do{s=o+(i<<2)|0;if(e[n+(i<<4)>>2]|0)e[s>>2]=e[s>>2]|1;if(e[n+(i<<4)+4>>2]|0)e[s>>2]=e[s>>2]|2;if(e[n+(i<<4)+8>>2]|0)e[s>>2]=e[s>>2]|4;if(e[n+(i<<4)+12>>2]|0)e[s>>2]=e[s>>2]|8;i=i+1|0;s=e[I>>2]|0}while((i|0)<(s|0))}o=e[L+(M<<5)+16>>2]|0;F=b+24|0;n=e[F>>2]|0;l=o;e:do if((n|0)>0){i=0;while(1){if((e[b+1824+(i<<2)>>2]|0)==(o|0)){n=i;break e}i=i+1|0;if((i|0)>=(n|0)){g=116;break}}}else g=116;while(0);if((g|0)==116){g=0;e[F>>2]=n+1}e[y+20>>2]=n;e[b+1824+(n<<2)>>2]=l;if((s|0)<=0)break;c=L+(M<<5)+24|0;S=y+280|0;s=0;T=0;do{n=e[c>>2]|0;i=e[n+(T<<4)>>2]|0;l=i;if(i){n=e[F>>2]|0;e:do if((n|0)>0){o=0;while(1){if((e[b+1824+(o<<2)>>2]|0)==(i|0)){n=o;break e}o=o+1|0;if((o|0)>=(n|0)){g=123;break}}}else g=123;while(0);if((g|0)==123){g=0;e[F>>2]=n+1}e[S+(s<<2)>>2]=n;e[b+1824+(n<<2)>>2]=l;n=e[c>>2]|0;s=s+1|0}i=e[n+(T<<4)+4>>2]|0;l=i;if(i){n=e[F>>2]|0;e:do if((n|0)>0){o=0;while(1){if((e[b+1824+(o<<2)>>2]|0)==(i|0)){n=o;break e}o=o+1|0;if((o|0)>=(n|0)){g=147;break}}}else g=147;while(0);if((g|0)==147){g=0;e[F>>2]=n+1}e[S+(s<<2)>>2]=n;e[b+1824+(n<<2)>>2]=l;n=e[c>>2]|0;s=s+1|0}i=e[n+(T<<4)+8>>2]|0;l=i;if(i){n=e[F>>2]|0;e:do if((n|0)>0){o=0;while(1){if((e[b+1824+(o<<2)>>2]|0)==(i|0)){n=o;break e}o=o+1|0;if((o|0)>=(n|0)){g=153;break}}}else g=153;while(0);if((g|0)==153){g=0;e[F>>2]=n+1}e[S+(s<<2)>>2]=n;e[b+1824+(n<<2)>>2]=l;n=e[c>>2]|0;s=s+1|0}o=e[n+(T<<4)+12>>2]|0;l=o;if(o){n=e[F>>2]|0;e:do if((n|0)>0){i=0;while(1){if((e[b+1824+(i<<2)>>2]|0)==(o|0)){n=i;break e}i=i+1|0;if((i|0)>=(n|0)){g=159;break}}}else g=159;while(0);if((g|0)==159){g=0;e[F>>2]=n+1}e[S+(s<<2)>>2]=n;e[b+1824+(n<<2)>>2]=l;s=s+1|0}T=T+1|0}while((T|0)<(e[I>>2]|0))}else{if(n){n=e[L+(M<<5)+28>>2]|0;o=y+24|0;i=0;do{s=o+(i<<2)|0;if(e[n+(i<<4)>>2]|0)e[s>>2]=e[s>>2]|1;if(e[n+(i<<4)+4>>2]|0)e[s>>2]=e[s>>2]|2;if(e[n+(i<<4)+8>>2]|0)e[s>>2]=e[s>>2]|4;if(e[n+(i<<4)+12>>2]|0)e[s>>2]=e[s>>2]|8;i=i+1|0;s=e[I>>2]|0}while((i|0)<(s|0))}o=e[L+(M<<5)+20>>2]|0;F=b+24|0;n=e[F>>2]|0;l=o;e:do if((n|0)>0){i=0;while(1){if((e[b+1824+(i<<2)>>2]|0)==(o|0)){n=i;break e}i=i+1|0;if((i|0)>=(n|0)){g=100;break}}}else g=100;while(0);if((g|0)==100){g=0;e[F>>2]=n+1}e[y+20>>2]=n;e[b+1824+(n<<2)>>2]=l;if((s|0)<=0)break;c=L+(M<<5)+28|0;S=y+280|0;s=0;T=0;do{n=e[c>>2]|0;i=e[n+(T<<4)>>2]|0;l=i;if(i){n=e[F>>2]|0;e:do if((n|0)>0){o=0;while(1){if((e[b+1824+(o<<2)>>2]|0)==(i|0)){n=o;break e}o=o+1|0;if((o|0)>=(n|0)){g=107;break}}}else g=107;while(0);if((g|0)==107){g=0;e[F>>2]=n+1}e[S+(s<<2)>>2]=n;e[b+1824+(n<<2)>>2]=l;n=e[c>>2]|0;s=s+1|0}i=e[n+(T<<4)+4>>2]|0;l=i;if(i){n=e[F>>2]|0;e:do if((n|0)>0){o=0;while(1){if((e[b+1824+(o<<2)>>2]|0)==(i|0)){n=o;break e}o=o+1|0;if((o|0)>=(n|0)){g=171;break}}}else g=171;while(0);if((g|0)==171){g=0;e[F>>2]=n+1}e[S+(s<<2)>>2]=n;e[b+1824+(n<<2)>>2]=l;n=e[c>>2]|0;s=s+1|0}i=e[n+(T<<4)+8>>2]|0;l=i;if(i){n=e[F>>2]|0;e:do if((n|0)>0){o=0;while(1){if((e[b+1824+(o<<2)>>2]|0)==(i|0)){n=o;break e}o=o+1|0;if((o|0)>=(n|0)){g=177;break}}}else g=177;while(0);if((g|0)==177){g=0;e[F>>2]=n+1}e[S+(s<<2)>>2]=n;e[b+1824+(n<<2)>>2]=l;n=e[c>>2]|0;s=s+1|0}o=e[n+(T<<4)+12>>2]|0;l=o;if(o){n=e[F>>2]|0;e:do if((n|0)>0){i=0;while(1){if((e[b+1824+(i<<2)>>2]|0)==(o|0)){n=i;break e}i=i+1|0;if((i|0)>=(n|0)){g=183;break}}}else g=183;while(0);if((g|0)==183){g=0;e[F>>2]=n+1}e[S+(s<<2)>>2]=n;e[b+1824+(n<<2)>>2]=l;s=s+1|0}T=T+1|0}while((T|0)<(e[I>>2]|0))}while(0);O=+t[b+3480>>3]*1e3;R=+(e[x>>2]|0)*.5;S=e[b+(A<<2)>>2]>>1;O=O>R?R:O;E=+(S|0);e[(e[b+1056+(A<<2)>>2]|0)+1116>>2]=~~(E*(O/R));s=e[L+(M<<5)+4>>2]|0;do if((s|0)==2)O=250;else if((s|0)==1){O=+(e[((e[C>>2]|0)==0?b+2968|0:b+2996|0)>>2]|0)*1e3;if(!(O>R))break;O=R}while(0);do if((e[P>>2]|0)==2){v=e[b+12>>2]|0;if((v|0)>0){p=0;do{i=e[b+544+(p<<2)>>2]|0;l=e[i>>2]|0;if((l|0)>0){w=0;do{do if((e[i+1092+(w<<2)>>2]|0)==(M|0)){s=e[H>>2]|0;if((s|0)>0){o=0;n=0}else{o=0;break}do{o=((e[i+4+(n<<2)>>2]|0)==(w|0)&1)+o|0;n=n+1|0}while((n|0)!=(s|0))}else o=0;while(0);w=w+1|0}while((w|0)<(l|0)&(o|0)==0)}else o=0;p=p+1|0}while((p|0)<(v|0)&(o|0)==0)}else o=0;i=e[z>>2]|0;n=f(~~(+(o|0)*E*(O/R)/+(i|0)+.9),i)|0;s=y+4|0;e[s>>2]=n;o=f(o,S)|0;if((n|0)<=(o|0)){o=s;break}n=o-((o|0)%(i|0)|0)|0;e[s>>2]=n;o=s}else{i=e[z>>2]|0;n=f(~~(O/R*E/+(i|0)+.9),i)|0;o=y+4|0;e[o>>2]=n;if((n|0)<=(S|0))break;n=S-((S|0)%(i|0)|0)|0;e[o>>2]=n}while(0);if(!n)e[o>>2]=i;m=m+1|0}while((m|0)<(e[k>>2]|0))}A=A+1|0}while((A|0)<(U|0));i=_+3428|0;l=e[i>>2]|0;if((l|0)>0)e[D+16>>2]=l;else{p=e[B>>2]|0;a=+t[p+3400>>3];w=~~a;a=a-+(w|0);p=e[(e[p+3396>>2]|0)+4>>2]|0;if(!p)y=-1;else y=~~((+t[p+(w+1<<3)>>3]*a+ +t[p+(w<<3)>>3]*(1-a))*+(e[H>>2]|0));e[D+16>>2]=y}p=_+3424|0;e[D+20>>2]=e[p>>2];w=_+3440|0;e[D+12>>2]=e[w>>2];if(!l)y=0;else y=~~(+(e[_+3444>>2]|0)/+(l|0));e[D+24>>2]=y;if(!(e[_+3420>>2]|0)){c=0;return c|0}e[_+3360>>2]=e[i>>2];e[_+3364>>2]=e[p>>2];e[_+3368>>2]=e[w>>2];e[_+3372>>2]=e[_+3444>>2];t[_+3376>>3]=+t[_+3448>>3];t[_+3384>>3]=+t[_+3432>>3];c=0;return c|0}function dt(n,a,o,t){n=n|0;a=a|0;o=o|0;t=+t;var i=0,s=0;if((o|0)>=1){i=e[n+28>>2]|0;t=t+1e-7;t=!(t>=1)?t:.9998999834060669;r[i+3416>>2]=t;s=wt(a,o,t,0,i+3400|0)|0;e[i+3396>>2]=s;if(!s)i=-130;else{pt(n,a,o);e[i+3420>>2]=0;e[i+3464>>2]=1;i=ct(n)|0;if(!i){i=0;return i|0}ae(n);return i|0}}else i=-131;ae(n);return i|0}function ie(n,i,o,t,l,u){n=n|0;i=+i;o=o|0;t=t|0;l=l|0;u=u|0;var f=0,s=0,a=0;a=~~i;s=i-+(a|0);f=e[(e[n+28>>2]|0)+2852+(o<<2)>>2]|0;i=1-s;n=a+1|0;r[f+12>>2]=+(e[t+(n*20|0)>>2]|0)*s+ +(e[t+(a*20|0)>>2]|0)*i;r[f+16>>2]=+(e[t+(n*20|0)+4>>2]|0)*s+ +(e[t+(a*20|0)+4>>2]|0)*i;r[f+20>>2]=+(e[t+(n*20|0)+8>>2]|0)*s+ +(e[t+(a*20|0)+8>>2]|0)*i;r[f+24>>2]=+r[t+(n*20|0)+12>>2]*s+ +r[t+(a*20|0)+12>>2]*i;r[f+28>>2]=+r[t+(n*20|0)+16>>2]*s+ +r[t+(a*20|0)+16>>2]*i;r[f+496>>2]=+(e[l+(n<<2)>>2]|0)*s+ +(e[l+(a<<2)>>2]|0)*i;o=0;do{r[f+36+(o<<2)>>2]=+(e[u+(n*68|0)+(o<<2)>>2]|0)*s+ +(e[u+(a*68|0)+(o<<2)>>2]|0)*i;o=o+1|0}while((o|0)!=17);return}function ee(i,n,l,d,a,c,s){i=i|0;n=+n;l=l|0;d=d|0;a=a|0;c=c|0;s=+s;var u=0,t=0,f=0,o=0;f=~~n;t=n-+(f|0);o=e[(e[i+28>>2]|0)+2852+(l<<2)>>2]|0;n=1-t;u=f+1|0;r[o+108>>2]=+(e[d+(u<<2)>>2]|0)*t+ +(e[d+(f<<2)>>2]|0)*n;e[o+120>>2]=e[c+(l*12|0)>>2];e[o+124>>2]=e[c+(l*12|0)+4>>2];e[o+128>>2]=e[c+(l*12|0)+8>>2];i=0;do{r[o+132+(i<<2)>>2]=+(e[a+(u*204|0)+(i<<2)>>2]|0)*t+ +(e[a+(f*204|0)+(i<<2)>>2]|0)*n;i=i+1|0}while((i|0)!=17);i=0;do{r[o+200+(i<<2)>>2]=+(e[a+(u*204|0)+68+(i<<2)>>2]|0)*t+ +(e[a+(f*204|0)+68+(i<<2)>>2]|0)*n;i=i+1|0}while((i|0)!=17);i=0;do{r[o+268+(i<<2)>>2]=+(e[a+(u*204|0)+136+(i<<2)>>2]|0)*t+ +(e[a+(f*204|0)+136+(i<<2)>>2]|0)*n;i=i+1|0}while((i|0)!=17);t=+r[o+132>>2];n=t+6;t=t+s;r[o+132>>2]=t>2]+s;r[o+132+(i<<2)>>2]=t>2];n=t+6;t=t+s;r[o+200>>2]=t>2]+s;r[o+200+(i<<2)>>2]=t>2];n=t+6;t=t+s;r[o+268>>2]=t>2]+s;r[o+268+(i<<2)>>2]=t>2]|0;s=e[r+12>>2]|0;if(((((s|0)==-1|(s|0)==(c|0)?(e[r+16>>2]|0)<=(u|0):0)?(e[r+20>>2]|0)>=(u|0):0)?(f=e[r>>2]|0,l=e[r+8>>2]|0,h=+t[l>>3],!(h>a)):0)?!(+t[l+(f<<3)>>3]>2]|0;l=e[r+12>>2]|0;if(((((l|0)==-1|(l|0)==(c|0)?(e[r+16>>2]|0)<=(u|0):0)?(e[r+20>>2]|0)>=(u|0):0)?(s=e[r>>2]|0,n=e[r+4>>2]|0,o=+t[n>>3],!(a+t[n+(s<<3)>>3]):0)break e;i=i+1|0;if((i|0)==17){r=0;break}else f=26336+(i<<2)|0}return r|0}while(0);e:do if((s|0)>0){i=0;while(1){r=i+1|0;if(a>=o?a<+t[n+(r<<3)>>3]:0){r=i;break e}if((r|0)>=(s|0))break e;o=+t[n+(r<<3)>>3];i=r}}else r=0;while(0);if((r|0)==(s|0))o=+(s|0)+-.001;else{o=+t[n+(r<<3)>>3];o=(a-o)/(+t[n+(r+1<<3)>>3]-o)+ +(r|0)}t[d>>3]=o;r=e[f>>2]|0;return r|0}function pt(o,n,a){o=o|0;n=n|0;a=a|0;var f=0,s=0,i=0,r=0,l=0;r=e[o+28>>2]|0;l=e[r+3396>>2]|0;e[o>>2]=0;e[o+4>>2]=n;e[o+8>>2]=a;e[r+3456>>2]=1;e[r+3460>>2]=1;i=+t[r+3400>>3];a=~~i;s=i-+(a|0);t[r+3472>>3]=i;if(!(e[r+3488>>2]|0)){n=e[l+120>>2]|0;f=1-s;o=a+1|0;t[r+3480>>3]=+t[n+(o<<3)>>3]*s+ +t[n+(a<<3)>>3]*f}else{o=a+1|0;f=1-s}n=e[l+112>>2]|0;t[r+3496>>3]=+(e[n+(o<<2)>>2]|0)*s+ +(e[n+(a<<2)>>2]|0)*f;n=e[l+116>>2]|0;t[r+3504>>3]=+(e[n+(o<<2)>>2]|0)*s+ +(e[n+(a<<2)>>2]|0)*f;t[r+3512>>3]=-6;t[r+3520>>3]=i;t[r+3528>>3]=i;t[r+3536>>3]=i;t[r+3544>>3]=i;t[r+3552>>3]=i;t[r+3560>>3]=i;t[r+3568>>3]=i;t[r+3576>>3]=i;t[r+3584>>3]=i;t[r+3592>>3]=i;t[r+3600>>3]=i;t[r+3608>>3]=i;t[r+3616>>3]=i;t[r+3624>>3]=i;t[r+3632>>3]=i;t[r+3640>>3]=i;t[r+3648>>3]=i;return}function mt(l,i,t,n,s,f){l=l|0;i=i|0;t=t|0;n=n|0;s=s|0;f=f|0;var h=0,o=0,a=0,c=0,d=0,m=0,u=0;a=(s|0)!=0;o=a?n:0;a=a?f:0;c=e[520336+(e[i+(o<<2)>>2]<<2)>>2]|0;m=e[520336+(e[i+(a<<2)>>2]<<2)>>2]|0;u=e[t+(s<<2)>>2]|0;o=e[t+(o<<2)>>2]|0;a=e[t+(a<<2)>>2]|0;i=(u|0)/4|0;f=(o|0)/4|0;h=i-f|0;o=(o|0)/2|0;n=((u|0)/2|0)+i+((a|0)/-4|0)|0;s=(a|0)/2|0;d=n+s|0;if((h|0)>0){w(l|0,0,i-f<<2|0)|0;t=h}else t=0;if((t|0)<(h+o|0)){f=i+o-t-f|0;i=0;while(1){o=l+(t<<2)|0;r[o>>2]=+r[o>>2]*+r[c+(i<<2)>>2];i=i+1|0;if((i|0)==(f|0))break;else t=t+1|0}}if((a|0)>1){t=n+1|0;i=(d|0)>(t|0);do{s=s+-1|0;c=l+(n<<2)|0;r[c>>2]=+r[c>>2]*+r[m+(s<<2)>>2];n=n+1|0}while((n|0)<(d|0));n=i?d:t}if((u|0)<=(n|0))return;w(l+(n<<2)|0,0,u-n<<2|0)|0;return}function ht(n,w,p){n=n|0;w=+w;p=+p;var a=0,s=0,f=0,t=0,o=0,l=0,r=0,h=0,c=0,m=0;h=i;i=i+64|0;s=h+32|0;a=h;r=u(688)|0;o=r+408|0;ni(o);dt(o,n,~~w,p)|0;f=r+440|0;ri(f);ii(f,553008,553016);t=r+456|0;yr(t,o)|0;Sr(t,r+568|0)|0;jr(Oe(0)|0);at(r,Vr()|0)|0;o=r+680|0;e[o>>2]=0;l=r+684|0;e[l>>2]=0;n=r+360|0;ai(t,f,n,s,a)|0;Q(r,n)|0;Q(r,s)|0;Q(r,a)|0;n=r+392|0;if(!(De(r,n)|0)){i=h;return r|0}a=r+396|0;s=r+404|0;f=r+400|0;do{t=(e[a>>2]|0)+(e[l>>2]|0)+(e[s>>2]|0)|0;if(t){m=M(e[o>>2]|0,t)|0;e[o>>2]=m;t=e[l>>2]|0;c=e[a>>2]|0;d(m+t|0,e[n>>2]|0,c|0)|0;t=c+t|0;e[l>>2]=t;c=e[s>>2]|0;d(m+t|0,e[f>>2]|0,c|0)|0;e[l>>2]=c+t}}while((De(r,n)|0)!=0);i=h;return r|0}function et(r){r=r|0;st(r)|0;br(r+568|0)|0;xe(r+456|0);ti(r+440|0);ae(r+408|0);n(e[r+680>>2]|0);n(r);return}function Zi(e,r){e=e|0;r=r|0;return He(e+456|0,r)|0}function Ri(r,t){r=r|0;t=t|0;var w=0,m=0,i=0,s=0,l=0,a=0,u=0,c=0,h=0,o=0,n=0,f=0;o=r+456|0;Fr(o,t)|0;t=r+568|0;if((Ue(o,t)|0)!=1)return;s=r+360|0;l=r+392|0;a=r+684|0;u=r+396|0;c=r+404|0;h=r+680|0;w=r+392|0;m=r+400|0;do{mr(t,0)|0;Er(t)|0;if(Ce(o,s)|0)do{Q(r,s)|0;if(Pe(r,l)|0)do{i=(e[u>>2]|0)+(e[a>>2]|0)+(e[c>>2]|0)|0;if(i){f=M(e[h>>2]|0,i)|0;e[h>>2]=f;i=e[a>>2]|0;n=e[u>>2]|0;d(f+i|0,e[w>>2]|0,n|0)|0;i=n+i|0;e[a>>2]=i;n=e[c>>2]|0;d(f+i|0,e[m>>2]|0,n|0)|0;e[a>>2]=n+i}}while((Pe(r,l)|0)!=0)}while((Ce(o,s)|0)!=0)}while((Ue(o,t)|0)==1);return}function ki(r){r=r|0;return e[r+684>>2]|0}function pi(r){r=r|0;e[r+684>>2]=0;return e[r+680>>2]|0}function ne(e,r){e=+e;r=r|0;return+ +Yr(e,r)}function Z(s,r,h,v){s=s|0;r=r|0;h=h|0;v=v|0;var n=0,o=0,t=0,a=0,m=0,w=0,p=0,S=0,u=0,l=0,A=0,R=0,T=0,O=0,b=0,_=0,c=0,k=0,M=0,E=0,g=0,F=0;F=i;i=i+688|0;k=F+424|0;c=F+192|0;E=F;n=f(h,r)|0;if(!n){i=F;return}a=n-h|0;e[E+4>>2]=h;e[E>>2]=h;o=h;r=h;t=2;while(1){o=o+h+r|0;e[E+(t<<2)>>2]=o;if(o>>>0>>0){M=r;r=o;t=t+1|0;o=M}else break}M=0-h|0;O=s+a|0;if((a|0)>0){R=(h|0)==0;T=O;n=1;o=0;r=1;do{do if((n&3|0)!=3){A=r+-1|0;if((e[E+(A<<2)>>2]|0)>>>0<(T-s|0)>>>0){e[c>>2]=s;e:do if((r|0)>1){a=r;t=s;u=s;m=1;while(1){l=t+M|0;w=a+-2|0;t=t+(0-((e[E+(w<<2)>>2]|0)+h))|0;if((y[v&15](u,t)|0)>-1?(y[v&15](u,l)|0)>-1:0){S=m;break}S=m+1|0;p=c+(m<<2)|0;if((y[v&15](t,l)|0)>-1){e[p>>2]=t;a=a+-1|0}else{e[p>>2]=l;t=l;a=w}if((a|0)<=1)break;u=e[c>>2]|0;m=S}if((S|0)>=2?(_=c+(S<<2)|0,e[_>>2]=k,!R):0){m=h;a=k;while(1){t=m>>>0>256?256:m;w=e[c>>2]|0;d(a|0,w|0,t|0)|0;p=0;do{l=p;p=p+1|0;u=w;w=e[c+(p<<2)>>2]|0;d(u|0,w|0,t|0)|0;e[c+(l<<2)>>2]=u+t}while((p|0)!=(S|0));if((m|0)==(t|0))break e;m=m-t|0;a=e[_>>2]|0}}}while(0)}else $(s,h,v,n,o,r,0,E);if((r|0)==1){a=n<<1;o=n>>>31|o<<1;r=0;break}else{l=A>>>0>31;u=l?0:n;r=l?r+-33|0:A;a=u<>>(32-r|0)|(l?n:o)<>2]=s;e:do if((r|0)>1){a=r;t=s;S=s;w=1;while(1){u=t+M|0;l=a+-2|0;t=t+(0-((e[E+(l<<2)>>2]|0)+h))|0;if((y[v&15](S,t)|0)>-1?(y[v&15](S,u)|0)>-1:0){p=w;break}p=w+1|0;m=c+(w<<2)|0;if((y[v&15](t,u)|0)>-1){e[m>>2]=t;a=a+-1|0}else{e[m>>2]=u;t=u;a=l}if((a|0)<=1)break;S=e[c>>2]|0;w=p}if((p|0)>=2?(b=c+(p<<2)|0,e[b>>2]=k,!R):0){m=h;a=k;while(1){w=m>>>0>256?256:m;t=e[c>>2]|0;d(a|0,t|0,w|0)|0;a=t;t=0;do{A=t;t=t+1|0;l=a;a=e[c+(t<<2)>>2]|0;d(l|0,a|0,w|0)|0;e[c+(A<<2)>>2]=l+w}while((t|0)!=(p|0));if((m|0)==(w|0))break e;m=m-w|0;a=e[b>>2]|0}}}while(0);a=n>>>2|o<<30;o=o>>>2;r=r+2|0}while(0);n=a|1;s=s+h|0}while(s>>>0>>0)}else{o=0;n=1;r=1}$(s,h,v,n,o,r,0,E);if((o|0)==0&((n|0)==1&(r|0)==1)){i=F;return}else{t=n;l=s;u=r}while(1){if((u|0)>=2){_=t>>>30;k=u+-2|0;b=(t<<1&2147483646|_<<31)^3;c=(_|o<<2)>>>1;$(l+(0-((e[E+(k<<2)>>2]|0)+h))|0,h,v,b,c,u+-1|0,1,E);_=c<<1|_&1;b=b<<1|1;c=l+M|0;$(c,h,v,b,_,k,1,E);t=b;o=_;l=c;u=k;continue}r=t+-1|0;do if(r){if(!(r&1)){n=r;r=0;do{r=r+1|0;n=n>>>1}while((n&1|0)==0);if(!r)g=51}else g=51;if((g|0)==51){g=0;if(!o){r=64;g=56;break}if(!(o&1)){n=o;r=0}else{n=0;s=t;r=0;break}while(1){s=r+1|0;n=n>>>1;if(n&1){n=s;break}else r=s}if(!n){n=0;s=t;r=0;break}else r=r+33|0}if(r>>>0>31)g=56;else{n=r;s=t}}else{r=32;g=56}while(0);if((g|0)==56){g=0;n=r+-32|0;s=o;o=0}t=o<<32-n|s>>>n;o=o>>>n;u=r+u|0;if((o|0)==0&((t|0)==1&(u|0)==1))break;else l=l+M|0}i=F;return}function $(o,u,h,t,r,f,s,v){o=o|0;u=u|0;h=h|0;t=t|0;r=r|0;f=f|0;s=s|0;v=v|0;var a=0,n=0,l=0,w=0,c=0,b=0,m=0,S=0,g=0,p=0,_=0,E=0;E=i;i=i+720|0;_=E+456|0;p=E+228|0;m=E;e[m>>2]=o;S=0-u|0;e:do if((r|0)!=0|(t|0)!=1?(n=o+(0-(e[v+(f<<2)>>2]|0))|0,(y[h&15](n,o)|0)>=1):0){l=n;a=r;n=1;while(1){if((s|0)==0&(f|0)>1){r=e[v+(f+-2<<2)>>2]|0;if((y[h&15](o+S|0,l)|0)>-1)break e;if((y[h&15](o+(0-(r+u))|0,l)|0)>-1)break e}w=n+1|0;e[m+(n<<2)>>2]=l;r=t+-1|0;do if(r){if(!(r&1)){n=r;r=0;do{r=r+1|0;n=n>>>1}while((n&1|0)==0);if(!r)c=10}else c=10;if((c|0)==10){c=0;if(!a){r=64;c=15;break}if(!(a&1)){o=a;n=0}else{s=0;n=t;o=a;r=0;break}while(1){r=n+1|0;o=o>>>1;if(o&1){o=r;break}else n=r}if(!o){s=0;n=t;o=a;r=0;break}else r=n+33|0}if(r>>>0>31)c=15;else{s=r;n=t;o=a}}else{r=32;c=15}while(0);if((c|0)==15){c=0;s=r+-32|0;n=a;o=0}t=o<<32-s|n>>>s;a=o>>>s;f=r+f|0;if(!((a|0)!=0|(t|0)!=1)){o=l;n=w;break e}n=l+(0-(e[v+(f<<2)>>2]|0))|0;if((y[h&15](n,e[m>>2]|0)|0)<1){o=l;s=0;r=w;c=18;break}else{o=l;s=0;l=n;n=w}}}else{r=1;c=18}while(0);if((c|0)==18)if(!s)n=r;else{i=E;return}e:do if((n|0)>=2?(b=m+(n<<2)|0,e[b>>2]=_,(u|0)!=0):0){t=u;s=_;while(1){a=t>>>0>256?256:t;r=e[m>>2]|0;d(s|0,r|0,a|0)|0;s=0;do{w=s;s=s+1|0;l=r;r=e[m+(s<<2)>>2]|0;d(l|0,r|0,a|0)|0;e[m+(w<<2)>>2]=l+a}while((s|0)!=(n|0));if((t|0)==(a|0))break e;t=t-a|0;s=e[b>>2]|0}}while(0);e[p>>2]=o;e:do if((f|0)>1){t=o;a=o;r=1;while(1){o=t+S|0;n=f+-2|0;t=t+(0-((e[v+(n<<2)>>2]|0)+u))|0; if((y[h&15](a,t)|0)>-1?(y[h&15](a,o)|0)>-1:0){s=r;break}s=r+1|0;a=p+(r<<2)|0;if((y[h&15](t,o)|0)>-1){e[a>>2]=t;f=f+-1|0}else{e[a>>2]=o;t=o;f=n}if((f|0)<=1)break;a=e[p>>2]|0;r=s}if((s|0)>=2?(g=p+(s<<2)|0,e[g>>2]=_,(u|0)!=0):0){a=_;while(1){f=u>>>0>256?256:u;t=e[p>>2]|0;d(a|0,t|0,f|0)|0;a=t;t=0;do{w=t;t=t+1|0;l=a;a=e[p+(t<<2)>>2]|0;d(l|0,a|0,f|0)|0;e[p+(w<<2)>>2]=l+f}while((t|0)!=(s|0));if((u|0)==(f|0))break e;u=u-f|0;a=e[g>>2]|0}}}while(0);i=E;return}function F(r){r=+r;var i=0,n=0;t[p>>3]=r;i=e[p+4>>2]|0;n=i&2146435072;if(n>>>0>1126170624|(n|0)==1126170624&0>0)return+r;i=(i|0)<0;r=i?r+-4503599627370496+4503599627370496:r+4503599627370496+-4503599627370496;if(!(r==0))return+r;r=i?-0:0;return+r}function Ve(i){i=+i;var t=0;t=(r[p>>2]=i,e[p>>2]|0);if((t&2130706432)>>>0>1249902592)return+i;t=(t|0)<0;i=t?i+-8388608+8388608:i+8388608+-8388608;if(!(i==0))return+i;i=t?-0:0;return+i}function Yr(i,n){i=+i;n=n|0;var r=0;if((n|0)>1023){i=i*8.98846567431158e307;r=n+-1023|0;if((r|0)>1023){r=n+-2046|0;r=(r|0)>1023?1023:r;i=i*8.98846567431158e307}}else if((n|0)<-1022){i=i*2.2250738585072014e-308;r=n+1022|0;if((r|0)<-1022){r=n+2044|0;r=(r|0)<-1022?-1022:r;i=i*2.2250738585072014e-308}}else r=n;n=Be(r+1023|0,0,52)|0;r=l;e[p>>2]=n;e[p+4>>2]=r;return+(i*+t[p>>3])}function jr(r){r=r|0;var i=0;i=553040;e[i>>2]=r+-1;e[i+4>>2]=0;return}function Vr(){var i=0,r=0,t=0;r=553040;r=Gi(e[r>>2]|0,e[r+4>>2]|0,1284865837,1481765933)|0;r=N(r|0,l|0,1,0)|0;i=l;t=553040;e[t>>2]=r;e[t+4>>2]=i;i=T(r|0,i|0,33)|0;return i|0}function u(n){n=n|0;var d=0,l=0,c=0,s=0,a=0,r=0,i=0,f=0,p=0,S=0,g=0,m=0,_=0,w=0,u=0,C=0,k=0,M=0,b=0,v=0,t=0,h=0,O=0,E=0,D=0,L=0,I=0,U=0,H=0,z=0,P=0,N=0,T=0,F=0,y=0,B=0,R=0,A=0;do if(n>>>0<245){u=n>>>0<11?16:n+11&-8;n=u>>>3;S=e[138262]|0;f=S>>>n;if(f&3){c=(f&1^1)+n|0;s=c<<1;d=553088+(s<<2)|0;s=553088+(s+2<<2)|0;a=e[s>>2]|0;r=a+8|0;i=e[r>>2]|0;do if((d|0)!=(i|0)){if(i>>>0<(e[138266]|0)>>>0)o();l=i+12|0;if((e[l>>2]|0)==(a|0)){e[l>>2]=d;e[s>>2]=i;break}else o()}else e[138262]=S&~(1<>2]=t|3;t=a+(t|4)|0;e[t>>2]=e[t>>2]|1;t=r;return t|0}d=e[138264]|0;if(u>>>0>d>>>0){if(f){s=2<>>12&16;s=s>>>n;c=s>>>5&8;s=s>>>c;l=s>>>2&4;s=s>>>l;a=s>>>1&2;s=s>>>a;r=s>>>1&1;r=(c|n|l|a|r)+(s>>>r)|0;s=r<<1;a=553088+(s<<2)|0;s=553088+(s+2<<2)|0;l=e[s>>2]|0;n=l+8|0;c=e[n>>2]|0;do if((a|0)!=(c|0)){if(c>>>0<(e[138266]|0)>>>0)o();i=c+12|0;if((e[i>>2]|0)==(l|0)){e[i>>2]=a;e[s>>2]=c;p=e[138264]|0;break}else o()}else{e[138262]=S&~(1<>2]=u|3;f=l+u|0;e[l+(u|4)>>2]=d|1;e[l+t>>2]=d;if(p){c=e[138267]|0;a=p>>>3;i=a<<1;s=553088+(i<<2)|0;r=e[138262]|0;a=1<>2]|0;if(i>>>0<(e[138266]|0)>>>0)o();else{g=r;m=i}}else{e[138262]=r|a;g=553088+(i+2<<2)|0;m=s}e[g>>2]=c;e[m+12>>2]=c;e[c+8>>2]=m;e[c+12>>2]=s}e[138264]=d;e[138267]=f;t=n;return t|0}n=e[138263]|0;if(n){r=(n&0-n)+-1|0;v=r>>>12&16;r=r>>>v;b=r>>>5&8;r=r>>>b;t=r>>>2&4;r=r>>>t;i=r>>>1&2;r=r>>>i;a=r>>>1&1;a=e[553352+((b|v|t|i|a)+(r>>>a)<<2)>>2]|0;r=(e[a+4>>2]&-8)-u|0;i=a;while(1){l=e[i+16>>2]|0;if(!l){l=e[i+20>>2]|0;if(!l){S=r;p=a;break}}i=(e[l+4>>2]&-8)-u|0;t=i>>>0>>0;r=t?i:r;i=l;a=t?l:a}n=e[138266]|0;if(p>>>0>>0)o();d=p+u|0;if(p>>>0>=d>>>0)o();f=e[p+24>>2]|0;a=e[p+12>>2]|0;do if((a|0)==(p|0)){r=p+20|0;i=e[r>>2]|0;if(!i){r=p+16|0;i=e[r>>2]|0;if(!i){c=0;break}}while(1){a=i+20|0;s=e[a>>2]|0;if(s){i=s;r=a;continue}a=i+16|0;s=e[a>>2]|0;if(!s)break;else{i=s;r=a}}if(r>>>0>>0)o();else{e[r>>2]=0;c=i;break}}else{s=e[p+8>>2]|0;if(s>>>0>>0)o();i=s+12|0;if((e[i>>2]|0)!=(p|0))o();r=a+8|0;if((e[r>>2]|0)==(p|0)){e[i>>2]=a;e[r>>2]=s;c=a;break}else o()}while(0);do if(f){i=e[p+28>>2]|0;r=553352+(i<<2)|0;if((p|0)==(e[r>>2]|0)){e[r>>2]=c;if(!c){e[138263]=e[138263]&~(1<>>0<(e[138266]|0)>>>0)o();i=f+16|0;if((e[i>>2]|0)==(p|0))e[i>>2]=c;else e[f+20>>2]=c;if(!c)break}r=e[138266]|0;if(c>>>0>>0)o();e[c+24>>2]=f;i=e[p+16>>2]|0;do if(i)if(i>>>0>>0)o();else{e[c+16>>2]=i;e[i+24>>2]=c;break}while(0);i=e[p+20>>2]|0;if(i)if(i>>>0<(e[138266]|0)>>>0)o();else{e[c+20>>2]=i;e[i+24>>2]=c;break}}while(0);if(S>>>0<16){t=S+u|0;e[p+4>>2]=t|3;t=p+(t+4)|0;e[t>>2]=e[t>>2]|1}else{e[p+4>>2]=u|3;e[p+(u|4)>>2]=S|1;e[p+(S+u)>>2]=S;l=e[138264]|0;if(l){c=e[138267]|0;a=l>>>3;i=a<<1;s=553088+(i<<2)|0;r=e[138262]|0;a=1<>2]|0;if(r>>>0<(e[138266]|0)>>>0)o();else{w=i;_=r}}else{e[138262]=r|a;w=553088+(i+2<<2)|0;_=s}e[w>>2]=c;e[_+12>>2]=c;e[c+8>>2]=_;e[c+12>>2]=s}e[138264]=S;e[138267]=d}t=p+8|0;return t|0}else E=u}else E=u}else if(n>>>0<=4294967231){n=n+11|0;w=n&-8;p=e[138263]|0;if(p){f=0-w|0;n=n>>>8;if(n)if(w>>>0>16777215)S=31;else{u=(n+1048320|0)>>>16&8;t=n<>>16&4;t=t<<_;S=(t+245760|0)>>>16&2;S=14-(_|u|S)+(t<>>15)|0;S=w>>>(S+7|0)&1|S<<1}else S=0;n=e[553352+(S<<2)>>2]|0;e:do if(!n){r=0;n=0;t=86}else{c=f;r=0;l=w<<((S|0)==31?0:25-(S>>>1)|0);d=n;n=0;while(1){a=e[d+4>>2]&-8;f=a-w|0;if(f>>>0>>0)if((a|0)==(w|0)){a=d;n=d;t=90;break e}else n=d;else f=c;t=e[d+20>>2]|0;d=e[d+16+(l>>>31<<2)>>2]|0;r=(t|0)==0|(t|0)==(d|0)?r:t;if(!d){t=86;break}else{c=f;l=l<<1}}}while(0);if((t|0)==86){if((r|0)==0&(n|0)==0){n=2<>>12&16;n=n>>>m;g=n>>>5&8;n=n>>>g;_=n>>>2&4;n=n>>>_;u=n>>>1&2;n=n>>>u;r=n>>>1&1;r=e[553352+((g|m|_|u|r)+(n>>>r)<<2)>>2]|0;n=0}if(!r){m=f;u=n}else{a=r;t=90}}if((t|0)==90)while(1){t=0;u=(e[a+4>>2]&-8)-w|0;r=u>>>0>>0;f=r?u:f;n=r?a:n;r=e[a+16>>2]|0;if(r){a=r;t=90;continue}a=e[a+20>>2]|0;if(!a){m=f;u=n;break}else t=90}if((u|0)!=0?m>>>0<((e[138264]|0)-w|0)>>>0:0){n=e[138266]|0;if(u>>>0>>0)o();g=u+w|0;if(u>>>0>=g>>>0)o();f=e[u+24>>2]|0;a=e[u+12>>2]|0;do if((a|0)==(u|0)){r=u+20|0;i=e[r>>2]|0;if(!i){r=u+16|0;i=e[r>>2]|0;if(!i){k=0;break}}while(1){a=i+20|0;s=e[a>>2]|0;if(s){i=s;r=a;continue}a=i+16|0;s=e[a>>2]|0;if(!s)break;else{i=s;r=a}}if(r>>>0>>0)o();else{e[r>>2]=0;k=i;break}}else{s=e[u+8>>2]|0;if(s>>>0>>0)o();i=s+12|0;if((e[i>>2]|0)!=(u|0))o();r=a+8|0;if((e[r>>2]|0)==(u|0)){e[i>>2]=a;e[r>>2]=s;k=a;break}else o()}while(0);do if(f){i=e[u+28>>2]|0;r=553352+(i<<2)|0;if((u|0)==(e[r>>2]|0)){e[r>>2]=k;if(!k){e[138263]=e[138263]&~(1<>>0<(e[138266]|0)>>>0)o();i=f+16|0;if((e[i>>2]|0)==(u|0))e[i>>2]=k;else e[f+20>>2]=k;if(!k)break}r=e[138266]|0;if(k>>>0>>0)o();e[k+24>>2]=f;i=e[u+16>>2]|0;do if(i)if(i>>>0>>0)o();else{e[k+16>>2]=i;e[i+24>>2]=k;break}while(0);i=e[u+20>>2]|0;if(i)if(i>>>0<(e[138266]|0)>>>0)o();else{e[k+20>>2]=i;e[i+24>>2]=k;break}}while(0);e:do if(m>>>0>=16){e[u+4>>2]=w|3;e[u+(w|4)>>2]=m|1;e[u+(m+w)>>2]=m;i=m>>>3;if(m>>>0<256){r=i<<1;s=553088+(r<<2)|0;a=e[138262]|0;i=1<>2]|0;if(r>>>0<(e[138266]|0)>>>0)o();else{M=i;b=r}}else{e[138262]=a|i;M=553088+(r+2<<2)|0;b=s}e[M>>2]=g;e[b+12>>2]=g;e[u+(w+8)>>2]=b;e[u+(w+12)>>2]=s;break}l=m>>>8;if(l)if(m>>>0>16777215)s=31;else{v=(l+1048320|0)>>>16&8;t=l<>>16&4;t=t<>>16&2;s=14-(b|v|s)+(t<>>15)|0;s=m>>>(s+7|0)&1|s<<1}else s=0;i=553352+(s<<2)|0;e[u+(w+28)>>2]=s;e[u+(w+20)>>2]=0;e[u+(w+16)>>2]=0;r=e[138263]|0;a=1<>2]=g;e[u+(w+24)>>2]=i;e[u+(w+12)>>2]=g;e[u+(w+8)>>2]=g;break}l=e[i>>2]|0;r:do if((e[l+4>>2]&-8|0)!=(m|0)){r=m<<((s|0)==31?0:25-(s>>>1)|0);while(1){d=l+16+(r>>>31<<2)|0;i=e[d>>2]|0;if(!i)break;if((e[i+4>>2]&-8|0)==(m|0)){E=i;break r}else{r=r<<1;l=i}}if(d>>>0<(e[138266]|0)>>>0)o();else{e[d>>2]=g;e[u+(w+24)>>2]=l;e[u+(w+12)>>2]=g;e[u+(w+8)>>2]=g;break e}}else E=l;while(0);l=E+8|0;d=e[l>>2]|0;t=e[138266]|0;if(d>>>0>=t>>>0&E>>>0>=t>>>0){e[d+12>>2]=g;e[l>>2]=g;e[u+(w+8)>>2]=d;e[u+(w+12)>>2]=E;e[u+(w+24)>>2]=0;break}else o()}else{t=m+w|0;e[u+4>>2]=t|3;t=u+(t+4)|0;e[t>>2]=e[t>>2]|1}while(0);t=u+8|0;return t|0}else E=w}else E=w}else E=-1;while(0);n=e[138264]|0;if(n>>>0>=E>>>0){d=n-E|0;l=e[138267]|0;if(d>>>0>15){e[138267]=l+E;e[138264]=d;e[l+(E+4)>>2]=d|1;e[l+n>>2]=d;e[l+4>>2]=E|3}else{e[138264]=0;e[138267]=0;e[l+4>>2]=n|3;t=l+(n+4)|0;e[t>>2]=e[t>>2]|1}t=l+8|0;return t|0}n=e[138265]|0;if(n>>>0>E>>>0){v=n-E|0;e[138265]=v;t=e[138268]|0;e[138268]=t+E;e[t+(E+4)>>2]=v|1;e[t+4>>2]=E|3;t=t+8|0;return t|0}do if(!(e[138380]|0)){n=vr(30)|0;if(!(n+-1&n)){e[138382]=n;e[138381]=n;e[138383]=-1;e[138384]=-1;e[138385]=0;e[138373]=0;e[138380]=(Oe(0)|0)&-16^1431655768;break}else o()}while(0);S=E+48|0;l=e[138382]|0;d=E+47|0;c=l+d|0;l=0-l|0;g=c&l;if(g>>>0<=E>>>0){t=0;return t|0}n=e[138372]|0;if((n|0)!=0?(M=e[138370]|0,b=M+g|0,b>>>0<=M>>>0|b>>>0>n>>>0):0){t=0;return t|0}e:do if(!(e[138373]&4)){n=e[138268]|0;r:do if(n){r=553496;while(1){f=e[r>>2]|0;if(f>>>0<=n>>>0?(C=r+4|0,(f+(e[C>>2]|0)|0)>>>0>n>>>0):0){a=r;n=C;break}r=e[r+8>>2]|0;if(!r){t=174;break r}}f=c-(e[138265]|0)&l;if(f>>>0<2147483647){r=x(f|0)|0;b=(r|0)==((e[a>>2]|0)+(e[n>>2]|0)|0);n=b?f:0;if(b){if((r|0)!=(-1|0)){h=r;t=194;break e}}else t=184}else n=0}else t=174;while(0);do if((t|0)==174){a=x(0)|0;if((a|0)!=(-1|0)){n=a;f=e[138381]|0;r=f+-1|0;if(!(r&n))f=g;else f=g-n+(r+n&0-f)|0;n=e[138370]|0;r=n+f|0;if(f>>>0>E>>>0&f>>>0<2147483647){b=e[138372]|0;if((b|0)!=0?r>>>0<=n>>>0|r>>>0>b>>>0:0){n=0;break}r=x(f|0)|0;t=(r|0)==(a|0);n=t?f:0;if(t){h=a;t=194;break e}else t=184}else n=0}else n=0}while(0);r:do if((t|0)==184){a=0-f|0;do if(S>>>0>f>>>0&(f>>>0<2147483647&(r|0)!=(-1|0))?(v=e[138382]|0,v=d-f+v&0-v,v>>>0<2147483647):0)if((x(v|0)|0)==(-1|0)){x(a|0)|0;break r}else{f=v+f|0;break}while(0);if((r|0)!=(-1|0)){h=r;n=f;t=194;break e}}while(0);e[138373]=e[138373]|4;t=191}else{n=0;t=191}while(0);if((((t|0)==191?g>>>0<2147483647:0)?(h=x(g|0)|0,O=x(0)|0,h>>>0>>0&((h|0)!=(-1|0)&(O|0)!=(-1|0))):0)?(D=O-h|0,L=D>>>0>(E+40|0)>>>0,L):0){n=L?D:n;t=194}if((t|0)==194){f=(e[138370]|0)+n|0;e[138370]=f;if(f>>>0>(e[138371]|0)>>>0)e[138371]=f;m=e[138268]|0;e:do if(m){c=553496;do{f=e[c>>2]|0;r=c+4|0;a=e[r>>2]|0;if((h|0)==(f+a|0)){I=f;U=r;H=a;z=c;t=204;break}c=e[c+8>>2]|0}while((c|0)!=0);if(((t|0)==204?(e[z+12>>2]&8|0)==0:0)?m>>>0>>0&m>>>0>=I>>>0:0){e[U>>2]=H+n;t=(e[138265]|0)+n|0;v=m+8|0;v=(v&7|0)==0?0:0-v&7;b=t-v|0;e[138268]=m+v;e[138265]=b;e[m+(v+4)>>2]=b|1;e[m+(t+4)>>2]=40;e[138269]=e[138384];break}f=e[138266]|0;if(h>>>0>>0){e[138266]=h;f=h}r=h+n|0;c=553496;while(1){if((e[c>>2]|0)==(r|0)){a=c;r=c;t=212;break}c=e[c+8>>2]|0;if(!c){a=553496;break}}if((t|0)==212)if(!(e[r+12>>2]&8)){e[a>>2]=h;w=r+4|0;e[w>>2]=(e[w>>2]|0)+n;w=h+8|0;w=(w&7|0)==0?0:0-w&7;p=h+(n+8)|0;p=(p&7|0)==0?0:0-p&7;i=h+(p+n)|0;_=w+E|0;u=h+_|0;g=i-(h+w)-E|0;e[h+(w+4)>>2]=E|3;r:do if((i|0)!=(m|0)){if((i|0)==(e[138267]|0)){t=(e[138264]|0)+g|0;e[138264]=t;e[138267]=u;e[h+(_+4)>>2]=t|1;e[h+(t+_)>>2]=t;break}S=n+4|0;r=e[h+(S+p)>>2]|0;if((r&3|0)==1){d=r&-8;c=r>>>3;i:do if(r>>>0>=256){l=e[h+((p|24)+n)>>2]|0;a=e[h+(n+12+p)>>2]|0;do if((a|0)==(i|0)){s=p|16;a=h+(S+s)|0;r=e[a>>2]|0;if(!r){a=h+(s+n)|0;r=e[a>>2]|0;if(!r){y=0;break}}while(1){s=r+20|0;c=e[s>>2]|0;if(c){r=c;a=s;continue}s=r+16|0;c=e[s>>2]|0;if(!c)break;else{r=c;a=s}}if(a>>>0>>0)o();else{e[a>>2]=0;y=r;break}}else{s=e[h+((p|8)+n)>>2]|0;if(s>>>0>>0)o();f=s+12|0;if((e[f>>2]|0)!=(i|0))o();r=a+8|0;if((e[r>>2]|0)==(i|0)){e[f>>2]=a;e[r>>2]=s;y=a;break}else o()}while(0);if(!l)break;f=e[h+(n+28+p)>>2]|0;r=553352+(f<<2)|0;do if((i|0)!=(e[r>>2]|0)){if(l>>>0<(e[138266]|0)>>>0)o();f=l+16|0;if((e[f>>2]|0)==(i|0))e[f>>2]=y;else e[l+20>>2]=y;if(!y)break i}else{e[r>>2]=y;if(y)break;e[138263]=e[138263]&~(1<>>0>>0)o();e[y+24>>2]=l;f=p|16;i=e[h+(f+n)>>2]|0;do if(i)if(i>>>0>>0)o();else{e[y+16>>2]=i;e[i+24>>2]=y;break}while(0);i=e[h+(S+f)>>2]|0;if(!i)break;if(i>>>0<(e[138266]|0)>>>0)o();else{e[y+20>>2]=i;e[i+24>>2]=y;break}}else{a=e[h+((p|8)+n)>>2]|0;s=e[h+(n+12+p)>>2]|0;r=553088+(c<<1<<2)|0;do if((a|0)!=(r|0)){if(a>>>0>>0)o();if((e[a+12>>2]|0)==(i|0))break;o()}while(0);if((s|0)==(a|0)){e[138262]=e[138262]&~(1<>>0>>0)o();f=s+8|0;if((e[f>>2]|0)==(i|0)){P=f;break}o()}while(0);e[a+12>>2]=s;e[P>>2]=a}while(0);i=h+((d|p)+n)|0;f=d+g|0}else f=g;i=i+4|0;e[i>>2]=e[i>>2]&-2;e[h+(_+4)>>2]=f|1;e[h+(f+_)>>2]=f;i=f>>>3;if(f>>>0<256){r=i<<1;s=553088+(r<<2)|0;a=e[138262]|0;i=1<>2]|0;if(r>>>0>=(e[138266]|0)>>>0){B=i;R=r;break}o()}while(0);e[B>>2]=u;e[R+12>>2]=u;e[h+(_+8)>>2]=R;e[h+(_+12)>>2]=s;break}l=f>>>8;do if(!l)s=0;else{if(f>>>0>16777215){s=31;break}v=(l+1048320|0)>>>16&8;t=l<>>16&4;t=t<>>16&2;s=14-(b|v|s)+(t<>>15)|0;s=f>>>(s+7|0)&1|s<<1}while(0);i=553352+(s<<2)|0;e[h+(_+28)>>2]=s;e[h+(_+20)>>2]=0;e[h+(_+16)>>2]=0;r=e[138263]|0;a=1<>2]=u;e[h+(_+24)>>2]=i;e[h+(_+12)>>2]=u;e[h+(_+8)>>2]=u;break}l=e[i>>2]|0;i:do if((e[l+4>>2]&-8|0)!=(f|0)){r=f<<((s|0)==31?0:25-(s>>>1)|0);while(1){d=l+16+(r>>>31<<2)|0;i=e[d>>2]|0;if(!i)break;if((e[i+4>>2]&-8|0)==(f|0)){A=i;break i}else{r=r<<1;l=i}}if(d>>>0<(e[138266]|0)>>>0)o();else{e[d>>2]=u;e[h+(_+24)>>2]=l;e[h+(_+12)>>2]=u;e[h+(_+8)>>2]=u;break r}}else A=l;while(0);l=A+8|0;d=e[l>>2]|0;t=e[138266]|0;if(d>>>0>=t>>>0&A>>>0>=t>>>0){e[d+12>>2]=u;e[l>>2]=u;e[h+(_+8)>>2]=d;e[h+(_+12)>>2]=A;e[h+(_+24)>>2]=0;break}else o()}else{t=(e[138265]|0)+g|0;e[138265]=t;e[138268]=u;e[h+(_+4)>>2]=t|1}while(0);t=h+(w|8)|0;return t|0}else a=553496;while(1){r=e[a>>2]|0;if(r>>>0<=m>>>0?(i=e[a+4>>2]|0,s=r+i|0,s>>>0>m>>>0):0)break;a=e[a+8>>2]|0}f=r+(i+-39)|0;r=r+(i+-47+((f&7|0)==0?0:0-f&7))|0;f=m+16|0;r=r>>>0>>0?m:r;i=r+8|0;a=h+8|0;a=(a&7|0)==0?0:0-a&7;t=n+-40-a|0;e[138268]=h+a;e[138265]=t;e[h+(a+4)>>2]=t|1;e[h+(n+-36)>>2]=40;e[138269]=e[138384];a=r+4|0;e[a>>2]=27;e[i>>2]=e[138374];e[i+4>>2]=e[138375];e[i+8>>2]=e[138376];e[i+12>>2]=e[138377];e[138374]=h;e[138375]=n;e[138377]=0;e[138376]=i;i=r+28|0;e[i>>2]=7;if((r+32|0)>>>0>>0)do{t=i;i=i+4|0;e[i>>2]=7}while((t+8|0)>>>0>>0);if((r|0)!=(m|0)){s=r-m|0;e[a>>2]=e[a>>2]&-2;e[m+4>>2]=s|1;e[r>>2]=s;i=s>>>3;if(s>>>0<256){r=i<<1;s=553088+(r<<2)|0;a=e[138262]|0;i=1<>2]|0;if(d>>>0<(e[138266]|0)>>>0)o();else{N=l;T=d}}else{e[138262]=a|i;N=553088+(r+2<<2)|0;T=s}e[N>>2]=m;e[T+12>>2]=m;e[m+8>>2]=T;e[m+12>>2]=s;break}l=s>>>8;if(l)if(s>>>0>16777215)r=31;else{v=(l+1048320|0)>>>16&8;t=l<>>16&4;t=t<>>16&2;r=14-(b|v|r)+(t<>>15)|0;r=s>>>(r+7|0)&1|r<<1}else r=0;i=553352+(r<<2)|0;e[m+28>>2]=r;e[m+20>>2]=0;e[f>>2]=0;l=e[138263]|0;d=1<>2]=m;e[m+24>>2]=i;e[m+12>>2]=m;e[m+8>>2]=m;break}l=e[i>>2]|0;r:do if((e[l+4>>2]&-8|0)!=(s|0)){i=s<<((r|0)==31?0:25-(r>>>1)|0);while(1){d=l+16+(i>>>31<<2)|0;c=e[d>>2]|0;if(!c)break;if((e[c+4>>2]&-8|0)==(s|0)){F=c;break r}else{i=i<<1;l=c}}if(d>>>0<(e[138266]|0)>>>0)o();else{e[d>>2]=m;e[m+24>>2]=l;e[m+12>>2]=m;e[m+8>>2]=m;break e}}else F=l;while(0);l=F+8|0;d=e[l>>2]|0;t=e[138266]|0;if(d>>>0>=t>>>0&F>>>0>=t>>>0){e[d+12>>2]=m;e[l>>2]=m;e[m+8>>2]=d;e[m+12>>2]=F;e[m+24>>2]=0;break}else o()}}else{t=e[138266]|0;if((t|0)==0|h>>>0>>0)e[138266]=h;e[138374]=h;e[138375]=n;e[138377]=0;e[138271]=e[138380];e[138270]=-1;l=0;do{t=l<<1;v=553088+(t<<2)|0;e[553088+(t+3<<2)>>2]=v;e[553088+(t+2<<2)>>2]=v;l=l+1|0}while((l|0)!=32);t=h+8|0;t=(t&7|0)==0?0:0-t&7;v=n+-40-t|0;e[138268]=h+t;e[138265]=v;e[h+(t+4)>>2]=v|1;e[h+(n+-36)>>2]=40;e[138269]=e[138384]}while(0);d=e[138265]|0;if(d>>>0>E>>>0){v=d-E|0;e[138265]=v;t=e[138268]|0;e[138268]=t+E;e[t+(E+4)>>2]=v|1;e[t+4>>2]=E|3;t=t+8|0;return t|0}}e[(Fe()|0)>>2]=12;t=0;return t|0}function n(l){l=l|0;var s=0,t=0,n=0,i=0,r=0,m=0,w=0,c=0,u=0,f=0,p=0,S=0,d=0,h=0,v=0,g=0,_=0,E=0,a=0;if(!l)return;r=l+-8|0;m=e[138266]|0;if(r>>>0>>0)o();i=e[l+-4>>2]|0;n=i&3;if((n|0)==1)o();d=i&-8;v=l+(d+-8)|0;do if(!(i&1)){r=e[r>>2]|0;if(!n)return;w=-8-r|0;f=l+w|0;p=r+d|0;if(f>>>0>>0)o();if((f|0)==(e[138267]|0)){r=l+(d+-4)|0;i=e[r>>2]|0;if((i&3|0)!=3){a=f;u=p;break}e[138264]=p;e[r>>2]=i&-2;e[l+(w+4)>>2]=p|1;e[v>>2]=p;return}t=r>>>3;if(r>>>0<256){n=e[l+(w+8)>>2]|0;i=e[l+(w+12)>>2]|0;r=553088+(t<<1<<2)|0;if((n|0)!=(r|0)){if(n>>>0>>0)o();if((e[n+12>>2]|0)!=(f|0))o()}if((i|0)==(n|0)){e[138262]=e[138262]&~(1<>>0>>0)o();r=i+8|0;if((e[r>>2]|0)==(f|0))s=r;else o()}else s=i+8|0;e[n+12>>2]=i;e[s>>2]=n;a=f;u=p;break}s=e[l+(w+24)>>2]|0;n=e[l+(w+12)>>2]|0;do if((n|0)==(f|0)){i=l+(w+20)|0;r=e[i>>2]|0;if(!r){i=l+(w+16)|0;r=e[i>>2]|0;if(!r){c=0;break}}while(1){n=r+20|0;t=e[n>>2]|0;if(t){r=t;i=n;continue}n=r+16|0;t=e[n>>2]|0;if(!t)break;else{r=t;i=n}}if(i>>>0>>0)o();else{e[i>>2]=0;c=r;break}}else{t=e[l+(w+8)>>2]|0;if(t>>>0>>0)o();r=t+12|0;if((e[r>>2]|0)!=(f|0))o();i=n+8|0;if((e[i>>2]|0)==(f|0)){e[r>>2]=n;e[i>>2]=t;c=n;break}else o()}while(0);if(s){r=e[l+(w+28)>>2]|0;i=553352+(r<<2)|0;if((f|0)==(e[i>>2]|0)){e[i>>2]=c;if(!c){e[138263]=e[138263]&~(1<>>0<(e[138266]|0)>>>0)o();r=s+16|0;if((e[r>>2]|0)==(f|0))e[r>>2]=c;else e[s+20>>2]=c;if(!c){a=f;u=p;break}}i=e[138266]|0;if(c>>>0>>0)o();e[c+24>>2]=s;r=e[l+(w+16)>>2]|0;do if(r)if(r>>>0>>0)o();else{e[c+16>>2]=r;e[r+24>>2]=c;break}while(0);r=e[l+(w+20)>>2]|0;if(r)if(r>>>0<(e[138266]|0)>>>0)o();else{e[c+20>>2]=r;e[r+24>>2]=c;a=f;u=p;break}else{a=f;u=p}}else{a=f;u=p}}else{a=r;u=d}while(0);if(a>>>0>=v>>>0)o();r=l+(d+-4)|0;i=e[r>>2]|0;if(!(i&1))o();if(!(i&2)){if((v|0)==(e[138268]|0)){f=(e[138265]|0)+u|0;e[138265]=f;e[138268]=a;e[a+4>>2]=f|1;if((a|0)!=(e[138267]|0))return;e[138267]=0;e[138264]=0;return}if((v|0)==(e[138267]|0)){f=(e[138264]|0)+u|0;e[138264]=f;e[138267]=a;e[a+4>>2]=f|1;e[a+f>>2]=f;return}m=(i&-8)+u|0;s=i>>>3;do if(i>>>0>=256){s=e[l+(d+16)>>2]|0;r=e[l+(d|4)>>2]|0;do if((r|0)==(v|0)){i=l+(d+12)|0;r=e[i>>2]|0;if(!r){i=l+(d+8)|0;r=e[i>>2]|0;if(!r){h=0;break}}while(1){n=r+20|0;t=e[n>>2]|0;if(t){r=t;i=n;continue}n=r+16|0;t=e[n>>2]|0;if(!t)break;else{r=t;i=n}}if(i>>>0<(e[138266]|0)>>>0)o();else{e[i>>2]=0;h=r;break}}else{i=e[l+d>>2]|0;if(i>>>0<(e[138266]|0)>>>0)o();n=i+12|0;if((e[n>>2]|0)!=(v|0))o();t=r+8|0;if((e[t>>2]|0)==(v|0)){e[n>>2]=r;e[t>>2]=i;h=r;break}else o()}while(0);if(s){r=e[l+(d+20)>>2]|0;i=553352+(r<<2)|0;if((v|0)==(e[i>>2]|0)){e[i>>2]=h;if(!h){e[138263]=e[138263]&~(1<>>0<(e[138266]|0)>>>0)o();r=s+16|0;if((e[r>>2]|0)==(v|0))e[r>>2]=h;else e[s+20>>2]=h;if(!h)break}r=e[138266]|0;if(h>>>0>>0)o();e[h+24>>2]=s;i=e[l+(d+8)>>2]|0;do if(i)if(i>>>0>>0)o();else{e[h+16>>2]=i;e[i+24>>2]=h;break}while(0);t=e[l+(d+12)>>2]|0;if(t)if(t>>>0<(e[138266]|0)>>>0)o();else{e[h+20>>2]=t;e[t+24>>2]=h;break}}}else{t=e[l+d>>2]|0;n=e[l+(d|4)>>2]|0;r=553088+(s<<1<<2)|0;if((t|0)!=(r|0)){if(t>>>0<(e[138266]|0)>>>0)o();if((e[t+12>>2]|0)!=(v|0))o()}if((n|0)==(t|0)){e[138262]=e[138262]&~(1<>>0<(e[138266]|0)>>>0)o();i=n+8|0;if((e[i>>2]|0)==(v|0))S=i;else o()}else S=n+8|0;e[t+12>>2]=n;e[S>>2]=t}while(0);e[a+4>>2]=m|1;e[a+m>>2]=m;if((a|0)==(e[138267]|0)){e[138264]=m;return}else r=m}else{e[r>>2]=i&-2;e[a+4>>2]=u|1;e[a+u>>2]=u;r=u}i=r>>>3;if(r>>>0<256){n=i<<1;r=553088+(n<<2)|0;s=e[138262]|0;t=1<>2]|0;if(s>>>0<(e[138266]|0)>>>0)o();else{g=t;_=s}}else{e[138262]=s|t;g=553088+(n+2<<2)|0;_=r}e[g>>2]=a;e[_+12>>2]=a;e[a+8>>2]=_;e[a+12>>2]=r;return}s=r>>>8;if(s)if(r>>>0>16777215)i=31;else{u=(s+1048320|0)>>>16&8;f=s<>>16&4;f=f<>>16&2;i=14-(c|u|i)+(f<>>15)|0;i=r>>>(i+7|0)&1|i<<1}else i=0;t=553352+(i<<2)|0;e[a+28>>2]=i;e[a+20>>2]=0;e[a+16>>2]=0;s=e[138263]|0;n=1<>2]|0;r:do if((e[t+4>>2]&-8|0)!=(r|0)){i=r<<((i|0)==31?0:25-(i>>>1)|0);while(1){s=t+16+(i>>>31<<2)|0;n=e[s>>2]|0;if(!n)break;if((e[n+4>>2]&-8|0)==(r|0)){E=n;break r}else{i=i<<1;t=n}}if(s>>>0<(e[138266]|0)>>>0)o();else{e[s>>2]=a;e[a+24>>2]=t;e[a+12>>2]=a;e[a+8>>2]=a;break e}}else E=t;while(0);s=E+8|0;t=e[s>>2]|0;f=e[138266]|0;if(t>>>0>=f>>>0&E>>>0>=f>>>0){e[t+12>>2]=a;e[s>>2]=a;e[a+8>>2]=t;e[a+12>>2]=E;e[a+24>>2]=0;break}else o()}else{e[138263]=s|n;e[t>>2]=a;e[a+24>>2]=t;e[a+12>>2]=a;e[a+8>>2]=a}while(0);f=(e[138270]|0)+-1|0;e[138270]=f;if(!f)s=553504;else return;while(1){s=e[s>>2]|0;if(!s)break;else s=s+8|0}e[138270]=-1;return}function h(t,r){t=t|0;r=r|0;var i=0;if(t){i=f(r,t)|0;if((r|t)>>>0>65535)i=((i>>>0)/(t>>>0)|0|0)==(r|0)?i:-1}else i=0;r=u(i)|0;if(!r)return r|0;if(!(e[r+-4>>2]&3))return r|0;w(r|0,0,i|0)|0;return r|0}function M(t,i){t=t|0;i=i|0;var r=0,o=0;if(!t){r=u(i)|0;return r|0}if(i>>>0>4294967231){e[(Fe()|0)>>2]=12;r=0;return r|0}r=Cr(t+-8|0,i>>>0<11?16:i+11&-8)|0;if(r){r=r+8|0;return r|0}r=u(i)|0;if(!r){r=0;return r|0}o=e[t+-4>>2]|0;o=(o&-8)-((o&3|0)==0?8:4)|0;d(r|0,t|0,(o>>>0>>0?o:i)|0)|0;n(t);return r|0}function Cr(t,a){t=t|0;a=a|0;var n=0,r=0,u=0,s=0,d=0,w=0,f=0,l=0,c=0,i=0,p=0,m=0,h=0;m=t+4|0;h=e[m>>2]|0;f=h&-8;c=t+f|0;w=e[138266]|0;r=h&3;if(!((r|0)!=1&t>>>0>=w>>>0&t>>>0>>0))o();n=t+(f|4)|0;s=e[n>>2]|0;if(!(s&1))o();if(!r){if(a>>>0<256){i=0;return i|0}if(f>>>0>=(a+4|0)>>>0?(f-a|0)>>>0<=e[138382]<<1>>>0:0){i=t;return i|0}i=0;return i|0}if(f>>>0>=a>>>0){r=f-a|0;if(r>>>0<=15){i=t;return i|0}e[m>>2]=h&1|a|2;e[t+(a+4)>>2]=r|3;e[n>>2]=e[n>>2]|1;ge(t+a|0,r);i=t;return i|0}if((c|0)==(e[138268]|0)){r=(e[138265]|0)+f|0;if(r>>>0<=a>>>0){i=0;return i|0}i=r-a|0;e[m>>2]=h&1|a|2;e[t+(a+4)>>2]=i|1;e[138268]=t+a;e[138265]=i;i=t;return i|0}if((c|0)==(e[138267]|0)){r=(e[138264]|0)+f|0;if(r>>>0>>0){i=0;return i|0}n=r-a|0;if(n>>>0>15){e[m>>2]=h&1|a|2;e[t+(a+4)>>2]=n|1;e[t+r>>2]=n;r=t+(r+4)|0;e[r>>2]=e[r>>2]&-2;r=t+a|0}else{e[m>>2]=h&1|r|2;r=t+(r+4)|0;e[r>>2]=e[r>>2]|1;r=0;n=0}e[138264]=n;e[138267]=r;i=t;return i|0}if(s&2){i=0;return i|0}i=(s&-8)+f|0;if(i>>>0>>0){i=0;return i|0}p=i-a|0;u=s>>>3;do if(s>>>0>=256){d=e[t+(f+24)>>2]|0;s=e[t+(f+12)>>2]|0;do if((s|0)==(c|0)){n=t+(f+20)|0;r=e[n>>2]|0;if(!r){n=t+(f+16)|0;r=e[n>>2]|0;if(!r){l=0;break}}while(1){u=r+20|0;s=e[u>>2]|0;if(s){r=s;n=u;continue}s=r+16|0;u=e[s>>2]|0;if(!u)break;else{r=u;n=s}}if(n>>>0>>0)o();else{e[n>>2]=0;l=r;break}}else{u=e[t+(f+8)>>2]|0;if(u>>>0>>0)o();r=u+12|0;if((e[r>>2]|0)!=(c|0))o();n=s+8|0;if((e[n>>2]|0)==(c|0)){e[r>>2]=s;e[n>>2]=u;l=s;break}else o()}while(0);if(d){r=e[t+(f+28)>>2]|0;n=553352+(r<<2)|0;if((c|0)==(e[n>>2]|0)){e[n>>2]=l;if(!l){e[138263]=e[138263]&~(1<>>0<(e[138266]|0)>>>0)o();r=d+16|0;if((e[r>>2]|0)==(c|0))e[r>>2]=l;else e[d+20>>2]=l;if(!l)break}n=e[138266]|0;if(l>>>0>>0)o();e[l+24>>2]=d;r=e[t+(f+16)>>2]|0;do if(r)if(r>>>0>>0)o();else{e[l+16>>2]=r;e[r+24>>2]=l;break}while(0);r=e[t+(f+20)>>2]|0;if(r)if(r>>>0<(e[138266]|0)>>>0)o();else{e[l+20>>2]=r;e[r+24>>2]=l;break}}}else{s=e[t+(f+8)>>2]|0;n=e[t+(f+12)>>2]|0;r=553088+(u<<1<<2)|0;if((s|0)!=(r|0)){if(s>>>0>>0)o();if((e[s+12>>2]|0)!=(c|0))o()}if((n|0)==(s|0)){e[138262]=e[138262]&~(1<>>0>>0)o();r=n+8|0;if((e[r>>2]|0)==(c|0))d=r;else o()}else d=n+8|0;e[s+12>>2]=n;e[d>>2]=s}while(0);if(p>>>0<16){e[m>>2]=i|h&1|2;i=t+(i|4)|0;e[i>>2]=e[i>>2]|1;i=t;return i|0}else{e[m>>2]=h&1|a|2;e[t+(a+4)>>2]=p|3;i=t+(i|4)|0;e[i>>2]=e[i>>2]|1;ge(t+a|0,p);i=t;return i|0}return 0}function ge(f,m){f=f|0;m=m|0;var s=0,n=0,t=0,r=0,i=0,p=0,u=0,h=0,c=0,l=0,d=0,S=0,w=0,v=0,_=0,E=0,a=0;v=f+m|0;i=e[f+4>>2]|0;do if(!(i&1)){u=e[f>>2]|0;if(!(i&3))return;d=f+(0-u)|0;l=u+m|0;p=e[138266]|0;if(d>>>0

>>0)o();if((d|0)==(e[138267]|0)){r=f+(m+4)|0;i=e[r>>2]|0;if((i&3|0)!=3){a=d;c=l;break}e[138264]=l;e[r>>2]=i&-2;e[f+(4-u)>>2]=l|1;e[v>>2]=l;return}n=u>>>3;if(u>>>0<256){t=e[f+(8-u)>>2]|0;r=e[f+(12-u)>>2]|0;i=553088+(n<<1<<2)|0;if((t|0)!=(i|0)){if(t>>>0

>>0)o();if((e[t+12>>2]|0)!=(d|0))o()}if((r|0)==(t|0)){e[138262]=e[138262]&~(1<>>0

>>0)o();i=r+8|0;if((e[i>>2]|0)==(d|0))s=i;else o()}else s=r+8|0;e[t+12>>2]=r;e[s>>2]=t;a=d;c=l;break}s=e[f+(24-u)>>2]|0;t=e[f+(12-u)>>2]|0;do if((t|0)==(d|0)){t=16-u|0;r=f+(t+4)|0;i=e[r>>2]|0;if(!i){r=f+t|0;i=e[r>>2]|0;if(!i){h=0;break}}while(1){t=i+20|0;n=e[t>>2]|0;if(n){i=n;r=t;continue}t=i+16|0;n=e[t>>2]|0;if(!n)break;else{i=n;r=t}}if(r>>>0

>>0)o();else{e[r>>2]=0;h=i;break}}else{n=e[f+(8-u)>>2]|0;if(n>>>0

>>0)o();i=n+12|0;if((e[i>>2]|0)!=(d|0))o();r=t+8|0;if((e[r>>2]|0)==(d|0)){e[i>>2]=t;e[r>>2]=n;h=t;break}else o()}while(0);if(s){i=e[f+(28-u)>>2]|0;r=553352+(i<<2)|0;if((d|0)==(e[r>>2]|0)){e[r>>2]=h;if(!h){e[138263]=e[138263]&~(1<>>0<(e[138266]|0)>>>0)o();i=s+16|0;if((e[i>>2]|0)==(d|0))e[i>>2]=h;else e[s+20>>2]=h;if(!h){a=d;c=l;break}}t=e[138266]|0;if(h>>>0>>0)o();e[h+24>>2]=s;i=16-u|0;r=e[f+i>>2]|0;do if(r)if(r>>>0>>0)o();else{e[h+16>>2]=r;e[r+24>>2]=h;break}while(0);i=e[f+(i+4)>>2]|0;if(i)if(i>>>0<(e[138266]|0)>>>0)o();else{e[h+20>>2]=i;e[i+24>>2]=h;a=d;c=l;break}else{a=d;c=l}}else{a=d;c=l}}else{a=f;c=m}while(0);p=e[138266]|0;if(v>>>0

>>0)o();i=f+(m+4)|0;r=e[i>>2]|0;if(!(r&2)){if((v|0)==(e[138268]|0)){l=(e[138265]|0)+c|0;e[138265]=l;e[138268]=a;e[a+4>>2]=l|1;if((a|0)!=(e[138267]|0))return;e[138267]=0;e[138264]=0;return}if((v|0)==(e[138267]|0)){l=(e[138264]|0)+c|0;e[138264]=l;e[138267]=a;e[a+4>>2]=l|1;e[a+l>>2]=l;return}u=(r&-8)+c|0;s=r>>>3;do if(r>>>0>=256){s=e[f+(m+24)>>2]|0;t=e[f+(m+12)>>2]|0;do if((t|0)==(v|0)){r=f+(m+20)|0;i=e[r>>2]|0;if(!i){r=f+(m+16)|0;i=e[r>>2]|0;if(!i){w=0;break}}while(1){t=i+20|0;n=e[t>>2]|0;if(n){i=n;r=t;continue}t=i+16|0;n=e[t>>2]|0;if(!n)break;else{i=n;r=t}}if(r>>>0

>>0)o();else{e[r>>2]=0;w=i;break}}else{n=e[f+(m+8)>>2]|0;if(n>>>0

>>0)o();i=n+12|0;if((e[i>>2]|0)!=(v|0))o();r=t+8|0;if((e[r>>2]|0)==(v|0)){e[i>>2]=t;e[r>>2]=n;w=t;break}else o()}while(0);if(s){i=e[f+(m+28)>>2]|0;r=553352+(i<<2)|0;if((v|0)==(e[r>>2]|0)){e[r>>2]=w;if(!w){e[138263]=e[138263]&~(1<>>0<(e[138266]|0)>>>0)o();r=s+16|0;if((e[r>>2]|0)==(v|0))e[r>>2]=w;else e[s+20>>2]=w;if(!w)break}t=e[138266]|0;if(w>>>0>>0)o();e[w+24>>2]=s;r=e[f+(m+16)>>2]|0;do if(r)if(r>>>0>>0)o();else{e[w+16>>2]=r;e[r+24>>2]=w;break}while(0);t=e[f+(m+20)>>2]|0;if(t)if(t>>>0<(e[138266]|0)>>>0)o();else{e[w+20>>2]=t;e[t+24>>2]=w;break}}}else{n=e[f+(m+8)>>2]|0;t=e[f+(m+12)>>2]|0;i=553088+(s<<1<<2)|0;if((n|0)!=(i|0)){if(n>>>0

>>0)o();if((e[n+12>>2]|0)!=(v|0))o()}if((t|0)==(n|0)){e[138262]=e[138262]&~(1<>>0

>>0)o();r=t+8|0;if((e[r>>2]|0)==(v|0))S=r;else o()}else S=t+8|0;e[n+12>>2]=t;e[S>>2]=n}while(0);e[a+4>>2]=u|1;e[a+u>>2]=u;if((a|0)==(e[138267]|0)){e[138264]=u;return}else i=u}else{e[i>>2]=r&-2;e[a+4>>2]=c|1;e[a+c>>2]=c;i=c}r=i>>>3;if(i>>>0<256){n=r<<1;i=553088+(n<<2)|0;s=e[138262]|0;t=1<>2]|0;if(n>>>0<(e[138266]|0)>>>0)o();else{_=t;E=n}}else{e[138262]=s|t;_=553088+(n+2<<2)|0;E=i}e[_>>2]=a;e[E+12>>2]=a;e[a+8>>2]=E;e[a+12>>2]=i;return}s=i>>>8;if(s)if(i>>>0>16777215)r=31;else{c=(s+1048320|0)>>>16&8;l=s<>>16&4;l=l<>>16&2;r=14-(h|c|r)+(l<>>15)|0;r=i>>>(r+7|0)&1|r<<1}else r=0;t=553352+(r<<2)|0;e[a+28>>2]=r;e[a+20>>2]=0;e[a+16>>2]=0;n=e[138263]|0;s=1<>2]=a;e[a+24>>2]=t;e[a+12>>2]=a;e[a+8>>2]=a;return}s=e[t>>2]|0;e:do if((e[s+4>>2]&-8|0)!=(i|0)){r=i<<((r|0)==31?0:25-(r>>>1)|0);while(1){n=s+16+(r>>>31<<2)|0;t=e[n>>2]|0;if(!t)break;if((e[t+4>>2]&-8|0)==(i|0)){s=t;break e}else{r=r<<1;s=t}}if(n>>>0<(e[138266]|0)>>>0)o();e[n>>2]=a;e[a+24>>2]=s;e[a+12>>2]=a;e[a+8>>2]=a;return}while(0);n=s+8|0;t=e[n>>2]|0;l=e[138266]|0;if(!(t>>>0>=l>>>0&s>>>0>=l>>>0))o();e[t+12>>2]=a;e[n>>2]=a;e[a+8>>2]=t;e[a+12>>2]=s;e[a+24>>2]=0;return}function Nr(){e[6410]=_r}function w(r,i,t){r=r|0;i=i|0;t=t|0;var o=0,s=0,n=0,f=0;o=r+t|0;if((t|0)>=20){i=i&255;n=r&3;f=i|i<<8|i<<16|i<<24;s=o&~3;if(n){n=r+4-n|0;while((r|0)<(n|0)){a[r>>0]=i;r=r+1|0}}while((r|0)<(s|0)){e[r>>2]=f;r=r+4|0}}while((r|0)<(o|0)){a[r>>0]=i;r=r+1|0}return r-t|0}function V(r){r=r|0;var e=0;e=r;while(a[e>>0]|0)e=e+1|0;return e-r|0}function Ie(e,i){e=e|0;i=i|0;var r=0,t=0;t=e+(V(e)|0)|0;do{a[t+r>>0]=a[i+r>>0];r=r+1|0}while(a[i+(r-1)>>0]|0);return e|0}function Be(r,i,e){r=r|0;i=i|0;e=e|0;if((e|0)<32){l=i<>>32-e;return r<>>0;return(l=i+t+(e>>>0>>0|0)>>>0,e|0)|0}function T(i,r,e){i=i|0;r=r|0;e=e|0;if((e|0)<32){l=r>>>e;return i>>>e|(r&(1<>>e-32|0}function d(r,i,t){r=r|0;i=i|0;t=t|0;var n=0;if((t|0)>=4096)return hr(r|0,i|0,t|0)|0;n=r|0;if((r&3)==(i&3)){while(r&3){if(!t)return n|0;a[r>>0]=a[i>>0]|0;r=r+1|0;i=i+1|0;t=t-1|0}while((t|0)>=4){e[r>>2]=e[i>>2];r=r+4|0;i=i+4|0;t=t-4|0}}while((t|0)>0){a[r>>0]=a[i>>0]|0;r=r+1|0;i=i+1|0;t=t-1|0}return n|0}function B(e,r,i){e=e|0;r=r|0;i=i|0;var t=0;if((r|0)<(e|0)&(e|0)<(r+i|0)){t=e;r=r+i|0;e=e+i|0;while((i|0)>0){e=e-1|0;r=r-1|0;i=i-1|0;a[e>>0]=a[r>>0]|0}e=t}else d(e,r,i)|0;return e|0}function le(r,i){r=r|0;i=i|0;var e=0;do{a[r+e>>0]=a[i+e>>0];e=e+1|0}while(a[i+(e-1)>>0]|0);return r|0}function O(r,e,i,t){r=r|0;e=e|0;i=i|0;t=t|0;e=e-t-(i>>>0>r>>>0|0)>>>0;return(l=e,r-i>>>0|0)|0}function vt(i,r,e){i=i|0;r=r|0;e=e|0;if((e|0)<32){l=r>>e;return i>>>e|(r&(1<>e-32|0}function Ne(r){r=r|0;var e=0;e=a[te+(r&255)>>0]|0;if((e|0)<8)return e|0;e=a[te+(r>>8&255)>>0]|0;if((e|0)<8)return e+8|0;e=a[te+(r>>16&255)>>0]|0;if((e|0)<8)return e+16|0;return(a[te+(r>>>24)>>0]|0)+24|0}function Ji(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0;o=e&65535;i=r&65535;t=f(i,o)|0;n=e>>>16;i=(t>>>16)+(f(i,n)|0)|0;r=r>>>16;e=f(r,o)|0;return(l=(i>>>16)+(f(r,n)|0)+(((i&65535)+e|0)>>>16)|0,i+e<<16|t&65535|0)|0}function Qt(i,e,s,r){i=i|0;e=e|0;s=s|0;r=r|0;var t=0,n=0,f=0,u=0,o=0,a=0;a=e>>31|((e|0)<0?-1:0)<<1;o=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;n=r>>31|((r|0)<0?-1:0)<<1;t=((r|0)<0?-1:0)>>31|((r|0)<0?-1:0)<<1;u=O(a^i,o^e,a,o)|0;f=l;e=n^a;i=t^o;return O((re(u,f,O(n^s,t^r,n,t)|0,l,0)|0)^e,l^i,e,i)|0}function $t(t,r,f,n){t=t|0;r=r|0;f=f|0;n=n|0;var u=0,o=0,a=0,s=0,c=0,d=0;u=i;i=i+8|0;s=u|0;a=r>>31|((r|0)<0?-1:0)<<1;o=((r|0)<0?-1:0)>>31|((r|0)<0?-1:0)<<1;d=n>>31|((n|0)<0?-1:0)<<1;c=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1;r=O(a^t,o^r,a,o)|0;t=l;re(r,t,O(d^f,c^n,d,c)|0,l,s)|0;t=O(e[s>>2]^a,e[s+4>>2]^o,a,o)|0;r=l;i=u;return(l=r,t)|0}function Gi(r,i,e,t){r=r|0;i=i|0;e=e|0;t=t|0;var n=0,o=0;n=r;o=e;r=Ji(n,o)|0;e=l;return(l=(f(i,o)|0)+(f(t,n)|0)+e|e&0,r|0|0)|0}function rn(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;return re(e,r,i,t,0)|0}function tn(t,n,o,a){t=t|0;n=n|0;o=o|0;a=a|0;var r=0,s=0;s=i;i=i+8|0;r=s|0;re(t,n,o,a,r)|0;i=s;return(l=e[r+4>>2]|0,e[r>>2]|0)|0}function re(f,d,h,w,n){f=f|0;d=d|0;h=h|0;w=w|0;n=n|0;var c=0,t=0,a=0,u=0,o=0,i=0,r=0,s=0,p=0,m=0;s=f;i=d;r=i;o=h;p=w;a=p;if(!r){c=(n|0)!=0;if(!a){if(c){e[n>>2]=(s>>>0)%(o>>>0);e[n+4>>2]=0}i=0;r=(s>>>0)/(o>>>0)>>>0;return(l=i,r)|0}else{if(!c){i=0;r=0;return(l=i,r)|0}e[n>>2]=f|0;e[n+4>>2]=d&0;i=0;r=0;return(l=i,r)|0}}u=(a|0)==0;do if(o){if(!u){t=(q(a|0)|0)-(q(r|0)|0)|0;if(t>>>0<=31){c=t+1|0;i=31-t|0;o=t-31>>31;a=c;u=s>>>(c>>>0)&o|r<>>(c>>>0)&o;c=0;t=s<>2]=f|0;e[n+4>>2]=i|d&0;i=0;r=0;return(l=i,r)|0}u=o-1|0;if(u&o){t=(q(o|0)|0)+33-(q(r|0)|0)|0;m=64-t|0;i=32-t|0;f=i>>31;d=t-32|0;o=d>>31;a=t;u=i-1>>31&r>>>(d>>>0)|(r<>>(t>>>0))&o;o=o&r>>>(t>>>0);c=s<>>(d>>>0))&f|s<>31;break}if(n){e[n>>2]=u&s;e[n+4>>2]=0}if((o|0)==1){i=i|d&0;r=f|0|0;return(l=i,r)|0}else{f=Ne(o|0)|0;i=r>>>(f>>>0)|0;r=r<<32-f|s>>>(f>>>0)|0;return(l=i,r)|0}}else{if(u){if(n){e[n>>2]=(r>>>0)%(o>>>0);e[n+4>>2]=0}i=0;r=(r>>>0)/(o>>>0)>>>0;return(l=i,r)|0}if(!s){if(n){e[n>>2]=0;e[n+4>>2]=(r>>>0)%(a>>>0)}i=0;r=(r>>>0)/(a>>>0)>>>0;return(l=i,r)|0}u=a-1|0;if(!(u&a)){if(n){e[n>>2]=f|0;e[n+4>>2]=u&r|d&0}i=0;r=r>>>((Ne(a|0)|0)>>>0);return(l=i,r)|0}t=(q(a|0)|0)-(q(r|0)|0)|0;if(t>>>0<=30){o=t+1|0;t=31-t|0;a=o;u=r<>>(o>>>0);o=r>>>(o>>>0);c=0;t=s<>2]=f|0;e[n+4>>2]=i|d&0;i=0;r=0;return(l=i,r)|0}while(0);if(!a){i=t;a=0;t=0}else{r=h|0|0;i=p|w&0;d=N(r|0,i|0,-1,-1)|0;f=l;h=t;t=0;do{m=h;h=c>>>31|h<<1;c=t|c<<1;m=u<<1|m>>>31|0;p=u>>>31|o<<1|0;O(d,f,m,p)|0;s=l;w=s>>31|((s|0)<0?-1:0)<<1;t=w&1;u=O(m,p,w&r,(((s|0)<0?-1:0)>>31|((s|0)<0?-1:0)<<1)&i)|0;o=l;a=a-1|0}while((a|0)!=0);i=h;a=0}h=0;if(n){e[n>>2]=u;e[n+4>>2]=o}i=(c|0)>>>31|(i|h)<<1|(h<<1|c>>>31)&0|a;r=(c<<1|0>>>31)&-2|t;return(l=i,r)|0}function Li(e,r,i,t,n){e=e|0;r=r|0;i=i|0; t=t|0;n=n|0;return de[e&3](r|0,i|0,t|0,n|0)|0}function Di(e,r){e=e|0;r=r|0;R[e&7](r|0)}function Ai(e,r,i){e=e|0;r=r|0;i=i|0;ue[e&3](r|0,i|0)}function Fi(e,r){e=e|0;r=r|0;return ke[e&1](r|0)|0}function Si(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;ye[e&1](r|0,i|0,t|0)}function wi(e,r,i,t,n,o,a,s,f){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;o=o|0;a=a|0;s=s|0;f=f|0;return qe[e&3](r|0,i|0,t|0,n|0,o|0,a|0,s|0,f|0)|0}function li(e,r,i){e=e|0;r=r|0;i=i|0;return y[e&15](r|0,i|0)|0}function Mr(e,r,i,t,n,o){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;o=o|0;return Se[e&7](r|0,i|0,t|0,n|0,o|0)|0}function gr(e,r,i,t){e=e|0;r=r|0;i=i|0;t=t|0;L(0);return 0}function we(e){e=e|0;L(1)}function Ae(e,r){e=e|0;r=r|0;L(2)}function ur(e){e=e|0;L(3);return 0}function ut(e,r,i){e=e|0;r=r|0;i=i|0;L(4)}function Me(e,r,i,t,n,o,a,s){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;o=o|0;a=a|0;s=s|0;L(5);return 0}function z(e,r){e=e|0;r=r|0;L(6);return 0}function oe(e,r,i,t,n){e=e|0;r=r|0;i=i|0;t=t|0;n=n|0;L(7);return 0}var de=[gr,$r,Pr,Lr];var R=[we,Zr,Jr,di,Ci,Ii,we,we];var ue=[Ae,Xr,xi,Ae];var ke=[ur,hi];var ye=[ut,ui];var qe=[Me,qi,Yi,Me];var y=[z,Kr,Gr,Qr,ci,mi,Hi,Ui,ei,Bi,nt,z,z,z,z,z];var Se=[oe,zi,Vi,ji,Wi,Xi,oe,oe];return{_memmove:B,_strlen:V,_strcat:Ie,_free:n,_i64Add:N,_encoder_clear:et,_encoder_transfer_data:pi,_encoder_data_len:ki,_memset:w,_malloc:u,_memcpy:d,_encoder_init:ht,_encoder_process:Ri,_bitshift64Lshr:T,_bitshift64Shl:Be,_strcpy:le,_encoder_analysis_buffer:Zi,runPostSets:Nr,stackAlloc:Ar,stackSave:Or,stackRestore:Dr,establishStackSpace:oi,setThrew:fi,setTempRet0:Ei,getTempRet0:_i,dynCall_iiiii:Li,dynCall_vi:Di,dynCall_vii:Ai,dynCall_ii:Fi,dynCall_viii:Si,dynCall_iiiiiiiii:wi,dynCall_iii:li,dynCall_iiiiii:Mr}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _strlen=Module["_strlen"]=asm["_strlen"];var _strcat=Module["_strcat"]=asm["_strcat"];var _free=Module["_free"]=asm["_free"];var _encoder_init=Module["_encoder_init"]=asm["_encoder_init"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _memmove=Module["_memmove"]=asm["_memmove"];var _encoder_transfer_data=Module["_encoder_transfer_data"]=asm["_encoder_transfer_data"];var _encoder_process=Module["_encoder_process"]=asm["_encoder_process"];var _encoder_data_len=Module["_encoder_data_len"]=asm["_encoder_data_len"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _encoder_clear=Module["_encoder_clear"]=asm["_encoder_clear"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _encoder_analysis_buffer=Module["_encoder_analysis_buffer"]=asm["_encoder_analysis_buffer"];var _strcpy=Module["_strcpy"]=asm["_strcpy"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=asm["dynCall_iiiiiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];var i64Math=function(){var e={math:{}};e.math.Long=function(e,r){this.low_=e|0;this.high_=r|0};e.math.Long.IntCache_={};e.math.Long.fromInt=function(r){if(-128<=r&&r<128){var i=e.math.Long.IntCache_[r];if(i){return i}}var t=new e.math.Long(r|0,r<0?-1:0);if(-128<=r&&r<128){e.math.Long.IntCache_[r]=t}return t};e.math.Long.fromNumber=function(r){if(isNaN(r)||!isFinite(r)){return e.math.Long.ZERO}else if(r<=-e.math.Long.TWO_PWR_63_DBL_){return e.math.Long.MIN_VALUE}else if(r+1>=e.math.Long.TWO_PWR_63_DBL_){return e.math.Long.MAX_VALUE}else if(r<0){return e.math.Long.fromNumber(-r).negate()}else{return new e.math.Long(r%e.math.Long.TWO_PWR_32_DBL_|0,r/e.math.Long.TWO_PWR_32_DBL_|0)}};e.math.Long.fromBits=function(r,i){return new e.math.Long(r,i)};e.math.Long.fromString=function(r,s){if(r.length==0){throw Error("number format error: empty string")}var i=s||10;if(i<2||36=0){throw Error('number format error: interior "-" character: '+r)}var f=e.math.Long.fromNumber(Math.pow(i,8));var t=e.math.Long.ZERO;for(var n=0;n=0?this.low_:e.math.Long.TWO_PWR_32_DBL_+this.low_};e.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative()){if(this.equals(e.math.Long.MIN_VALUE)){return 64}else{return this.negate().getNumBitsAbs()}}else{var i=this.high_!=0?this.high_:this.low_;for(var r=31;r>0;r--){if((i&1<0};e.math.Long.prototype.greaterThanOrEqual=function(e){return this.compare(e)>=0};e.math.Long.prototype.compare=function(e){if(this.equals(e)){return 0}var r=this.isNegative();var i=e.isNegative();if(r&&!i){return-1}if(!r&&i){return 1}if(this.subtract(e).isNegative()){return-1}else{return 1}};e.math.Long.prototype.negate=function(){if(this.equals(e.math.Long.MIN_VALUE)){return e.math.Long.MIN_VALUE}else{return this.not().add(e.math.Long.ONE)}};e.math.Long.prototype.add=function(t){var s=this.high_>>>16;var d=this.high_&65535;var c=this.low_>>>16;var u=this.low_&65535;var a=t.high_>>>16;var h=t.high_&65535;var f=t.low_>>>16;var l=t.low_&65535;var o=0,i=0,r=0,n=0;n+=u+l;r+=n>>>16;n&=65535;r+=c+f;i+=r>>>16;r&=65535;i+=d+h;o+=i>>>16;i&=65535;o+=s+a;o&=65535;return e.math.Long.fromBits(r<<16|n,o<<16|i)};e.math.Long.prototype.subtract=function(e){return this.add(e.negate())};e.math.Long.prototype.multiply=function(r){if(this.isZero()){return e.math.Long.ZERO}else if(r.isZero()){return e.math.Long.ZERO}if(this.equals(e.math.Long.MIN_VALUE)){return r.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO}else if(r.equals(e.math.Long.MIN_VALUE)){return this.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO}if(this.isNegative()){if(r.isNegative()){return this.negate().multiply(r.negate())}else{return this.negate().multiply(r).negate()}}else if(r.isNegative()){return this.multiply(r.negate()).negate()}if(this.lessThan(e.math.Long.TWO_PWR_24_)&&r.lessThan(e.math.Long.TWO_PWR_24_)){return e.math.Long.fromNumber(this.toNumber()*r.toNumber())}var d=this.high_>>>16;var u=this.high_&65535;var l=this.low_>>>16;var o=this.low_&65535;var h=r.high_>>>16;var c=r.high_&65535;var f=r.low_>>>16;var s=r.low_&65535;var n=0,i=0,t=0,a=0;a+=o*s;t+=a>>>16;a&=65535;t+=l*s;i+=t>>>16;t&=65535;t+=o*f;i+=t>>>16;t&=65535;i+=u*s;n+=i>>>16;i&=65535;i+=l*f;n+=i>>>16;i&=65535;i+=o*c;n+=i>>>16;i&=65535;n+=d*s+u*f+l*c+o*h;n&=65535;return e.math.Long.fromBits(t<<16|a,n<<16|i)};e.math.Long.prototype.div=function(r){if(r.isZero()){throw Error("division by zero")}else if(this.isZero()){return e.math.Long.ZERO}if(this.equals(e.math.Long.MIN_VALUE)){if(r.equals(e.math.Long.ONE)||r.equals(e.math.Long.NEG_ONE)){return e.math.Long.MIN_VALUE}else if(r.equals(e.math.Long.MIN_VALUE)){return e.math.Long.ONE}else{var f=this.shiftRight(1);var i=f.div(r).shiftLeft(1);if(i.equals(e.math.Long.ZERO)){return r.isNegative()?e.math.Long.ONE:e.math.Long.NEG_ONE}else{var t=this.subtract(r.multiply(i));var l=i.add(t.div(r));return l}}}else if(r.equals(e.math.Long.MIN_VALUE)){return e.math.Long.ZERO}if(this.isNegative()){if(r.isNegative()){return this.negate().div(r.negate())}else{return this.negate().div(r).negate()}}else if(r.isNegative()){return this.div(r.negate()).negate()}var a=e.math.Long.ZERO;var t=this;while(t.greaterThanOrEqual(r)){var i=Math.max(1,Math.floor(t.toNumber()/r.toNumber()));var s=Math.ceil(Math.log(i)/Math.LN2);var u=s<=48?1:Math.pow(2,s-48);var n=e.math.Long.fromNumber(i);var o=n.multiply(r);while(o.isNegative()||o.greaterThan(t)){i-=u;n=e.math.Long.fromNumber(i);o=n.multiply(r)}if(n.isZero()){n=e.math.Long.ONE}a=a.add(n);t=t.subtract(o)}return a};e.math.Long.prototype.modulo=function(e){return this.subtract(this.div(e).multiply(e))};e.math.Long.prototype.not=function(){return e.math.Long.fromBits(~this.low_,~this.high_)};e.math.Long.prototype.and=function(r){return e.math.Long.fromBits(this.low_&r.low_,this.high_&r.high_)};e.math.Long.prototype.or=function(r){return e.math.Long.fromBits(this.low_|r.low_,this.high_|r.high_)};e.math.Long.prototype.xor=function(r){return e.math.Long.fromBits(this.low_^r.low_,this.high_^r.high_)};e.math.Long.prototype.shiftLeft=function(r){r&=63;if(r==0){return this}else{var i=this.low_;if(r<32){var t=this.high_;return e.math.Long.fromBits(i<>>32-r)}else{return e.math.Long.fromBits(0,i<>>r|i<<32-r,i>>r)}else{return e.math.Long.fromBits(i>>r-32,i>=0?0:-1)}}};e.math.Long.prototype.shiftRightUnsigned=function(r){r&=63;if(r==0){return this}else{var i=this.high_;if(r<32){var t=this.low_;return e.math.Long.fromBits(t>>>r|i<<32-r,i>>>r)}else if(r==32){return e.math.Long.fromBits(i,0)}else{return e.math.Long.fromBits(i>>>r-32,0)}}};var m={appName:"Modern Browser"};var o;var D=0xdeadbeefcafe;var w=(D&16777215)==15715070;function r(e,r,i){if(e!=null)if("number"==typeof e)this.fromNumber(e,r,i);else if(r==null&&"string"!=typeof e)this.fromString(e,256);else this.fromString(e,r)}function t(){return new r(null)}function _(n,o,r,i,e,a){while(--a>=0){var t=o*this[n++]+r[i]+e;e=Math.floor(t/67108864);r[i++]=t&67108863}return e}function F(i,o,f,t,r,u){var a=o&32767,s=o>>15;while(--u>=0){var e=this[i]&32767;var l=this[i++]>>15;var n=s*e+l*a;e=a*e+((n&32767)<<15)+f[t]+(r&1073741823);r=(e>>>30)+(n>>>15)+s*l+(r>>>30);f[t++]=e&1073741823}return r}function N(i,o,f,t,r,u){var a=o&16383,s=o>>14;while(--u>=0){var e=this[i]&16383;var l=this[i++]>>14;var n=s*e+l*a;e=a*e+((n&16383)<<14)+f[t]+r;r=(e>>28)+(n>>14)+s*l;f[t++]=e&268435455}return r}if(w&&m.appName=="Microsoft Internet Explorer"){r.prototype.am=F;o=30}else if(w&&m.appName!="Netscape"){r.prototype.am=_;o=26}else{r.prototype.am=N;o=28}r.prototype.DB=o;r.prototype.DM=(1<=0;--e)r[e]=this[e];r.t=this.t;r.s=this.s}function E(e){this.t=1;this.s=e<0?-1:0;if(e>0)this[0]=e;else if(e<-1)this[0]=e+DV;else this.t=0}function c(r){var e=t();e.fromInt(r);return e}function S(n,t){var i;if(t==16)i=4;else if(t==8)i=3;else if(t==256)i=8;else if(t==2)i=1;else if(t==32)i=5;else if(t==4)i=2;else{this.fromRadix(n,t);return}this.t=0;this.s=0;var a=n.length,s=false,e=0;while(--a>=0){var o=i==8?n[a]&255:h(n,a);if(o<0){if(n.charAt(a)=="-")s=true;continue}s=false;if(e==0)this[this.t++]=o;else if(e+i>this.DB){this[this.t-1]|=(o&(1<>this.DB-e}else this[this.t-1]|=o<=this.DB)e-=this.DB}if(i==8&&(n[0]&128)!=0){this.s=-1;if(e>0)this[this.t-1]|=(1<0&&this[this.t-1]==e)--this.t}function b(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(t==16)e=4;else if(t==8)e=3;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else return this.toRadix(t);var s=(1<0){if(r>r)>0){o=true;a=p(n)}while(i>=0){if(r>(r+=this.DB-e)}else{n=this[i]>>(r-=e)&s;if(r<=0){r+=this.DB;--i}}if(n>0)o=true;if(o)a+=p(n)}}return o?a:"0"}function y(){var e=t();r.ZERO.subTo(this,e);return e}function k(){return this.s<0?this.negate():this}function M(i){var e=this.s-i.s;if(e!=0)return e;var r=this.t;e=r-i.t;if(e!=0)return this.s<0?-e:e;while(--r>=0)if((e=this[r]-i[r])!=0)return e;return 0}function d(e){var i=1,r;if((r=e>>>16)!=0){e=r;i+=16}if((r=e>>8)!=0){e=r;i+=8}if((r=e>>4)!=0){e=r;i+=4}if((r=e>>2)!=0){e=r;i+=2}if((r=e>>1)!=0){e=r;i+=1}return i}function A(){if(this.t<=0)return 0;return this.DB*(this.t-1)+d(this[this.t-1]^this.s&this.DM)}function R(i,r){var e;for(e=this.t-1;e>=0;--e)r[e+i]=this[e];for(e=i-1;e>=0;--e)r[e]=0;r.t=this.t+i;r.s=this.s}function O(r,i){for(var e=r;e=0;--e){r[e+i+1]=this[e]>>a|n;n=(this[e]&s)<=0;--e)r[e]=0;r[i]=n;r.t=this.t+i+1;r.s=this.s;r.clamp()}function se(n,e){e.s=this.s;var r=Math.floor(n/this.DB);if(r>=this.t){e.t=0;return}var t=n%this.DB;var o=this.DB-t;var a=(1<>t;for(var i=r+1;i>t}if(t>0)e[this.t-r-1]|=(this.s&a)<>=this.DB}if(t.t>=this.DB}e+=this.s}else{e+=this.s;while(r>=this.DB}e-=t.s}i.s=e<0?-1:0;if(e<-1)i[r++]=this.DV+e;else if(e>0)i[r++]=e;i.t=r;i.clamp()}function P(o,i){var t=this.abs(),n=o.abs();var e=t.t;i.t=e+n.t;while(--e>=0)i[e]=0;for(e=0;e=0)i[e]=0;for(e=0;e=r.DV){i[e+r.t]-=r.DV;i[e+r.t+1]=1}}if(i.t>0)i[i.t-1]+=r.am(e,r[e],i,2*e,0,1);i.s=0;i.clamp()}function B(v,a,e){var s=v.abs();if(s.t<=0)return;var m=this.abs();if(m.t0){s.lShiftTo(l,i);m.lShiftTo(l,e)}else{s.copyTo(i);m.copyTo(e)}var n=i.t;var h=i[n-1];if(h==0)return;var w=h*(1<1?i[n-2]>>this.F2:0);var E=this.FV/w,_=(1<=0){e[e.t++]=1;e.subTo(o,e)}r.ONE.dlShiftTo(n,o);o.subTo(i,i);while(i.t=0){var c=e[--f]==h?this.DM:Math.floor(e[f]*E+(e[f-1]+S)*_);if((e[f]+=i.am(0,c,e,u,0,n))0)e.rShiftTo(l,e);if(p<0)r.ZERO.subTo(e,e)}function C(i){var e=t();this.abs().divRemTo(i,null,e);if(this.s<0&&e.compareTo(r.ZERO)>0)i.subTo(e,e);return e}function f(e){this.m=e}function x(e){if(e.s<0||e.compareTo(this.m)>=0)return e.mod(this.m);else return e}function H(e){return e}function U(e){e.divRemTo(this.m,null,e)}function z(r,i,e){r.multiplyTo(i,e);this.reduce(e)}function q(r,e){r.squareTo(e);this.reduce(e)}f.prototype.convert=x;f.prototype.revert=H;f.prototype.reduce=U;f.prototype.mulTo=z;f.prototype.sqrTo=q;function V(){if(this.t<1)return 0;var r=this[0];if((r&1)==0)return 0;var e=r&3;e=e*(2-(r&15)*e)&15;e=e*(2-(r&255)*e)&255;e=e*(2-((r&65535)*e&65535))&65535;e=e*(2-r*e%this.DV)%this.DV;return e>0?this.DV-e:-e}function a(e){this.m=e;this.mp=e.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<0)this.m.subTo(e,e);return e}function Y(r){var e=t();r.copyTo(e);this.reduce(e);return e}function X(e){while(e.t<=this.mt2)e[e.t++]=0;for(var i=0;i>15)*this.mpl&this.um)<<15)&e.DM;r=i+this.m.t;e[r]+=this.m.am(0,t,e,i,0,this.m.t);while(e[r]>=e.DV){e[r]-=e.DV;e[++r]++}}e.clamp();e.drShiftTo(this.m.t,e);if(e.compareTo(this.m)>=0)e.subTo(this.m,e)}function K(r,e){r.squareTo(e);this.reduce(e)}function G(r,i,e){r.multiplyTo(i,e);this.reduce(e)}a.prototype.convert=W;a.prototype.revert=Y;a.prototype.reduce=X;a.prototype.mulTo=G;a.prototype.sqrTo=K;function Z(){return(this.t>0?this[0]&1:this.s)==0}function J(i,n){if(i>4294967295||i<1)return r.ONE;var e=t(),o=t(),a=n.convert(this),s=d(i)-1;a.copyTo(e);while(--s>=0){n.sqrTo(e,o);if((i&1<0)n.mulTo(o,a,e);else{var f=e;e=o;o=f}}return n.revert(e)}function Q(i,e){var r;if(i<256||e.isEven())r=new f(e);else r=new a(e);return this.exp(i,r)}r.prototype.copyTo=j;r.prototype.fromInt=E;r.prototype.fromString=S;r.prototype.clamp=g;r.prototype.dlShiftTo=R;r.prototype.drShiftTo=O;r.prototype.lShiftTo=T;r.prototype.rShiftTo=se;r.prototype.subTo=v;r.prototype.multiplyTo=P;r.prototype.squareTo=L;r.prototype.divRemTo=B;r.prototype.invDigit=V;r.prototype.isEven=Z;r.prototype.exp=J;r.prototype.toString=b;r.prototype.negate=y;r.prototype.abs=k;r.prototype.compareTo=M;r.prototype.bitLength=A;r.prototype.mod=C;r.prototype.modPowInt=Q;r.ZERO=c(0);r.ONE=c(1);function $(o,e){this.fromInt(0);if(e==null)e=10;var a=this.chunkSize(e);var l=Math.pow(e,a),s=false,t=0,i=0;for(var n=0;n=a){this.dMultiply(l);this.dAddOffset(i,0);t=0;i=0}}if(t>0){this.dMultiply(Math.pow(e,t));this.dAddOffset(i,0)}if(s)r.ZERO.subTo(this,this)}function ee(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function re(){if(this.s<0)return-1;else if(this.t<=0||this.t==1&&this[0]<=0)return 0;else return 1}function ie(e){this[this.t]=this.am(0,e-1,this,0,0,this.t);++this.t;this.clamp()}function te(r,e){if(r==0)return;while(this.t<=e)this[this.t++]=0;this[e]+=r;while(this[e]>=this.DV){this[e]-=this.DV;if(++e>=this.t)this[this.t++]=0;++this[e]}}function ne(e){if(e==null)e=10;if(this.signum()==0||e<2||e>36)return"0";var s=this.chunkSize(e);var o=Math.pow(e,s);var a=c(o),r=t(),i=t(),n="";this.divRemTo(a,r,i);while(r.signum()>0){n=(o+i.intValue()).toString(e).substr(1)+n;r.divRemTo(a,r,i)}return i.intValue().toString(e)+n}function oe(){if(this.s<0){if(this.t==1)return this[0]-this.DV;else if(this.t==0)return-1}else if(this.t==1)return this[0];else if(this.t==0)return 0;return(this[1]&(1<<32-this.DB)-1)<>=this.DB}if(t.t>=this.DB}e+=this.s}else{e+=this.s;while(r>=this.DB}e+=t.s}i.s=e<0?-1:0;if(e>0)i[r++]=e;else if(e<-1)i[r++]=this.DV+e;i.t=r;i.clamp()}r.prototype.fromRadix=$;r.prototype.chunkSize=ee;r.prototype.signum=re;r.prototype.dMultiply=ie;r.prototype.dAddOffset=te;r.prototype.toRadix=ne;r.prototype.intValue=oe;r.prototype.addTo=ae;var i={abs:function(t,n){var i=new e.math.Long(t,n);var r;if(i.isNegative()){r=i.negate()}else{r=i}HEAP32[tempDoublePtr>>2]=r.low_;HEAP32[tempDoublePtr+4>>2]=r.high_},ensureTemps:function(){if(i.ensuredTemps)return;i.ensuredTemps=true;i.two32=new r;i.two32.fromString("4294967296",10);i.two64=new r;i.two64.fromString("18446744073709551616",10);i.temp1=new r;i.temp2=new r},lh2bignum:function(a,s){var e=new r;e.fromString(s.toString(),10);var t=new r;e.multiplyTo(i.two32,t);var n=new r;n.fromString(a.toString(),10);var o=new r;n.addTo(t,o);return o},stringify:function(o,a,s){var t=new e.math.Long(o,a).toString();if(s&&t[0]=="-"){i.ensureTemps();var n=new r;n.fromString(t,10);t=new r;i.two64.addTo(n,t);t=t.toString(10)}return t},fromString:function(h,l,d,c,u){i.ensureTemps();var t=new r;t.fromString(h,l);var a=new r;a.fromString(d,10);var o=new r;o.fromString(c,10);if(u&&t.compareTo(r.ZERO)<0){var f=new r;t.addTo(i.two64,f);t=f}var n=false;if(t.compareTo(a)<0){t=a;n=true}else if(t.compareTo(o)>0){t=o;n=true}var s=e.math.Long.fromString(t.toString());HEAP32[tempDoublePtr>>2]=s.low_;HEAP32[tempDoublePtr+4>>2]=s.high_;if(n)throw"range error"}};return i}();if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,STATIC_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(e){if(e.byteLength)e=new Uint8Array(e);HEAPU8.set(e,STATIC_BASE);removeRunDependency("memory initializer")};var request=Module["memoryInitializerRequest"];if(request){if(request.response){setTimeout(function(){applyMemoryInitializer(request.response)},0)}else{request.addEventListener("load",function(){if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status)}if(!request.response||typeof request.response!=="object"||!request.response.byteLength){console.warn("a problem seems to have happened with Module.memoryInitializerRequest response (expected ArrayBuffer): "+request.response)}applyMemoryInitializer(request.response)})}}else{Browser.asyncLoad(memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})}}}function ExitStatus(e){this.name="ExitStatus";this.message="Program terminated with exit("+e+")";this.status=e}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function S(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=S};Module["callMain"]=Module.callMain=function g(i){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");i=i||[];ensureInitRuntime();var n=i.length+1;function o(){for(var e=0;e<4-1;e++){r.push(0)}}var r=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];o();for(var t=0;t0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function r(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(ENVIRONMENT_IS_WEB&&preloadStartTime!==null){Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms")}if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](e);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);r()},1)}else{r()}}Module["run"]=Module.run=run;function exit(e,r){if(r&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=e;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](e)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",function(){process["exit"](e)});console.log(" ");setTimeout(function(){process["exit"](e)},500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(e)}throw new ExitStatus(e)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(e){if(e!==undefined){Module.print(e);Module.printErr(e);e=JSON.stringify(e)}else{e=""}ABORT=true;EXITSTATUS=1;var i="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var r="abort("+e+") at "+stackTrace()+i;if(abortDecorators){abortDecorators.forEach(function(i){r=i(r,e)})}throw r}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();var encoder_init=Module._encoder_init,encoder_clear=Module._encoder_clear,encoder_analysis_buffer=Module._encoder_analysis_buffer,encoder_process=Module._encoder_process,encoder_data_len=Module._encoder_data_len,encoder_transfer_data=Module._encoder_transfer_data,HEAPU8=Module.HEAPU8,HEAPU32=Module.HEAPU32,HEAPF32=Module.HEAPF32;var Encoder=function(e,r,i){this.numChannels=r;this.oggBuffers=[];this.encoder=encoder_init(this.numChannels,e,i)};Encoder.prototype.encode=function(r){var i=r[0].length;var t=encoder_analysis_buffer(this.encoder,i)>>2;for(var e=0;e>2);this.process(i)};Encoder.prototype.finish=function(e){this.process(0);var r=new Blob(this.oggBuffers,{type:e||"audio/ogg"});this.cleanup();return r};Encoder.prototype.cancel=Encoder.prototype.cleanup=function(){encoder_clear(this.encoder);delete this.encoder;delete this.oggBuffers};Encoder.prototype.process=function(i){encoder_process(this.encoder,i);var e=encoder_data_len(this.encoder);if(e>0){var r=encoder_transfer_data(this.encoder);this.oggBuffers.push(new Uint8Array(HEAPU8.subarray(r,r+e)))}};self.OggVorbisEncoder=Encoder})(self);var sampleRate=44100,numChannels=2,options=undefined,maxBuffers=undefined,encoder=undefined,recBuffers=undefined,bufferCount=0;function error(e){self.postMessage({command:"error",message:"ogg: "+e})}function init(e){sampleRate=e.config.sampleRate;numChannels=e.config.numChannels;options=e.options}function setOptions(e){if(encoder||recBuffers)error("cannot set options during recording");else options=e}function start(e){maxBuffers=Math.ceil(options.timeLimit*sampleRate/e);if(options.encodeAfterRecord)recBuffers=[];else encoder=new OggVorbisEncoder(sampleRate,numChannels,options.ogg.quality)}function record(e){if(bufferCount++0){encoder.encode(recBuffers.shift());var r=Date.now();if(r>e){postProgress((bufferCount-recBuffers.length)/bufferCount);e=r+options.progressInterval}}postProgress(1)}self.postMessage({command:"complete",blob:encoder.finish(options.ogg.mimeType)});cleanup()}function cleanup(){encoder=recBuffers=undefined;bufferCount=0}self.onmessage=function(r){var e=r.data;switch(e.command){case"init":init(e);break;case"options":setOptions(e.options);break;case"start":start(e.bufferSize);break;case"record":record(e.buffer);break;case"finish":finish();break;case"cancel":cleanup()}};self.postMessage({command:"loaded"});