// This is ammo.js, a port of Bullet Physics to JavaScript. zlib licensed. var Ammo = (function() { var Module = this; var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function";var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){return Module["read"](filename,true)};Module["load"]=function load(f){globalEval(read(f))};Module["thisProgram"]=process["argv"][1];Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){return read(f,"binary")};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}this["Module"]=Module}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WEB){window["Module"]=Module}else{Module["load"]=importScripts}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){throw"NO_DYNAMIC_EXECUTION was set, cannot eval"}if(!Module["load"]=="undefined"&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),forceAlign:(function(target,quantum){quantum=quantum||4;if(quantum==1)return target;if(isNumber(target)&&isNumber(quantum)){return Math.ceil(target/quantum)*quantum}else if(isNumber(quantum)&&isPowerOfTwo(quantum)){return"((("+target+")+"+(quantum-1)+")&"+ -quantum+")"}return"Math.ceil(("+target+")/"+quantum+")*"+quantum}),isNumberType:(function(type){return type in Runtime.INT_TYPES||type in Runtime.FLOAT_TYPES}),isPointerType:function isPointerType(type){return type[type.length-1]=="*"},isStructType:function isStructType(type){if(isPointerType(type))return false;if(isArrayType(type))return true;if(/?/.test(type))return true;return type[0]=="%"},INT_TYPES:{"i1":0,"i8":0,"i16":0,"i32":0,"i64":0},FLOAT_TYPES:{"float":0,"double":0},or64:(function(x,y){var l=x|0|(y|0);var h=(Math.round(x/4294967296)|Math.round(y/4294967296))*4294967296;return l+h}),and64:(function(x,y){var l=(x|0)&(y|0);var h=(Math.round(x/4294967296)&Math.round(y/4294967296))*4294967296;return l+h}),xor64:(function(x,y){var l=(x|0)^(y|0);var h=(Math.round(x/4294967296)^Math.round(y/4294967296))*4294967296;return l+h}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),dedup:function dedup(items,ident){var seen={};if(ident){return items.filter((function(item){if(seen[item[ident]])return false;seen[item[ident]]=true;return true}))}else{return items.filter((function(item){if(seen[item])return false;seen[item]=true;return true}))}},set:function set(){var args=typeof arguments[0]==="object"?arguments[0]:arguments;var ret={};for(var i=0;i=0){diffs.push(curr-prev)}prev=curr;return curr}));if(type.name_&&type.name_[0]==="["){type.flatSize=parseInt(type.name_.substr(1))*type.flatSize/2}type.flatSize=Runtime.alignMemory(type.flatSize,type.alignSize);if(diffs.length==0){type.flatFactor=type.flatSize}else if(Runtime.dedup(diffs).length==1){type.flatFactor=diffs[0]}type.needsFlattening=type.flatFactor!=1;return type.flatIndexes},generateStructInfo:(function(struct,typeName,offset){var type,alignment;if(typeName){offset=offset||0;type=(typeof Types==="undefined"?Runtime.typeInfo:Types.types)[typeName];if(!type)return null;if(type.fields.length!=struct.length){printErr("Number of named fields must match the type for "+typeName+": possibly duplicate struct names. Cannot return structInfo");return null}alignment=type.flatIndexes}else{var type={fields:struct.map((function(item){return item[0]}))};alignment=Runtime.calculateStructAlignment(type)}var ret={__size__:type.flatSize};if(typeName){struct.forEach((function(item,i){if(typeof item==="string"){ret[item]=alignment[i]+offset}else{var key;for(var k in item)key=k;ret[key]=Runtime.generateStructInfo(item[key],type.fields[i],alignment[i])}}))}else{struct.forEach((function(item,i){ret[item[1]]=alignment[i]}))}return ret}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i0)return""}var c1=buffer[0];var c2=buffer[1];var c3=buffer[2];var c4=buffer[3];var ret;if(buffer.length==2){ret=String.fromCharCode((c1&31)<<6|c2&63)}else if(buffer.length==3){ret=String.fromCharCode((c1&15)<<12|(c2&63)<<6|c3&63)}else{var codePoint=(c1&7)<<18|(c2&63)<<12|(c3&63)<<6|c4&63;ret=String.fromCharCode(Math.floor((codePoint-65536)/1024)+55296,(codePoint-65536)%1024+56320)}buffer.length=0;return ret});this.processJSString=function processJSString(string){string=unescape(encodeURIComponent(string));var ret=[];for(var i=0;i=TOTAL_MEMORY)enlargeMemory();return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:8))*(quantum?quantum:8);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){abort("NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional")}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var stack=0;var JSfuncs={"stackSave":(function(){stack=Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore(stack)}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc(str.length+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args){var func=getCFunc(ident);var cArgs=[];if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];if(t>=128)hasUtf=true;else if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(!hasUtf){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}var utf8=new Runtime.UTF8Processor;for(i=0;i>0];ret+=utf8.processCChar(t)}return ret}Module["Pointer_stringify"]=Pointer_stringify;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr){for(var i=0;i>1]=codeUnit}HEAP16[outPtr+str.length*2>>1]=0}Module["stringToUTF16"]=stringToUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr){var iChar=0;for(var iCodeUnit=0;iCodeUnit=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++iCodeUnit);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr+iChar*4>>2]=codeUnit;++iChar}HEAP32[outPtr+iChar*4>>2]=0}Module["stringToUTF32"]=stringToUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var final=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}final=parse()}catch(e){final+="?"}if(final.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return final}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){return x+4095&-4096}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||67108864;var FAST_MEMORY=Module["FAST_MEMORY"]||2097152;var totalMemory=4096;while(totalMemory0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=Module.addOnPreRun=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=Module.addOnInit=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=Module.addOnPreMain=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=Module.addOnExit=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=Module.addOnPostRun=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var ret=(new Runtime.UTF8Processor).processJSString(stringy);if(length){ret.length=length}if(!dontAddNull){ret.push(0)}return ret}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer+str.length>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;STATIC_BASE=8;STATICTOP=STATIC_BASE+Runtime.alignMemory(19803);__ATINIT__.push({func:(function(){__GLOBAL__I_a()})});allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,49,55,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,0,0,0,0,0,49,51,98,116,84,121,112,101,100,79,98,106,101,99,116,0,144,74,0,0,136,0,0,0,24,75,0,0,112,0,0,0,0,0,0,0,1,0,0,0,152,0,0,0,2,4,0,0,49,56,98,116,86,101,104,105,99,108,101,82,97,121,99,97,115,116,101,114,0,0,0,0,144,74,0,0,184,0,0,0,0,0,0,0,80,1,0,0,4,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,52,67,108,111,115,101,115,116,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,144,74,0,0,32,1,0,0,184,74,0,0,240,0,0,0,72,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,0,0,6,0,0,0,7,0,0,0,1,0,0,0,2,0,0,0,50,48,98,116,68,101,102,97,117,108,116,77,111,116,105,111,110,83,116,97,116,101,0,0,49,51,98,116,77,111,116,105,111,110,83,116,97,116,101,0,144,74,0,0,16,2,0,0,184,74,0,0,248,1,0,0,32,2,0,0,0,0,0,0,0,0,0,0,168,2,0,0,8,0,0,0,9,0,0,0,2,0,0,0,1,0,0,0,50,57,67,111,110,99,114,101,116,101,67,111,110,116,97,99,116,82,101,115,117,108,116,67,97,108,108,98,97,99,107,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,49,67,111,110,116,97,99,116,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,0,0,0,144,74,0,0,112,2,0,0,184,74,0,0,80,2,0,0,160,2,0,0,0,0,0,0,123,32,118,97,114,32,115,101,108,102,32,61,32,77,111,100,117,108,101,91,39,103,101,116,67,97,99,104,101,39,93,40,77,111,100,117,108,101,91,39,67,111,110,99,114,101,116,101,67,111,110,116,97,99,116,82,101,115,117,108,116,67,97,108,108,98,97,99,107,39,93,41,91,36,48,93,59,32,105,102,32,40,33,115,101,108,102,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,39,97,100,100,83,105,110,103,108,101,82,101,115,117,108,116,39,41,41,32,116,104,114,111,119,32,39,97,32,74,83,73,109,112,108,101,109,101,110,116,97,116,105,111,110,32,109,117,115,116,32,105,109,112,108,101,109,101,110,116,32,97,108,108,32,102,117,110,99,116,105,111,110,115,44,32,121,111,117,32,102,111,114,103,111,116,32,67,111,110,99,114,101,116,101,67,111,110,116,97,99,116,82,101,115,117,108,116,67,97,108,108,98,97,99,107,58,58,97,100,100,83,105,110,103,108,101,82,101,115,117,108,116,46,39,59,32,114,101,116,117,114,110,32,115,101,108,102,46,97,100,100,83,105,110,103,108,101,82,101,115,117,108,116,40,36,49,44,36,50,44,36,51,44,36,52,44,36,53,44,36,54,41,59,32,125,0,0,0,0,0,0,0,0,0,0,0,48,4,0,0,10,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,50,49,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,105,110,116,0,184,74,0,0,24,4,0,0,160,0,0,0,0,0,0,0,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,0,0,0,0,0,0,0,0,0,0,40,7,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,5,0,0,0,3,0,0,0,17,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,18,0,0,0,7,0,0,0,1,0,0,0,2,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,19,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,15,0,0,0,4,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,20,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,1,0,0,0,2,0,0,0,21,0,0,0,20,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,22,0,0,0,21,0,0,0,6,0,0,0,0,0,0,0,100,101,98,117,103,68,114,97,119,87,111,114,108,100,0,0,115,121,110,99,104,114,111,110,105,122,101,77,111,116,105,111,110,83,116,97,116,101,115,0,115,116,101,112,83,105,109,117,108,97,116,105,111,110,0,0,105,110,116,101,114,110,97,108,83,105,110,103,108,101,83,116,101,112,83,105,109,117,108,97,116,105,111,110,0,0,0,0,117,112,100,97,116,101,65,99,116,105,111,110,115,0,0,0,117,112,100,97,116,101,65,99,116,105,118,97,116,105,111,110,83,116,97,116,101,0,0,0,115,111,108,118,101,67,111,110,115,116,114,97,105,110,116,115,0,0,0,0,0,0,0,0,99,97,108,99,117,108,97,116,101,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,114,101,97,116,101,80,114,101,100,105,99,116,105,118,101,67,111,110,116,97,99,116,115,0,0,0,0,0,0,0,0,114,101,108,101,97,115,101,32,112,114,101,100,105,99,116,105,118,101,32,99,111,110,116,97,99,116,32,109,97,110,105,102,111,108,100,115,0,0,0,0,112,114,101,100,105,99,116,105,118,101,32,99,111,110,118,101,120,83,119,101,101,112,84,101,115,116,0,0,0,0,0,0,105,110,116,101,103,114,97,116,101,84,114,97,110,115,102,111,114,109,115,0,0,0,0,0,67,67,68,32,109,111,116,105,111,110,32,99,108,97,109,112,105,110,103,0,0,0,0,0,97,112,112,108,121,32,115,112,101,99,117,108,97,116,105,118,101,32,99,111,110,116,97,99,116,32,114,101,115,116,105,116,117,116,105,111,110,0,0,0,112,114,101,100,105,99,116,85,110,99,111,110,115,116,114,97,105,110,116,77,111,116,105,111,110,0,0,0,0,0,0,0,98,116,68,121,110,97,109,105,99,115,87,111,114,108,100,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,0,0,50,51,98,116,68,105,115,99,114,101,116,101,68,121,110,97,109,105,99,115,87,111,114,108,100,0,0,0,0,0,0,0,49,53,98,116,68,121,110,97,109,105,99,115,87,111,114,108,100,0,0,0,0,0,0,0,184,74,0,0,0,7,0,0,176,26,0,0,0,0,0,0,184,74,0,0,224,6,0,0,24,7,0,0,0,0,0,0,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116,97,0,0,0,0,0,0,0,83,80,72,69,82,69,0,0,0,0,0,0,32,8,0,0,23,0,0,0,24,0,0,0,5,0,0,0,3,0,0,0,51,52,98,116,67,108,111,115,101,115,116,78,111,116,77,101,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,0,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,55,67,108,111,115,101,115,116,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,0,0,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,0,0,0,0,144,74,0,0,216,7,0,0,184,74,0,0,160,7,0,0,8,8,0,0,0,0,0,0,184,74,0,0,120,7,0,0,16,8,0,0,0,0,0,0,0,0,0,0,16,8,0,0,25,0,0,0,26,0,0,0,6,0,0,0,4,0,0,0,0,0,0,0,184,8,0,0,27,0,0,0,28,0,0,0,1,0,0,0,0,0,0,0,50,55,73,110,112,108,97,99,101,83,111,108,118,101,114,73,115,108,97,110,100,67,97,108,108,98,97,99,107,0,0,0,78,50,53,98,116,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,77,97,110,97,103,101,114,49,52,73,115,108,97,110,100,67,97,108,108,98,97,99,107,69,0,0,0,144,74,0,0,128,8,0,0,184,74,0,0,96,8,0,0,176,8,0,0,0,0,0,0,0,0,0,0,32,9,0,0,29,0,0,0,30,0,0,0,31,0,0,0,1,0,0,0,22,0,0,0,23,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,7,0,0,0,3,0,0,0,0,0,0,0,50,51,98,116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,0,0,0,0,0,0,0,184,74,0,0,0,9,0,0,160,0,0,0,0,0,0,0,98,116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,32,0,0,0,33,0,0,0,1,0,0,0,24,0,0,0,7,0,0,0,8,0,0,0,5,0,0,0,0,0,0,0,49,54,98,116,82,97,121,99,97,115,116,86,101,104,105,99,108,101,0,0,0,0,0,0,49,55,98,116,65,99,116,105,111,110,73,110,116,101,114,102,97,99,101,0,0,0,0,0,144,74,0,0,8,12,0,0,184,74,0,0,240,11,0,0,32,12,0,0,0,0,0,0,0,0,0,0,112,12,0,0,34,0,0,0,35,0,0,0,1,0,0,0,0,0,0,0,50,53,98,116,68,101,102,97,117,108,116,86,101,104,105,99,108,101,82,97,121,99,97,115,116,101,114,0,0,0,0,0,184,74,0,0,80,12,0,0,208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,12,0,0,7,0,0,0,36,0,0,0,37,0,0,0,25,0,0,0,8,0,0,0,4,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,97,0,0,0,0,49,49,98,116,82,105,103,105,100,66,111,100,121,0,0,0,184,74,0,0,208,12,0,0,152,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,13,0,0,38,0,0,0,39,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,40,0,0,0,9,0,0,0,6,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,115,111,108,118,101,71,114,111,117,112,67,97,99,104,101,70,114,105,101,110,100,108,121,83,101,116,117,112,0,0,0,0,115,111,108,118,101,71,114,111,117,112,67,97,99,104,101,70,114,105,101,110,100,108,121,73,116,101,114,97,116,105,111,110,115,0,0,0,0,0,0,0,115,111,108,118,101,71,114,111,117,112,0,0,0,0,0,0,51,53,98,116,83,101,113,117,101,110,116,105,97,108,73,109,112,117,108,115,101,67,111,110,115,116,114,97,105,110,116,83,111,108,118,101,114,0,0,0,49,56,98,116,67,111,110,115,116,114,97,105,110,116,83,111,108,118,101,114,0,0,0,0,144,74,0,0,184,13,0,0,184,74,0,0,144,13,0,0,208,13,0,0,0,0,0,0,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,0,0,41,0,0,0,42,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,27,0,0,0,10,0,0,0,11,0,0,0,6,0,0,0,28,0,0,0,43,0,0,0,49,50,98,116,65,120,105,115,83,119,101,101,112,51,0,0,50,48,98,116,65,120,105,115,83,119,101,101,112,51,73,110,116,101,114,110,97,108,73,116,69,0,0,0,0,0,0,0,50,49,98,116,66,114,111,97,100,112,104,97,115,101,73,110,116,101,114,102,97,99,101,0,144,74,0,0,232,16,0,0,184,74,0,0,200,16,0,0,0,17,0,0,0,0,0,0,184,74,0,0,184,16,0,0,8,17,0,0,0,0,0,0,0,0,0,0,8,17,0,0,44,0,0,0,45,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,27,0,0,0,10,0,0,0,11,0,0,0,6,0,0,0,28,0,0,0,43,0,0,0,0,0,0,0,40,18,0,0,46,0,0,0,47,0,0,0,5,0,0,0,2,0,0,0,7,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,8,0,0,0,15,0,0,0,9,0,0,0,29,0,0,0,10,0,0,0,6,0,0,0,16,0,0,0,30,0,0,0,31,0,0,0,0,0,0,0,49,53,98,116,78,117,108,108,80,97,105,114,67,97,99,104,101,0,0,0,0,0,0,0,50,50,98,116,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,0,0,0,0,0,0,0,0,50,53,98,116,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,144,74,0,0,240,17,0,0,184,74,0,0,208,17,0,0,16,18,0,0,0,0,0,0,184,74,0,0,184,17,0,0,24,18,0,0,0,0,0,0,0,0,0,0,208,18,0,0,48,0,0,0,49,0,0,0,9,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,32,0,0,0,17,0,0,0,1,0,0,0,18,0,0,0,33,0,0,0,9,0,0,0,2,0,0,0,19,0,0,0,7,0,0,0,34,0,0,0,12,0,0,0,13,0,0,0,2,0,0,0,10,0,0,0,11,0,0,0,20,0,0,0,14,0,0,0,8,0,0,0,21,0,0,0,22,0,0,0,12,0,0,0,15,0,0,0,23,0,0,0,13,0,0,0,1,0,0,0,16,0,0,0,49,48,98,116,66,111,120,83,104,97,112,101,0,0,0,0,184,74,0,0,192,18,0,0,48,56,0,0,0,0,0,0,66,111,120,0,0,0,0,0,0,0,0,0,128,19,0,0,50,0,0,0,51,0,0,0,14,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,35,0,0,0,24,0,0,0,2,0,0,0,25,0,0,0,33,0,0,0,10,0,0,0,3,0,0,0,26,0,0,0,8,0,0,0,34,0,0,0,15,0,0,0,17,0,0,0,18,0,0,0,36,0,0,0,37,0,0,0,0,0,0,0,98,116,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,68,97,116,97,0,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,0,0,0,0,0,0,0,0,184,74,0,0,96,19,0,0,72,61,0,0,0,0,0,0,66,86,72,84,82,73,65,78,71,76,69,77,69,83,72,0,0,0,0,0,72,20,0,0,52,0,0,0,53,0,0,0,19,0,0,0,0,0,0,0,90,78,75,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,57,112,114,111,99,101,115,115,65,108,108,84,114,105,97,110,103,108,101,115,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,50,49,77,121,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,0,0,50,49,98,116,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,144,74,0,0,40,20,0,0,184,74,0,0,184,19,0,0,64,20,0,0,0,0,0,0,0,0,0,0,232,20,0,0,54,0,0,0,55,0,0,0,20,0,0,0,0,0,0,0,90,78,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,55,112,101,114,102,111,114,109,67,111,110,118,101,120,99,97,115,116,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,83,52,95,83,52,95,69,50,49,77,121,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,184,74,0,0,112,20,0,0,64,20,0,0,0,0,0,0,0,0,0,0,120,21,0,0,56,0,0,0,57,0,0,0,21,0,0,0,0,0,0,0,90,78,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,52,112,101,114,102,111,114,109,82,97,121,99,97,115,116,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,50,49,77,121,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,184,74,0,0,16,21,0,0,64,20,0,0,0,0,0,0,0,0,0,0,216,22,0,0,58,0,0,0,59,0,0,0,16,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,38,0,0,0,17,0,0,0,3,0,0,0,27,0,0,0,39,0,0,0,11,0,0,0,2,0,0,0,28,0,0,0,9,0,0,0,34,0,0,0,22,0,0,0,23,0,0,0,2,0,0,0,17,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,60,0,0,0,61,0,0,0,16,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,38,0,0,0,17,0,0,0,3,0,0,0,30,0,0,0,39,0,0,0,11,0,0,0,2,0,0,0,28,0,0,0,9,0,0,0,34,0,0,0,22,0,0,0,23,0,0,0,2,0,0,0,17,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,40,23,0,0,62,0,0,0,63,0,0,0,16,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,38,0,0,0,17,0,0,0,3,0,0,0,31,0,0,0,39,0,0,0,11,0,0,0,2,0,0,0,28,0,0,0,9,0,0,0,34,0,0,0,22,0,0,0,23,0,0,0,2,0,0,0,17,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,49,52,98,116,67,97,112,115,117,108,101,83,104,97,112,101,0,0,0,0,0,0,0,0,184,74,0,0,192,22,0,0,64,37,0,0,0,0,0,0,49,53,98,116,67,97,112,115,117,108,101,83,104,97,112,101,88,0,0,0,0,0,0,0,184,74,0,0,232,22,0,0,216,22,0,0,0,0,0,0,49,53,98,116,67,97,112,115,117,108,101,83,104,97,112,101,90,0,0,0,0,0,0,0,184,74,0,0,16,23,0,0,216,22,0,0,0,0,0,0,67,97,112,115,117,108,101,90,0,0,0,0,0,0,0,0,67,97,112,115,117,108,101,88,0,0,0,0,0,0,0,0,98,116,67,97,112,115,117,108,101,83,104,97,112,101,68,97,116,97,0,0,0,0,0,0,67,97,112,115,117,108,101,83,104,97,112,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,23,0,0,64,0,0,0,65,0,0,0,3,0,0,0,10,0,0,0,40,0,0,0,41,0,0,0,11,0,0,0,12,0,0,0,18,0,0,0,32,0,0,0,9,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,10,0,0,0,42,0,0,0,50,49,98,116,67,111,108,108,105,115,105,111,110,68,105,115,112,97,116,99,104,101,114,0,184,74,0,0,208,23,0,0,32,45,0,0,0,0,0,0,0,0,0,0,80,24,0,0,66,0,0,0,67,0,0,0,11,0,0,0,0,0,0,0,50,51,98,116,67,111,108,108,105,115,105,111,110,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,49,55,98,116,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,0,0,0,0,144,74,0,0,48,24,0,0,184,74,0,0,16,24,0,0,72,24,0,0,0,0,0,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,0,0,0,0,0,144,74,0,0,128,24,0,0,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,0,0,0,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,0,0,0,0,0,144,74,0,0,184,24,0,0,0,0,0,0,176,26,0,0,68,0,0,0,69,0,0,0,15,0,0,0,16,0,0,0,5,0,0,0,3,0,0,0,70,0,0,0,1,0,0,0,2,0,0,0,19,0,0,0,43,0,0,0,18,0,0,0,44,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,79,118,101,114,102,108,111,119,32,105,110,32,65,65,66,66,44,32,111,98,106,101,99,116,32,114,101,109,111,118,101,100,32,102,114,111,109,32,115,105,109,117,108,97,116,105,111,110,0,0,0,0,0,0,0,0,73,102,32,121,111,117,32,99,97,110,32,114,101,112,114,111,100,117,99,101,32,116,104,105,115,44,32,112,108,101,97,115,101,32,101,109,97,105,108,32,98,117,103,115,64,99,111,110,116,105,110,117,111,117,115,112,104,121,115,105,99,115,46,99,111,109,10,0,0,0,0,0,80,108,101,97,115,101,32,105,110,99,108,117,100,101,32,97,98,111,118,101,32,105,110,102,111,114,109,97,116,105,111,110,44,32,121,111,117,114,32,80,108,97,116,102,111,114,109,44,32,118,101,114,115,105,111,110,32,111,102,32,79,83,46,10,0,0,0,0,0,0,0,0,84,104,97,110,107,115,46,10,0,0,0,0,0,0,0,0,117,112,100,97,116,101,65,97,98,98,115,0,0,0,0,0,99,97,108,99,117,108,97,116,101,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,115,0,0,0,0,0,0,0,112,101,114,102,111,114,109,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,105,111,110,0,0,0,0,0,0,0,100,105,115,112,97,116,99,104,65,108,108,67,111,108,108,105,115,105,111,110,80,97,105,114,115,0,0,0,0,0,0,0,99,111,110,118,101,120,83,119,101,101,112,67,111,109,112,111,117,110,100,0,0,0,0,0,99,111,110,118,101,120,83,119,101,101,112,84,101,115,116,0,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,0,0,0,0,0,0,144,74,0,0,152,26,0,0,0,0,0,0,0,27,0,0,71,0,0,0,72,0,0,0,20,0,0,0,21,0,0,0,252,255,255,255,0,27,0,0,73,0,0,0,74,0,0,0,22,0,0,0,0,0,0,0,49,55,68,101,98,117,103,68,114,97,119,99,97,108,108,98,97,99,107,0,0,0,0,0,24,75,0,0,232,26,0,0,0,0,0,0,2,0,0,0,48,60,0,0,2,0,0,0,96,60,0,0,2,4,0,0,50,52,98,116,66,114,111,97,100,112,104,97,115,101,65,97,98,98,67,97,108,108,98,97,99,107,0,0,0,0,0,0,144,74,0,0,32,27,0,0,0,0,0,0,168,27,0,0,75,0,0,0,76,0,0,0,12,0,0,0,0,0,0,0,50,49,98,116,83,105,110,103,108,101,83,119,101,101,112,67,97,108,108,98,97,99,107,0,50,51,98,116,66,114,111,97,100,112,104,97,115,101,82,97,121,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,184,74,0,0,120,27,0,0,64,27,0,0,0,0,0,0,184,74,0,0,96,27,0,0,152,27,0,0,0,0,0,0,0,0,0,0,232,27,0,0,77,0,0,0,78,0,0,0,13,0,0,0,0,0,0,0,49,57,98,116,83,105,110,103,108,101,82,97,121,67,97,108,108,98,97,99,107,0,0,0,184,74,0,0,208,27,0,0,152,27,0,0,0,0,0,0,0,0,0,0,176,28,0,0,79,0,0,0,80,0,0,0,14,0,0,0,6,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,53,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,49,52,76,111,99,97,108,73,110,102,111,65,100,100,101,114,95,49,0,0,184,74,0,0,16,28,0,0,8,8,0,0,0,0,0,0,0,0,0,0,144,29,0,0,81,0,0,0,82,0,0,0,23,0,0,0,1,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,53,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,51,50,66,114,105,100,103,101,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,95,48,0,0,0,0,0,0,0,0,184,74,0,0,216,28,0,0,88,57,0,0,0,0,0,0,0,0,0,0,104,30,0,0,83,0,0,0,84,0,0,0,23,0,0,0,2,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,53,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,51,50,66,114,105,100,103,101,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,0,0,184,74,0,0,184,29,0,0,88,57,0,0,0,0,0,0,0,0,0,0,24,31,0,0,85,0,0,0,86,0,0,0,15,0,0,0,7,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,49,114,97,121,84,101,115,116,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,49,53,76,111,99,97,108,73,110,102,111,65,100,100,101,114,50,0,0,0,0,184,74,0,0,144,30,0,0,72,1,0,0,0,0,0,0,0,0,0,0,240,31,0,0,87,0,0,0,88,0,0,0,25,0,0,0,45,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,49,114,97,121,84,101,115,116,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,57,82,97,121,84,101,115,116,101,114,95,49,0,78,54,98,116,68,98,118,116,56,73,67,111,108,108,105,100,101,69,0,0,0,0,0,0,144,74,0,0,208,31,0,0,184,74,0,0,80,31,0,0,232,31,0,0,0,0,0,0,0,0,0,0,176,32,0,0,89,0,0,0,90,0,0,0,24,0,0,0,1,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,49,114,97,121,84,101,115,116,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,50,57,66,114,105,100,103,101,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,95,48,0,0,0,0,184,74,0,0,24,32,0,0,40,57,0,0,0,0,0,0,0,0,0,0,112,33,0,0,91,0,0,0,92,0,0,0,24,0,0,0,2,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,49,114,97,121,84,101,115,116,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,50,57,66,114,105,100,103,101,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,0,0,0,0,0,0,184,74,0,0,216,32,0,0,40,57,0,0,0,0,0,0,0,0,0,0,192,33,0,0,12,0,0,0,46,0,0,0,26,0,0,0,93,0,0,0,94,0,0,0,0,0,0,0,78,49,50,98,116,67,111,110,118,101,120,67,97,115,116,49,48,67,97,115,116,82,101,115,117,108,116,69,0,0,0,0,144,74,0,0,160,33,0,0,0,0,0,0,104,34,0,0,95,0,0,0,96,0,0,0,25,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,47,0,0,0,36,0,0,0,4,0,0,0,37,0,0,0,33,0,0,0,13,0,0,0,4,0,0,0,38,0,0,0,13,0,0,0,34,0,0,0,48,0,0,0,97,0,0,0,98,116,67,111,109,112,111,117,110,100,83,104,97,112,101,67,104,105,108,100,68,97,116,97,0,0,0,0,0,0,0,0,98,116,67,111,109,112,111,117,110,100,83,104,97,112,101,68,97,116,97,0,0,0,0,0,49,53,98,116,67,111,109,112,111,117,110,100,83,104,97,112,101,0,0,0,0,0,0,0,184,74,0,0,80,34,0,0,208,24,0,0,0,0,0,0,67,111,109,112,111,117,110,100,0,0,0,0,0,0,0,0,0,0,0,0,208,35,0,0,98,0,0,0,99,0,0,0,26,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,49,0,0,0,17,0,0,0,5,0,0,0,39,0,0,0,50,0,0,0,14,0,0,0,2,0,0,0,40,0,0,0,14,0,0,0,34,0,0,0,27,0,0,0,28,0,0,0,2,0,0,0,27,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,240,35,0,0,100,0,0,0,101,0,0,0,26,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,49,0,0,0,17,0,0,0,5,0,0,0,41,0,0,0,51,0,0,0,14,0,0,0,2,0,0,0,40,0,0,0,14,0,0,0,34,0,0,0,27,0,0,0,28,0,0,0,2,0,0,0,27,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,16,36,0,0,102,0,0,0,103,0,0,0,26,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,49,0,0,0,17,0,0,0,5,0,0,0,42,0,0,0,52,0,0,0,14,0,0,0,2,0,0,0,40,0,0,0,14,0,0,0,34,0,0,0,27,0,0,0,28,0,0,0,2,0,0,0,27,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,49,49,98,116,67,111,110,101,83,104,97,112,101,0,0,0,184,74,0,0,192,35,0,0,64,37,0,0,0,0,0,0,49,50,98,116,67,111,110,101,83,104,97,112,101,90,0,0,184,74,0,0,224,35,0,0,208,35,0,0,0,0,0,0,49,50,98,116,67,111,110,101,83,104,97,112,101,88,0,0,184,74,0,0,0,36,0,0,208,35,0,0,0,0,0,0,67,111,110,101,88,0,0,0,67,111,110,101,90,0,0,0,98,116,67,111,110,101,83,104,97,112,101,68,97,116,97,0,67,111,110,101,0,0,0,0,0,0,0,0,128,36,0,0,104,0,0,0,105,0,0,0,1,0,0,0,0,0,0,0,50,55,98,116,67,111,110,116,105,110,117,111,117,115,67,111,110,118,101,120,67,111,108,108,105,115,105,111,110,0,0,0,184,74,0,0,96,36,0,0,32,37,0,0,0,0,0,0,0,0,0,0,0,37,0,0,106,0,0,0,107,0,0,0,29,0,0,0,30,0,0,0,3,0,0,0,0,0,0,0,49,54,98,116,80,111,105,110,116,67,111,108,108,101,99,116,111,114,0,0,0,0,0,0,78,51,54,98,116,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,111,114,73,110,116,101,114,102,97,99,101,54,82,101,115,117,108,116,69,0,144,74,0,0,200,36,0,0,184,74,0,0,176,36,0,0,248,36,0,0,0,0,0,0,49,50,98,116,67,111,110,118,101,120,67,97,115,116,0,0,144,74,0,0,16,37,0,0,50,49,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,0,184,74,0,0,40,37,0,0,96,37,0,0,0,0,0,0,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,0,184,74,0,0,80,37,0,0,208,24,0,0,0,0,0,0,0,0,0,0,192,38,0,0,108,0,0,0,109,0,0,0,28,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,53,0,0,0,17,0,0,0,6,0,0,0,43,0,0,0,54,0,0,0,15,0,0,0,2,0,0,0,44,0,0,0,15,0,0,0,34,0,0,0,31,0,0,0,32,0,0,0,2,0,0,0,29,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,5,0,0,0,0,0,0,0,232,38,0,0,110,0,0,0,111,0,0,0,28,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,53,0,0,0,17,0,0,0,6,0,0,0,45,0,0,0,54,0,0,0,15,0,0,0,2,0,0,0,44,0,0,0,15,0,0,0,34,0,0,0,31,0,0,0,33,0,0,0,2,0,0,0,30,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,6,0,0,0,0,0,0,0,16,39,0,0,112,0,0,0,113,0,0,0,28,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,53,0,0,0,17,0,0,0,6,0,0,0,46,0,0,0,54,0,0,0,15,0,0,0,2,0,0,0,44,0,0,0,15,0,0,0,34,0,0,0,31,0,0,0,34,0,0,0,2,0,0,0,31,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,7,0,0,0,49,53,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,0,0,0,0,0,0,0,184,74,0,0,168,38,0,0,64,37,0,0,0,0,0,0,49,54,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,88,0,0,0,0,0,0,184,74,0,0,208,38,0,0,192,38,0,0,0,0,0,0,49,54,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,90,0,0,0,0,0,0,184,74,0,0,248,38,0,0,192,38,0,0,0,0,0,0,67,121,108,105,110,100,101,114,90,0,0,0,0,0,0,0,67,121,108,105,110,100,101,114,88,0,0,0,0,0,0,0,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,68,97,116,97,0,0,0,0,0,67,121,108,105,110,100,101,114,89,0,0,0,0,0,0,0,0,0,0,0,192,39,0,0,114,0,0,0,115,0,0,0,2,0,0,0,35,0,0,0,3,0,0,0,32,0,0,0,3,0,0,0,33,0,0,0,55,0,0,0,47,0,0,0,48,0,0,0,36,0,0,0,56,0,0,0,116,0,0,0,49,54,98,116,68,98,118,116,66,114,111,97,100,112,104,97,115,101,0,0,0,0,0,0,184,74,0,0,168,39,0,0,0,17,0,0,0,0,0,0,0,0,0,0,16,40,0,0,117,0,0,0,118,0,0,0,25,0,0,0,57,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,50,48,66,114,111,97,100,112,104,97,115,101,65,97,98,98],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([84,101,115,116,101,114,0,0,184,74,0,0,248,39,0,0,232,31,0,0,0,0,0,0,0,0,0,0,96,40,0,0,119,0,0,0,120,0,0,0,25,0,0,0,58,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,49,57,66,114,111,97,100,112,104,97,115,101,82,97,121,84,101,115,116,101,114,0,0,0,184,74,0,0,72,40,0,0,232,31,0,0,0,0,0,0,0,0,0,0,176,40,0,0,121,0,0,0,122,0,0,0,37,0,0,0,59,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,49,56,98,116,68,98,118,116,84,114,101,101,67,111,108,108,105,100,101,114,0,0,0,0,184,74,0,0,152,40,0,0,232,31,0,0,0,0,0,0,0,0,0,0,48,41,0,0,123,0,0,0,124,0,0,0,49,0,0,0,50,0,0,0,16,0,0,0,51,0,0,0,51,49,98,116,68,101,102,97,117,108,116,67,111,108,108,105,115,105,111,110,67,111,110,102,105,103,117,114,97,116,105,111,110,0,0,0,0,0,0,0,50,52,98,116,67,111,108,108,105,115,105,111,110,67,111,110,102,105,103,117,114,97,116,105,111,110,0,0,0,0,0,0,144,74,0,0,8,41,0,0,184,74,0,0,224,40,0,0,40,41,0,0,0,0,0,0,0,0,0,0,184,41,0,0,125,0,0,0,126,0,0,0,4,0,0,0,0,0,0,0,78,51,49,98,116,67,111,110,118,101,120,80,108,97,110,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,51,48,98,116,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,67,114,101,97,116,101,70,117,110,99,0,0,0,0,0,0,0,0,144,74,0,0,136,41,0,0,184,74,0,0,88,41,0,0,176,41,0,0,0,0,0,0,0,0,0,0,16,42,0,0,127,0,0,0,128,0,0,0,5,0,0,0,0,0,0,0,78,50,54,98,116,66,111,120,66,111,120,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,184,74,0,0,224,41,0,0,176,41,0,0,0,0,0,0,0,0,0,0,112,42,0,0,129,0,0,0,130,0,0,0,6,0,0,0,0,0,0,0,78,51,52,98,116,83,112,104,101,114,101,84,114,105,97,110,103,108,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,184,74,0,0,56,42,0,0,176,41,0,0,0,0,0,0,0,0,0,0,208,42,0,0,131,0,0,0,132,0,0,0,7,0,0,0,0,0,0,0,78,51,50,98,116,83,112,104,101,114,101,83,112,104,101,114,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,184,74,0,0,152,42,0,0,176,41,0,0,0,0,0,0,0,0,0,0,32,43,0,0,133,0,0,0,134,0,0,0,8,0,0,0,0,0,0,0,78,49,54,98,116,69,109,112,116,121,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,184,74,0,0,248,42,0,0,176,41,0,0,0,0,0,0,0,0,0,0,128,43,0,0,135,0,0,0,136,0,0,0,9,0,0,0,0,0,0,0,78,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,55,83,119,97,112,112,101,100,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,184,74,0,0,72,43,0,0,176,41,0,0,0,0,0,0,0,0,0,0,224,43,0,0,137,0,0,0,138,0,0,0,10,0,0,0,0,0,0,0,78,51,54,98,116,67,111,109,112,111,117,110,100,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,184,74,0,0,168,43,0,0,176,41,0,0,0,0,0,0,0,0,0,0,56,44,0,0,139,0,0,0,140,0,0,0,11,0,0,0,0,0,0,0,78,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,184,74,0,0,8,44,0,0,176,41,0,0,0,0,0,0,0,0,0,0,160,44,0,0,141,0,0,0,142,0,0,0,12,0,0,0,0,0,0,0,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,55,83,119,97,112,112,101,100,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,184,74,0,0,96,44,0,0,176,41,0,0,0,0,0,0,0,0,0,0,0,45,0,0,143,0,0,0,144,0,0,0,13,0,0,0,0,0,0,0,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,184,74,0,0,200,44,0,0,176,41,0,0,0,0,0,0,49,50,98,116,68,105,115,112,97,116,99,104,101,114,0,0,144,74,0,0,16,45,0,0,0,0,0,0,128,45,0,0,145,0,0,0,146,0,0,0,4,0,0,0,1,0,0,0,60,0,0,0,0,0,0,0,49,54,98,116,69,109,112,116,121,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,50,48,98,116,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,144,74,0,0,96,45,0,0,184,74,0,0,72,45,0,0,120,45,0,0,0,0,0,0,0,0,0,0,192,45,0,0,147,0,0,0,148,0,0,0,2,0,0,0,0,0,0,0,49,53,98,116,71,106,107,67,111,110,118,101,120,67,97,115,116,0,0,0,0,0,0,0,184,74,0,0,168,45,0,0,32,37,0,0,0,0,0,0,0,0,0,0,64,46,0,0,149,0,0,0,150,0,0,0,1,0,0,0,0,0,0,0,51,48,98,116,71,106,107,69,112,97,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,0,0,0,51,48,98,116,67,111,110,118,101,120,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,0,0,0,144,74,0,0,16,46,0,0,184,74,0,0,232,45,0,0,56,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,46,0,0,151,0,0,0,152,0,0,0,5,0,0,0,0,0,0,0,49,55,98,116,71,106,107,80,97,105,114,68,101,116,101,99,116,111,114,0,0,0,0,0,51,54,98,116,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,111,114,73,110,116,101,114,102,97,99,101,0,0,144,74,0,0,144,46,0,0,184,74,0,0,120,46,0,0,184,46,0,0,0,0,0,0,0,0,0,0,8,47,0,0,153,0,0,0,154,0,0,0,38,0,0,0,39,0,0,0,4,0,0,0,0,0,0,0,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,0,0,0,0,0,0,184,74,0,0,240,46,0,0,248,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,51,0,0,155,0,0,0,156,0,0,0,2,0,0,0,0,0,0,0,51,51,98,116,77,105,110,107,111,119,115,107,105,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,184,74,0,0,24,51,0,0,56,46,0,0,0,0,0,0,0,0,0,0,32,52,0,0,157,0,0,0,158,0,0,0,40,0,0,0,41,0,0,0,5,0,0,0,0,0,0,0,90,78,51,51,98,116,77,105,110,107,111,119,115,107,105,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,49,50,99,97,108,99,80,101,110,68,101,112,116,104,69,82,50,50,98,116,86,111,114,111,110,111,105,83,105,109,112,108,101,120,83,111,108,118,101,114,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,83,52,95,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,55,95,82,57,98,116,86,101,99,116,111,114,51,83,57,95,83,57,95,80,49,50,98,116,73,68,101,98,117,103,68,114,97,119,69,50,48,98,116,73,110,116,101,114,109,101,100,105,97,116,101,82,101,115,117,108,116,0,0,0,0,0,0,184,74,0,0,112,51,0,0,248,36,0,0,0,0,0,0,0,0,0,0,112,52,0,0,159,0,0,0,160,0,0,0,14,0,0,0,52,0,0,0,17,0,0,0,61,0,0,0,62,0,0,0,15,0,0,0,49,52,98,116,79,112,116,105,109,105,122,101,100,66,118,104,0,0,0,0,0,0,0,0,184,74,0,0,88,52,0,0,232,56,0,0,0,0,0,0,0,0,0,0,248,52,0,0,161,0,0,0,162,0,0,0,34,0,0,0,0,0,0,0,90,78,49,52,98,116,79,112,116,105,109,105,122,101,100,66,118,104,53,98,117,105,108,100,69,80,50,51,98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97,99,101,98,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,50,48,78,111,100,101,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,95,48,0,0,0,0,184,74,0,0,152,52,0,0,96,60,0,0,0,0,0,0,0,0,0,0,136,53,0,0,163,0,0,0,164,0,0,0,35,0,0,0,0,0,0,0,90,78,49,52,98,116,79,112,116,105,109,105,122,101,100,66,118,104,53,98,117,105,108,100,69,80,50,51,98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97,99,101,98,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,50,57,81,117,97,110,116,105,122,101,100,78,111,100,101,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,0,0,0,0,0,184,74,0,0,32,53,0,0,96,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,54,0,0,165,0,0,0,166,0,0,0,18,0,0,0,16,0,0,0,42,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,43,0,0,0,56,0,0,0,44,0,0,0,63,0,0,0,45,0,0,0,19,0,0,0,57,0,0,0,64,0,0,0,65,0,0,0,0,0,0,0,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,0,0,184,74,0,0,8,54,0,0,24,18,0,0,0,0,0,0,0,0,0,0,216,54,0,0,167,0,0,0,168,0,0,0,18,0,0,0,0,0,0,0,90,78,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,51,55,114,101,109,111,118,101,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,115,67,111,110,116,97,105,110,105,110,103,80,114,111,120,121,69,80,49,55,98,116,66,114,111,97,100,112,104,97,115,101,80,114,111,120,121,80,49,50,98,116,68,105,115,112,97,116,99,104,101,114,69,49,56,82,101,109,111,118,101,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,184,74,0,0,80,54,0,0,72,24,0,0,0,0,0,0,0,0,0,0,112,55,0,0,169,0,0,0,170,0,0,0,19,0,0,0,0,0,0,0,90,78,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,49,57,99,108,101,97,110,80,114,111,120,121,70,114,111,109,80,97,105,114,115,69,80,49,55,98,116,66,114,111,97,100,112,104,97,115,101,80,114,111,120,121,80,49,50,98,116,68,105,115,112,97,116,99,104,101,114,69,49,55,67,108,101,97,110,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,184,74,0,0,0,55,0,0,72,24,0,0,0,0,0,0,10,215,163,60,0,0,0,0,0,0,0,0,48,56,0,0,171,0,0,0,172,0,0,0,26,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,66,0,0,0,17,0,0,0,7,0,0,0,1,0,0,0,33,0,0,0,14,0,0,0,2,0,0,0,19,0,0,0,7,0,0,0,34,0,0,0,22,0,0,0,46,0,0,0,2,0,0,0,36,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,8,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,50,51,98,116,80,111,108,121,104,101,100,114,97,108,67,111,110,118,101,120,83,104,97,112,101,0,0,0,0,0,0,0,184,74,0,0,16,56,0,0,64,37,0,0,0,0,0,0,0,0,0,0,232,56,0,0,173,0,0,0,174,0,0,0,14,0,0,0,52,0,0,0,17,0,0,0,61,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,116,79,112,116,105,109,105,122,101,100,66,118,104,78,111,100,101,68,97,116,97,0,0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,78,111,100,101,68,97,116,97,0,0,98,116,66,118,104,83,117,98,116,114,101,101,73,110,102,111,68,97,116,97,0,0,0,0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,70,108,111,97,116,68,97,116,97,0,49,52,98,116,81,117,97,110,116,105,122,101,100,66,118,104,0,0,0,0,0,0,0,0,144,74,0,0,208,56,0,0,0,0,0,0,88,57,0,0,175,0,0,0,176,0,0,0,23,0,0,0,1,0,0,0,50,53,98,116,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,0,0,0,0,0,184,74,0,0,8,57,0,0,48,60,0,0,0,0,0,0,50,56,98,116,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,0,0,184,74,0,0,56,57,0,0,48,60,0,0,0,0,0,0,0,0,0,0,8,58,0,0,177,0,0,0,178,0,0,0,37,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,66,0,0,0,17,0,0,0,8,0,0,0,58,0,0,0,33,0,0,0,14,0,0,0,2,0,0,0,19,0,0,0,7,0,0,0,34,0,0,0,22,0,0,0,47,0,0,0,2,0,0,0,38,0,0,0,11,0,0,0,59,0,0,0,48,0,0,0,8,0,0,0,60,0,0,0,61,0,0,0,39,0,0,0,49,0,0,0,62,0,0,0,40,0,0,0,2,0,0,0,41,0,0,0,49,53,98,116,84,114,105,97,110,103,108,101,83,104,97,112,101,0,0,0,0,0,0,0,184,74,0,0,240,57,0,0,48,56,0,0,0,0,0,0,84,114,105,97,110,103,108,101,0,0,0,0,0,0,0,0,0,0,0,0,144,58,0,0,179,0,0,0,180,0,0,0,50,0,0,0,67,0,0,0,105,115,108,97,110,100,85,110,105,111,110,70,105,110,100,65,110,100,81,117,105,99,107,83,111,114,116,0,0,0,0,0,112,114,111,99,101,115,115,73,115,108,97,110,100,115,0,0,50,53,98,116,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,77,97,110,97,103,101,114,0,0,0,0,0,144,74,0,0,112,58,0,0,0,0,0,0,16,59,0,0,181,0,0,0,182,0,0,0,42,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,66,0,0,0,17,0,0,0,9,0,0,0,63,0,0,0,33,0,0,0,16,0,0,0,8,0,0,0,19,0,0,0,7,0,0,0,34,0,0,0,51,0,0,0,52,0,0,0,2,0,0,0,43,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,49,51,98,116,83,112,104,101,114,101,83,104,97,112,101,0,184,74,0,0,0,59,0,0,64,37,0,0,0,0,0,0,0,0,0,0,104,59,0,0,183,0,0,0,184,0,0,0,6,0,0,0,2,0,0,0,68,0,0,0,0,0,0,0,51,50,98,116,83,112,104,101,114,101,83,112,104,101,114,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,184,74,0,0,64,59,0,0,168,62,0,0,0,0,0,0,0,0,0,0,192,59,0,0,185,0,0,0,186,0,0,0,7,0,0,0,3,0,0,0,69,0,0,0,0,0,0,0,51,52,98,116,83,112,104,101,114,101,84,114,105,97,110,103,108,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,184,74,0,0,152,59,0,0,168,62,0,0,0,0,0,0,0,0,0,0,8,60,0,0,187,0,0,0,188,0,0,0,3,0,0,0,0,0,0,0,50,50,98,116,83,117,98,115,105,109,112,108,101,120,67,111,110,118,101,120,67,97,115,116,0,0,0,0,0,0,0,0,184,74,0,0,232,59,0,0,32,37,0,0,0,0,0,0,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,0,0,0,0,144,74,0,0,24,60,0,0,51,49,98,116,73,110,116,101,114,110,97,108,84,114,105,97,110,103,108,101,73,110,100,101,120,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,144,74,0,0,56,60,0,0,0,0,0,0,200,60,0,0,189,0,0,0,190,0,0,0,44,0,0,0,1,0,0,0,2,0,0,0,70,0,0,0,71,0,0,0,64,0,0,0,72,0,0,0,73,0,0,0,65,0,0,0,53,0,0,0,54,0,0,0,66,0,0,0,20,0,0,0,0,0,0,0,49,52,98,116,84,114,105,97,110,103,108,101,77,101,115,104,0,0,0,0,0,0,0,0,184,74,0,0,176,60,0,0,248,70,0,0,0,0,0,0,0,0,0,0,72,61,0,0,191,0,0,0,192,0,0,0,14,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,74,0,0,0,24,0,0,0,2,0,0,0,67,0,0,0,33,0,0,0,10,0,0,0,3,0,0,0,68,0,0,0,21,0,0,0,34,0,0,0,45,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,49,57,98,116,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,0,0,0,184,74,0,0,48,61,0,0,192,64,0,0,0,0,0,0,84,82,73,65,78,71,76,69,77,69,83,72,0,0,0,0,0,0,0,0,152,61,0,0,193,0,0,0,194,0,0,0,46,0,0,0,0,0,0,0,50,49,83,117,112,112,111,114,116,86,101,114,116,101,120,67,97,108,108,98,97,99,107,0,184,74,0,0,128,61,0,0,48,60,0,0,0,0,0,0,0,0,0,0,40,62,0,0,195,0,0,0,196,0,0,0,47,0,0,0,0,0,0,0,90,78,75,49,57,98,116,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,57,112,114,111,99,101,115,115,65,108,108,84,114,105,97,110,103,108,101,115,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,49,54,70,105,108,116,101,114,101,100,67,97,108,108,98,97,99,107,0,0,0,184,74,0,0,192,61,0,0,96,60,0,0,0,0,0,0,0,0,0,0,112,62,0,0,197,0,0,0,198,0,0,0,8,0,0,0,0,0,0,0,50,50,83,112,104,101,114,101,84,114,105,97,110,103,108,101,68,101,116,101,99,116,111,114,0,0,0,0,0,0,0,0,184,74,0,0,80,62,0,0,184,46,0,0,0,0,0,0,51,48,98,116,65,99,116,105,118,97,116,105,110,103,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,0,184,74,0,0,128,62,0,0,120,45,0,0,0,0,0,0,0,0,0,0,248,62,0,0,199,0,0,0,200,0,0,0,9,0,0,0,4,0,0,0,75,0,0,0,0,0,0,0,50,54,98,116,66,111,120,66,111,120,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,184,74,0,0,216,62,0,0,168,62,0,0,0,0,0,0,0,0,0,0,56,63,0,0,201,0,0,0,202,0,0,0,10,0,0,0,0,0,0,0,49,54,98,116,66,111,120,66,111,120,68,101,116,101,99,116,111,114,0,0,0,0,0,0,184,74,0,0,32,63,0,0,184,46,0,0,0,0,0,0,0,0,0,0,136,63,0,0,203,0,0,0,204,0,0,0,11,0,0,0,5,0,0,0,76,0,0,0,0,0,0,0,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,184,74,0,0,104,63,0,0,168,62,0,0,0,0,0,0,0,0,0,0,224,63,0,0,205,0,0,0,206,0,0,0,25,0,0,0,77,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,50,50,98,116,67,111,109,112,111,117,110,100,76,101,97,102,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,184,74,0,0,192,63,0,0,232,31,0,0,0,0,0,0,0,0,0,0,56,64,0,0,207,0,0,0,208,0,0,0,12,0,0,0,6,0,0,0,78,0,0,0,0,0,0,0,51,54,98,116,67,111,109,112,111,117,110,100,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,184,74,0,0,16,64,0,0,168,62,0,0,0,0,0,0,0,0,0,0,152,64,0,0,209,0,0,0,210,0,0,0,55,0,0,0,79,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,51,48,98,116,67,111,109,112,111,117,110,100,67,111,109,112,111,117,110,100,76,101,97,102,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,184,74,0,0,112,64,0,0,232,31,0,0,0,0,0,0,49,52,98,116,67,111,110,99,97,118,101,83,104,97,112,101,0,0,0,0,0,0,0,0,184,74,0,0,168,64,0,0,208,24,0,0,0,0,0,0,0,0,0,0,48,65,0,0,211,0,0,0,212,0,0,0,13,0,0,0,7,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,96,65,0,0,213,0,0,0,214,0,0,0,48,0,0,0,0,0,0,0,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,184,74,0,0,8,65,0,0,168,62,0,0,0,0,0,0,50,52,98,116,67,111,110,118,101,120,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,0,0,0,0,0,0,184,74,0,0,64,65,0,0,48,60,0,0,0,0,0,0,0,0,0,0,40,66,0,0,215,0,0,0,216,0,0,0,49,0,0,0,0,0,0,0,90,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,50,49,99,97,108,99,117,108,97,116,101,84,105,109,101,79,102,73,109,112,97,99,116,69,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,83,49,95,82,75,49,54,98,116,68,105,115,112,97,116,99,104,101,114,73,110,102,111,80,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,69,51,49,76,111,99,97,108,84,114,105,97,110,103,108,101,83,112,104,101,114,101,67,97,115,116,67,97,108,108,98,97,99,107,0,0,0,184,74,0,0,136,65,0,0,48,60,0,0,0,0,0,0,0,0,0,0,200,66,0,0,217,0,0,0,218,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,144,66,0,0,219,0,0,0,220,0,0,0,14,0,0,0,8,0,0,0,81,0,0,0,0,0,0,0,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,184,74,0,0,112,66,0,0,168,62,0,0,0,0,0,0,78,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,184,74,0,0,160,66,0,0,176,41,0,0,0,0,0,0,0,0,0,0,24,67,0,0,221,0,0,0,222,0,0,0,38,0,0,0,39,0,0,0,6,0,0,0,0,0,0,0,50,52,98,116,80,101,114,116,117,114,98,101,100,67,111,110,116,97,99,116,82,101,115,117,108,116,0,0,0,0,0,0,184,74,0,0,248,66,0,0,8,47,0,0,0,0,0,0,0,0,0,0,216,67,0,0,223,0,0,0,224,0,0,0,56,0,0,0,57,0,0,0,7,0,0,0,0,0,0,0,90,78,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,49,54,112,114,111,99,101,115,115,67,111,108,108,105,115,105,111,110,69,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,83,50,95,82,75,49,54,98,116,68,105,115,112,97,116,99,104,101,114,73,110,102,111,80,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,69,50,49,98,116,87,105,116,104,111,117,116,77,97,114,103,105,110,82,101,115,117,108,116,95,48,0,0,184,74,0,0,72,67,0,0,248,36,0,0,0,0,0,0,0,0,0,0,144,68,0,0,225,0,0,0,226,0,0,0,58,0,0,0,59,0,0,0,8,0,0,0,0,0,0,0,90,78,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,49,54,112,114,111,99,101,115,115,67,111,108,108,105,115,105,111,110,69,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,83,50,95,82,75,49,54,98,116,68,105,115,112,97,116,99,104,101,114,73,110,102,111,80,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,69,49,51,98,116,68,117,109,109,121,82,101,115,117,108,116,0,0,0,0,184,74,0,0,8,68,0,0,248,36,0,0,0,0,0,0,0,0,0,0,232,68,0,0,227,0,0,0,228,0,0,0,15,0,0,0,9,0,0,0,82,0,0,0,0,0,0,0,51,49,98,116,67,111,110,118,101,120,80,108,97,110,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,184,74,0,0,192,68,0,0,120,45,0,0,0,0,0,0,0,0,0,0,32,69,0,0,229,0,0,0,230,0,0,0,49,56,98,116,67,111,110,118,101,120,80,111,108,121,104,101,100,114,111,110,0,0,0,0,144,74,0,0,8,69,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,69,0,0,231,0,0,0,232,0,0,0,22,0,0,0,23,0,0,0,69,0,0,0,0,0,0,0,50,51,98,116,72,97,115,104,101,100,83,105,109,112,108,101,80,97,105,114,67,97,99,104,101,0,0,0,0,0,0,0,144,74,0,0,128,69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,116,73,110,116,73,110,100,101,120,68,97,116,97,0,0,98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,84,114,105,112,108,101,116,68,97,116,97,0,0,0,0,0,0,98,116,67,104,97,114,73,110,100,101,120,84,114,105,112,108,101,116,68,97,116,97,0,0,98,116,86,101,99,116,111,114,51,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,98,116,86,101,99,116,111,114,51,68,111,117,98,108,101,68,97,116,97,0,0,0,0,0,98,116,77,101,115,104,80,97,114,116,68,97,116,97,0,0,98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97,99,101,68,97,116,97,0,0,0,0,0,50,51,98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97,99,101,0,0,0,0,0,0,0,144,74,0,0,104,70,0,0,0,0,0,0,248,70,0,0,233,0,0,0,234,0,0,0,44,0,0,0,1,0,0,0,2,0,0,0,70,0,0,0,71,0,0,0,64,0,0,0,83,0,0,0,84,0,0,0,65,0,0,0,53,0,0,0,54,0,0,0,66,0,0,0,20,0,0,0,0,0,0,0,50,54,98,116,84,114,105,97,110,103,108,101,73,110,100,101,120,86,101,114,116,101,120,65,114,114,97,121,0,0,0,0,184,74,0,0,216,70,0,0,136,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,111,111,116,0,0,0,0,32,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,117,110,99,97,117,103,104,116,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,0,0,116,101,114,109,105,110,97,116,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,0,0,0,0,0,0,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,0,0,73,0,0,235,0,0,0,236,0,0,0,70,0,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,184,74,0,0,240,72,0,0,136,73,0,0,0,0,0,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,144,74,0,0,120,73,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,144,74,0,0,144,73,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,184,74,0,0,168,73,0,0,160,73,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,184,74,0,0,224,73,0,0,208,73,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,184,74,0,0,64,74,0,0,208,73,0,0,0,0,0,0,184,74,0,0,24,74,0,0,104,74,0,0,0,0,0,0,0,0,0,0,8,74,0,0,237,0,0,0,238,0,0,0,239,0,0,0,240,0,0,0,24,0,0,0,4,0,0,0,16,0,0,0,50,0,0,0,0,0,0,0,0,75,0,0,237,0,0,0,241,0,0,0,239,0,0,0,240,0,0,0,24,0,0,0,5,0,0,0,17,0,0,0,51,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,184,74,0,0,216,74,0,0,8,74,0,0,0,0,0,0,0,0,0,0,96,75,0,0,237,0,0,0,242,0,0,0,239,0,0,0,240,0,0,0,24,0,0,0,6,0,0,0,18,0,0,0,52,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,184,74,0,0,56,75,0,0,8,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}var _cosf=Math_cos;Module["_i64Subtract"]=_i64Subtract;var _fabsf=Math_abs;var ___errno_state=0;function ___setErrNo(value){HEAP32[___errno_state>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var ___cxa_last_thrown_exception=0;function ___resumeException(ptr){if(!___cxa_last_thrown_exception){___cxa_last_thrown_exception=ptr}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}var ___cxa_exception_header_size=8;function ___cxa_find_matching_catch(thrown,throwntype){if(thrown==-1)thrown=___cxa_last_thrown_exception;var header=thrown-___cxa_exception_header_size;if(throwntype==-1)throwntype=HEAP32[header>>2];var typeArray=Array.prototype.slice.call(arguments,2);assert(throwntype);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){if(!___cxa_throw.initialized){try{HEAP32[__ZTVN10__cxxabiv119__pointer_type_infoE>>2]=0}catch(e){}try{HEAP32[__ZTVN10__cxxabiv117__class_type_infoE>>2]=1}catch(e){}try{HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE>>2]=2}catch(e){}___cxa_throw.initialized=true}var header=ptr-___cxa_exception_header_size;HEAP32[header>>2]=type;HEAP32[header+4>>2]=destructor;___cxa_last_thrown_exception=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}Module["_memset"]=_memset;function _abort(){Module["abort"]()}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}var _acosf=Math_acos;Module["_strlen"]=_strlen;var _sqrtf=Math_sqrt;var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(){done(this.error)});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{return flags}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{return fs.readlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var accmode=flag&2097155;var perms=["r","w","rw"][accmode];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),getStreamFromPtr:(function(ptr){return FS.streams[ptr-1]}),getPtrForStream:(function(stream){return stream?stream.fd+1:0}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return link.node_ops.readlink(link)}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}return stream.stream_ops.llseek(stream,offset,whence)}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret="";var utf8=new Runtime.UTF8Processor;for(var i=0;i>2]=FS.getPtrForStream(stdin);assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");HEAP32[_stdout>>2]=FS.getPtrForStream(stdout);assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");HEAP32[_stderr>>2]=FS.getPtrForStream(stderr);assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices()}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=Math.floor(idx/this.chunkSize);return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>8,sock.sport&255]))}return peer}),getPeer:(function(sock,addr,port){return sock.peers[addr+":"+port]}),addPeer:(function(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer}),removePeer:(function(sock,peer){delete sock.peers[peer.addr+":"+peer.port]}),handlePeerEvents:(function(sock,peer){var first=true;var handleOpen=(function(){Module["websocket"].emit("open",sock.stream.fd);try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}});function handleMessage(data){assert(typeof data!=="string"&&data.byteLength!==undefined);data=new Uint8Array(data);var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data});Module["websocket"].emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",(function(data,flags){if(!flags.binary){return}handleMessage((new Uint8Array(data)).buffer)}));peer.socket.on("close",(function(){Module["websocket"].emit("close",sock.stream.fd)}));peer.socket.on("error",(function(error){sock.error=ERRNO_CODES.ECONNREFUSED;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}))}else{peer.socket.onopen=handleOpen;peer.socket.onclose=(function(){Module["websocket"].emit("close",sock.stream.fd)});peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=(function(error){sock.error=ERRNO_CODES.ECONNREFUSED;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}}),poll:(function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask}),ioctl:(function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>2]=bytes;return 0;default:return ERRNO_CODES.EINVAL}}),close:(function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i>0]=chr;var fd=_fileno(stream);var ret=_write(fd,_fputc.ret,1);if(ret==-1){var streamObj=FS.getStreamFromPtr(stream);if(streamObj)streamObj.error=true;return-1}else{return chr}}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}Module["_i64Add"]=_i64Add;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}var _llvm_pow_f32=Math_pow;var Browser={mainLoop:{scheduler:null,method:"",shouldPause:false,paused:false,queue:[],pause:(function(){Browser.mainLoop.shouldPause=true}),resume:(function(){if(Browser.mainLoop.paused){Browser.mainLoop.paused=false;Browser.mainLoop.scheduler()}Browser.mainLoop.shouldPause=false}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);ctx=GL.getContext(contextHandle).GLctx;canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);canvasContainer.requestFullScreen()}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(!ABORT)func()}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(!ABORT)func()}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(!ABORT)func()}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=-event.wheelDelta;break;case"wheel":delta=event.deltaY;break;default:throw"unrecognized mouse wheel event: "+event.type}return Math.max(-1,Math.min(1,delta))}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){Browser.lastTouches[touch.identifier]=Browser.touches[touch.identifier];Browser.touches[touch.identifier]={x:adjustedX,y:adjustedY}}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>0]){HEAP8[variable>>0]=1;return 1}return 0}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=Math.floor(now/1e3);HEAP32[ptr+4>>2]=Math.floor((now-1e3*Math.floor(now/1e3))*1e3);return 0}function _emscripten_asm_const_double(code){var args=Array.prototype.slice.call(arguments,1);return+Runtime.getAsmConst(code,args.length).apply(null,args)}var ___cxa_caught_exceptions=[];function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;___cxa_caught_exceptions.push(___cxa_last_thrown_exception);return ptr}var _sinf=Math_sin;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0)self.alloc(bytes);return ret}Module["_memmove"]=_memmove;function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function ___cxa_allocate_exception(size){var ptr=_malloc(size+___cxa_exception_header_size);return ptr+___cxa_exception_header_size}function ___errno_location(){return ___errno_state}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;function _llvm_trap(){abort("trap!")}function _time(ptr){var ret=Math.floor(Date.now()/1e3);if(ptr){HEAP32[ptr>>2]=ret}return ret}var _UItoF=true;function _fwrite(ptr,size,nitems,stream){var bytesToWrite=nitems*size;if(bytesToWrite==0)return 0;var fd=_fileno(stream);var bytesWritten=_write(fd,ptr,bytesToWrite);if(bytesWritten==-1){var streamObj=FS.getStreamFromPtr(stream);if(streamObj)streamObj.error=true;return 0}else{return Math.floor(bytesWritten/size)}}function __reallyNegative(x){return x<0||x===0&&1/x===-Infinity}function __formatString(format,varargs){var textIndex=format;var argIndex=0;function getNextArg(type){var ret;if(type==="double"){ret=(HEAP32[tempDoublePtr>>2]=HEAP32[varargs+argIndex>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[varargs+(argIndex+4)>>2],+HEAPF64[tempDoublePtr>>3])}else if(type=="i64"){ret=[HEAP32[varargs+argIndex>>2],HEAP32[varargs+(argIndex+4)>>2]]}else{type="i32";ret=HEAP32[varargs+argIndex>>2]}argIndex+=Runtime.getNativeFieldSize(type);return ret}var ret=[];var curr,next,currArg;while(1){var startTextIndex=textIndex;curr=HEAP8[textIndex>>0];if(curr===0)break;next=HEAP8[textIndex+1>>0];if(curr==37){var flagAlwaysSigned=false;var flagLeftAlign=false;var flagAlternative=false;var flagZeroPad=false;var flagPadSign=false;flagsLoop:while(1){switch(next){case 43:flagAlwaysSigned=true;break;case 45:flagLeftAlign=true;break;case 35:flagAlternative=true;break;case 48:if(flagZeroPad){break flagsLoop}else{flagZeroPad=true;break};case 32:flagPadSign=true;break;default:break flagsLoop}textIndex++;next=HEAP8[textIndex+1>>0]}var width=0;if(next==42){width=getNextArg("i32");textIndex++;next=HEAP8[textIndex+1>>0]}else{while(next>=48&&next<=57){width=width*10+(next-48);textIndex++;next=HEAP8[textIndex+1>>0]}}var precisionSet=false,precision=-1;if(next==46){precision=0;precisionSet=true;textIndex++;next=HEAP8[textIndex+1>>0];if(next==42){precision=getNextArg("i32");textIndex++}else{while(1){var precisionChr=HEAP8[textIndex+1>>0];if(precisionChr<48||precisionChr>57)break;precision=precision*10+(precisionChr-48);textIndex++}}next=HEAP8[textIndex+1>>0]}if(precision<0){precision=6;precisionSet=false}var argSize;switch(String.fromCharCode(next)){case"h":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==104){textIndex++;argSize=1}else{argSize=2}break;case"l":var nextNext=HEAP8[textIndex+2>>0];if(nextNext==108){textIndex++;argSize=8}else{argSize=4}break;case"L":case"q":case"j":argSize=8;break;case"z":case"t":case"I":argSize=4;break;default:argSize=null}if(argSize)textIndex++;next=HEAP8[textIndex+1>>0];switch(String.fromCharCode(next)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":{var signed=next==100||next==105;argSize=argSize||4;var currArg=getNextArg("i"+argSize*8);var origArg=currArg;var argText;if(argSize==8){currArg=Runtime.makeBigInt(currArg[0],currArg[1],next==117)}if(argSize<=4){var limit=Math.pow(256,argSize)-1;currArg=(signed?reSign:unSign)(currArg&limit,argSize*8)}var currAbsArg=Math.abs(currArg);var prefix="";if(next==100||next==105){if(argSize==8&&i64Math)argText=i64Math.stringify(origArg[0],origArg[1],null);else argText=reSign(currArg,8*argSize,1).toString(10)}else if(next==117){if(argSize==8&&i64Math)argText=i64Math.stringify(origArg[0],origArg[1],true);else argText=unSign(currArg,8*argSize,1).toString(10);currArg=Math.abs(currArg)}else if(next==111){argText=(flagAlternative?"0":"")+currAbsArg.toString(8)}else if(next==120||next==88){prefix=flagAlternative&&currArg!=0?"0x":"";if(argSize==8&&i64Math){if(origArg[1]){argText=(origArg[1]>>>0).toString(16);var lower=(origArg[0]>>>0).toString(16);while(lower.length<8)lower="0"+lower;argText+=lower}else{argText=(origArg[0]>>>0).toString(16)}}else if(currArg<0){currArg=-currArg;argText=(currAbsArg-1).toString(16);var buffer=[];for(var i=0;i=0){if(flagAlwaysSigned){prefix="+"+prefix}else if(flagPadSign){prefix=" "+prefix}}if(argText.charAt(0)=="-"){prefix="-"+prefix;argText=argText.substr(1)}while(prefix.length+argText.lengthexponent&&exponent>=-4){next=(next==103?"f":"F").charCodeAt(0);precision-=exponent+1}else{next=(next==103?"e":"E").charCodeAt(0);precision--}effectivePrecision=Math.min(precision,20)}if(next==101||next==69){argText=currArg.toExponential(effectivePrecision);if(/[eE][-+]\d$/.test(argText)){argText=argText.slice(0,-1)+"0"+argText.slice(-1)}}else if(next==102||next==70){argText=currArg.toFixed(effectivePrecision);if(currArg===0&&__reallyNegative(currArg)){argText="-"+argText}}var parts=argText.split("e");if(isGeneral&&!flagAlternative){while(parts[0].length>1&&parts[0].indexOf(".")!=-1&&(parts[0].slice(-1)=="0"||parts[0].slice(-1)==".")){parts[0]=parts[0].slice(0,-1)}}else{if(flagAlternative&&argText.indexOf(".")==-1)parts[0]+=".";while(precision>effectivePrecision++)parts[0]+="0"}argText=parts[0]+(parts.length>1?"e"+parts[1]:"");if(next==69)argText=argText.toUpperCase();if(currArg>=0){if(flagAlwaysSigned){argText="+"+argText}else if(flagPadSign){argText=" "+argText}}}while(argText.length>0])}}else{ret=ret.concat(intArrayFromString("(null)".substr(0,argLength),true))}if(flagLeftAlign){while(argLength0){ret.push(32)}if(!flagLeftAlign)ret.push(getNextArg("i8"));break};case"n":{var ptr=getNextArg("i32*");HEAP32[ptr>>2]=ret.length;break};case"%":{ret.push(curr);break};default:{for(var i=startTextIndex;i>0])}}}textIndex+=2}else{ret.push(curr);textIndex+=1}}return ret}function _fprintf(stream,format,varargs){var result=__formatString(format,varargs);var stack=Runtime.stackSave();var ret=_fwrite(allocate(result,"i8",ALLOC_STACK),1,result.length,stream);Runtime.stackRestore(stack);return ret}function _vfprintf(s,f,va_arg){return _fprintf(s,f,HEAP32[va_arg>>2])}___errno_state=Runtime.staticAlloc(4);HEAP32[___errno_state>>2]=0;_fputc.ret=allocate([0],"i8",ALLOC_STATIC);FS.staticInit();__ATINIT__.unshift({func:(function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()})});__ATMAIN__.push({func:(function(){FS.ignorePermissions=false})});__ATEXIT__.push({func:(function(){FS.quit()})});Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;__ATINIT__.unshift({func:(function(){TTY.init()})});__ATEXIT__.push({func:(function(){TTY.shutdown()})});TTY.utf8=new Runtime.UTF8Processor;if(ENVIRONMENT_IS_NODE){var fs=require("fs");NODEFS.staticInit()}__ATINIT__.push({func:(function(){SOCKFS.root=FS.mount(SOCKFS,{},null)})});Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas){Browser.requestFullScreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+5242880;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE>2]|0;if((h-f|0)==1){if((a[d+60>>0]|0)==0){r=(c[d+96>>2]|0)+(m<<6)+0|0;G=(c[d+76>>2]|0)+(f<<6)+0|0;E=r+64|0;do{c[r>>2]=c[G>>2];r=r+4|0;G=G+4|0}while((r|0)<(E|0))}else{L=(c[d+136>>2]|0)+(m<<4)|0;K=(c[d+116>>2]|0)+(f<<4)|0;c[L+0>>2]=c[K+0>>2];c[L+4>>2]=c[K+4>>2];c[L+8>>2]=c[K+8>>2];c[L+12>>2]=c[K+12>>2]}c[d+56>>2]=(c[d+56>>2]|0)+1;i=j;return}if((f|0)<(h|0)){o=(a[d+60>>0]|0)==0;A=0.0;u=0.0;t=0.0;p=f;do{if(o){L=c[d+76>>2]|0;y=+g[L+(p<<6)>>2];w=+g[L+(p<<6)+4>>2];B=+g[L+(p<<6)+8>>2];z=+g[L+(p<<6)+16>>2];x=+g[L+(p<<6)+20>>2];s=+g[L+(p<<6)+24>>2]}else{L=c[d+116>>2]|0;C=+g[d+36>>2];D=+g[d+40>>2];F=+g[d+44>>2];z=+g[d+4>>2];x=+g[d+8>>2];s=+g[d+12>>2];y=+(e[L+(p<<4)>>1]|0)/C+z;w=+(e[L+(p<<4)+2>>1]|0)/D+x;B=+(e[L+(p<<4)+4>>1]|0)/F+s;z=+(e[L+(p<<4)+6>>1]|0)/C+z;x=+(e[L+(p<<4)+8>>1]|0)/D+x;s=+(e[L+(p<<4)+10>>1]|0)/F+s}A=A+(z+y)*.5;t=t+(x+w)*.5;u=u+(s+B)*.5;p=p+1|0}while((p|0)!=(h|0));F=1.0/+(h-f|0);s=A*F;t=t*F;u=u*F;if(o){o=c[d+76>>2]|0;w=0.0;x=0.0;F=0.0;p=f;do{B=(+g[o+(p<<6)+16>>2]+ +g[o+(p<<6)>>2])*.5-s;C=(+g[o+(p<<6)+20>>2]+ +g[o+(p<<6)+4>>2])*.5-t;D=(+g[o+(p<<6)+24>>2]+ +g[o+(p<<6)+8>>2])*.5-u;w=w+B*B;x=x+C*C;F=F+D*D;p=p+1|0}while((p|0)!=(h|0));s=+(h-f|0)}else{p=c[d+116>>2]|0;y=+g[d+36>>2];A=+g[d+40>>2];B=+g[d+44>>2];D=+g[d+4>>2];z=+g[d+8>>2];C=+g[d+12>>2];w=0.0;x=0.0;F=0.0;o=f;do{O=(+(e[p+(o<<4)+6>>1]|0)/y+D+(+(e[p+(o<<4)>>1]|0)/y+D))*.5-s;N=(+(e[p+(o<<4)+8>>1]|0)/A+z+(+(e[p+(o<<4)+2>>1]|0)/A+z))*.5-t;M=(+(e[p+(o<<4)+10>>1]|0)/B+C+(+(e[p+(o<<4)+4>>1]|0)/B+C))*.5-u;w=w+O*O;x=x+N*N;F=F+M*M;o=o+1|0}while((o|0)!=(h|0));s=+(h-f|0)}}else{F=0.0;x=0.0;w=0.0;s=+(h-f|0)}u=1.0/(s+-1.0);s=w*u;t=x*u;u=F*u;if(s>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;if((f|0)<(h|0)){p=(a[d+60>>0]|0)==0;u=0.0;t=0.0;s=0.0;q=f;do{if(p){L=c[d+76>>2]|0;z=+g[L+(q<<6)+16>>2];x=+g[L+(q<<6)+20>>2];B=+g[L+(q<<6)+24>>2];y=+g[L+(q<<6)>>2];w=+g[L+(q<<6)+4>>2];A=+g[L+(q<<6)+8>>2]}else{L=c[d+116>>2]|0;M=+g[d+36>>2];N=+g[d+40>>2];O=+g[d+44>>2];y=+g[d+4>>2];w=+g[d+8>>2];A=+g[d+12>>2];z=+(e[L+(q<<4)+6>>1]|0)/M+y;x=+(e[L+(q<<4)+8>>1]|0)/N+w;B=+(e[L+(q<<4)+10>>1]|0)/O+A;y=+(e[L+(q<<4)>>1]|0)/M+y;w=+(e[L+(q<<4)+2>>1]|0)/N+w;A=+(e[L+(q<<4)+4>>1]|0)/O+A}u=u+(z+y)*.5;t=(x+w)*.5+t;s=(B+A)*.5+s;q=q+1|0}while((q|0)!=(h|0));g[j+16>>2]=u;g[j+20>>2]=t;g[j+24>>2]=s}else{u=0.0;t=0.0;s=0.0}g[j+16>>2]=1.0/+(h-f|0)*u;g[j+20>>2]=1.0/+(h-f|0)*t;g[j+24>>2]=1.0/+(h-f|0)*s;s=+g[j+16+(o<<2)>>2];if((f|0)<(h|0)){o=j+(o<<2)|0;q=f;p=f;do{r=(a[d+60>>0]|0)==0;if(r){L=c[d+76>>2]|0;y=+g[L+(q<<6)+16>>2];w=+g[L+(q<<6)+20>>2];z=+g[L+(q<<6)+24>>2];x=+g[L+(q<<6)>>2];u=+g[L+(q<<6)+4>>2];t=+g[L+(q<<6)+8>>2]}else{L=c[d+116>>2]|0;M=+g[d+36>>2];N=+g[d+40>>2];O=+g[d+44>>2];x=+g[d+4>>2];u=+g[d+8>>2];t=+g[d+12>>2];y=+(e[L+(q<<4)+6>>1]|0)/M+x;w=+(e[L+(q<<4)+8>>1]|0)/N+u;z=+(e[L+(q<<4)+10>>1]|0)/O+t;x=+(e[L+(q<<4)>>1]|0)/M+x;u=+(e[L+(q<<4)+2>>1]|0)/N+u;t=+(e[L+(q<<4)+4>>1]|0)/O+t}g[j>>2]=(y+x)*.5;g[j+4>>2]=(w+u)*.5;g[j+8>>2]=(z+t)*.5;g[j+12>>2]=0.0;if(+g[o>>2]>s){if(r){H=c[d+76>>2]|0;v=H+(q<<6)|0;r=j+32|0;G=v+0|0;E=r+64|0;do{c[r>>2]=c[G>>2];r=r+4|0;G=G+4|0}while((r|0)<(E|0));r=v+0|0;G=H+(p<<6)+0|0;E=r+64|0;do{c[r>>2]=c[G>>2];r=r+4|0;G=G+4|0}while((r|0)<(E|0));r=(c[d+76>>2]|0)+(p<<6)+0|0;G=j+32|0;E=r+64|0;do{c[r>>2]=c[G>>2];r=r+4|0;G=G+4|0}while((r|0)<(E|0))}else{K=c[d+116>>2]|0;L=K+(q<<4)|0;c[j+96>>2]=c[L+0>>2];c[j+100>>2]=c[L+4>>2];c[j+104>>2]=c[L+8>>2];c[j+108>>2]=c[L+12>>2];K=K+(p<<4)|0;c[L+0>>2]=c[K+0>>2];c[L+4>>2]=c[K+4>>2];c[L+8>>2]=c[K+8>>2];c[L+12>>2]=c[K+12>>2];L=(c[d+116>>2]|0)+(p<<4)|0;c[L+0>>2]=c[j+96>>2];c[L+4>>2]=c[j+100>>2];c[L+8>>2]=c[j+104>>2];c[L+12>>2]=c[j+108>>2]}p=p+1|0}q=q+1|0}while((q|0)!=(h|0))}else{p=f}if(!((p|0)>(((h-f|0)/3|0)+f|0)?(p|0)<(h+ -1-((h-f|0)/3|0)|0):0)){p=(h-f>>1)+f|0}o=c[d+56>>2]|0;do{if((a[d+60>>0]|0)==0){q=(c[d+96>>2]|0)+(o<<6)|0;c[q+0>>2]=c[d+20>>2];c[q+4>>2]=c[d+24>>2];c[q+8>>2]=c[d+28>>2];c[q+12>>2]=c[d+32>>2];q=c[d+56>>2]|0;if((a[d+60>>0]|0)==0){q=(c[d+96>>2]|0)+(q<<6)+16|0;c[q+0>>2]=c[d+4>>2];c[q+4>>2]=c[d+8>>2];c[q+8>>2]=c[d+12>>2];c[q+12>>2]=c[d+16>>2];q=c[d+56>>2]|0;break}else{w=+g[d+8>>2];t=+g[d+12>>2];x=+g[d+36>>2];u=+g[d+40>>2];s=+g[d+44>>2];r=c[d+136>>2]|0;v=d+4|0;n=46;break}}else{r=c[d+136>>2]|0;w=+g[d+8>>2];t=+g[d+12>>2];x=+g[d+36>>2];u=+g[d+40>>2];N=(+g[d+24>>2]-w)*u;s=+g[d+44>>2];O=(+g[d+28>>2]-t)*s;b[r+(o<<4)>>1]=~~((+g[d+20>>2]- +g[d+4>>2])*x)&65535&65534;b[r+(o<<4)+2>>1]=~~N&65535&65534;b[r+(o<<4)+4>>1]=~~O&65535&65534;q=o;v=d+4|0;n=46}}while(0);if((n|0)==46){O=+g[v>>2];b[r+(q<<4)+6>>1]=~~((O-O)*x+1.0)&65535|1;b[r+(q<<4)+8>>1]=~~((w-w)*u+1.0)&65535|1;b[r+(q<<4)+10>>1]=~~((t-t)*s+1.0)&65535|1}if((f|0)<(h|0)){r=a[d+60>>0]|0;n=f;do{if(r<<24>>24==0){v=c[d+76>>2]|0;A=+g[v+(n<<6)>>2];z=+g[v+(n<<6)+4>>2];y=+g[v+(n<<6)+8>>2];x=+g[v+(n<<6)+12>>2];w=+g[v+(n<<6)+16>>2];u=+g[v+(n<<6)+20>>2];t=+g[v+(n<<6)+24>>2];s=+g[v+(n<<6)+28>>2];v=c[d+96>>2]|0;E=v+(q<<6)|0;if(A<+g[E>>2]){g[E>>2]=A}E=v+(q<<6)+4|0;if(z<+g[E>>2]){g[E>>2]=z}E=v+(q<<6)+8|0;if(y<+g[E>>2]){g[E>>2]=y}E=v+(q<<6)+12|0;if(x<+g[E>>2]){g[E>>2]=x}E=v+(q<<6)+16|0;if(+g[E>>2]>2]=w}E=v+(q<<6)+20|0;if(+g[E>>2]>2]=u}E=v+(q<<6)+24|0;if(+g[E>>2]>2]=t}v=v+(q<<6)+28|0;if(+g[v>>2]>2]=s}}else{v=c[d+116>>2]|0;w=+g[d+36>>2];A=+g[d+40>>2];F=+g[d+44>>2];x=+g[d+4>>2];B=+g[d+8>>2];M=+g[d+12>>2];y=+g[d+4>>2];C=+g[d+8>>2];N=+g[d+12>>2];z=+g[d+36>>2];D=+g[d+40>>2];O=+g[d+44>>2];L=~~((+(e[v+(n<<4)>>1]|0)/w+x-y)*z)&65535&65534;I=~~((+(e[v+(n<<4)+2>>1]|0)/A+B-C)*D)&65535&65534;E=~~((+(e[v+(n<<4)+4>>1]|0)/F+M-N)*O)&65535&65534;J=(~~((+(e[v+(n<<4)+6>>1]|0)/w+x-y)*z+1.0)&65535|1)&65535;H=(~~((+(e[v+(n<<4)+8>>1]|0)/A+B-C)*D+1.0)&65535|1)&65535;v=(~~((+(e[v+(n<<4)+10>>1]|0)/F+M-N)*O+1.0)&65535|1)&65535;G=c[d+136>>2]|0;K=G+(q<<4)|0;if((e[K>>1]|0)>(L&65535)){b[K>>1]=L}K=G+(q<<4)+6|0;if((e[K>>1]|0)<(J&65535)){b[K>>1]=J}J=G+(q<<4)+2|0;if((e[J>>1]|0)>(I&65535)){b[J>>1]=I}I=G+(q<<4)+8|0;if((e[I>>1]|0)<(H&65535)){b[I>>1]=H}H=G+(q<<4)+4|0;if((e[H>>1]|0)>(E&65535)){b[H>>1]=E}E=G+(q<<4)+10|0;if((e[E>>1]|0)<(v&65535)){b[E>>1]=v}}n=n+1|0}while((n|0)!=(h|0))}q=q+1|0;c[d+56>>2]=q;Rt(d,f,p);f=c[d+56>>2]|0;Rt(d,p,h);h=(c[d+56>>2]|0)-m|0;do{if((a[d+60>>0]|0)!=0){if((h<<4|0)>2048){n=c[d+136>>2]|0;p=c[n+(q<<4)+12>>2]|0;p=(p|0)>-1?1:0-p|0;m=c[n+(f<<4)+12>>2]|0;m=(m|0)>-1?1:0-m|0;if((p<<4|0)<2049){r=c[d+152>>2]|0;if((r|0)==(c[d+156>>2]|0)?(l=(r|0)==0?1:r<<1,(r|0)<(l|0)):0){if((l|0)==0){E=r;v=0}else{c[4546]=(c[4546]|0)+1;v=Zx(l<<5|19)|0;if((v|0)==0){v=0}else{c[(v+19&-16)+ -4>>2]=v;v=v+19&-16}E=c[d+152>>2]|0}if((E|0)>0){G=0;do{L=v+(G<<5)|0;K=(c[d+160>>2]|0)+(G<<5)|0;c[L+0>>2]=c[K+0>>2];c[L+4>>2]=c[K+4>>2];c[L+8>>2]=c[K+8>>2];c[L+12>>2]=c[K+12>>2];c[L+16>>2]=c[K+16>>2];c[L+20>>2]=c[K+20>>2];c[L+24>>2]=c[K+24>>2];c[L+28>>2]=c[K+28>>2];G=G+1|0}while((G|0)!=(E|0))}E=c[d+160>>2]|0;if((E|0)!=0){if((a[d+164>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[E+ -4>>2]|0)}c[d+160>>2]=0}a[d+164>>0]=1;c[d+160>>2]=v;c[d+156>>2]=l;l=c[d+152>>2]|0}else{l=r}c[d+152>>2]=l+1;L=(c[d+160>>2]|0)+(r<<5)|0;c[L+0>>2]=c[j+96>>2];c[L+4>>2]=c[j+100>>2];c[L+8>>2]=c[j+104>>2];c[L+12>>2]=c[j+108>>2];c[L+16>>2]=c[j+112>>2];c[L+20>>2]=c[j+116>>2];c[L+24>>2]=c[j+120>>2];c[L+28>>2]=c[j+124>>2];L=c[d+160>>2]|0;b[L+(r<<5)>>1]=b[n+(q<<4)>>1]|0;b[L+(r<<5)+2>>1]=b[n+(q<<4)+2>>1]|0;b[L+(r<<5)+4>>1]=b[n+(q<<4)+4>>1]|0;b[L+(r<<5)+6>>1]=b[n+(q<<4)+6>>1]|0;b[L+(r<<5)+8>>1]=b[n+(q<<4)+8>>1]|0;b[L+(r<<5)+10>>1]=b[n+(q<<4)+10>>1]|0;c[L+(r<<5)+12>>2]=q;c[L+(r<<5)+16>>2]=p;p=d+152|0}else{p=d+152|0}if((m<<4|0)<2049){l=c[p>>2]|0;if((l|0)==(c[d+156>>2]|0)?(k=(l|0)==0?1:l<<1,(l|0)<(k|0)):0){if((k|0)==0){q=l;r=0}else{c[4546]=(c[4546]|0)+1;q=Zx(k<<5|19)|0;if((q|0)==0){r=0}else{c[(q+19&-16)+ -4>>2]=q;r=q+19&-16}q=c[p>>2]|0}if((q|0)>0){v=0;do{L=r+(v<<5)|0;K=(c[d+160>>2]|0)+(v<<5)|0;c[L+0>>2]=c[K+0>>2];c[L+4>>2]=c[K+4>>2];c[L+8>>2]=c[K+8>>2];c[L+12>>2]=c[K+12>>2];c[L+16>>2]=c[K+16>>2];c[L+20>>2]=c[K+20>>2];c[L+24>>2]=c[K+24>>2];c[L+28>>2]=c[K+28>>2];v=v+1|0}while((v|0)!=(q|0))}q=c[d+160>>2]|0;if((q|0)!=0){if((a[d+164>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[q+ -4>>2]|0)}c[d+160>>2]=0}a[d+164>>0]=1;c[d+160>>2]=r;c[d+156>>2]=k;k=c[p>>2]|0}else{k=l}c[p>>2]=k+1;L=(c[d+160>>2]|0)+(l<<5)|0;c[L+0>>2]=c[j+32>>2];c[L+4>>2]=c[j+36>>2];c[L+8>>2]=c[j+40>>2];c[L+12>>2]=c[j+44>>2];c[L+16>>2]=c[j+48>>2];c[L+20>>2]=c[j+52>>2];c[L+24>>2]=c[j+56>>2];c[L+28>>2]=c[j+60>>2];L=c[d+160>>2]|0;b[L+(l<<5)>>1]=b[n+(f<<4)>>1]|0;b[L+(l<<5)+2>>1]=b[n+(f<<4)+2>>1]|0;b[L+(l<<5)+4>>1]=b[n+(f<<4)+4>>1]|0;b[L+(l<<5)+6>>1]=b[n+(f<<4)+6>>1]|0;b[L+(l<<5)+8>>1]=b[n+(f<<4)+8>>1]|0;b[L+(l<<5)+10>>1]=b[n+(f<<4)+10>>1]|0;c[L+(l<<5)+12>>2]=f;c[L+(l<<5)+16>>2]=m}c[d+168>>2]=c[p>>2];if((a[d+60>>0]|0)==0){break}else{d=d+136|0}}else{d=d+136|0}c[(c[d>>2]|0)+(o<<4)+12>>2]=0-h;i=j;return}}while(0);c[(c[d+96>>2]|0)+(o<<6)+32>>2]=h;i=j;return}function St(a){a=a|0;var b=0;b=i;Tt(a);if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Tt(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=14408;e=c[b+160>>2]|0;if((e|0)!=0){if((a[b+164>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+160>>2]=0}a[b+164>>0]=1;c[b+160>>2]=0;c[b+152>>2]=0;c[b+156>>2]=0;e=c[b+136>>2]|0;if((e|0)!=0){if((a[b+140>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+136>>2]=0}a[b+140>>0]=1;c[b+136>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;e=c[b+116>>2]|0;if((e|0)!=0){if((a[b+120>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=0;c[b+108>>2]=0;c[b+112>>2]=0;e=c[b+96>>2]|0;if((e|0)!=0){if((a[b+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;e=c[b+76>>2]|0;if((e|0)==0){a[b+80>>0]=1;c[b+76>>2]=0;c[b+68>>2]=0;e=b+72|0;c[e>>2]=0;i=d;return}if((a[b+80>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+76>>2]=0;a[b+80>>0]=1;c[b+76>>2]=0;c[b+68>>2]=0;e=b+72|0;c[e>>2]=0;i=d;return}function Ut(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0;g=i;while(1){j=c[a+12>>2]|0;if(!(((e[f>>1]|0)>=(e[a>>1]|0)?(e[d>>1]|0)<=(e[a+6>>1]|0):0)&(e[d+4>>1]|0)<=(e[a+10>>1]|0)&(e[f+4>>1]|0)>=(e[a+4>>1]|0)&(e[d+2>>1]|0)<=(e[a+8>>1]|0)&(e[f+2>>1]|0)>=(e[a+2>>1]|0))){h=8;break}if((j|0)>-1){break}Ut(a+16|0,b,d,f);j=c[a+28>>2]|0;if((j|0)>-1){a=a+32|0;continue}else{a=a+(1-j<<4)|0;continue}}if((h|0)==8){i=g;return}sc[c[(c[b>>2]|0)+8>>2]&63](b,j>>21,j&2097151);i=g;return}function Vt(a,b,d,e,f,h,j,k){a=a|0;b=b|0;d=d|0;e=+e;f=+f;h=+h;j=j|0;k=k|0;var l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0,L=0,M=0,N=0,O=0.0,P=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0,X=0,Y=0;l=i;i=i+32|0;o=+g[d>>2];p=+g[d+4>>2];I=+g[d+8>>2];S=+g[j>>2];u=(o>e?e:o)+S;T=+g[j+4>>2];q=(p>f?f:p)+T;U=+g[j+8>>2];s=(I>h?h:I)+U;O=+g[k>>2];v=(o>2];r=(p>2];t=(I>2]|0;a:do{if((N|0)>0){L=0;M=c[a+96>>2]|0;K=1;while(1){c[l+0>>2]=c[M+0>>2];c[l+4>>2]=c[M+4>>2];c[l+8>>2]=c[M+8>>2];c[l+12>>2]=c[M+12>>2];Y=M+16|0;c[l+16>>2]=c[Y+0>>2];c[l+20>>2]=c[Y+4>>2];c[l+24>>2]=c[Y+8>>2];c[l+28>>2]=c[Y+12>>2];g[l>>2]=+g[l>>2]-O;g[l+4>>2]=+g[l+4>>2]-P;g[l+8>>2]=+g[l+8>>2]-R;g[l+16>>2]=+g[l+16>>2]-S;g[l+20>>2]=+g[l+20>>2]-T;g[l+24>>2]=+g[l+24>>2]-U;if(!(u>+g[Y>>2])?!(v<+g[M>>2]):0){V=1}else{V=0}if(!(!(s>+g[M+24>>2])?!(t<+g[M+8>>2]):0)){V=0}if((((!(q>+g[M+20>>2])?!(r<+g[M+4>>2]|V^1):0)?(J=+g[d>>2],H=B*(+g[l+(x<<4)>>2]-J),J=B*(+g[l+((x^1)<<4)>>2]-J),m=+g[d+4>>2],G=A*(+g[l+(w<<4)+4>>2]-m),m=A*(+g[l+((w^1)<<4)+4>>2]-m),!(H>m|G>J)):0)?(F=G>H?G:H,D=m>2],E=z*(+g[l+(y<<4)+8>>2]-C),C=z*(+g[l+((y^1)<<4)+8>>2]-C),!(F>C|E>D)):0)?(E>F?E:F)<(h-I)*(h-I)*n+((e-o)*(e-o)*n+(f-p)*(f-p)*n):0){Y=(C0.0;V=c[M+32>>2]|0;if((V|0)==-1&Y){sc[c[(c[b>>2]|0)+8>>2]&63](b,c[M+36>>2]|0,c[M+40>>2]|0);N=c[a+56>>2]|0;V=24}else{W=V;X=(V|0)==-1;V=23}}else{X=c[M+32>>2]|0;W=X;X=(X|0)==-1;Y=0;V=23}if((V|0)==23){V=0;if(Y|X){V=24}else{L=W+L|0;M=M+(W<<6)|0}}if((V|0)==24){L=L+1|0;M=M+64|0}if((L|0)>=(N|0)){break a}O=+g[k>>2];P=+g[k+4>>2];R=+g[k+8>>2];S=+g[j>>2];T=+g[j+4>>2];U=+g[j+8>>2];K=K+1|0}}else{K=0}}while(0);if((c[3610]|0)>=(K|0)){i=l;return}c[3610]=K;i=l;return}function Wt(a,d,f,h,j,k,l,m,n){a=a|0;d=d|0;f=f|0;h=+h;j=+j;k=+k;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0;o=i;i=i+32|0;r=+g[f>>2];s=+g[f+4>>2];F=+g[f+8>>2];q=1.0/+Q(+((h-r)*(h-r)+(j-s)*(j-s)+(k-F)*(k-F)));if((h-r)*q==0.0){B=999999984306749400.0}else{B=1.0/((h-r)*q)}if((j-s)*q==0.0){C=999999984306749400.0}else{C=1.0/((j-s)*q)}if((k-F)*q==0.0){D=999999984306749400.0}else{D=1.0/((k-F)*q)}p=B<0.0&1;G=C<0.0&1;E=D<0.0&1;la=(r>h?h:r)+ +g[l>>2];ka=(s>j?j:s)+ +g[l+4>>2];ja=(F>k?k:F)+ +g[l+8>>2];ha=(r>2];da=(s>2];$=(F>2];ga=+g[a+4>>2];la=la>2];ka=ka>2];ja=ja<_?_:ja;ia=+g[a+20>>2];ea=+g[a+24>>2];aa=+g[a+28>>2];fa=+g[a+36>>2];ba=+g[a+40>>2];Z=+g[a+44>>2];I=~~(((ia0){N=0;P=c[a+136>>2]|0;O=0;do{O=O+1|0;T=P+6|0;X=b[P>>1]|0;Y=P+10|0;V=b[P+4>>1]|0;U=P+8|0;W=b[P+2>>1]|0;R=P+12|0;S=(c[R>>2]|0)>-1;if(((((H&65535)>=(X&65535)?(I&65535)<=(e[T>>1]|0):0)&(J&65535)<=(e[Y>>1]|0)&(K&65535)>=(V&65535)&(L&65535)<=(e[U>>1]|0)&(M&65535)>=(W&65535)?(ha=+g[a+36>>2],ja=+g[a+40>>2],la=+g[a+44>>2],ia=+g[a+4>>2],ka=+g[a+8>>2],x=+g[a+12>>2],g[o+12>>2]=0.0,z=+(e[T>>1]|0)/ha+ia,y=+(e[U>>1]|0)/ja+ka,A=+(e[Y>>1]|0)/la+x,g[o+28>>2]=0.0,g[o>>2]=+(X&65535)/ha+ia- +g[m>>2],g[o+4>>2]=+(W&65535)/ja+ka- +g[m+4>>2],g[o+8>>2]=+(V&65535)/la+x- +g[m+8>>2],g[o+16>>2]=z- +g[l>>2],g[o+20>>2]=y- +g[l+4>>2],g[o+24>>2]=A- +g[l+8>>2],A=+g[f>>2],y=B*(+g[o+(p<<4)>>2]-A),A=B*(+g[o+((p^1)<<4)>>2]-A),z=+g[f+4>>2],x=C*(+g[o+(G<<4)+4>>2]-z),z=C*(+g[o+((G^1)<<4)+4>>2]-z),!(y>z|x>A)):0)?(w=x>y?x:y,u=z>2],v=D*(+g[o+(E<<4)+8>>2]-t),t=D*(+g[o+((E^1)<<4)+8>>2]-t),!(w>t|v>u)):0)?(v>w?v:w)<(k-F)*(k-F)*q+((h-r)*(h-r)*q+(j-s)*(j-s)*q):0){U=!((t0.0);if(U|S^1){T=15}else{T=c[R>>2]|0;sc[c[(c[d>>2]|0)+8>>2]&63](d,T>>21,T&2097151);T=16}}else{U=1;T=15}if((T|0)==15){T=0;if(S|U^1){T=16}else{Y=c[R>>2]|0;N=N-Y|0;P=P+(0-Y<<4)|0}}if((T|0)==16){N=N+1|0;P=P+16|0}}while((N|0)<(n|0))}else{O=0}if((c[3610]|0)>=(O|0)){i=o;return}c[3610]=O;i=o;return}function Xt(d,f,h,j){d=d|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=i;c[d+168>>2]=c[d+152>>2];c[f>>2]=14408;c[f+52>>2]=282;a[f+60>>0]=0;a[f+80>>0]=1;c[f+76>>2]=0;c[f+68>>2]=0;c[f+72>>2]=0;a[f+100>>0]=1;c[f+96>>2]=0;c[f+88>>2]=0;c[f+92>>2]=0;a[f+120>>0]=1;c[f+116>>2]=0;c[f+108>>2]=0;c[f+112>>2]=0;a[f+140>>0]=1;c[f+136>>2]=0;c[f+128>>2]=0;c[f+132>>2]=0;c[f+144>>2]=0;a[f+164>>0]=1;c[f+160>>2]=0;c[f+152>>2]=0;c[f+156>>2]=0;c[f+168>>2]=0;g[f+4>>2]=-3.4028234663852886e+38;g[f+8>>2]=-3.4028234663852886e+38;g[f+12>>2]=-3.4028234663852886e+38;g[f+16>>2]=0.0;g[f+20>>2]=3.4028234663852886e+38;g[f+24>>2]=3.4028234663852886e+38;g[f+28>>2]=3.4028234663852886e+38;g[f+32>>2]=0.0;k=c[d+56>>2]|0;if(j){c[f+56>>2]=gy(k|0)|0;a[f+4>>0]=a[d+7>>0]|0;a[f+5>>0]=a[d+6>>0]|0;a[f+6>>0]=a[d+5>>0]|0;a[f+7>>0]=a[d+4>>0]|0;a[f+8>>0]=a[d+11>>0]|0;a[f+9>>0]=a[d+10>>0]|0;a[f+10>>0]=a[d+9>>0]|0;a[f+11>>0]=a[d+8>>0]|0;a[f+12>>0]=a[d+15>>0]|0;a[f+13>>0]=a[d+14>>0]|0;a[f+14>>0]=a[d+13>>0]|0;a[f+15>>0]=a[d+12>>0]|0;a[f+16>>0]=a[d+19>>0]|0;a[f+17>>0]=a[d+18>>0]|0;a[f+18>>0]=a[d+17>>0]|0;a[f+19>>0]=a[d+16>>0]|0;a[f+20>>0]=a[d+23>>0]|0;a[f+21>>0]=a[d+22>>0]|0;a[f+22>>0]=a[d+21>>0]|0;a[f+23>>0]=a[d+20>>0]|0;a[f+24>>0]=a[d+27>>0]|0;a[f+25>>0]=a[d+26>>0]|0;a[f+26>>0]=a[d+25>>0]|0;a[f+27>>0]=a[d+24>>0]|0;a[f+28>>0]=a[d+31>>0]|0;a[f+29>>0]=a[d+30>>0]|0;a[f+30>>0]=a[d+29>>0]|0;a[f+31>>0]=a[d+28>>0]|0;a[f+32>>0]=a[d+35>>0]|0;a[f+33>>0]=a[d+34>>0]|0;a[f+34>>0]=a[d+33>>0]|0;a[f+35>>0]=a[d+32>>0]|0;a[f+36>>0]=a[d+39>>0]|0;a[f+37>>0]=a[d+38>>0]|0;a[f+38>>0]=a[d+37>>0]|0;a[f+39>>0]=a[d+36>>0]|0;a[f+40>>0]=a[d+43>>0]|0;a[f+41>>0]=a[d+42>>0]|0;a[f+42>>0]=a[d+41>>0]|0;a[f+43>>0]=a[d+40>>0]|0;a[f+44>>0]=a[d+47>>0]|0;a[f+45>>0]=a[d+46>>0]|0;a[f+46>>0]=a[d+45>>0]|0;a[f+47>>0]=a[d+44>>0]|0;a[f+48>>0]=a[d+51>>0]|0;a[f+49>>0]=a[d+50>>0]|0;a[f+50>>0]=a[d+49>>0]|0;a[f+51>>0]=a[d+48>>0]|0;c[f+144>>2]=gy(c[d+144>>2]|0)|0;k=gy(c[d+168>>2]|0)|0}else{c[f+56>>2]=k;c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[f+16>>2]=c[d+16>>2];c[f+20>>2]=c[d+20>>2];c[f+24>>2]=c[d+24>>2];c[f+28>>2]=c[d+28>>2];c[f+32>>2]=c[d+32>>2];c[f+36>>2]=c[d+36>>2];c[f+40>>2]=c[d+40>>2];c[f+44>>2]=c[d+44>>2];c[f+48>>2]=c[d+48>>2];c[f+144>>2]=c[d+144>>2];k=c[d+168>>2]|0}c[f+168>>2]=k;a[f+60>>0]=a[d+60>>0]|0;k=c[d+56>>2]|0;if((a[d+60>>0]|0)==0){l=c[f+96>>2]|0;if((l|0)!=0){if((a[f+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0)}c[f+96>>2]=0}c[f+88>>2]=0;c[f+92>>2]=0;c[f+96>>2]=0;a[f+100>>0]=0;c[f+96>>2]=f+172;c[f+88>>2]=k;c[f+92>>2]=k;if(j){if((k|0)>0){l=c[d+96>>2]|0;n=f+172|0;m=0;do{o=l+(m<<6)|0;q=n+(m<<6)|0;a[q>>0]=a[o+3>>0]|0;a[q+1>>0]=a[o+2>>0]|0;a[q+2>>0]=a[o+1>>0]|0;a[q+3>>0]=a[o>>0]|0;q=l+(m<<6)+4|0;o=n+(m<<6)+4|0;a[o>>0]=a[q+3>>0]|0;a[o+1>>0]=a[q+2>>0]|0;a[o+2>>0]=a[q+1>>0]|0;a[o+3>>0]=a[q>>0]|0;o=l+(m<<6)+8|0;q=n+(m<<6)+8|0;a[q>>0]=a[o+3>>0]|0;a[q+1>>0]=a[o+2>>0]|0;a[q+2>>0]=a[o+1>>0]|0;a[q+3>>0]=a[o>>0]|0;q=l+(m<<6)+12|0;n=n+(m<<6)+12|0;a[n>>0]=a[q+3>>0]|0;a[n+1>>0]=a[q+2>>0]|0;a[n+2>>0]=a[q+1>>0]|0;a[n+3>>0]=a[q>>0]|0;n=c[d+96>>2]|0;q=n+(m<<6)+16|0;o=c[f+96>>2]|0;p=o+(m<<6)+16|0;a[p>>0]=a[q+3>>0]|0;a[p+1>>0]=a[q+2>>0]|0;a[p+2>>0]=a[q+1>>0]|0;a[p+3>>0]=a[q>>0]|0;p=n+(m<<6)+20|0;q=o+(m<<6)+20|0;a[q>>0]=a[p+3>>0]|0;a[q+1>>0]=a[p+2>>0]|0;a[q+2>>0]=a[p+1>>0]|0;a[q+3>>0]=a[p>>0]|0;q=n+(m<<6)+24|0;p=o+(m<<6)+24|0;a[p>>0]=a[q+3>>0]|0;a[p+1>>0]=a[q+2>>0]|0;a[p+2>>0]=a[q+1>>0]|0;a[p+3>>0]=a[q>>0]|0;n=n+(m<<6)+28|0;o=o+(m<<6)+28|0;a[o>>0]=a[n+3>>0]|0;a[o+1>>0]=a[n+2>>0]|0;a[o+2>>0]=a[n+1>>0]|0;a[o+3>>0]=a[n>>0]|0;l=c[d+96>>2]|0;o=gy(c[l+(m<<6)+32>>2]|0)|0;n=c[f+96>>2]|0;c[n+(m<<6)+32>>2]=o;c[n+(m<<6)+36>>2]=gy(c[l+(m<<6)+36>>2]|0)|0;c[n+(m<<6)+40>>2]=gy(c[l+(m<<6)+40>>2]|0)|0;m=m+1|0}while((m|0)!=(k|0))}else{n=f+172|0}}else{if((k|0)>0){n=f+172|0;l=c[d+96>>2]|0;m=0;do{n=n+(m<<6)|0;q=l+(m<<6)|0;c[n+0>>2]=c[q+0>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];c[n+12>>2]=c[q+12>>2];n=(c[f+96>>2]|0)+(m<<6)+16|0;q=(c[d+96>>2]|0)+(m<<6)+16|0;c[n+0>>2]=c[q+0>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];c[n+12>>2]=c[q+12>>2];l=c[d+96>>2]|0;n=c[f+96>>2]|0;c[n+(m<<6)+32>>2]=c[l+(m<<6)+32>>2];c[n+(m<<6)+36>>2]=c[l+(m<<6)+36>>2];c[n+(m<<6)+40>>2]=c[l+(m<<6)+40>>2];m=m+1|0}while((m|0)!=(k|0))}else{n=f+172|0}}if((n|0)!=0){if((a[f+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[n+ -4>>2]|0)}c[f+96>>2]=0}c[f+88>>2]=0;c[f+92>>2]=0;c[f+96>>2]=0;a[f+100>>0]=0;k=k<<6}else{l=c[f+136>>2]|0;if((l|0)!=0){if((a[f+140>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0)}c[f+136>>2]=0}c[f+128>>2]=0;c[f+132>>2]=0;c[f+136>>2]=0;a[f+140>>0]=0;c[f+136>>2]=f+172;c[f+128>>2]=k;c[f+132>>2]=k;if(j){if((k|0)>0){l=c[d+136>>2]|0;m=0;do{q=e[l+(m<<4)>>1]|0;b[f+172+(m<<4)>>1]=q>>>8|q<<8;q=e[l+(m<<4)+2>>1]|0;b[f+172+(m<<4)+2>>1]=q>>>8|q<<8;q=e[l+(m<<4)+4>>1]|0;b[f+172+(m<<4)+4>>1]=q>>>8|q<<8;q=e[l+(m<<4)+6>>1]|0;b[f+172+(m<<4)+6>>1]=q>>>8|q<<8;q=e[l+(m<<4)+8>>1]|0;b[f+172+(m<<4)+8>>1]=q>>>8|q<<8;q=e[l+(m<<4)+10>>1]|0;b[f+172+(m<<4)+10>>1]=q>>>8|q<<8;c[f+172+(m<<4)+12>>2]=gy(c[l+(m<<4)+12>>2]|0)|0;m=m+1|0}while((m|0)!=(k|0))}}else{if((k|0)>0){l=c[d+136>>2]|0;m=0;do{b[f+172+(m<<4)>>1]=b[l+(m<<4)>>1]|0;b[f+172+(m<<4)+2>>1]=b[l+(m<<4)+2>>1]|0;b[f+172+(m<<4)+4>>1]=b[l+(m<<4)+4>>1]|0;b[f+172+(m<<4)+6>>1]=b[l+(m<<4)+6>>1]|0;b[f+172+(m<<4)+8>>1]=b[l+(m<<4)+8>>1]|0;b[f+172+(m<<4)+10>>1]=b[l+(m<<4)+10>>1]|0;c[f+172+(m<<4)+12>>2]=c[l+(m<<4)+12>>2];m=m+1|0}while((m|0)!=(k|0))}}c[f+128>>2]=0;c[f+132>>2]=0;c[f+136>>2]=0;a[f+140>>0]=0;k=k<<4}k=f+(k+172)|0;m=c[d+168>>2]|0;l=c[f+160>>2]|0;if((l|0)!=0){if((a[f+164>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0)}c[f+160>>2]=0}c[f+152>>2]=0;c[f+156>>2]=0;c[f+160>>2]=0;a[f+164>>0]=0;c[f+160>>2]=k;c[f+152>>2]=m;c[f+156>>2]=m;l=(c[d+168>>2]|0)>0;if(j){if(!l){c[f>>2]=0;c[f+152>>2]=0;c[f+156>>2]=0;c[f+160>>2]=0;a[f+164>>0]=0;i=h;return 1}l=c[d+160>>2]|0;j=0;do{q=e[l+(j<<5)>>1]|0;b[k+(j<<5)>>1]=q>>>8|q<<8;q=e[l+(j<<5)+2>>1]|0;b[k+(j<<5)+2>>1]=q>>>8|q<<8;q=e[l+(j<<5)+4>>1]|0;b[k+(j<<5)+4>>1]=q>>>8|q<<8;q=e[l+(j<<5)+6>>1]|0;b[k+(j<<5)+6>>1]=q>>>8|q<<8;q=e[l+(j<<5)+8>>1]|0;b[k+(j<<5)+8>>1]=q>>>8|q<<8;q=e[l+(j<<5)+10>>1]|0;b[k+(j<<5)+10>>1]=q>>>8|q<<8;c[k+(j<<5)+12>>2]=gy(c[l+(j<<5)+12>>2]|0)|0;c[k+(j<<5)+16>>2]=gy(c[l+(j<<5)+16>>2]|0)|0;j=j+1|0}while((j|0)<(c[d+168>>2]|0));c[f>>2]=0;c[f+152>>2]=0;c[f+156>>2]=0;c[f+160>>2]=0;a[f+164>>0]=0;i=h;return 1}else{if(!l){c[f>>2]=0;c[f+152>>2]=0;c[f+156>>2]=0;c[f+160>>2]=0;a[f+164>>0]=0;i=h;return 1}j=c[d+160>>2]|0;l=0;do{b[k+(l<<5)>>1]=b[j+(l<<5)>>1]|0;b[k+(l<<5)+2>>1]=b[j+(l<<5)+2>>1]|0;b[k+(l<<5)+4>>1]=b[j+(l<<5)+4>>1]|0;b[k+(l<<5)+6>>1]=b[j+(l<<5)+6>>1]|0;b[k+(l<<5)+8>>1]=b[j+(l<<5)+8>>1]|0;b[k+(l<<5)+10>>1]=b[j+(l<<5)+10>>1]|0;c[k+(l<<5)+12>>2]=c[j+(l<<5)+12>>2];c[k+(l<<5)+16>>2]=c[j+(l<<5)+16>>2];c[k+(l<<5)+20>>2]=0;c[k+(l<<5)+24>>2]=0;c[k+(l<<5)+28>>2]=0;l=l+1|0}while((l|0)<(c[d+168>>2]|0));c[f>>2]=0;c[f+152>>2]=0;c[f+156>>2]=0;c[f+160>>2]=0;a[f+164>>0]=0;i=h;return 1}return 0}function Yt(d,e){d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=i;i=i+112|0;g[d+20>>2]=+g[e+16>>2];g[d+24>>2]=+g[e+20>>2];g[d+28>>2]=+g[e+24>>2];g[d+32>>2]=+g[e+28>>2];g[d+4>>2]=+g[e>>2];g[d+8>>2]=+g[e+4>>2];g[d+12>>2]=+g[e+8>>2];g[d+16>>2]=+g[e+12>>2];g[d+36>>2]=+g[e+32>>2];g[d+40>>2]=+g[e+36>>2];g[d+44>>2]=+g[e+40>>2];g[d+48>>2]=+g[e+44>>2];c[d+56>>2]=c[e+48>>2];a[d+60>>0]=(c[e+52>>2]|0)!=0&1;h=c[e+56>>2]|0;l=f+48|0;m=l+64|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));j=c[d+88>>2]|0;if((j|0)<(h|0)){if((c[d+92>>2]|0)<(h|0)){if((h|0)==0){n=j;o=0}else{c[4546]=(c[4546]|0)+1;k=Zx(h<<6|19)|0;if((k|0)==0){o=0}else{c[(k+19&-16)+ -4>>2]=k;o=k+19&-16}n=c[d+88>>2]|0}if((n|0)>0){p=0;do{l=o+(p<<6)+0|0;k=(c[d+96>>2]|0)+(p<<6)+0|0;m=l+64|0;do{c[l>>2]=c[k>>2];l=l+4|0;k=k+4|0}while((l|0)<(m|0));p=p+1|0}while((p|0)!=(n|0))}k=c[d+96>>2]|0;if((k|0)!=0){if((a[d+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[d+96>>2]=0}a[d+100>>0]=1;c[d+96>>2]=o;c[d+92>>2]=h;n=d+96|0}else{n=d+96|0}do{l=(c[n>>2]|0)+(j<<6)+0|0;k=f+48|0;m=l+64|0;do{c[l>>2]=c[k>>2];l=l+4|0;k=k+4|0}while((l|0)<(m|0));j=j+1|0}while((j|0)!=(h|0))}c[d+88>>2]=h;if((h|0)>0){l=c[d+96>>2]|0;k=0;j=c[e+64>>2]|0;while(1){g[l+(k<<6)+16>>2]=+g[j+16>>2];g[l+(k<<6)+20>>2]=+g[j+20>>2];g[l+(k<<6)+24>>2]=+g[j+24>>2];g[l+(k<<6)+28>>2]=+g[j+28>>2];g[l+(k<<6)>>2]=+g[j>>2];g[l+(k<<6)+4>>2]=+g[j+4>>2];g[l+(k<<6)+8>>2]=+g[j+8>>2];g[l+(k<<6)+12>>2]=+g[j+12>>2];c[l+(k<<6)+32>>2]=c[j+32>>2];c[l+(k<<6)+36>>2]=c[j+36>>2];c[l+(k<<6)+40>>2]=c[j+40>>2];k=k+1|0;if((k|0)==(h|0)){break}else{j=j+48|0}}}h=c[e+60>>2]|0;c[f+32>>2]=0;c[f+36>>2]=0;c[f+40>>2]=0;c[f+44>>2]=0;j=c[d+128>>2]|0;if((j|0)<(h|0)){if((c[d+132>>2]|0)<(h|0)){if((h|0)==0){k=j;l=0}else{c[4546]=(c[4546]|0)+1;k=Zx((h<<4|3)+16|0)|0;if((k|0)==0){l=0}else{c[(k+19&-16)+ -4>>2]=k;l=k+19&-16}k=c[d+128>>2]|0}if((k|0)>0){m=0;do{p=l+(m<<4)|0;o=(c[d+136>>2]|0)+(m<<4)|0;c[p+0>>2]=c[o+0>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];m=m+1|0}while((m|0)!=(k|0))}k=c[d+136>>2]|0;if((k|0)!=0){if((a[d+140>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[d+136>>2]=0}a[d+140>>0]=1;c[d+136>>2]=l;c[d+132>>2]=h;k=d+136|0}else{k=d+136|0}do{p=(c[k>>2]|0)+(j<<4)|0;c[p+0>>2]=c[f+32>>2];c[p+4>>2]=c[f+36>>2];c[p+8>>2]=c[f+40>>2];c[p+12>>2]=c[f+44>>2];j=j+1|0}while((j|0)!=(h|0))}c[d+128>>2]=h;if((h|0)>0){j=c[d+136>>2]|0;l=0;k=c[e+68>>2]|0;while(1){c[j+(l<<4)+12>>2]=c[k+12>>2];b[j+(l<<4)+6>>1]=b[k+6>>1]|0;b[j+(l<<4)+8>>1]=b[k+8>>1]|0;b[j+(l<<4)+10>>1]=b[k+10>>1]|0;b[j+(l<<4)>>1]=b[k>>1]|0;b[j+(l<<4)+2>>1]=b[k+2>>1]|0;b[j+(l<<4)+4>>1]=b[k+4>>1]|0;l=l+1|0;if((l|0)==(h|0)){break}else{k=k+16|0}}}c[d+144>>2]=c[e+76>>2];h=c[e+80>>2]|0;j=c[d+152>>2]|0;if((j|0)<(h|0)){if((c[d+156>>2]|0)<(h|0)){if((h|0)==0){k=j;l=0}else{c[4546]=(c[4546]|0)+1;k=Zx(h<<5|19)|0;if((k|0)==0){l=0}else{c[(k+19&-16)+ -4>>2]=k;l=k+19&-16}k=c[d+152>>2]|0}if((k|0)>0){m=0;do{p=l+(m<<5)|0;o=(c[d+160>>2]|0)+(m<<5)|0;c[p+0>>2]=c[o+0>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];c[p+16>>2]=c[o+16>>2];c[p+20>>2]=c[o+20>>2];c[p+24>>2]=c[o+24>>2];c[p+28>>2]=c[o+28>>2];m=m+1|0}while((m|0)!=(k|0))}k=c[d+160>>2]|0;if((k|0)!=0){if((a[d+164>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[d+160>>2]=0}a[d+164>>0]=1;c[d+160>>2]=l;c[d+156>>2]=h;k=d+160|0}else{k=d+160|0}do{p=(c[k>>2]|0)+(j<<5)|0;c[p+0>>2]=c[f+0>>2];c[p+4>>2]=c[f+4>>2];c[p+8>>2]=c[f+8>>2];c[p+12>>2]=c[f+12>>2];c[p+16>>2]=c[f+16>>2];c[p+20>>2]=c[f+20>>2];c[p+24>>2]=c[f+24>>2];c[p+28>>2]=c[f+28>>2];j=j+1|0}while((j|0)!=(h|0))}c[d+152>>2]=h;if((h|0)<=0){i=f;return}j=c[d+160>>2]|0;d=0;e=c[e+72>>2]|0;while(1){b[j+(d<<5)+6>>1]=b[e+14>>1]|0;b[j+(d<<5)+8>>1]=b[e+16>>1]|0;b[j+(d<<5)+10>>1]=b[e+18>>1]|0;b[j+(d<<5)>>1]=b[e+8>>1]|0;b[j+(d<<5)+2>>1]=b[e+10>>1]|0;b[j+(d<<5)+4>>1]=b[e+12>>1]|0;c[j+(d<<5)+12>>2]=c[e>>2];c[j+(d<<5)+16>>2]=c[e+4>>2];d=d+1|0;if((d|0)==(h|0)){break}else{e=e+20|0}}i=f;return}function Zt(d,e){d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;i=i+112|0;g[d+20>>2]=+h[e+32>>3];g[d+24>>2]=+h[e+40>>3];g[d+28>>2]=+h[e+48>>3];g[d+32>>2]=+h[e+56>>3];g[d+4>>2]=+h[e>>3];g[d+8>>2]=+h[e+8>>3];g[d+12>>2]=+h[e+16>>3];g[d+16>>2]=+h[e+24>>3];g[d+36>>2]=+h[e+64>>3];g[d+40>>2]=+h[e+72>>3];g[d+44>>2]=+h[e+80>>3];g[d+48>>2]=+h[e+88>>3];c[d+56>>2]=c[e+96>>2];a[d+60>>0]=(c[e+100>>2]|0)!=0&1;j=c[e+104>>2]|0;m=f+48|0;n=m+64|0;do{c[m>>2]=0;m=m+4|0}while((m|0)<(n|0));k=c[d+88>>2]|0;if((k|0)<(j|0)){if((c[d+92>>2]|0)<(j|0)){if((j|0)==0){o=k;p=0}else{c[4546]=(c[4546]|0)+1;l=Zx(j<<6|19)|0;if((l|0)==0){p=0}else{c[(l+19&-16)+ -4>>2]=l;p=l+19&-16}o=c[d+88>>2]|0}if((o|0)>0){q=0;do{m=p+(q<<6)+0|0;l=(c[d+96>>2]|0)+(q<<6)+0|0;n=m+64|0;do{c[m>>2]=c[l>>2];m=m+4|0;l=l+4|0}while((m|0)<(n|0));q=q+1|0}while((q|0)!=(o|0))}l=c[d+96>>2]|0;if((l|0)!=0){if((a[d+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0)}c[d+96>>2]=0}a[d+100>>0]=1;c[d+96>>2]=p;c[d+92>>2]=j;o=d+96|0}else{o=d+96|0}do{m=(c[o>>2]|0)+(k<<6)+0|0;l=f+48|0;n=m+64|0;do{c[m>>2]=c[l>>2];m=m+4|0;l=l+4|0}while((m|0)<(n|0));k=k+1|0}while((k|0)!=(j|0))}c[d+88>>2]=j;if((j|0)>0){m=c[d+96>>2]|0;l=0;k=c[e+112>>2]|0;while(1){g[m+(l<<6)+16>>2]=+h[k+32>>3];g[m+(l<<6)+20>>2]=+h[k+40>>3];g[m+(l<<6)+24>>2]=+h[k+48>>3];g[m+(l<<6)+28>>2]=+h[k+56>>3];g[m+(l<<6)>>2]=+h[k>>3];g[m+(l<<6)+4>>2]=+h[k+8>>3];g[m+(l<<6)+8>>2]=+h[k+16>>3];g[m+(l<<6)+12>>2]=+h[k+24>>3];c[m+(l<<6)+32>>2]=c[k+64>>2];c[m+(l<<6)+36>>2]=c[k+68>>2];c[m+(l<<6)+40>>2]=c[k+72>>2];l=l+1|0;if((l|0)==(j|0)){break}else{k=k+80|0}}}j=c[e+108>>2]|0;c[f+32>>2]=0;c[f+36>>2]=0;c[f+40>>2]=0;c[f+44>>2]=0;k=c[d+128>>2]|0;if((k|0)<(j|0)){if((c[d+132>>2]|0)<(j|0)){if((j|0)==0){l=k;m=0}else{c[4546]=(c[4546]|0)+1;l=Zx((j<<4|3)+16|0)|0;if((l|0)==0){m=0}else{c[(l+19&-16)+ -4>>2]=l;m=l+19&-16}l=c[d+128>>2]|0}if((l|0)>0){n=0;do{q=m+(n<<4)|0;p=(c[d+136>>2]|0)+(n<<4)|0;c[q+0>>2]=c[p+0>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];n=n+1|0}while((n|0)!=(l|0))}l=c[d+136>>2]|0;if((l|0)!=0){if((a[d+140>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0)}c[d+136>>2]=0}a[d+140>>0]=1;c[d+136>>2]=m;c[d+132>>2]=j;l=d+136|0}else{l=d+136|0}do{q=(c[l>>2]|0)+(k<<4)|0;c[q+0>>2]=c[f+32>>2];c[q+4>>2]=c[f+36>>2];c[q+8>>2]=c[f+40>>2];c[q+12>>2]=c[f+44>>2];k=k+1|0}while((k|0)!=(j|0))}c[d+128>>2]=j;if((j|0)>0){k=c[d+136>>2]|0;m=0;l=c[e+116>>2]|0;while(1){c[k+(m<<4)+12>>2]=c[l+12>>2];b[k+(m<<4)+6>>1]=b[l+6>>1]|0;b[k+(m<<4)+8>>1]=b[l+8>>1]|0;b[k+(m<<4)+10>>1]=b[l+10>>1]|0;b[k+(m<<4)>>1]=b[l>>1]|0;b[k+(m<<4)+2>>1]=b[l+2>>1]|0;b[k+(m<<4)+4>>1]=b[l+4>>1]|0;m=m+1|0;if((m|0)==(j|0)){break}else{l=l+16|0}}}c[d+144>>2]=c[e+120>>2];j=c[e+124>>2]|0;k=c[d+152>>2]|0;if((k|0)<(j|0)){if((c[d+156>>2]|0)<(j|0)){if((j|0)==0){l=k;m=0}else{c[4546]=(c[4546]|0)+1;l=Zx(j<<5|19)|0;if((l|0)==0){m=0}else{c[(l+19&-16)+ -4>>2]=l;m=l+19&-16}l=c[d+152>>2]|0}if((l|0)>0){n=0;do{q=m+(n<<5)|0;p=(c[d+160>>2]|0)+(n<<5)|0;c[q+0>>2]=c[p+0>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];c[q+16>>2]=c[p+16>>2];c[q+20>>2]=c[p+20>>2];c[q+24>>2]=c[p+24>>2];c[q+28>>2]=c[p+28>>2];n=n+1|0}while((n|0)!=(l|0))}l=c[d+160>>2]|0;if((l|0)!=0){if((a[d+164>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0)}c[d+160>>2]=0}a[d+164>>0]=1;c[d+160>>2]=m;c[d+156>>2]=j;l=d+160|0}else{l=d+160|0}do{q=(c[l>>2]|0)+(k<<5)|0;c[q+0>>2]=c[f+0>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];c[q+16>>2]=c[f+16>>2];c[q+20>>2]=c[f+20>>2];c[q+24>>2]=c[f+24>>2];c[q+28>>2]=c[f+28>>2];k=k+1|0}while((k|0)!=(j|0))}c[d+152>>2]=j;if((j|0)<=0){i=f;return}k=c[d+160>>2]|0;d=0;e=c[e+128>>2]|0;while(1){b[k+(d<<5)+6>>1]=b[e+14>>1]|0;b[k+(d<<5)+8>>1]=b[e+16>>1]|0;b[k+(d<<5)+10>>1]=b[e+18>>1]|0;b[k+(d<<5)>>1]=b[e+8>>1]|0;b[k+(d<<5)+2>>1]=b[e+10>>1]|0;b[k+(d<<5)+4>>1]=b[e+12>>1]|0;c[k+(d<<5)+12>>2]=c[e>>2];c[k+(d<<5)+16>>2]=c[e+4>>2];d=d+1|0;if((d|0)==(j|0)){break}else{e=e+20|0}}i=f;return}function _t(a,e,f){a=a|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0;h=i;g[e+16>>2]=+g[a+20>>2];g[e+20>>2]=+g[a+24>>2];g[e+24>>2]=+g[a+28>>2];g[e+28>>2]=+g[a+32>>2];g[e>>2]=+g[a+4>>2];g[e+4>>2]=+g[a+8>>2];g[e+8>>2]=+g[a+12>>2];g[e+12>>2]=+g[a+16>>2];g[e+32>>2]=+g[a+36>>2];g[e+36>>2]=+g[a+40>>2];g[e+40>>2]=+g[a+44>>2];g[e+44>>2]=+g[a+48>>2];c[e+48>>2]=c[a+56>>2];c[e+52>>2]=d[a+60>>0]|0;c[e+56>>2]=c[a+88>>2];if((c[a+88>>2]|0)!=0){n=hc[c[(c[f>>2]|0)+28>>2]&31](f,c[a+96>>2]|0)|0;c[e+64>>2]=n;if((n|0)!=0){n=c[a+88>>2]|0;j=_b[c[(c[f>>2]|0)+16>>2]&31](f,48,n)|0;if((n|0)>0){k=c[a+96>>2]|0;m=0;l=c[j+8>>2]|0;while(1){g[l+16>>2]=+g[k+(m<<6)+16>>2];g[l+20>>2]=+g[k+(m<<6)+20>>2];g[l+24>>2]=+g[k+(m<<6)+24>>2];g[l+28>>2]=+g[k+(m<<6)+28>>2];g[l>>2]=+g[k+(m<<6)>>2];g[l+4>>2]=+g[k+(m<<6)+4>>2];g[l+8>>2]=+g[k+(m<<6)+8>>2];g[l+12>>2]=+g[k+(m<<6)+12>>2];c[l+32>>2]=c[k+(m<<6)+32>>2];c[l+36>>2]=c[k+(m<<6)+36>>2];c[l+40>>2]=c[k+(m<<6)+40>>2];m=m+1|0;if((m|0)==(n|0)){break}else{l=l+48|0}}}else{k=c[a+96>>2]|0}Lb[c[(c[f>>2]|0)+20>>2]&31](f,j,14448,1497453121,k)}}else{c[e+64>>2]=0}c[e+60>>2]=c[a+128>>2];if((c[a+128>>2]|0)!=0){n=hc[c[(c[f>>2]|0)+28>>2]&31](f,c[a+136>>2]|0)|0;c[e+68>>2]=n;if((n|0)!=0){k=c[a+128>>2]|0;j=_b[c[(c[f>>2]|0)+16>>2]&31](f,16,k)|0;if((k|0)>0){l=c[a+136>>2]|0;n=0;m=c[j+8>>2]|0;while(1){c[m+12>>2]=c[l+(n<<4)+12>>2];b[m+6>>1]=b[l+(n<<4)+6>>1]|0;b[m+8>>1]=b[l+(n<<4)+8>>1]|0;b[m+10>>1]=b[l+(n<<4)+10>>1]|0;b[m>>1]=b[l+(n<<4)>>1]|0;b[m+2>>1]=b[l+(n<<4)+2>>1]|0;b[m+4>>1]=b[l+(n<<4)+4>>1]|0;n=n+1|0;if((n|0)==(k|0)){break}else{m=m+16|0}}}else{l=c[a+136>>2]|0}Lb[c[(c[f>>2]|0)+20>>2]&31](f,j,14472,1497453121,l)}}else{c[e+68>>2]=0}c[e+76>>2]=c[a+144>>2];c[e+80>>2]=c[a+152>>2];if((c[a+152>>2]|0)==0){c[e+72>>2]=0;i=h;return 14520}n=hc[c[(c[f>>2]|0)+28>>2]&31](f,c[a+160>>2]|0)|0;c[e+72>>2]=n;if((n|0)==0){i=h;return 14520}j=c[a+152>>2]|0;e=_b[c[(c[f>>2]|0)+16>>2]&31](f,20,j)|0;if((j|0)>0){a=c[a+160>>2]|0;l=0;k=c[e+8>>2]|0;while(1){b[k+14>>1]=b[a+(l<<5)+6>>1]|0;b[k+16>>1]=b[a+(l<<5)+8>>1]|0;b[k+18>>1]=b[a+(l<<5)+10>>1]|0;b[k+8>>1]=b[a+(l<<5)>>1]|0;b[k+10>>1]=b[a+(l<<5)+2>>1]|0;b[k+12>>1]=b[a+(l<<5)+4>>1]|0;c[k>>2]=c[a+(l<<5)+12>>2];c[k+4>>2]=c[a+(l<<5)+16>>2];l=l+1|0;if((l|0)==(j|0)){break}else{k=k+20|0}}}else{a=c[a+160>>2]|0}Lb[c[(c[f>>2]|0)+20>>2]&31](f,e,14496,1497453121,a);i=h;return 14520}function $t(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0;f=i;i=i+32|0;C=+g[b+16>>2];s=+g[b>>2];B=+g[b+20>>2];u=+g[b+4>>2];y=+g[b+24>>2];x=+g[b+8>>2];v=+g[b+32>>2];o=+g[b+36>>2];p=+g[b+40>>2];m=(B-u)*(p-x)-(y-x)*(o-u);k=(y-x)*(v-s)-(C-s)*(p-x);l=(C-s)*(o-u)-(B-u)*(v-s);g[f+16>>2]=m;g[f+20>>2]=k;g[f+24>>2]=l;g[f+28>>2]=0.0;z=+g[a+4>>2];w=+g[a+8>>2];q=+g[a+12>>2];h=m*z+k*w+l*q-(s*m+u*k+x*l);A=+g[a+20>>2];t=+g[a+24>>2];r=+g[a+28>>2];if(h*(m*A+k*t+l*r-(s*m+u*k+x*l))>=0.0){i=f;return}b=c[a+36>>2]|0;if(!((b&1|0)==0|!(h<=0.0))){i=f;return}j=h/(h-(m*A+k*t+l*r-(s*m+u*k+x*l)));if(!(j<+g[a+40>>2])){i=f;return}n=(m*m+k*k+l*l)*-9999999747378752.0e-20;s=s-(A*j+z*(1.0-j));u=u-(t*j+w*(1.0-j));x=x-(r*j+q*(1.0-j));C=C-(A*j+z*(1.0-j));B=B-(t*j+w*(1.0-j));y=y-(r*j+q*(1.0-j));if(!(l*(s*B-u*C)+(m*(u*y-x*B)+k*(x*C-s*y))>=n)){i=f;return}v=v-(A*j+z*(1.0-j));o=o-(t*j+w*(1.0-j));p=p-(r*j+q*(1.0-j));if(!(l*(C*o-B*v)+(m*(B*p-y*o)+k*(y*v-C*p))>=n)){i=f;return}if(!(l*(u*v-s*o)+(m*(x*o-u*p)+k*(s*p-x*v))>=n)){i=f;return}n=1.0/+Q(+(m*m+k*k+l*l));g[f+16>>2]=m*n;g[f+20>>2]=k*n;g[f+24>>2]=l*n;D=c[(c[a>>2]|0)+12>>2]|0;if((b&2|0)!=0|!(h<=0.0)){g[a+40>>2]=+oc[D&3](a,f+16|0,j,d,e);i=f;return}else{g[f>>2]=-(m*n);g[f+4>>2]=-(k*n);g[f+8>>2]=-(l*n);g[f+12>>2]=0.0;g[a+40>>2]=+oc[D&3](a,f,j,d,e);i=f;return}}function au(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;h=i;i=i+672|0;c[h+576>>2]=0;g[h+580>>2]=1.0;g[h+584>>2]=1.0;g[h+588>>2]=1.0;g[h+592>>2]=0.0;c[h+620>>2]=0;c[h+568>>2]=14704;c[h+572>>2]=1;c[h+624>>2]=c[d+0>>2];c[h+628>>2]=c[d+4>>2];c[h+632>>2]=c[d+8>>2];c[h+636>>2]=c[d+12>>2];c[h+640>>2]=c[d+16>>2];c[h+644>>2]=c[d+20>>2];c[h+648>>2]=c[d+24>>2];c[h+652>>2]=c[d+28>>2];c[h+656>>2]=c[d+32>>2];c[h+660>>2]=c[d+36>>2];c[h+664>>2]=c[d+40>>2];c[h+668>>2]=c[d+44>>2];g[h+612>>2]=+g[b+204>>2];g[h+516>>2]=9999999747378752.0e-20;a[h+540>>0]=0;c[h+200>>2]=11736;d=c[b+4>>2]|0;c[h+176>>2]=9296;c[h+180>>2]=h+208;c[h+184>>2]=h+200;c[h+188>>2]=d;c[h+192>>2]=h+568;c[h+196>>2]=0;c[h>>2]=8584;c[h+168>>2]=0;g[h+164>>2]=1.0;g[h+172>>2]=+g[b+208>>2];if((xq(h+176|0,b+8|0,b+72|0,b+136|0,b+136|0,h)|0?(j=+g[h+132>>2],l=+g[h+136>>2],m=+g[h+140>>2],j*j+l*l+m*m>9999999747378752.0e-20):0)?(k=+g[h+164>>2],k<+g[b+200>>2]):0){n=1.0/+Q(+(j*j+l*l+m*m));g[h+132>>2]=j*n;g[h+136>>2]=l*n;g[h+140>>2]=m*n;+dc[c[(c[b>>2]|0)+12>>2]&3](b,h+132|0,h+148|0,k,e,f)}c[h+568>>2]=14224;e=c[h+620>>2]|0;if((e|0)==0){i=h;return}Nb[c[c[e>>2]>>2]&255](e);e=c[h+620>>2]|0;if((e|0)==0){i=h;return}c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0);i=h;return}function bu(a){a=a|0;var b=0,d=0;b=i;c[a>>2]=14224;d=c[a+52>>2]|0;if((d|0)==0){i=b;return}Nb[c[c[d>>2]>>2]&255](d);a=c[a+52>>2]|0;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function cu(a){a=a|0;return}function du(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function eu(a){a=a|0;var b=0,d=0;b=i;c[a>>2]=14224;d=c[a+52>>2]|0;if((d|0)!=0){Nb[c[c[d>>2]>>2]&255](d);d=c[a+52>>2]|0;if((d|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[d+ -4>>2]|0)}if((a|0)==0){i=b;return}}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function fu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;wc[c[(c[a>>2]|0)+80>>2]&63](a,b,d,e);i=f;return}function gu(a,b,d){a=a|0;b=+b;d=d|0;a=i;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;i=a;return}function hu(a){a=a|0;return 14872}function iu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0;e=i;l=+g[d>>2];k=+g[d+4>>2];f=+g[d+8>>2];j=l*+g[b+56>>2]+k*+g[b+60>>2]+f*+g[b+64>>2];h=l*+g[b+72>>2]+k*+g[b+76>>2]+f*+g[b+80>>2];f=l*+g[b+88>>2]+k*+g[b+92>>2]+f*+g[b+96>>2];if(j>2]=c[d+0>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];i=e;return}else{d=j>2]=c[d+0>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];i=e;return}}function ju(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0.0;h=i;if((e|0)<=0){i=h;return}f=0;do{p=+g[b+(f<<4)>>2];o=+g[b+(f<<4)+4>>2];k=+g[b+(f<<4)+8>>2];m=p*+g[a+56>>2]+o*+g[a+60>>2]+k*+g[a+64>>2];l=p*+g[a+72>>2]+o*+g[a+76>>2]+k*+g[a+80>>2];k=p*+g[a+88>>2]+o*+g[a+92>>2]+k*+g[a+96>>2];j=d+(f<<4)|0;if(m>2]=c[n+0>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2];f=f+1|0}while((f|0)!=(e|0));i=h;return}function ku(a){a=a|0;return 2}function lu(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,h=0,j=0.0,k=0.0,l=0.0,m=0.0;h=i;k=+g[a+56>>2];f=+g[a+72>>2]-k;j=+g[a+60>>2];e=+g[a+76>>2]-j;l=+g[a+64>>2];d=+g[a+80>>2]-l;k=+g[a+88>>2]-k;j=+g[a+92>>2]-j;l=+g[a+96>>2]-l;g[c+12>>2]=0.0;m=1.0/+Q(+((f*j-e*k)*(f*j-e*k)+((e*l-d*j)*(e*l-d*j)+(d*k-f*l)*(d*k-f*l))));g[c>>2]=m*(e*l-d*j);g[c+4>>2]=m*(d*k-f*l);g[c+8>>2]=(f*j-e*k)*m;if((b|0)==0){i=h;return}g[c>>2]=m*(e*l-d*j)*-1.0;g[c+4>>2]=m*(d*k-f*l)*-1.0;g[c+8>>2]=(f*j-e*k)*m*-1.0;i=h;return}function mu(a){a=a|0;return 3}function nu(a){a=a|0;return 3}function ou(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;sc[c[(c[a>>2]|0)+108>>2]&63](a,b,d);sc[c[(c[a>>2]|0)+108>>2]&63](a,(b+1|0)%3|0,e);i=f;return}function pu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[d+0>>2]=c[a+(b<<4)+56>>2];c[d+4>>2]=c[a+(b<<4)+60>>2];c[d+8>>2]=c[a+(b<<4)+64>>2];c[d+12>>2]=c[a+(b<<4)+68>>2];i=e;return}function qu(a){a=a|0;return 1}function ru(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;wc[c[(c[a>>2]|0)+124>>2]&63](a,e,b,d);i=f;return}function su(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0.0,h=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;e=i;i=i+32|0;n=+g[a+56>>2];r=+g[a+72>>2]-n;m=+g[a+60>>2];p=+g[a+76>>2]-m;l=+g[a+64>>2];s=+g[a+80>>2]-l;o=+g[a+88>>2]-n;q=+g[a+92>>2]-m;f=+g[a+96>>2]-l;j=1.0/+Q(+((r*q-p*o)*(r*q-p*o)+((p*f-s*q)*(p*f-s*q)+(s*o-r*f)*(s*o-r*f))));h=j*(p*f-s*q);f=j*(s*o-r*f);j=(r*q-p*o)*j;l=+g[b>>2]*h+ +g[b+4>>2]*f+j*+g[b+8>>2]-(h*n+f*m+j*l);if(!(l>=-d)|!(l<=d)){k=0;i=e;return k|0}k=0;while(1){wc[c[(c[a>>2]|0)+104>>2]&63](a,k,e+16|0,e);n=+g[e+16>>2];s=+g[e>>2]-n;p=+g[e+20>>2];o=+g[e+4>>2]-p;m=+g[e+24>>2];r=+g[e+8>>2]-m;q=1.0/+Q(+((f*s-h*o)*(f*s-h*o)+((j*o-f*r)*(j*o-f*r)+(h*r-j*s)*(h*r-j*s))));k=k+1|0;if(+g[b>>2]*q*(j*o-f*r)+ +g[b+4>>2]*q*(h*r-j*s)+(f*s-h*o)*q*+g[b+8>>2]-(m*(f*s-h*o)*q+(n*q*(j*o-f*r)+p*q*(h*r-j*s)))<-d){b=0;a=5;break}if((k|0)>=3){b=1;a=5;break}}if((a|0)==5){i=e;return b|0}return 0}function tu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;b=i;h=+g[a+56>>2];l=+g[a+72>>2]-h;k=+g[a+60>>2];j=+g[a+76>>2]-k;m=+g[a+64>>2];n=+g[a+80>>2]-m;h=+g[a+88>>2]-h;k=+g[a+92>>2]-k;m=+g[a+96>>2]-m;g[d+12>>2]=0.0;f=1.0/+Q(+((l*k-j*h)*(l*k-j*h)+((j*m-n*k)*(j*m-n*k)+(n*h-l*m)*(n*h-l*m))));g[d>>2]=f*(j*m-n*k);g[d+4>>2]=f*(n*h-l*m);g[d+8>>2]=(l*k-j*h)*f;c[e+0>>2]=c[a+56>>2];c[e+4>>2]=c[a+60>>2];c[e+8>>2]=c[a+64>>2];c[e+12>>2]=c[a+68>>2];i=b;return}function uu(a){a=a|0;var b=0;b=i;vu(a);if((a|0)==0){i=b;return}_x(a);i=b;return}function vu(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=14896;e=c[b+56>>2]|0;if((e|0)!=0){if((a[b+60>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;e=c[b+36>>2]|0;if((e|0)!=0){if((a[b+40>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;e=c[b+16>>2]|0;if((e|0)==0){e=b+12|0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[e>>2]=0;i=d;return}if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+16>>2]=0;e=b+12|0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[e>>2]=0;i=d;return}function wu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;e=i;if((c[d+8>>2]|0)>0){h=c[d+16>>2]|0;j=0;f=0;do{k=c[h+(j<<2)>>2]|0;if((c[k+204>>2]&3|0)==0){c[k+208>>2]=f;f=f+1|0}c[k+212>>2]=-1;g[k+244>>2]=1.0;j=j+1|0}while((j|0)<(c[d+8>>2]|0))}else{f=0}h=c[b+8>>2]|0;if((h|0)<(f|0)){if((c[b+12>>2]|0)<(f|0)){if((f|0)==0){j=h;k=0}else{c[4546]=(c[4546]|0)+1;j=Zx((f<<3|3)+16|0)|0;if((j|0)==0){k=0}else{c[(j+19&-16)+ -4>>2]=j;k=j+19&-16}j=c[b+8>>2]|0}if((j|0)>0){l=0;do{m=k+(l<<3)|0;if((m|0)!=0){o=(c[b+16>>2]|0)+(l<<3)|0;n=c[o+4>>2]|0;c[m>>2]=c[o>>2];c[m+4>>2]=n}l=l+1|0}while((l|0)!=(j|0))}j=c[b+16>>2]|0;if((j|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=k;c[b+12>>2]=f;j=b+16|0}else{j=b+16|0}do{k=(c[j>>2]|0)+(h<<3)|0;if((k|0)!=0){c[k>>2]=0;c[k+4>>2]=0}h=h+1|0}while((h|0)!=(f|0))}c[b+8>>2]=f;if((f|0)>0){j=c[b+16>>2]|0;h=0;do{c[j+(h<<3)>>2]=h;c[j+(h<<3)+4>>2]=1;h=h+1|0}while((h|0)!=(f|0))}f=c[d+68>>2]|0;f=Rb[c[(c[f>>2]|0)+36>>2]&127](f)|0;d=Rb[c[(c[f>>2]|0)+36>>2]&127](f)|0;if((d|0)==0){i=e;return}h=Rb[c[(c[f>>2]|0)+20>>2]&127](f)|0;if((d|0)<=0){i=e;return}f=0;do{k=c[c[h+(f<<4)>>2]>>2]|0;j=c[c[h+(f<<4)+4>>2]>>2]|0;if(((k|0)!=0?!((j|0)==0?1:(c[k+204>>2]&7|0)!=0):0)?(c[j+204>>2]&7|0)==0:0){l=c[k+208>>2]|0;k=c[j+208>>2]|0;j=c[b+16>>2]|0;m=c[j+(l<<3)>>2]|0;if((m|0)!=(l|0)){n=j+(l<<3)|0;do{l=j+(m<<3)|0;c[n>>2]=c[l>>2];l=c[l>>2]|0;n=j+(l<<3)|0;m=c[n>>2]|0}while((l|0)!=(m|0))}m=c[j+(k<<3)>>2]|0;if((m|0)!=(k|0)){n=j+(k<<3)|0;do{k=j+(m<<3)|0;c[n>>2]=c[k>>2];k=c[k>>2]|0;n=j+(k<<3)|0;m=c[n>>2]|0}while((k|0)!=(m|0))}if((l|0)!=(k|0)){c[j+(l<<3)>>2]=k;o=j+(k<<3)+4|0;c[o>>2]=(c[o>>2]|0)+(c[j+(l<<3)+4>>2]|0)}}f=f+1|0}while((f|0)!=(d|0));i=e;return}function xu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;if((c[b+8>>2]|0)<=0){i=f;return}d=c[b+16>>2]|0;e=0;g=0;do{h=c[d+(e<<2)>>2]|0;if((c[h+204>>2]&3|0)==0){j=c[a+16>>2]|0;l=j+(g<<3)|0;k=c[l>>2]|0;if((k|0)==(g|0)){m=g}else{do{m=j+(k<<3)|0;c[l>>2]=c[m>>2];m=c[m>>2]|0;l=j+(m<<3)|0;k=c[l>>2]|0}while((m|0)!=(k|0))}c[h+208>>2]=m;c[j+(g<<3)+4>>2]=e;c[h+212>>2]=-1;g=g+1|0}else{c[h+208>>2]=-1;c[h+212>>2]=-2}e=e+1|0}while((e|0)<(c[b+8>>2]|0));i=f;return}function yu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;while(1){f=c[a+12>>2]|0;g=c[f+(((b+d|0)/2|0)<<2)>>2]|0;l=b;k=d;while(1){h=c[(c[g+740>>2]|0)+208>>2]|0;if((h|0)>-1){while(1){j=c[f+(l<<2)>>2]|0;m=c[(c[j+740>>2]|0)+208>>2]|0;if(!((m|0)>-1)){m=c[(c[j+744>>2]|0)+208>>2]|0}if((m|0)<(h|0)){l=l+1|0}else{break}}}else{m=c[(c[g+744>>2]|0)+208>>2]|0;while(1){j=c[f+(l<<2)>>2]|0;n=c[(c[j+740>>2]|0)+208>>2]|0;if(!((n|0)>-1)){n=c[(c[j+744>>2]|0)+208>>2]|0}if((n|0)<(m|0)){l=l+1|0}else{break}}}if((h|0)>-1){while(1){m=c[f+(k<<2)>>2]|0;n=c[(c[m+740>>2]|0)+208>>2]|0;if(!((n|0)>-1)){n=c[(c[m+744>>2]|0)+208>>2]|0}if((h|0)<(n|0)){k=k+ -1|0}else{break}}}else{h=c[(c[g+744>>2]|0)+208>>2]|0;while(1){m=c[f+(k<<2)>>2]|0;n=c[(c[m+740>>2]|0)+208>>2]|0;if(!((n|0)>-1)){n=c[(c[m+744>>2]|0)+208>>2]|0}if((h|0)<(n|0)){k=k+ -1|0}else{break}}}if((l|0)<=(k|0)){c[f+(l<<2)>>2]=m;c[(c[a+12>>2]|0)+(k<<2)>>2]=j;l=l+1|0;k=k+ -1|0}if((l|0)>(k|0)){break}f=c[a+12>>2]|0}if((k|0)>(b|0)){yu(a,b,k)}if((l|0)<(d|0)){b=l}else{break}}i=e;return}function zu(a,b,d){a=a|0;b=b|0;d=d|0;d=i;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;i=d;return}function Au(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;a=i;if((e|0)>0){b=0}else{i=a;return}do{g=d+(b<<4)|0;b=b+1|0;f=(b|0)==(e|0);c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0}while(!f);i=a;return}function Bu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0;e=i;sc[c[(c[b>>2]|0)+68>>2]&63](a,b,d);l=+g[d>>2];j=+g[d+4>>2];h=+g[d+8>>2];f=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:h;k=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:j;l=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:l;h=1.0/+Q(+(f*f+(l*l+k*k)));j=+bc[c[(c[b>>2]|0)+48>>2]&15](b);g[a>>2]=h*l*j+ +g[a>>2];g[a+4>>2]=j*h*k+ +g[a+4>>2];g[a+8>>2]=j*h*f+ +g[a+8>>2];i=e;return}function Cu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0;f=i;k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);j=+bc[c[(c[a>>2]|0)+48>>2]&15](a);h=+bc[c[(c[a>>2]|0)+48>>2]&15](a);m=+g[b+52>>2]-j;l=+g[b+56>>2]-h;g[d>>2]=+g[b+48>>2]-k;g[d+4>>2]=m;g[d+8>>2]=l;g[d+12>>2]=0.0;j=j+ +g[b+52>>2];h=h+ +g[b+56>>2];g[e>>2]=k+ +g[b+48>>2];g[e+4>>2]=j;g[e+8>>2]=h;g[e+12>>2]=0.0;i=f;return}function Du(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;b=b*.4000000059604645*+bc[c[(c[a>>2]|0)+48>>2]&15](a);b=b*+bc[c[(c[a>>2]|0)+48>>2]&15](a);g[d>>2]=b;g[d+4>>2]=b;g[d+8>>2]=b;g[d+12>>2]=0.0;i=e;return}function Eu(b){b=b|0;var d=0,e=0,f=0;d=i;c[b>>2]=15144;if((a[b+8>>0]|0)==0){_x(b);i=d;return}e=c[b+12>>2]|0;if((e|0)==0){_x(b);i=d;return}f=c[b+4>>2]|0;Pb[c[(c[f>>2]|0)+16>>2]&127](f,e);_x(b);i=d;return}function Fu(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=15144;if((a[b+8>>0]|0)==0){i=d;return}e=c[b+12>>2]|0;if((e|0)==0){i=d;return}b=c[b+4>>2]|0;Pb[c[(c[b>>2]|0)+16>>2]&127](b,e);i=d;return}function Gu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0.0;e=i;i=i+32|0;a=c[a+12>>2]|0;if((a|0)==0){i=e;return}c[f+4>>2]=a;o=c[b+4>>2]|0;p=c[d+4>>2]|0;b=c[b+12>>2]|0;d=c[d+12>>2]|0;m=+g[b+48>>2]- +g[d+48>>2];n=+g[b+52>>2]- +g[d+52>>2];l=+g[b+56>>2]- +g[d+56>>2];j=+Q(+(m*m+n*n+l*l));h=+g[p+28>>2]*+g[p+12>>2];k=+g[o+28>>2]*+g[o+12>>2]+h;if(j>k){if((c[a+748>>2]|0)==0){i=e;return}d=c[a+740>>2]|0;b=c[(c[f+8>>2]|0)+8>>2]|0;if((d|0)==(b|0)){Gt(a,d+4|0,(c[(c[f+12>>2]|0)+8>>2]|0)+4|0);i=e;return}else{Gt(a,(c[(c[f+12>>2]|0)+8>>2]|0)+4|0,b+4|0);i=e;return}}g[e+16>>2]=1.0;g[e+20>>2]=0.0;g[e+24>>2]=0.0;g[e+28>>2]=0.0;if(j>1.1920928955078125e-7){g[e+16>>2]=m*(1.0/j);g[e+20>>2]=n*(1.0/j);g[e+24>>2]=l*(1.0/j);g[e+28>>2]=0.0;m=m*(1.0/j);n=n*(1.0/j);l=l*(1.0/j)}else{m=1.0;n=0.0;l=0.0}q=h*n+ +g[d+52>>2];n=h*l+ +g[d+56>>2];g[e>>2]=h*m+ +g[d+48>>2];g[e+4>>2]=q;g[e+8>>2]=n;g[e+12>>2]=0.0;rc[c[(c[f>>2]|0)+16>>2]&15](f,e+16|0,e,j-k);a=c[f+4>>2]|0;if((c[a+748>>2]|0)==0){i=e;return}d=c[a+740>>2]|0;b=c[(c[f+8>>2]|0)+8>>2]|0;if((d|0)==(b|0)){Gt(a,d+4|0,(c[(c[f+12>>2]|0)+8>>2]|0)+4|0);i=e;return}else{Gt(a,(c[(c[f+12>>2]|0)+8>>2]|0)+4|0,b+4|0);i=e;return}}function Hu(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function Iu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if((c[b+12>>2]|0)==0){i=e;return}if((a[b+8>>0]|0)==0){i=e;return}h=c[d+4>>2]|0;if((h|0)==(c[d+8>>2]|0)?(f=(h|0)==0?1:h<<1,(h|0)<(f|0)):0){if((f|0)==0){g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((f<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[d+4>>2]|0}if((h|0)>0){j=0;do{k=g+(j<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[d+12>>2]|0)+(j<<2)>>2]}j=j+1|0}while((j|0)!=(h|0))}j=c[d+12>>2]|0;if((j|0)!=0){if((a[d+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);h=c[d+4>>2]|0}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=g;c[d+8>>2]=f}f=(c[d+12>>2]|0)+(h<<2)|0;if((f|0)!=0){c[f>>2]=c[b+12>>2]}c[d+4>>2]=h+1;i=e;return}function Ju(b){b=b|0;var d=0,e=0,f=0;d=i;c[b>>2]=15232;if((a[b+8>>0]|0)==0){_x(b);i=d;return}e=c[b+12>>2]|0;if((e|0)==0){_x(b);i=d;return}f=c[b+4>>2]|0;Pb[c[(c[f>>2]|0)+16>>2]&127](f,e);_x(b);i=d;return}function Ku(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=15232;if((a[b+8>>0]|0)==0){i=d;return}e=c[b+12>>2]|0;if((e|0)==0){i=d;return}b=c[b+4>>2]|0;Pb[c[(c[b>>2]|0)+16>>2]&127](b,e);i=d;return}function Lu(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0.0,o=0;j=i;i=i+160|0;k=c[b+12>>2]|0;if((k|0)==0){i=j;return}l=(a[b+16>>0]|0)!=0;m=l?e:d;d=l?d:e;o=c[m+4>>2]|0;e=c[d+4>>2]|0;c[h+4>>2]=k;n=+g[(c[b+12>>2]|0)+752>>2];c[j+136>>2]=15936;c[j+140>>2]=o;c[j+144>>2]=e;g[j+148>>2]=n;g[j+128>>2]=999999984306749400.0;e=c[m+12>>2]|0;c[j+0>>2]=c[e+0>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];c[j+16>>2]=c[e+16>>2];c[j+20>>2]=c[e+20>>2];c[j+24>>2]=c[e+24>>2];c[j+28>>2]=c[e+28>>2];c[j+32>>2]=c[e+32>>2];c[j+36>>2]=c[e+36>>2];c[j+40>>2]=c[e+40>>2];c[j+44>>2]=c[e+44>>2];c[j+48>>2]=c[e+48>>2];c[j+52>>2]=c[e+52>>2];c[j+56>>2]=c[e+56>>2];c[j+60>>2]=c[e+60>>2];d=c[d+12>>2]|0;c[j+64>>2]=c[d+0>>2];c[j+68>>2]=c[d+4>>2];c[j+72>>2]=c[d+8>>2];c[j+76>>2]=c[d+12>>2];c[j+80>>2]=c[d+16>>2];c[j+84>>2]=c[d+20>>2];c[j+88>>2]=c[d+24>>2];c[j+92>>2]=c[d+28>>2];c[j+96>>2]=c[d+32>>2];c[j+100>>2]=c[d+36>>2];c[j+104>>2]=c[d+40>>2];c[j+108>>2]=c[d+44>>2];c[j+112>>2]=c[d+48>>2];c[j+116>>2]=c[d+52>>2];c[j+120>>2]=c[d+56>>2];c[j+124>>2]=c[d+60>>2];uv(j+136|0,j,h,c[f+20>>2]|0,l);if((a[b+8>>0]|0)==0){i=j;return}b=c[h+4>>2]|0;if((c[b+748>>2]|0)==0){i=j;return}k=c[b+740>>2]|0;e=c[(c[h+8>>2]|0)+8>>2]|0;if((k|0)==(e|0)){Gt(b,k+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);i=j;return}else{Gt(b,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,e+4|0);i=j;return}}function Mu(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function Nu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if((c[b+12>>2]|0)==0){i=e;return}if((a[b+8>>0]|0)==0){i=e;return}h=c[d+4>>2]|0;if((h|0)==(c[d+8>>2]|0)?(f=(h|0)==0?1:h<<1,(h|0)<(f|0)):0){if((f|0)==0){g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((f<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[d+4>>2]|0}if((h|0)>0){j=0;do{k=g+(j<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[d+12>>2]|0)+(j<<2)>>2]}j=j+1|0}while((j|0)!=(h|0))}j=c[d+12>>2]|0;if((j|0)!=0){if((a[d+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);h=c[d+4>>2]|0}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=g;c[d+8>>2]=f}f=(c[d+12>>2]|0)+(h<<2)|0;if((f|0)!=0){c[f>>2]=c[b+12>>2]}c[d+4>>2]=h+1;i=e;return}function Ou(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0,ca=0,da=0,ea=0.0,fa=0,ga=0.0;k=i;i=i+128|0;fa=c[b+4>>2]|0;a[fa+312>>0]=0;c[fa>>2]=0;a[fa+356>>0]=1;g[fa+292>>2]=999999984306749400.0;g[fa+296>>2]=999999984306749400.0;g[fa+300>>2]=999999984306749400.0;g[fa+304>>2]=0.0;c[fa+336>>2]=0;c[fa+340>>2]=0;c[fa+344>>2]=0;c[fa+348>>2]=0;a[fa+352>>0]=0;a[fa+332>>0]=a[fa+332>>0]&-16;O=+g[d+48>>2];V=+g[d+52>>2];R=+g[d+56>>2];Y=+g[f+48>>2];W=+g[f+52>>2];P=+g[f+56>>2];D=+g[d>>2];p=+g[d+4>>2];r=+g[d+8>>2];E=+g[d+16>>2];z=+g[d+20>>2];s=+g[d+24>>2];w=+g[d+32>>2];q=+g[d+36>>2];t=+g[d+40>>2];u=+g[f>>2];x=+g[f+4>>2];A=+g[f+8>>2];v=+g[f+16>>2];y=+g[f+20>>2];B=+g[f+24>>2];F=+g[f+32>>2];o=+g[f+36>>2];C=+g[f+40>>2];m=+g[e+48>>2]-O-(+g[h+48>>2]-Y);l=+g[e+52>>2]-V-(+g[h+52>>2]-W);n=+g[e+56>>2]-R-(+g[h+56>>2]-P);fa=c[b+8>>2]|0;da=c[(c[fa>>2]|0)+64>>2]|0;g[k+96>>2]=D*-m+E*-l+w*-n;g[k+100>>2]=p*-m+z*-l+q*-n;g[k+104>>2]=r*-m+s*-l+t*-n;g[k+108>>2]=0.0;sc[da&63](k+112|0,fa,k+96|0);aa=+g[k+112>>2];ea=+g[k+116>>2];X=+g[k+120>>2];Z=aa*+g[d>>2]+ea*+g[d+4>>2]+X*+g[d+8>>2]+ +g[d+48>>2];_=aa*+g[d+16>>2]+ea*+g[d+20>>2]+X*+g[d+24>>2]+ +g[d+52>>2];X=aa*+g[d+32>>2]+ea*+g[d+36>>2]+X*+g[d+40>>2]+ +g[d+56>>2];fa=c[b+12>>2]|0;da=c[(c[fa>>2]|0)+64>>2]|0;ea=m*+g[f+4>>2]+l*+g[f+20>>2]+n*+g[f+36>>2];aa=m*+g[f+8>>2]+l*+g[f+24>>2]+n*+g[f+40>>2];g[k+64>>2]=m*+g[f>>2]+l*+g[f+16>>2]+n*+g[f+32>>2];g[k+68>>2]=ea;g[k+72>>2]=aa;g[k+76>>2]=0.0;sc[da&63](k+80|0,fa,k+64|0);aa=+g[k+80>>2];ea=+g[k+84>>2];$=+g[k+88>>2];Z=Z-(aa*+g[f>>2]+ea*+g[f+4>>2]+$*+g[f+8>>2]+ +g[f+48>>2]);_=_-(aa*+g[f+16>>2]+ea*+g[f+20>>2]+$*+g[f+24>>2]+ +g[f+52>>2]);$=X-(aa*+g[f+32>>2]+ea*+g[f+36>>2]+$*+g[f+40>>2]+ +g[f+56>>2]);a:do{if(Z*Z+_*_+$*$>9999999747378752.0e-20){S=0.0;U=0.0;X=0.0;T=0.0;H=0.0;G=32;aa=0.0;while(1){if((G|0)==0){break a}G=G+ -1|0;fa=c[b+8>>2]|0;da=c[(c[fa>>2]|0)+64>>2]|0;I=-Z;ga=-_;ea=-$;g[k+32>>2]=D*I+E*ga+w*ea;g[k+36>>2]=p*I+z*ga+q*ea;g[k+40>>2]=r*I+s*ga+t*ea;g[k+44>>2]=0.0;sc[da&63](k+48|0,fa,k+32|0);ea=+g[k+48>>2];ga=+g[k+52>>2];I=+g[k+56>>2];J=O+(D*ea+p*ga+r*I);L=V+(E*ea+z*ga+s*I);I=R+(w*ea+q*ga+t*I);fa=c[b+12>>2]|0;da=c[(c[fa>>2]|0)+64>>2]|0;g[k>>2]=u*Z+v*_+F*$;g[k+4>>2]=x*Z+y*_+o*$;g[k+8>>2]=A*Z+B*_+C*$;g[k+12>>2]=0.0;sc[da&63](k+16|0,fa,k);ga=+g[k+16>>2];ea=+g[k+20>>2];M=+g[k+24>>2];K=Y+(u*ga+x*ea+A*M);N=W+(v*ga+y*ea+B*M);M=P+(F*ga+o*ea+C*M);ea=Z*(J-K)+_*(L-N)+$*(I-M);if(H>1.0){j=0;h=24;break}if(ea>0.0){O=m*Z+l*_+n*$;if(O>=-1.4210854715202004e-14){j=0;h=24;break}H=H-ea/O;R=(1.0-H)*+g[d+56>>2]+H*+g[e+56>>2];V=(1.0-H)*+g[d+52>>2]+H*+g[e+52>>2];O=+g[d+48>>2]*(1.0-H)+H*+g[e+48>>2];P=(1.0-H)*+g[f+56>>2]+H*+g[h+56>>2];W=(1.0-H)*+g[f+52>>2]+H*+g[h+52>>2];Y=(1.0-H)*+g[f+48>>2]+H*+g[h+48>>2];T=aa;X=$;U=_;S=Z}ba=c[b+4>>2]|0;ca=c[ba>>2]|0;if((ca|0)>0){Z=+g[ba+308>>2];fa=0;da=0;do{aa=J-K- +g[ba+(da<<4)+4>>2];ea=L-N- +g[ba+(da<<4)+8>>2];ga=I-M- +g[ba+(da<<4)+12>>2];fa=fa|aa*aa+ea*ea+ga*ga<=Z;da=da+1|0}while((da|0)!=(ca|0))}else{fa=0}if((+g[ba+304>>2]==0.0?I-M==+g[ba+300>>2]:0)?L-N==+g[ba+296>>2]:0){da=J-K==+g[ba+292>>2]}else{da=0}if(!(da|fa)){g[ba+292>>2]=J-K;g[ba+296>>2]=L-N;g[ba+300>>2]=I-M;g[ba+304>>2]=0.0;a[ba+356>>0]=1;g[ba+(ca<<4)+4>>2]=J-K;g[ba+(ca<<4)+8>>2]=L-N;g[ba+(ca<<4)+12>>2]=I-M;g[ba+(ca<<4)+16>>2]=0.0;fa=c[ba>>2]|0;g[ba+(fa<<4)+84>>2]=J;g[ba+(fa<<4)+88>>2]=L;g[ba+(fa<<4)+92>>2]=I;g[ba+(fa<<4)+96>>2]=0.0;fa=c[ba>>2]|0;g[ba+(fa<<4)+164>>2]=K;g[ba+(fa<<4)+168>>2]=N;g[ba+(fa<<4)+172>>2]=M;g[ba+(fa<<4)+176>>2]=0.0;c[ba>>2]=(c[ba>>2]|0)+1;ba=c[b+4>>2]|0}fa=sv(ba)|0;Z=+g[ba+276>>2];_=+g[ba+280>>2];$=+g[ba+284>>2];if(!fa){break a}if(!(Z*Z+_*_+$*$>9999999747378752.0e-20)){break a}else{aa=+g[ba+288>>2]}}if((h|0)==24){i=k;return j|0}}else{T=0.0;X=0.0;U=0.0;S=0.0;H=0.0}}while(0);g[j+164>>2]=H;o=X*X+(U*U+S*S);if(!(o>=1.4210854715202004e-14)){c[j+132>>2]=0;c[j+136>>2]=0;c[j+140>>2]=0;c[j+144>>2]=0;o=0.0;q=0.0;p=0.0}else{p=1.0/+Q(+o);o=S*p;q=U*p;p=X*p;g[j+132>>2]=o;g[j+136>>2]=q;g[j+140>>2]=p;g[j+144>>2]=T}if(m*o+l*q+n*p>=-+g[j+172>>2]){fa=0;i=k;return fa|0}fa=c[b+4>>2]|0;sv(fa)|0;fy(j+148|0,fa+260|0,16)|0;fa=1;i=k;return fa|0}function Pu(a){a=a|0;return}function Qu(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Ru(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0;f=i;g[b+4>>2]=1.0;g[b+8>>2]=1.0;g[b+12>>2]=1.0;g[b+16>>2]=0.0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;c[b+48>>2]=0;c[b>>2]=15472;a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;a[b+120>>0]=1;c[b+116>>2]=0;c[b+108>>2]=0;c[b+112>>2]=0;a[b+140>>0]=1;c[b+136>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;a[b+160>>0]=1;c[b+156>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;a[b+164>>0]=d&1;a[b+165>>0]=e&1;g[b+168>>2]=0.0;c[4546]=(c[4546]|0)+1;e=Zx(51)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}d=c[b+24>>2]|0;if((d|0)>0){h=0;do{j=e+(h<<5)|0;k=(c[b+32>>2]|0)+(h<<5)|0;c[j+0>>2]=c[k+0>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];c[j+16>>2]=c[k+16>>2];c[j+20>>2]=c[k+20>>2];c[j+24>>2]=c[k+24>>2];c[j+28>>2]=c[k+28>>2];h=h+1|0}while((h|0)!=(d|0))}d=c[b+32>>2]|0;if((d|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[d+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=e;c[b+28>>2]=1;k=c[b+24>>2]|0;c[e+(k<<5)>>2]=0;c[e+(k<<5)+4>>2]=0;c[e+(k<<5)+8>>2]=12;c[e+(k<<5)+12>>2]=0;c[e+(k<<5)+16>>2]=0;c[e+(k<<5)+20>>2]=16;c[e+(k<<5)+24>>2]=2;c[e+(k<<5)+28>>2]=0;c[b+24>>2]=(c[b+24>>2]|0)+1;if((a[b+164>>0]|0)==0){e=c[b+32>>2]|0;c[e>>2]=(c[b+148>>2]|0)/3|0;c[e+4>>2]=0;e=c[b+32>>2]|0;c[e+24>>2]=3;c[e+8>>2]=6}else{e=c[b+32>>2]|0;c[e>>2]=(c[b+128>>2]|0)/3|0;c[e+4>>2]=0;e=c[b+32>>2]|0;c[e+24>>2]=2;c[e+8>>2]=12}if((a[b+165>>0]|0)==0){c[e+12>>2]=(c[b+108>>2]|0)/3|0;c[e+16>>2]=0;c[(c[b+32>>2]|0)+20>>2]=12;i=f;return}else{c[e+12>>2]=c[b+88>>2];c[e+16>>2]=0;c[(c[b+32>>2]|0)+20>>2]=16;i=f;return}}function Su(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;if((a[d+164>>0]|0)==0){j=c[d+148>>2]|0;if((j|0)==(c[d+152>>2]|0)?(g=(j|0)==0?1:j<<1,(j|0)<(g|0)):0){if((g|0)==0){h=0}else{c[4546]=(c[4546]|0)+1;h=Zx((g<<1)+19|0)|0;if((h|0)==0){h=0}else{c[(h+19&-16)+ -4>>2]=h;h=h+19&-16}j=c[d+148>>2]|0}if((j|0)>0){l=0;do{k=h+(l<<1)|0;if((k|0)!=0){b[k>>1]=b[(c[d+156>>2]|0)+(l<<1)>>1]|0}l=l+1|0}while((l|0)!=(j|0))}k=c[d+156>>2]|0;if((k|0)!=0){if((a[d+160>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0);j=c[d+148>>2]|0}c[d+156>>2]=0}a[d+160>>0]=1;c[d+156>>2]=h;c[d+152>>2]=g}g=c[d+156>>2]|0;h=g+(j<<1)|0;if((h|0)!=0){b[h>>1]=e}c[d+148>>2]=j+1;c[(c[d+32>>2]|0)+4>>2]=g;i=f;return}else{j=c[d+128>>2]|0;if((j|0)==(c[d+132>>2]|0)?(h=(j|0)==0?1:j<<1,(j|0)<(h|0)):0){if((h|0)==0){g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((h<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}j=c[d+128>>2]|0}if((j|0)>0){k=0;do{l=g+(k<<2)|0;if((l|0)!=0){c[l>>2]=c[(c[d+136>>2]|0)+(k<<2)>>2]}k=k+1|0}while((k|0)!=(j|0))}j=c[d+136>>2]|0;if((j|0)!=0){if((a[d+140>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0)}c[d+136>>2]=0}a[d+140>>0]=1;c[d+136>>2]=g;c[d+132>>2]=h;j=c[d+128>>2]|0}g=c[d+136>>2]|0;h=g+(j<<2)|0;if((h|0)!=0){c[h>>2]=e;j=c[d+128>>2]|0}c[d+128>>2]=j+1;c[(c[d+32>>2]|0)+4>>2]=g;i=f;return}}function Tu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0.0;f=i;if((a[b+165>>0]|0)!=0){a:do{if(e?(j=c[b+88>>2]|0,(j|0)>0):0){k=c[b+96>>2]|0;n=+g[d>>2];o=+g[d+4>>2];p=+g[d+8>>2];l=+g[b+168>>2];e=0;while(1){t=+g[k+(e<<4)>>2]-n;s=+g[k+(e<<4)+4>>2]-o;r=+g[k+(e<<4)+8>>2]-p;if(t*t+s*s+r*r<=l){break}e=e+1|0;if((e|0)>=(j|0)){break a}}i=f;return e|0}}while(0);j=(c[b+32>>2]|0)+12|0;c[j>>2]=(c[j>>2]|0)+1;j=c[b+88>>2]|0;if((j|0)==(c[b+92>>2]|0)?(h=(j|0)==0?1:j<<1,(j|0)<(h|0)):0){if((h|0)==0){e=0}else{c[4546]=(c[4546]|0)+1;j=Zx((h<<4|3)+16|0)|0;if((j|0)==0){e=0}else{c[(j+19&-16)+ -4>>2]=j;e=j+19&-16}j=c[b+88>>2]|0}if((j|0)>0){k=0;do{q=e+(k<<4)|0;m=(c[b+96>>2]|0)+(k<<4)|0;c[q+0>>2]=c[m+0>>2];c[q+4>>2]=c[m+4>>2];c[q+8>>2]=c[m+8>>2];c[q+12>>2]=c[m+12>>2];k=k+1|0}while((k|0)!=(j|0))}j=c[b+96>>2]|0;if((j|0)!=0){if((a[b+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=e;c[b+92>>2]=h;j=c[b+88>>2]|0}q=(c[b+96>>2]|0)+(j<<4)|0;c[q+0>>2]=c[d+0>>2];c[q+4>>2]=c[d+4>>2];c[q+8>>2]=c[d+8>>2];c[q+12>>2]=c[d+12>>2];q=c[b+88>>2]|0;c[b+88>>2]=q+1;c[(c[b+32>>2]|0)+16>>2]=c[b+96>>2];i=f;return q|0}j=c[b+108>>2]|0;b:do{if((j|0)>0&e){k=c[b+116>>2]|0;l=+g[d>>2];n=+g[d+4>>2];o=+g[d+8>>2];p=+g[b+168>>2];e=0;while(1){r=+g[k+(e<<2)>>2]-l;s=+g[k+(e+1<<2)>>2]-n;t=+g[k+(e+2<<2)>>2]-o;h=e+3|0;if(r*r+s*s+t*t<=p){break}if((h|0)<(j|0)){e=h}else{h=d;break b}}q=(e|0)/3|0;i=f;return q|0}else{h=d}}while(0);e=c[b+112>>2]|0;if((j|0)==(e|0)){e=(j|0)==0?1:j<<1;if((j|0)<(e|0)){if((e|0)==0){k=0}else{c[4546]=(c[4546]|0)+1;j=Zx((e<<2|3)+16|0)|0;if((j|0)==0){k=0}else{c[(j+19&-16)+ -4>>2]=j;k=j+19&-16}j=c[b+108>>2]|0}if((j|0)>0){m=0;do{q=k+(m<<2)|0;if((q|0)!=0){g[q>>2]=+g[(c[b+116>>2]|0)+(m<<2)>>2]}m=m+1|0}while((m|0)!=(j|0))}m=c[b+116>>2]|0;if((m|0)!=0){if((a[b+120>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0);j=c[b+108>>2]|0}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=k;c[b+112>>2]=e;m=j}else{m=j;e=j}}else{m=j}k=c[b+116>>2]|0;j=k+(m<<2)|0;if((j|0)!=0){g[j>>2]=+g[h>>2]}j=m+1|0;c[b+108>>2]=j;if((j|0)==(e|0)){h=(e|0)==0?1:e<<1;if((e|0)<(h|0)){if((h|0)==0){k=0}else{c[4546]=(c[4546]|0)+1;j=Zx((h<<2|3)+16|0)|0;if((j|0)==0){k=0}else{c[(j+19&-16)+ -4>>2]=j;k=j+19&-16}e=c[b+108>>2]|0}if((e|0)>0){m=0;do{j=k+(m<<2)|0;if((j|0)!=0){g[j>>2]=+g[(c[b+116>>2]|0)+(m<<2)>>2]}m=m+1|0}while((m|0)!=(e|0))}j=c[b+116>>2]|0;if((j|0)!=0){if((a[b+120>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);e=c[b+108>>2]|0}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=k;c[b+112>>2]=h;j=e}else{j=e;h=e}}else{h=e}e=k+(j<<2)|0;if((e|0)!=0){g[e>>2]=+g[d+4>>2]}j=j+1|0;c[b+108>>2]=j;if((j|0)==(h|0)){j=(h|0)==0?1:h<<1;if((h|0)<(j|0)){if((j|0)==0){k=0}else{c[4546]=(c[4546]|0)+1;h=Zx((j<<2|3)+16|0)|0;if((h|0)==0){k=0}else{c[(h+19&-16)+ -4>>2]=h;k=h+19&-16}h=c[b+108>>2]|0}if((h|0)>0){m=0;do{e=k+(m<<2)|0;if((e|0)!=0){g[e>>2]=+g[(c[b+116>>2]|0)+(m<<2)>>2]}m=m+1|0}while((m|0)!=(h|0))}e=c[b+116>>2]|0;if((e|0)!=0){if((a[b+120>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0);h=c[b+108>>2]|0}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=k;c[b+112>>2]=j}}else{h=j}j=k+(h<<2)|0;if((j|0)!=0){g[j>>2]=+g[d+8>>2]}c[b+108>>2]=h+1;q=c[b+32>>2]|0;c[q+12>>2]=(c[q+12>>2]|0)+1;c[q+16>>2]=k;q=((c[b+108>>2]|0)/3|0)+ -1|0;i=f;return q|0}function Uu(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0;e=i;if((a[b+165>>0]|0)!=0){if((c[b+92>>2]|0)>=(d|0)){i=e;return}if((d|0)!=0?(c[4546]=(c[4546]|0)+1,h=Zx((d<<4|3)+16|0)|0,(h|0)!=0):0){c[(h+19&-16)+ -4>>2]=h;f=h+19&-16}else{f=0}h=c[b+88>>2]|0;if((h|0)>0){j=0;do{k=f+(j<<4)|0;l=(c[b+96>>2]|0)+(j<<4)|0;c[k+0>>2]=c[l+0>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];j=j+1|0}while((j|0)!=(h|0))}h=c[b+96>>2]|0;if((h|0)!=0){if((a[b+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=f;c[b+92>>2]=d;i=e;return}if((c[b+112>>2]|0)>=(d|0)){i=e;return}if((d|0)!=0?(c[4546]=(c[4546]|0)+1,f=Zx((d<<2|3)+16|0)|0,(f|0)!=0):0){c[(f+19&-16)+ -4>>2]=f;f=f+19&-16}else{f=0}h=c[b+108>>2]|0;if((h|0)>0){k=0;do{j=f+(k<<2)|0;if((j|0)!=0){g[j>>2]=+g[(c[b+116>>2]|0)+(k<<2)>>2]}k=k+1|0}while((k|0)!=(h|0))}h=c[b+116>>2]|0;if((h|0)!=0){if((a[b+120>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=f;c[b+112>>2]=d;i=e;return}function Vu(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;if((a[d+164>>0]|0)==0){if((c[d+152>>2]|0)>=(e|0)){i=f;return}if((e|0)!=0?(c[4546]=(c[4546]|0)+1,h=Zx((e<<1)+19|0)|0,(h|0)!=0):0){c[(h+19&-16)+ -4>>2]=h;g=h+19&-16}else{g=0}h=c[d+148>>2]|0;if((h|0)>0){k=0;do{j=g+(k<<1)|0;if((j|0)!=0){b[j>>1]=b[(c[d+156>>2]|0)+(k<<1)>>1]|0}k=k+1|0}while((k|0)!=(h|0))}h=c[d+156>>2]|0;if((h|0)!=0){if((a[d+160>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[d+156>>2]=0}a[d+160>>0]=1;c[d+156>>2]=g;c[d+152>>2]=e;i=f;return}else{if((c[d+132>>2]|0)>=(e|0)){i=f;return}if((e|0)!=0?(c[4546]=(c[4546]|0)+1,g=Zx((e<<2|3)+16|0)|0,(g|0)!=0):0){c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}else{g=0}k=c[d+128>>2]|0;if((k|0)>0){j=0;do{h=g+(j<<2)|0;if((h|0)!=0){c[h>>2]=c[(c[d+136>>2]|0)+(j<<2)>>2]}j=j+1|0}while((j|0)!=(k|0))}h=c[d+136>>2]|0;if((h|0)!=0){if((a[d+140>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[d+136>>2]=0}a[d+140>>0]=1;c[d+136>>2]=g;c[d+132>>2]=e;i=f;return}}function Wu(a){a=a|0;var b=0;b=i;av(a);i=b;return}function Xu(a){a=a|0;var b=0;b=i;av(a);if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Yu(a,b){a=a|0;b=b|0;return}function Zu(a,b){a=a|0;b=b|0;return}function _u(a){a=a|0;return c[a+24>>2]|0}function $u(a){a=a|0;return 28}function av(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=15472;e=c[b+156>>2]|0;if((e|0)!=0){if((a[b+160>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+156>>2]=0}a[b+160>>0]=1;c[b+156>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;e=c[b+136>>2]|0;if((e|0)!=0){if((a[b+140>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+136>>2]=0}a[b+140>>0]=1;c[b+136>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;e=c[b+116>>2]|0;if((e|0)!=0){if((a[b+120>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=0;c[b+108>>2]=0;c[b+112>>2]=0;e=c[b+96>>2]|0;if((e|0)!=0){if((a[b+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;c[b>>2]=18072;e=c[b+32>>2]|0;if((e|0)==0){a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;e=b+28|0;c[e>>2]=0;i=d;return}if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+32>>2]=0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;e=b+28|0;c[e>>2]=0;i=d;return}function bv(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function cv(a){a=a|0;return}function dv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0;f=i;q=(+g[a+32>>2]- +g[a+16>>2])*.5;n=(+g[a+36>>2]- +g[a+20>>2])*.5;k=(+g[a+40>>2]- +g[a+24>>2])*.5;p=+bc[c[(c[a>>2]|0)+48>>2]&15](a);m=+bc[c[(c[a>>2]|0)+48>>2]&15](a);k=k+ +bc[c[(c[a>>2]|0)+48>>2]&15](a);D=(+g[a+32>>2]+ +g[a+16>>2])*.5;B=(+g[a+36>>2]+ +g[a+20>>2])*.5;z=(+g[a+40>>2]+ +g[a+24>>2])*.5;H=+g[b>>2];y=+P(+H);G=+g[b+4>>2];x=+P(+G);v=+g[b+8>>2];w=+P(+v);F=+g[b+16>>2];u=+P(+F);E=+g[b+20>>2];t=+P(+E);r=+g[b+24>>2];s=+P(+r);C=+g[b+32>>2];o=+P(+C);A=+g[b+36>>2];l=+P(+A);h=+g[b+40>>2];j=+P(+h);v=D*H+B*G+z*v+ +g[b+48>>2];r=D*F+B*E+z*r+ +g[b+52>>2];h=D*C+B*A+z*h+ +g[b+56>>2];g[d>>2]=v-((q+p)*y+(n+m)*x+k*w);g[d+4>>2]=r-((q+p)*u+(n+m)*t+k*s);g[d+8>>2]=h-((q+p)*o+(n+m)*l+k*j);g[d+12>>2]=0.0;g[e>>2]=(q+p)*y+(n+m)*x+k*w+v;g[e+4>>2]=(q+p)*u+(n+m)*t+k*s+r;g[e+8>>2]=(q+p)*o+(n+m)*l+k*j+h;g[e+12>>2]=0.0;i=f;return}function ev(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+48|0;e=(c[a+48>>2]|0)+4|0;c[e+0>>2]=c[b+0>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[d+32>>2]=0;c[d+36>>2]=0;c[d+40>>2]=0;c[d+44>>2]=0;g[d+32>>2]=1.0;sc[c[(c[a>>2]|0)+68>>2]&63](d+16|0,a,d+32|0);g[a+32>>2]=+g[d+16>>2]+ +g[a+12>>2];g[d+32>>2]=-1.0;sc[c[(c[a>>2]|0)+68>>2]&63](d,a,d+32|0);c[d+16>>2]=c[d+0>>2];c[d+20>>2]=c[d+4>>2];c[d+24>>2]=c[d+8>>2];c[d+28>>2]=c[d+12>>2];g[a+16>>2]=+g[d+16>>2]- +g[a+12>>2];c[d+32>>2]=0;c[d+36>>2]=0;c[d+40>>2]=0;c[d+44>>2]=0;g[d+36>>2]=1.0;sc[c[(c[a>>2]|0)+68>>2]&63](d+16|0,a,d+32|0);g[a+36>>2]=+g[d+20>>2]+ +g[a+12>>2];g[d+36>>2]=-1.0;sc[c[(c[a>>2]|0)+68>>2]&63](d,a,d+32|0);c[d+16>>2]=c[d+0>>2];c[d+20>>2]=c[d+4>>2];c[d+24>>2]=c[d+8>>2];c[d+28>>2]=c[d+12>>2];g[a+20>>2]=+g[d+20>>2]- +g[a+12>>2];c[d+32>>2]=0;c[d+36>>2]=0;c[d+40>>2]=0;c[d+44>>2]=0;g[d+40>>2]=1.0;sc[c[(c[a>>2]|0)+68>>2]&63](d+16|0,a,d+32|0);g[a+40>>2]=+g[d+24>>2]+ +g[a+12>>2];g[d+40>>2]=-1.0;sc[c[(c[a>>2]|0)+68>>2]&63](d,a,d+32|0);c[d+16>>2]=c[d+0>>2];c[d+20>>2]=c[d+4>>2];c[d+24>>2]=c[d+8>>2];c[d+28>>2]=c[d+12>>2];g[a+24>>2]=+g[d+24>>2]- +g[a+12>>2];i=d;return}function fv(a){a=a|0;return(c[a+48>>2]|0)+4|0}function gv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;i=i+48|0;c[f>>2]=15792;c[f+4>>2]=b;c[f+8>>2]=c[d+0>>2];c[f+12>>2]=c[d+4>>2];c[f+16>>2]=c[d+8>>2];c[f+20>>2]=c[d+12>>2];c[f+24>>2]=c[e+0>>2];c[f+28>>2]=c[e+4>>2];c[f+32>>2]=c[e+8>>2];c[f+36>>2]=c[e+12>>2];b=c[a+48>>2]|0;wc[c[(c[b>>2]|0)+8>>2]&63](b,f,d,e);i=f;return}function hv(a,b,d){a=a|0;b=+b;d=d|0;a=i;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;i=a;return}function iv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0;e=i;i=i+176|0;c[e+160>>2]=0;c[e+164>>2]=0;c[e+168>>2]=0;c[e+172>>2]=0;c[e+136>>2]=0;c[e+140>>2]=0;c[e+144>>2]=0;c[e+148>>2]=0;c[e+152>>2]=0;c[e+32>>2]=15728;c[e+36>>2]=0;c[e+40>>2]=0;c[e+44>>2]=0;c[e+48>>2]=0;g[e+52>>2]=1.0;c[e+56>>2]=c[e+160>>2];c[e+60>>2]=c[e+164>>2];c[e+64>>2]=c[e+168>>2];c[e+68>>2]=0;g[e+72>>2]=1.0;c[e+76>>2]=0;c[e+80>>2]=0;c[e+84>>2]=0;c[e+88>>2]=0;g[e+92>>2]=1.0;g[e+96>>2]=0.0;c[e+100>>2]=c[e+140>>2];c[e+104>>2]=c[e+144>>2];c[e+108>>2]=c[e+148>>2];c[e+112>>2]=c[e+152>>2];g[e+116>>2]=-999999984306749400.0;l=+g[d>>2];k=+g[d+4>>2];j=+g[d+8>>2];h=l*+g[e+56>>2]+k+j*0.0;f=l*+g[e+60>>2]+k*0.0+j;g[e+120>>2]=l+k*0.0+j*0.0;g[e+124>>2]=h;g[e+128>>2]=f;g[e+132>>2]=0.0;g[e+16>>2]=999999984306749400.0;g[e+20>>2]=999999984306749400.0;g[e+24>>2]=999999984306749400.0;g[e+28>>2]=0.0;d=c[(c[b>>2]|0)+64>>2]|0;g[e>>2]=-999999984306749400.0;g[e+4>>2]=-999999984306749400.0;g[e+8>>2]=-999999984306749400.0;g[e+12>>2]=0.0;wc[d&63](b,e+32|0,e,e+16|0);c[a+0>>2]=c[e+36>>2];c[a+4>>2]=c[e+40>>2];c[a+8>>2]=c[e+44>>2];c[a+12>>2]=c[e+48>>2];i=e;return}function jv(a){a=a|0;return}function kv(a){a=a|0;return 15704}function lv(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function mv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,j=0.0,k=0.0,l=0.0;e=i;f=+g[a+88>>2];j=+g[a+92>>2];h=+g[a+96>>2];k=f*+g[b>>2]+j*+g[b+4>>2]+h*+g[b+8>>2];l=+g[a+84>>2];if(k>l){g[a+84>>2]=k;c[a+4>>2]=c[b+0>>2];c[a+8>>2]=c[b+4>>2];c[a+12>>2]=c[b+8>>2];c[a+16>>2]=c[b+12>>2]}else{k=l}l=f*+g[b+16>>2]+j*+g[b+20>>2]+h*+g[b+24>>2];if(l>k){g[a+84>>2]=l;c[a+4>>2]=c[b+16>>2];c[a+8>>2]=c[b+20>>2];c[a+12>>2]=c[b+24>>2];c[a+16>>2]=c[b+28>>2];k=l}f=f*+g[b+32>>2]+j*+g[b+36>>2]+h*+g[b+40>>2];if(!(f>k)){i=e;return}g[a+84>>2]=f;c[a+4>>2]=c[b+32>>2];c[a+8>>2]=c[b+36>>2];c[a+12>>2]=c[b+40>>2];c[a+16>>2]=c[b+44>>2];i=e;return}function nv(a){a=a|0;return}function ov(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function pv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0;f=i;k=+g[b>>2];j=+g[b+16>>2];l=k>2];if((l+g[a+24>>2]){i=f;return}m=k>j?b:b+16|0;if(+g[(+g[m>>2]>h?m:b+32|0)>>2]<+g[a+8>>2]){i=f;return}h=+g[b+8>>2];j=+g[b+24>>2];l=h>2];if((l+g[a+32>>2]){i=f;return}m=h>j?b+8|0:b+24|0;if(+g[(+g[m>>2]>k?m:b+40|0)>>2]<+g[a+16>>2]){i=f;return}h=+g[b+4>>2];j=+g[b+20>>2];l=h>2];if((l+g[a+28>>2]){i=f;return}m=h>j?b+4|0:b+20|0;if(+g[(+g[m>>2]>k?m:b+36|0)>>2]<+g[a+12>>2]){i=f;return}m=c[a+4>>2]|0;wc[c[(c[m>>2]|0)+8>>2]&63](m,b,d,e);i=f;return}function qv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;e=i;while(1){f=c[a+12>>2]|0;g=c[f+(((b+d|0)/2|0)<<3)>>2]|0;k=b;h=d;while(1){while(1){l=k+1|0;if((c[f+(k<<3)>>2]|0)<(g|0)){k=l}else{j=h;break}}while(1){m=f+(j<<3)|0;h=j+ -1|0;if((g|0)<(c[m>>2]|0)){j=h}else{break}}if((k|0)>(j|0)){h=j}else{k=f+(k<<3)|0;n=c[k>>2]|0;f=c[k+4>>2]|0;o=c[m+4>>2]|0;c[k>>2]=c[m>>2];c[k+4>>2]=o;k=(c[a+12>>2]|0)+(j<<3)|0;c[k>>2]=n;c[k+4>>2]=f;k=l}if((k|0)>(h|0)){break}f=c[a+12>>2]|0}if((h|0)>(b|0)){qv(a,b,h)}if((k|0)<(d|0)){b=k}else{break}}i=e;return}function rv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;h=c[b>>2]|0;if((h|0)>3){g=a[d>>0]|0;if((g&8)==0){c[b>>2]=h+ -1;f=b+(h+ -1<<4)+4|0;c[b+52>>2]=c[f+0>>2];c[b+56>>2]=c[f+4>>2];c[b+60>>2]=c[f+8>>2];c[b+64>>2]=c[f+12>>2];f=b+(h+ -1<<4)+84|0;c[b+132>>2]=c[f+0>>2];c[b+136>>2]=c[f+4>>2];c[b+140>>2]=c[f+8>>2];c[b+144>>2]=c[f+12>>2];f=b+(h+ -1<<4)+164|0;c[b+212>>2]=c[f+0>>2];c[b+216>>2]=c[f+4>>2];c[b+220>>2]=c[f+8>>2];c[b+224>>2]=c[f+12>>2];h=h+ -1|0;f=4}else{f=6}}else{f=4}if((f|0)==4){if((h|0)>2){g=a[d>>0]|0;f=6}else{g=h}}if((f|0)==6){if((g&4)==0){g=h+ -1|0;c[b>>2]=g;c[b+36>>2]=c[b+(g<<4)+4>>2];c[b+40>>2]=c[b+(g<<4)+8>>2];c[b+44>>2]=c[b+(g<<4)+12>>2];c[b+48>>2]=c[b+(g<<4)+16>>2];c[b+116>>2]=c[b+(g<<4)+84>>2];c[b+120>>2]=c[b+(g<<4)+88>>2];c[b+124>>2]=c[b+(g<<4)+92>>2];c[b+128>>2]=c[b+(g<<4)+96>>2];c[b+196>>2]=c[b+(g<<4)+164>>2];c[b+200>>2]=c[b+(g<<4)+168>>2];c[b+204>>2]=c[b+(g<<4)+172>>2];c[b+208>>2]=c[b+(g<<4)+176>>2]}else{g=h}}if((g|0)>1){h=a[d>>0]|0;if((h&2)==0){g=g+ -1|0;c[b>>2]=g;c[b+20>>2]=c[b+(g<<4)+4>>2];c[b+24>>2]=c[b+(g<<4)+8>>2];c[b+28>>2]=c[b+(g<<4)+12>>2];c[b+32>>2]=c[b+(g<<4)+16>>2];c[b+100>>2]=c[b+(g<<4)+84>>2];c[b+104>>2]=c[b+(g<<4)+88>>2];c[b+108>>2]=c[b+(g<<4)+92>>2];c[b+112>>2]=c[b+(g<<4)+96>>2];c[b+180>>2]=c[b+(g<<4)+164>>2];c[b+184>>2]=c[b+(g<<4)+168>>2];c[b+188>>2]=c[b+(g<<4)+172>>2];c[b+192>>2]=c[b+(g<<4)+176>>2];f=11}else{d=h}}else{f=11}do{if((f|0)==11){if((g|0)>0){d=a[d>>0]|0;break}else{i=e;return}}}while(0);if(!((d&1)==0)){i=e;return}h=g+ -1|0;c[b>>2]=h;c[b+4>>2]=c[b+(h<<4)+4>>2];c[b+8>>2]=c[b+(h<<4)+8>>2];c[b+12>>2]=c[b+(h<<4)+12>>2];c[b+16>>2]=c[b+(h<<4)+16>>2];c[b+84>>2]=c[b+(h<<4)+84>>2];c[b+88>>2]=c[b+(h<<4)+88>>2];c[b+92>>2]=c[b+(h<<4)+92>>2];c[b+96>>2]=c[b+(h<<4)+96>>2];c[b+164>>2]=c[b+(h<<4)+164>>2];c[b+168>>2]=c[b+(h<<4)+168>>2];c[b+172>>2]=c[b+(h<<4)+172>>2];c[b+176>>2]=c[b+(h<<4)+176>>2];i=e;return}function sv(b){b=b|0;var d=0,e=0.0,f=0.0,h=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0;d=i;i=i+80|0;if((a[b+356>>0]|0)==0){S=a[b+312>>0]|0;S=S<<24>>24!=0;i=d;return S|0}c[b+336>>2]=0;c[b+340>>2]=0;c[b+344>>2]=0;c[b+348>>2]=0;a[b+352>>0]=0;C=a[b+332>>0]|0;a[b+332>>0]=C&-16;a[b+356>>0]=0;switch(c[b>>2]|0){case 3:{c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;c[d+28>>2]=0;tv(d+16|0,b+4|0,b+20|0,b+36|0,b+316|0);K=+g[b+336>>2];L=+g[b+340>>2];R=+g[b+344>>2];M=+g[b+84>>2]*K+ +g[b+100>>2]*L+ +g[b+116>>2]*R;O=K*+g[b+88>>2]+L*+g[b+104>>2]+R*+g[b+120>>2];Q=K*+g[b+92>>2]+L*+g[b+108>>2]+R*+g[b+124>>2];g[b+244>>2]=M;g[b+248>>2]=O;g[b+252>>2]=Q;g[b+256>>2]=0.0;N=+g[b+164>>2]*K+ +g[b+180>>2]*L+ +g[b+196>>2]*R;P=K*+g[b+168>>2]+L*+g[b+184>>2]+R*+g[b+200>>2];R=K*+g[b+172>>2]+L*+g[b+188>>2]+R*+g[b+204>>2];g[b+260>>2]=N;g[b+264>>2]=P;g[b+268>>2]=R;g[b+272>>2]=0.0;g[b+276>>2]=M-N;g[b+280>>2]=O-P;g[b+284>>2]=Q-R;g[b+288>>2]=0.0;rv(b,b+332|0);if((+g[b+336>>2]>=0.0?+g[b+340>>2]>=0.0:0)?+g[b+344>>2]>=0.0:0){j=+g[b+348>>2]>=0.0&1}else{j=0}a[b+312>>0]=j;S=j;S=S<<24>>24!=0;i=d;return S|0};case 2:{m=+g[b+4>>2];k=+g[b+8>>2];h=+g[b+12>>2];l=+g[b+20>>2]-m;f=+g[b+24>>2]-k;e=+g[b+28>>2]-h;do{if((0.0-m)*l+(0.0-k)*f+(0.0-h)*e>0.0){if((0.0-m)*l+(0.0-k)*f+(0.0-h)*e>0]=C&-16|3;e=((0.0-m)*l+(0.0-k)*f+(0.0-h)*e)/(l*l+f*f+e*e);break}else{a[b+332>>0]=C&-16|2;e=1.0;break}}else{a[b+332>>0]=C&-16|1;e=0.0}}while(0);g[b+336>>2]=1.0-e;g[b+340>>2]=e;g[b+344>>2]=0.0;g[b+348>>2]=0.0;M=+g[b+84>>2];O=+g[b+88>>2];Q=+g[b+92>>2];M=M+e*(+g[b+100>>2]-M);O=O+e*(+g[b+104>>2]-O);Q=Q+e*(+g[b+108>>2]-Q);g[b+244>>2]=M;g[b+248>>2]=O;g[b+252>>2]=Q;g[b+256>>2]=0.0;N=+g[b+164>>2];P=+g[b+168>>2];R=+g[b+172>>2];N=N+e*(+g[b+180>>2]-N);P=P+e*(+g[b+184>>2]-P);R=R+e*(+g[b+188>>2]-R);g[b+260>>2]=N;g[b+264>>2]=P;g[b+268>>2]=R;g[b+272>>2]=0.0;g[b+276>>2]=M-N;g[b+280>>2]=O-P;g[b+284>>2]=Q-R;g[b+288>>2]=0.0;rv(b,b+332|0);if((+g[b+336>>2]>=0.0?+g[b+340>>2]>=0.0:0)?+g[b+344>>2]>=0.0:0){j=+g[b+348>>2]>=0.0&1}else{j=0}a[b+312>>0]=j;S=j;S=S<<24>>24!=0;i=d;return S|0};case 4:{c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;j=d+48|0;a[j>>0]=0;c[b+316>>2]=c[d+0>>2];c[b+320>>2]=c[d+4>>2];c[b+324>>2]=c[d+8>>2];c[b+328>>2]=c[d+12>>2];a[b+332>>0]=C|15;M=+g[b+20>>2];Q=+g[b+4>>2];G=+g[b+24>>2];O=+g[b+8>>2];K=+g[b+28>>2];P=+g[b+12>>2];L=+g[b+36>>2];E=+g[b+40>>2];H=+g[b+44>>2];N=+g[b+52>>2];F=+g[b+56>>2];I=+g[b+60>>2];R=(N-Q)*((G-O)*(H-P)-(K-P)*(E-O))+(F-O)*((K-P)*(L-Q)-(M-Q)*(H-P))+((M-Q)*(E-O)-(G-O)*(L-Q))*(I-P);if(R*R<9.99999905104687e-9){D=-1}else{D=R*(((K-P)*(L-Q)-(M-Q)*(H-P))*(0.0-O)+((G-O)*(H-P)-(K-P)*(E-O))*(0.0-Q)+((M-Q)*(E-O)-(G-O)*(L-Q))*(0.0-P))<0.0&1}R=(M-Q)*((E-O)*(I-P)-(H-P)*(F-O))+(G-O)*((H-P)*(N-Q)-(L-Q)*(I-P))+((L-Q)*(F-O)-(E-O)*(N-Q))*(K-P);if(R*R<9.99999905104687e-9){C=-1}else{C=R*(((H-P)*(N-Q)-(L-Q)*(I-P))*(0.0-O)+((E-O)*(I-P)-(H-P)*(F-O))*(0.0-Q)+((L-Q)*(F-O)-(E-O)*(N-Q))*(0.0-P))<0.0&1}R=(L-Q)*((F-O)*(K-P)-(I-P)*(G-O))+(E-O)*((I-P)*(M-Q)-(N-Q)*(K-P))+((N-Q)*(G-O)-(F-O)*(M-Q))*(H-P);if(R*R<9.99999905104687e-9){J=-1}else{J=R*(((I-P)*(M-Q)-(N-Q)*(K-P))*(0.0-O)+((F-O)*(K-P)-(I-P)*(G-O))*(0.0-Q)+((N-Q)*(G-O)-(F-O)*(M-Q))*(0.0-P))<0.0&1}O=(Q-M)*((F-G)*(H-K)-(I-K)*(E-G))+(O-G)*((I-K)*(L-M)-(N-M)*(H-K))+((N-M)*(E-G)-(F-G)*(L-M))*(P-K);if(O*O<9.99999905104687e-9){S=-1}else{S=O*(((I-K)*(L-M)-(N-M)*(H-K))*(0.0-G)+((F-G)*(H-K)-(I-K)*(E-G))*(0.0-M)+((N-M)*(E-G)-(F-G)*(L-M))*(0.0-K))<0.0&1}if((C|D|J|S|0)<0){a[b+352>>0]=1;a[b+312>>0]=0;S=0;S=S<<24>>24!=0;i=d;return S|0}D=(D|0)!=0;C=(C|0)==0;J=(J|0)==0;S=(S|0)==0;if(C&(D^1)&J&S){a[b+312>>0]=1;c[b+276>>2]=0;c[b+280>>2]=0;c[b+284>>2]=0;c[b+288>>2]=0;S=1;S=S<<24>>24!=0;i=d;return S|0}if(D?(tv(d,b+4|0,b+20|0,b+36|0,d+32|0),B=+g[d+32>>2],w=+g[d+36>>2],x=+g[d+40>>2],y=B- +g[d>>2],z=w- +g[d+4>>2],A=x- +g[d+8>>2],y*y+z*z+A*A<3.4028234663852886e+38):0){R=+g[d+44>>2];g[b+316>>2]=B;g[b+320>>2]=w;g[b+324>>2]=x;g[b+328>>2]=R;D=a[j>>0]|0;a[b+332>>0]=D&1|a[b+332>>0]&-16|D&2|D&4;R=+g[d+56>>2];w=+g[d+60>>2];g[b+336>>2]=+g[d+52>>2];g[b+340>>2]=R;g[b+344>>2]=w;g[b+348>>2]=0.0;w=y*y+z*z+A*A}else{w=3.4028234663852886e+38}if(!C?(tv(d,b+4|0,b+36|0,b+52|0,d+32|0),r=+g[d+32>>2],u=+g[d+36>>2],q=+g[d+40>>2],v=r- +g[d>>2],s=u- +g[d+4>>2],t=q- +g[d+8>>2],v*v+s*s+t*t>2];g[b+316>>2]=r;g[b+320>>2]=u;g[b+324>>2]=q;g[b+328>>2]=R;D=a[j>>0]|0;a[b+332>>0]=D<<1&4|(D&1|a[b+332>>0]&-16)|D<<1&8;R=+g[d+56>>2];w=+g[d+60>>2];g[b+336>>2]=+g[d+52>>2];g[b+340>>2]=0.0;g[b+344>>2]=R;g[b+348>>2]=w;w=v*v+s*s+t*t}if(!J?(tv(d,b+4|0,b+52|0,b+20|0,d+32|0),k=+g[d+32>>2],l=+g[d+36>>2],m=+g[d+40>>2],n=k- +g[d>>2],o=l- +g[d+4>>2],p=m- +g[d+8>>2],n*n+o*o+p*p>2];g[b+316>>2]=k;g[b+320>>2]=l;g[b+324>>2]=m;g[b+328>>2]=R;J=a[j>>0]|0;a[b+332>>0]=(J&255)>>>1&2|(J&1|a[b+332>>0]&-16)|J<<2&8;R=+g[d+60>>2];w=+g[d+56>>2];g[b+336>>2]=+g[d+52>>2];g[b+340>>2]=R;g[b+344>>2]=0.0;g[b+348>>2]=w;w=n*n+o*o+p*p}if(!S?(tv(d,b+20|0,b+52|0,b+36|0,d+32|0),f=+g[d+32>>2],e=+g[d+36>>2],h=+g[d+40>>2],P=f- +g[d>>2],Q=e- +g[d+4>>2],R=h- +g[d+8>>2],P*P+Q*Q+R*R>2];g[b+316>>2]=f;g[b+320>>2]=e;g[b+324>>2]=h;g[b+328>>2]=P;S=a[j>>0]|0;a[b+332>>0]=S<<1&2|a[b+332>>0]&-16|S&4|S<<2&8;P=+g[d+52>>2];Q=+g[d+60>>2];R=+g[d+56>>2];g[b+336>>2]=0.0;g[b+340>>2]=P;g[b+344>>2]=Q;g[b+348>>2]=R}I=+g[b+336>>2];K=+g[b+340>>2];L=+g[b+344>>2];R=+g[b+348>>2];M=+g[b+84>>2]*I+ +g[b+100>>2]*K+ +g[b+116>>2]*L+ +g[b+132>>2]*R;O=I*+g[b+88>>2]+K*+g[b+104>>2]+L*+g[b+120>>2]+R*+g[b+136>>2];Q=I*+g[b+92>>2]+K*+g[b+108>>2]+L*+g[b+124>>2]+R*+g[b+140>>2];g[b+244>>2]=M;g[b+248>>2]=O;g[b+252>>2]=Q;g[b+256>>2]=0.0;N=+g[b+164>>2]*I+ +g[b+180>>2]*K+ +g[b+196>>2]*L+ +g[b+212>>2]*R;P=I*+g[b+168>>2]+K*+g[b+184>>2]+L*+g[b+200>>2]+R*+g[b+216>>2];R=I*+g[b+172>>2]+K*+g[b+188>>2]+L*+g[b+204>>2]+R*+g[b+220>>2];g[b+260>>2]=N;g[b+264>>2]=P;g[b+268>>2]=R;g[b+272>>2]=0.0;g[b+276>>2]=M-N;g[b+280>>2]=O-P;g[b+284>>2]=Q-R;g[b+288>>2]=0.0;rv(b,b+332|0);if((+g[b+336>>2]>=0.0?+g[b+340>>2]>=0.0:0)?+g[b+344>>2]>=0.0:0){j=+g[b+348>>2]>=0.0&1}else{j=0}a[b+312>>0]=j;S=j;S=S<<24>>24!=0;i=d;return S|0};case 0:{a[b+312>>0]=0;S=0;S=S<<24>>24!=0;i=d;return S|0};case 1:{c[b+244>>2]=c[b+84>>2];c[b+248>>2]=c[b+88>>2];c[b+252>>2]=c[b+92>>2];c[b+256>>2]=c[b+96>>2];c[b+260>>2]=c[b+164>>2];c[b+264>>2]=c[b+168>>2];c[b+268>>2]=c[b+172>>2];c[b+272>>2]=c[b+176>>2];Q=+g[b+248>>2]- +g[b+264>>2];R=+g[b+252>>2]- +g[b+268>>2];g[b+276>>2]=+g[b+244>>2]- +g[b+260>>2];g[b+280>>2]=Q;g[b+284>>2]=R;g[b+288>>2]=0.0;c[b+336>>2]=0;c[b+340>>2]=0;c[b+344>>2]=0;c[b+348>>2]=0;a[b+352>>0]=0;a[b+332>>0]=C&-16;g[b+336>>2]=1.0;g[b+340>>2]=0.0;g[b+344>>2]=0.0;g[b+348>>2]=0.0;a[b+312>>0]=1;S=1;S=S<<24>>24!=0;i=d;return S|0};default:{a[b+312>>0]=0;S=0;S=S<<24>>24!=0;i=d;return S|0}}return 0}function tv(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;r=i;o=a[h+16>>0]&-16;a[h+16>>0]=o;l=+g[e>>2];k=+g[d>>2];n=+g[e+4>>2];m=+g[d+4>>2];p=+g[e+8>>2];j=+g[d+8>>2];q=+g[f>>2];s=+g[f+4>>2];t=+g[f+8>>2];u=+g[b>>2];v=+g[b+4>>2];y=+g[b+8>>2];w=(l-k)*(u-k)+(n-m)*(v-m)+(p-j)*(y-j);x=(q-k)*(u-k)+(s-m)*(v-m)+(t-j)*(y-j);if(!(!(w<=0.0)|!(x<=0.0))){c[h+0>>2]=c[d+0>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];a[h+16>>0]=o|1;g[h+20>>2]=1.0;g[h+24>>2]=0.0;g[h+28>>2]=0.0;g[h+32>>2]=0.0;i=r;return}z=(l-k)*(u-l)+(n-m)*(v-n)+(p-j)*(y-p);A=(q-k)*(u-l)+(s-m)*(v-n)+(t-j)*(y-p);if(!(!(z>=0.0)|!(A<=z))){c[h+0>>2]=c[e+0>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];a[h+16>>0]=o|2;g[h+20>>2]=0.0;g[h+24>>2]=1.0;g[h+28>>2]=0.0;g[h+32>>2]=0.0;i=r;return}if(!((w>=0.0?!(w*A-z*x<=0.0):1)|!(z<=0.0))){g[h>>2]=k+(l-k)*(w/(w-z));g[h+4>>2]=m+(n-m)*(w/(w-z));g[h+8>>2]=j+(p-j)*(w/(w-z));g[h+12>>2]=0.0;a[h+16>>0]=o|3;g[h+20>>2]=1.0-w/(w-z);g[h+24>>2]=w/(w-z);g[h+28>>2]=0.0;g[h+32>>2]=0.0;i=r;return}B=(l-k)*(u-q)+(n-m)*(v-s)+(p-j)*(y-t);u=(q-k)*(u-q)+(s-m)*(v-s)+(t-j)*(y-t);if(!(!(u>=0.0)|!(B<=u))){c[h+0>>2]=c[f+0>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[h+12>>2]=c[f+12>>2];a[h+16>>0]=o|4;g[h+20>>2]=0.0;g[h+24>>2]=0.0;g[h+28>>2]=1.0;g[h+32>>2]=0.0;i=r;return}if(!((x>=0.0?!(B*x-w*u<=0.0):1)|!(u<=0.0))){g[h>>2]=k+(q-k)*(x/(x-u));g[h+4>>2]=m+(s-m)*(x/(x-u));g[h+8>>2]=j+(t-j)*(x/(x-u));g[h+12>>2]=0.0;a[h+16>>0]=o|5;g[h+20>>2]=1.0-x/(x-u);g[h+24>>2]=0.0;g[h+28>>2]=x/(x-u);g[h+32>>2]=0.0;i=r;return}if((z*u-B*A<=0.0?A-z>=0.0:0)?B-u>=0.0:0){B=(A-z)/(A-z+(B-u));g[h>>2]=l+(q-l)*B;g[h+4>>2]=n+(s-n)*B;g[h+8>>2]=p+(t-p)*B;g[h+12>>2]=0.0;a[h+16>>0]=o|6;g[h+20>>2]=0.0;g[h+24>>2]=1.0-B;g[h+28>>2]=B;g[h+32>>2]=0.0;i=r;return}v=1.0/(w*A-z*x+(z*u-B*A+(B*x-w*u)));y=(B*x-w*u)*v;B=(w*A-z*x)*v;g[h>>2]=(q-k)*B+(k+(l-k)*y);g[h+4>>2]=(s-m)*B+(m+(n-m)*y);g[h+8>>2]=(t-j)*B+((p-j)*y+j);g[h+12>>2]=0.0;a[h+16>>0]=o|7;g[h+20>>2]=1.0-y-B;g[h+24>>2]=y;g[h+28>>2]=B;g[h+32>>2]=0.0;i=r;return}function uv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0;e=i;i=i+96|0;p=+g[b+48>>2]- +g[b+112>>2];h=+g[b+52>>2]- +g[b+116>>2];j=+g[b+56>>2]- +g[b+120>>2];o=p*+g[b+64>>2]+h*+g[b+80>>2]+j*+g[b+96>>2];m=p*+g[b+68>>2]+h*+g[b+84>>2]+j*+g[b+100>>2];j=p*+g[b+72>>2]+h*+g[b+88>>2]+j*+g[b+104>>2];q=c[a+8>>2]|0;u=c[a+4>>2]|0;h=+g[u+28>>2]*+g[u+12>>2];p=h+ +g[a+12>>2];z=+g[q+72>>2];s=+g[q+56>>2];v=+g[q+76>>2];y=+g[q+60>>2];x=+g[q+80>>2];t=+g[q+64>>2];w=+g[q+88>>2];A=+g[q+92>>2];B=+g[q+96>>2];l=(v-y)*(B-t)-(x-t)*(A-y);k=(x-t)*(w-s)-(z-s)*(B-t);n=(z-s)*(A-y)-(v-y)*(w-s);C=1.0/+Q(+(n*n+(l*l+k*k)));r=(o-s)*C*l+C*k*(m-y)+C*n*(j-t);if(r<0.0){r=r*-1.0;l=C*l*-1.0;k=C*k*-1.0;n=C*n*-1.0}else{l=C*l;k=C*k;n=C*n}if(!(r0.0&D>0.0&E>0.0)?!(C<=0.0)|!(D<=0.0)|!(E<=0.0):0){if((Rb[c[(c[q>>2]|0)+100>>2]&127](q)|0)<=0){i=e;return}u=0;q=0;t=0.0;s=0.0;r=0.0;do{F=c[a+8>>2]|0;wc[c[(c[F>>2]|0)+104>>2]&63](F,q,e+80|0,e+64|0);B=+g[e+80>>2];v=+g[e+84>>2];z=+g[e+88>>2];A=+g[e+64>>2]-B;w=+g[e+68>>2]-v;y=+g[e+72>>2]-z;do{if((o-B)*A+(m-v)*w+(j-z)*y>0.0){if((o-B)*A+(m-v)*w+(j-z)*y>2]|0}while((q|0)<(Rb[c[(c[F>>2]|0)+100>>2]&127](F)|0));if((u&1)==0){i=e;return}else{p=p*p}}else{p=p*p;t=o-l*r;s=j-n*r;r=m-k*r}o=o-t;m=m-r;j=j-s;if(!(o*o+m*m+j*j1.1920928955078125e-7){n=+Q(+(o*o+m*m+j*j));h=h-n;l=o*(1.0/n);k=m*(1.0/n);n=j*(1.0/n)}h=-h;if(f){z=+g[b+64>>2];A=+g[b+68>>2];B=+g[b+72>>2];C=z*l+A*k+B*n;o=+g[b+80>>2];p=+g[b+84>>2];v=+g[b+88>>2];D=l*o+k*p+n*v;w=+g[b+96>>2];x=+g[b+100>>2];y=+g[b+104>>2];E=l*w+k*x+n*y;g[e+48>>2]=-C;g[e+52>>2]=-D;g[e+56>>2]=-E;g[e+60>>2]=0.0;D=t*o+r*p+s*v+ +g[b+116>>2]+D*h;E=t*w+r*x+s*y+ +g[b+120>>2]+E*h;g[e+32>>2]=t*z+r*A+s*B+ +g[b+112>>2]+C*h;g[e+36>>2]=D;g[e+40>>2]=E;g[e+44>>2]=0.0;rc[c[(c[d>>2]|0)+16>>2]&15](d,e+48|0,e+32|0,h);i=e;return}else{F=c[(c[d>>2]|0)+16>>2]|0;A=+g[b+64>>2];B=+g[b+68>>2];C=+g[b+72>>2];w=+g[b+80>>2];x=+g[b+84>>2];D=+g[b+88>>2];y=+g[b+96>>2];z=+g[b+100>>2];E=+g[b+104>>2];g[e+16>>2]=A*l+B*k+C*n;g[e+20>>2]=l*w+k*x+n*D;g[e+24>>2]=l*y+k*z+n*E;g[e+28>>2]=0.0;D=t*w+r*x+s*D+ +g[b+116>>2];E=t*y+r*z+s*E+ +g[b+120>>2];g[e>>2]=t*A+r*B+s*C+ +g[b+112>>2];g[e+4>>2]=D;g[e+8>>2]=E;g[e+12>>2]=0.0;rc[F&15](d,e+16|0,e,h);i=e;return}}function vv(a){a=a|0;return}function wv(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function xv(b){b=b|0;var d=0,e=0,f=0;d=i;c[b>>2]=16064;if((a[b+8>>0]|0)==0){_x(b);i=d;return}e=c[b+12>>2]|0;if((e|0)==0){_x(b);i=d;return}f=c[b+4>>2]|0;Pb[c[(c[f>>2]|0)+16>>2]&127](f,e);_x(b);i=d;return}function yv(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=16064;if((a[b+8>>0]|0)==0){i=d;return}e=c[b+12>>2]|0;if((e|0)==0){i=d;return}b=c[b+4>>2]|0;Pb[c[(c[b>>2]|0)+16>>2]&127](b,e);i=d;return}function zv(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0;j=i;i=i+144|0;k=c[b+12>>2]|0;if((k|0)==0){i=j;return}m=c[d+4>>2]|0;l=c[e+4>>2]|0;c[h+4>>2]=k;g[j+140>>2]=999999984306749400.0;k=c[d+12>>2]|0;c[j+12>>2]=c[k+0>>2];c[j+16>>2]=c[k+4>>2];c[j+20>>2]=c[k+8>>2];c[j+24>>2]=c[k+12>>2];c[j+28>>2]=c[k+16>>2];c[j+32>>2]=c[k+20>>2];c[j+36>>2]=c[k+24>>2];c[j+40>>2]=c[k+28>>2];c[j+44>>2]=c[k+32>>2];c[j+48>>2]=c[k+36>>2];c[j+52>>2]=c[k+40>>2];c[j+56>>2]=c[k+44>>2];c[j+60>>2]=c[k+48>>2];c[j+64>>2]=c[k+52>>2];c[j+68>>2]=c[k+56>>2];c[j+72>>2]=c[k+60>>2];e=c[e+12>>2]|0;c[j+76>>2]=c[e+0>>2];c[j+80>>2]=c[e+4>>2];c[j+84>>2]=c[e+8>>2];c[j+88>>2]=c[e+12>>2];c[j+92>>2]=c[e+16>>2];c[j+96>>2]=c[e+20>>2];c[j+100>>2]=c[e+24>>2];c[j+104>>2]=c[e+28>>2];c[j+108>>2]=c[e+32>>2];c[j+112>>2]=c[e+36>>2];c[j+116>>2]=c[e+40>>2];c[j+120>>2]=c[e+44>>2];c[j+124>>2]=c[e+48>>2];c[j+128>>2]=c[e+52>>2];c[j+132>>2]=c[e+56>>2];c[j+136>>2]=c[e+60>>2];c[j>>2]=16144;c[j+4>>2]=m;c[j+8>>2]=l;Cv(j,j+12|0,h,c[f+20>>2]|0,0);if((a[b+8>>0]|0)==0){i=j;return}d=c[h+4>>2]|0;if((c[d+748>>2]|0)==0){i=j;return}k=c[d+740>>2]|0;e=c[(c[h+8>>2]|0)+8>>2]|0;if((k|0)==(e|0)){Gt(d,k+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);i=j;return}else{Gt(d,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,e+4|0);i=j;return}}function Av(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function Bv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if((c[b+12>>2]|0)==0){i=e;return}if((a[b+8>>0]|0)==0){i=e;return}h=c[d+4>>2]|0;if((h|0)==(c[d+8>>2]|0)?(f=(h|0)==0?1:h<<1,(h|0)<(f|0)):0){if((f|0)==0){g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((f<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[d+4>>2]|0}if((h|0)>0){j=0;do{k=g+(j<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[d+12>>2]|0)+(j<<2)>>2]}j=j+1|0}while((j|0)!=(h|0))}j=c[d+12>>2]|0;if((j|0)!=0){if((a[d+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);h=c[d+4>>2]|0}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=g;c[d+8>>2]=f}f=(c[d+12>>2]|0)+(h<<2)|0;if((f|0)!=0){c[f>>2]=c[b+12>>2]}c[d+4>>2]=h+1;i=e;return} function Tl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0.0,K=0,L=0.0,M=0.0,N=0.0,O=0,R=0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0;r=i;i=i+80|0;if((e|0)<=0){i=r;return}k=0;do{l=c[d+(k<<2)>>2]|0;h=c[l+740>>2]|0;q=c[l+744>>2]|0;m=Rl(b,h,+g[f+12>>2])|0;n=Rl(b,q,+g[f+12>>2])|0;o=c[b+16>>2]|0;do{if((o+(m*244|0)|0)!=0){if((+g[o+(m*244|0)+128>>2]==0.0?+g[o+(m*244|0)+132>>2]==0.0:0)?+g[o+(m*244|0)+136>>2]==0.0:0){if((o+(n*244|0)|0)==0){break}if((+g[o+(n*244|0)+128>>2]==0.0?+g[o+(n*244|0)+132>>2]==0.0:0)?+g[o+(n*244|0)+136>>2]==0.0:0){break}}t=c[l+748>>2]|0;if((t|0)>0){s=0;F=1;do{u=l+(s*184|0)+4|0;K=l+(s*184|0)+84|0;if(+g[K>>2]<=+g[l+756>>2]){t=c[b+28>>2]|0;if((t|0)==(c[b+32>>2]|0)?(p=(t|0)==0?1:t<<1,(t|0)<(p|0)):0){if((p|0)==0){x=t;v=0}else{c[4546]=(c[4546]|0)+1;v=Zx((p*152|3)+16|0)|0;if((v|0)==0){v=0}else{c[(v+19&-16)+ -4>>2]=v;v=v+19&-16}x=c[b+28>>2]|0}if((x|0)>0){y=0;do{ey(v+(y*152|0)|0,(c[b+36>>2]|0)+(y*152|0)|0,152)|0;y=y+1|0}while((y|0)!=(x|0))}x=c[b+36>>2]|0;if((x|0)!=0){if((a[b+40>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[x+ -4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=v;c[b+32>>2]=p;v=c[b+28>>2]|0}else{v=t}c[b+28>>2]=v+1;v=c[b+36>>2]|0;H=(c[h+236>>2]&2|0)==0?0:h;G=(c[q+236>>2]&2|0)==0?0:q;c[v+(t*152|0)+144>>2]=m;c[v+(t*152|0)+148>>2]=n;c[v+(t*152|0)+132>>2]=u;S=+g[l+(s*184|0)+52>>2]- +g[h+52>>2];U=+g[l+(s*184|0)+56>>2]- +g[h+56>>2];T=+g[l+(s*184|0)+60>>2]- +g[h+60>>2];g[r+64>>2]=S;g[r+68>>2]=U;g[r+72>>2]=T;g[r+76>>2]=0.0;L=+g[l+(s*184|0)+36>>2]- +g[q+52>>2];N=+g[l+(s*184|0)+40>>2]- +g[q+56>>2];M=+g[l+(s*184|0)+44>>2]- +g[q+60>>2];g[r+48>>2]=L;g[r+52>>2]=N;g[r+56>>2]=M;g[r+60>>2]=0.0;if((c[o+(m*244|0)+240>>2]|0)==0){w=0.0;A=0.0;C=0.0}else{aa=+g[o+(m*244|0)+192>>2]+ +g[o+(m*244|0)+224>>2];C=+g[o+(m*244|0)+196>>2]+ +g[o+(m*244|0)+228>>2];A=+g[o+(m*244|0)+200>>2]+ +g[o+(m*244|0)+232>>2];w=+g[o+(m*244|0)+176>>2]+ +g[o+(m*244|0)+208>>2]+(C*T-A*U);A=+g[o+(m*244|0)+180>>2]+ +g[o+(m*244|0)+212>>2]+(A*S-aa*T);C=+g[o+(m*244|0)+184>>2]+ +g[o+(m*244|0)+216>>2]+(aa*U-C*S)}if((c[o+(n*244|0)+240>>2]|0)==0){E=0.0;D=0.0;B=0.0}else{aa=+g[o+(n*244|0)+192>>2]+ +g[o+(n*244|0)+224>>2];B=+g[o+(n*244|0)+196>>2]+ +g[o+(n*244|0)+228>>2];D=+g[o+(n*244|0)+200>>2]+ +g[o+(n*244|0)+232>>2];E=+g[o+(n*244|0)+176>>2]+ +g[o+(n*244|0)+208>>2]+(B*M-D*N);D=+g[o+(n*244|0)+180>>2]+ +g[o+(n*244|0)+212>>2]+(D*L-aa*M);B=+g[o+(n*244|0)+184>>2]+ +g[o+(n*244|0)+216>>2]+(aa*N-B*L)}w=w-E;A=A-D;D=C-B;y=l+(s*184|0)+68|0;C=+g[y>>2];z=l+(s*184|0)+72|0;B=+g[z>>2];x=l+(s*184|0)+76|0;E=+g[x>>2];I=c[b+16>>2]|0;R=c[I+(m*244|0)+240>>2]|0;O=c[I+(n*244|0)+240>>2]|0;if((R|0)!=0){_=((U*E-T*B)*+g[R+264>>2]+(T*C-E*S)*+g[R+268>>2]+(B*S-U*C)*+g[R+272>>2])*+g[R+544>>2];aa=((U*E-T*B)*+g[R+280>>2]+(T*C-E*S)*+g[R+284>>2]+(B*S-U*C)*+g[R+288>>2])*+g[R+548>>2];$=((U*E-T*B)*+g[R+296>>2]+(T*C-E*S)*+g[R+300>>2]+(B*S-U*C)*+g[R+304>>2])*+g[R+552>>2]}else{_=0.0;aa=0.0;$=0.0}g[v+(t*152|0)+64>>2]=_;g[v+(t*152|0)+68>>2]=aa;g[v+(t*152|0)+72>>2]=$;g[v+(t*152|0)+76>>2]=0.0;W=+g[x>>2];J=+g[z>>2];V=+g[y>>2];if((O|0)!=0){X=(+g[O+264>>2]*-(N*W-M*J)+ +g[O+268>>2]*-(M*V-W*L)+ +g[O+272>>2]*-(J*L-N*V))*+g[O+544>>2];Y=(+g[O+280>>2]*-(N*W-M*J)+ +g[O+284>>2]*-(M*V-W*L)+ +g[O+288>>2]*-(J*L-N*V))*+g[O+548>>2];Z=(+g[O+296>>2]*-(N*W-M*J)+ +g[O+300>>2]*-(M*V-W*L)+ +g[O+304>>2]*-(J*L-N*V))*+g[O+552>>2]}else{X=0.0;Y=0.0;Z=0.0}g[v+(t*152|0)+80>>2]=X;g[v+(t*152|0)+84>>2]=Y;g[v+(t*152|0)+88>>2]=Z;g[v+(t*152|0)+92>>2]=0.0;if((R|0)!=0){_=+g[R+344>>2]+((aa*T-$*U)*+g[y>>2]+($*S-T*_)*+g[z>>2]+(U*_-aa*S)*+g[x>>2])}else{_=0.0}if((O|0)!=0){aa=-X;X=-Y;$=-Z;X=+g[O+344>>2]+((M*X-N*$)*+g[y>>2]+(L*$-M*aa)*+g[z>>2]+(N*aa-L*X)*+g[x>>2])}else{X=0.0}g[v+(t*152|0)+108>>2]=1.0/(_+X);if((R|0)!=0){c[v+(t*152|0)+16>>2]=c[y+0>>2];c[v+(t*152|0)+20>>2]=c[y+4>>2];c[v+(t*152|0)+24>>2]=c[y+8>>2];c[v+(t*152|0)+28>>2]=c[y+12>>2];g[v+(t*152|0)>>2]=U*E-T*B;g[v+(t*152|0)+4>>2]=T*C-E*S;g[v+(t*152|0)+8>>2]=B*S-U*C;g[v+(t*152|0)+12>>2]=0.0}else{c[v+(t*152|0)+0>>2]=0;c[v+(t*152|0)+4>>2]=0;c[v+(t*152|0)+8>>2]=0;c[v+(t*152|0)+12>>2]=0;c[v+(t*152|0)+16>>2]=0;c[v+(t*152|0)+20>>2]=0;c[v+(t*152|0)+24>>2]=0;c[v+(t*152|0)+28>>2]=0}if((O|0)!=0){$=-+g[z>>2];aa=-+g[x>>2];g[v+(t*152|0)+48>>2]=-+g[y>>2];g[v+(t*152|0)+52>>2]=$;g[v+(t*152|0)+56>>2]=aa;g[v+(t*152|0)+60>>2]=0.0;g[v+(t*152|0)+32>>2]=-(N*W-M*J);g[v+(t*152|0)+36>>2]=-(M*V-W*L);g[v+(t*152|0)+40>>2]=-(J*L-N*V);g[v+(t*152|0)+44>>2]=0.0}else{c[v+(t*152|0)+32>>2]=0;c[v+(t*152|0)+36>>2]=0;c[v+(t*152|0)+40>>2]=0;c[v+(t*152|0)+44>>2]=0;c[v+(t*152|0)+48>>2]=0;c[v+(t*152|0)+52>>2]=0;c[v+(t*152|0)+56>>2]=0;c[v+(t*152|0)+60>>2]=0}J=+g[K>>2]+ +g[f+56>>2];if((R|0)!=0){_=+g[R+332>>2];$=+g[R+336>>2];aa=+g[R+328>>2];V=_*T-$*U+ +g[R+312>>2];U=U*aa-_*S+ +g[R+320>>2];S=+g[R+316>>2]+($*S-T*aa)}else{V=0.0;U=0.0;S=0.0}if((O|0)!=0){_=+g[O+332>>2];$=+g[O+336>>2];aa=+g[O+328>>2];T=_*M-$*N+ +g[O+312>>2];N=N*aa-_*L+ +g[O+320>>2];L=+g[O+316>>2]+($*L-M*aa)}else{T=0.0;N=0.0;L=0.0}L=+g[y>>2]*(V-T)+(S-L)*+g[z>>2]+(U-N)*+g[x>>2];g[v+(t*152|0)+104>>2]=+g[l+(s*184|0)+88>>2];L=L*+g[l+(s*184|0)+96>>2];L=!(L>=-0.0)?-L:0.0;do{if((c[f+64>>2]&4|0)==0){g[v+(t*152|0)+100>>2]=0.0}else{M=+g[l+(s*184|0)+124>>2]*+g[f+60>>2];g[v+(t*152|0)+100>>2]=M;do{if((R|0)!=0){if((c[I+(m*244|0)+240>>2]|0)==0){break}aa=M*+g[I+(m*244|0)+132>>2]*+g[v+(t*152|0)+20>>2]*+g[R+352>>2]*+g[I+(m*244|0)+116>>2];$=M*+g[I+(m*244|0)+136>>2]*+g[v+(t*152|0)+24>>2]*+g[R+356>>2]*+g[I+(m*244|0)+120>>2];g[I+(m*244|0)+64>>2]=+g[I+(m*244|0)+112>>2]*M*+g[I+(m*244|0)+128>>2]*+g[v+(t*152|0)+16>>2]*+g[R+348>>2]+ +g[I+(m*244|0)+64>>2];g[I+(m*244|0)+68>>2]=aa+ +g[I+(m*244|0)+68>>2];g[I+(m*244|0)+72>>2]=$+ +g[I+(m*244|0)+72>>2];$=M*+g[I+(m*244|0)+100>>2]*+g[v+(t*152|0)+68>>2];aa=M*+g[I+(m*244|0)+104>>2]*+g[v+(t*152|0)+72>>2];g[I+(m*244|0)+80>>2]=M*+g[I+(m*244|0)+96>>2]*+g[v+(t*152|0)+64>>2]+ +g[I+(m*244|0)+80>>2];g[I+(m*244|0)+84>>2]=$+ +g[I+(m*244|0)+84>>2];g[I+(m*244|0)+88>>2]=aa+ +g[I+(m*244|0)+88>>2]}}while(0);if((O|0)==0){break}M=+g[v+(t*152|0)+100>>2];if((c[I+(n*244|0)+240>>2]|0)==0){break}aa=+g[v+(t*152|0)+88>>2];$=+g[v+(t*152|0)+84>>2];_=+g[v+(t*152|0)+80>>2];Y=M*+g[I+(n*244|0)+132>>2]*+g[v+(t*152|0)+52>>2]*+g[O+352>>2]*+g[I+(n*244|0)+116>>2];Z=M*+g[I+(n*244|0)+136>>2]*+g[v+(t*152|0)+56>>2]*+g[O+356>>2]*+g[I+(n*244|0)+120>>2];g[I+(n*244|0)+64>>2]=+g[I+(n*244|0)+112>>2]*M*+g[I+(n*244|0)+128>>2]*+g[v+(t*152|0)+48>>2]*+g[O+348>>2]+ +g[I+(n*244|0)+64>>2];g[I+(n*244|0)+68>>2]=Y+ +g[I+(n*244|0)+68>>2];g[I+(n*244|0)+72>>2]=Z+ +g[I+(n*244|0)+72>>2];$=$*+g[I+(n*244|0)+100>>2]*-M;aa=aa*+g[I+(n*244|0)+104>>2]*-M;g[I+(n*244|0)+80>>2]=+g[I+(n*244|0)+80>>2]-_*+g[I+(n*244|0)+96>>2]*-M;g[I+(n*244|0)+84>>2]=+g[I+(n*244|0)+84>>2]-$;g[I+(n*244|0)+88>>2]=+g[I+(n*244|0)+88>>2]-aa}}while(0);g[v+(t*152|0)+96>>2]=0.0;if((c[I+(m*244|0)+240>>2]|0)==0){$=0.0;_=0.0;Z=0.0;M=0.0;X=0.0;W=0.0}else{$=+g[I+(m*244|0)+208>>2];_=+g[I+(m*244|0)+212>>2];Z=+g[I+(m*244|0)+216>>2];M=+g[I+(m*244|0)+224>>2];X=+g[I+(m*244|0)+228>>2];W=+g[I+(m*244|0)+232>>2]}if((c[I+(n*244|0)+240>>2]|0)==0){S=0.0;Y=0.0;N=0.0;T=0.0;U=0.0;V=0.0}else{S=+g[I+(n*244|0)+208>>2];Y=+g[I+(n*244|0)+212>>2];N=+g[I+(n*244|0)+216>>2];T=+g[I+(n*244|0)+224>>2];U=+g[I+(n*244|0)+228>>2];V=+g[I+(n*244|0)+232>>2]}L=L-(($+ +g[I+(m*244|0)+176>>2])*+g[v+(t*152|0)+16>>2]+(_+ +g[I+(m*244|0)+180>>2])*+g[v+(t*152|0)+20>>2]+(Z+ +g[I+(m*244|0)+184>>2])*+g[v+(t*152|0)+24>>2]+((M+ +g[I+(m*244|0)+192>>2])*+g[v+(t*152|0)>>2]+(X+ +g[I+(m*244|0)+196>>2])*+g[v+(t*152|0)+4>>2]+(W+ +g[I+(m*244|0)+200>>2])*+g[v+(t*152|0)+8>>2])+((S+ +g[I+(n*244|0)+176>>2])*+g[v+(t*152|0)+48>>2]+(Y+ +g[I+(n*244|0)+180>>2])*+g[v+(t*152|0)+52>>2]+(N+ +g[I+(n*244|0)+184>>2])*+g[v+(t*152|0)+56>>2]+((T+ +g[I+(n*244|0)+192>>2])*+g[v+(t*152|0)+32>>2]+(U+ +g[I+(n*244|0)+196>>2])*+g[v+(t*152|0)+36>>2]+(V+ +g[I+(n*244|0)+200>>2])*+g[v+(t*152|0)+40>>2])));I=(c[f+44>>2]|0)==0;if(!I?!(J>+g[f+48>>2]):0){K=f+36|0}else{K=f+32|0}if(J>0.0){M=0.0;L=L-J/+g[f+12>>2]}else{M=-(J*+g[K>>2])/+g[f+12>>2]}aa=+g[v+(t*152|0)+108>>2];M=M*aa;L=L*aa;do{if(I){j=69}else{if(J>+g[f+48>>2]){j=69;break}g[v+(t*152|0)+112>>2]=L;g[v+(t*152|0)+128>>2]=M}}while(0);if((j|0)==69){j=0;g[v+(t*152|0)+112>>2]=M+L;g[v+(t*152|0)+128>>2]=0.0}g[v+(t*152|0)+116>>2]=0.0;g[v+(t*152|0)+120>>2]=0.0;g[v+(t*152|0)+124>>2]=1.0e10;c[v+(t*152|0)+140>>2]=c[b+68>>2];if((H|0)==0){L=0.0;J=0.0;M=0.0}else{L=+g[H+328>>2];J=+g[H+332>>2];M=+g[H+336>>2]}if((G|0)==0){T=0.0;S=0.0;N=0.0}else{T=+g[G+328>>2];S=+g[G+332>>2];N=+g[G+336>>2]}L=T-L;J=S-J;M=N-M;g[r+32>>2]=L;g[r+36>>2]=J;g[r+40>>2]=M;g[r+44>>2]=0.0;do{if((F|0)>0?+g[l+(s*184|0)+92>>2]>0.0:0){F=F+ -1|0;N=+Q(+(L*L+J*J+M*M));if(N>+g[f+80>>2]){L=L*(1.0/N);g[r+32>>2]=L;J=J*(1.0/N);g[r+36>>2]=J;M=M*(1.0/N);g[r+40>>2]=M;do{if((h|0)!=0){if((c[h+180>>2]&2|0)==0){break}S=+g[h+4>>2];V=+g[h+20>>2];Y=+g[h+36>>2];T=+g[h+8>>2];W=+g[h+24>>2];_=+g[h+40>>2];U=+g[h+12>>2];X=+g[h+28>>2];aa=+g[h+44>>2];Z=(S*L+V*J+M*Y)*+g[h+164>>2];$=(L*T+J*W+M*_)*+g[h+168>>2];M=(L*U+J*X+M*aa)*+g[h+172>>2];g[r+32>>2]=S*Z+T*$+U*M;g[r+36>>2]=V*Z+W*$+X*M;g[r+40>>2]=Y*Z+_*$+aa*M;g[r+44>>2]=0.0;L=S*Z+T*$+U*M;J=V*Z+W*$+X*M;M=Y*Z+_*$+aa*M}}while(0);do{if((q|0)!=0){if((c[q+180>>2]&2|0)==0){break}S=+g[q+4>>2];V=+g[q+20>>2];Y=+g[q+36>>2];T=+g[q+8>>2];W=+g[q+24>>2];_=+g[q+40>>2];U=+g[q+12>>2];X=+g[q+28>>2];aa=+g[q+44>>2];Z=(S*L+V*J+Y*M)*+g[q+164>>2];$=(L*T+J*W+M*_)*+g[q+168>>2];M=(L*U+J*X+M*aa)*+g[q+172>>2];g[r+32>>2]=S*Z+T*$+U*M;g[r+36>>2]=V*Z+W*$+X*M;g[r+40>>2]=Y*Z+_*$+aa*M;g[r+44>>2]=0.0;L=S*Z+T*$+U*M;J=V*Z+W*$+X*M;M=Y*Z+_*$+aa*M}}while(0);if(!(+Q(+(L*L+J*J+M*M))>.001)){break}Ql(b,r+32|0,m,n,t,u);break}Ql(b,y,m,n,t,u);L=+g[x>>2];if(+P(+L)>.7071067690849304){M=+g[z>>2];aa=1.0/+Q(+(L*L+M*M));g[r+16>>2]=0.0;g[r+20>>2]=-(aa*L);g[r+24>>2]=aa*M;g[r>>2]=(L*L+M*M)*aa;$=+g[y>>2];g[r+4>>2]=-($*aa*M);J=0.0;S=-(aa*L);T=aa*M;N=(L*L+M*M)*aa;M=-($*aa*M);L=$*-(aa*L)}else{_=+g[y>>2];$=+g[z>>2];aa=1.0/+Q(+(_*_+$*$));g[r+16>>2]=-($*aa);g[r+20>>2]=aa*_;g[r+24>>2]=0.0;g[r>>2]=-(L*aa*_);g[r+4>>2]=L*-($*aa);J=-($*aa);S=aa*_;T=0.0;N=-(L*aa*_);M=L*-($*aa);L=(_*_+$*$)*aa}g[r+8>>2]=L;do{if((h|0)!=0){if((c[h+180>>2]&2|0)==0){break}ca=+g[h+4>>2];V=+g[h+20>>2];Y=+g[h+36>>2];ba=+g[h+8>>2];W=+g[h+24>>2];_=+g[h+40>>2];U=+g[h+12>>2];X=+g[h+28>>2];aa=+g[h+44>>2];Z=(ca*J+V*S+Y*T)*+g[h+164>>2];$=(J*ba+S*W+T*_)*+g[h+168>>2];T=(J*U+S*X+T*aa)*+g[h+172>>2];g[r+16>>2]=ca*Z+ba*$+U*T;g[r+20>>2]=V*Z+W*$+X*T;g[r+24>>2]=Y*Z+_*$+aa*T;g[r+28>>2]=0.0;J=ca*Z+ba*$+U*T;S=V*Z+W*$+X*T;T=Y*Z+_*$+aa*T}}while(0);do{if((q|0)!=0){if((c[q+180>>2]&2|0)==0){break}U=+g[q+4>>2];X=+g[q+20>>2];_=+g[q+36>>2];V=+g[q+8>>2];Y=+g[q+24>>2];aa=+g[q+40>>2];W=+g[q+12>>2];Z=+g[q+28>>2];ca=+g[q+44>>2];$=(U*J+X*S+_*T)*+g[q+164>>2];ba=(J*V+S*Y+T*aa)*+g[q+168>>2];T=(J*W+S*Z+T*ca)*+g[q+172>>2];g[r+16>>2]=U*$+V*ba+W*T;g[r+20>>2]=X*$+Y*ba+Z*T;g[r+24>>2]=_*$+aa*ba+ca*T;g[r+28>>2]=0.0;J=U*$+V*ba+W*T;S=X*$+Y*ba+Z*T;T=_*$+aa*ba+ca*T}}while(0);do{if((h|0)!=0){if((c[h+180>>2]&2|0)==0){break}U=+g[h+4>>2];X=+g[h+20>>2];_=+g[h+36>>2];V=+g[h+8>>2];Y=+g[h+24>>2];aa=+g[h+40>>2];W=+g[h+12>>2];Z=+g[h+28>>2];ca=+g[h+44>>2];$=(U*N+X*M+_*L)*+g[h+164>>2];ba=(N*V+M*Y+L*aa)*+g[h+168>>2];L=(N*W+M*Z+L*ca)*+g[h+172>>2];g[r>>2]=U*$+V*ba+W*L;g[r+4>>2]=X*$+Y*ba+Z*L;g[r+8>>2]=_*$+aa*ba+ca*L;g[r+12>>2]=0.0;N=U*$+V*ba+W*L;M=X*$+Y*ba+Z*L;L=_*$+aa*ba+ca*L}}while(0);do{if((q|0)!=0){if((c[q+180>>2]&2|0)==0){break}U=+g[q+4>>2];X=+g[q+20>>2];_=+g[q+36>>2];V=+g[q+8>>2];Y=+g[q+24>>2];aa=+g[q+40>>2];W=+g[q+12>>2];Z=+g[q+28>>2];ca=+g[q+44>>2];$=(U*N+X*M+_*L)*+g[q+164>>2];ba=(N*V+M*Y+L*aa)*+g[q+168>>2];L=(N*W+M*Z+L*ca)*+g[q+172>>2];g[r>>2]=U*$+V*ba+W*L;g[r+4>>2]=X*$+Y*ba+Z*L;g[r+8>>2]=_*$+aa*ba+ca*L;g[r+12>>2]=0.0;N=U*$+V*ba+W*L;M=X*$+Y*ba+Z*L;L=_*$+aa*ba+ca*L}}while(0);if(+Q(+(J*J+S*S+T*T))>.001){Ql(b,r+16|0,m,n,t,u)}if(!(+Q(+(N*N+M*M+L*L))>.001)){break}Ql(b,r,m,n,t,u)}}while(0);do{if((c[f+64>>2]&32|0)==0){j=106}else{if((a[l+(s*184|0)+120>>0]|0)==0){j=106;break}Pl(b,l+(s*184|0)+156|0,m,n,t,u,r+64|0,r+48|0,1.0,+g[l+(s*184|0)+136>>2],+g[l+(s*184|0)+144>>2]);if((c[f+64>>2]&16|0)==0){break}Pl(b,l+(s*184|0)+172|0,m,n,t,u,r+64|0,r+48|0,1.0,+g[l+(s*184|0)+140>>2],+g[l+(s*184|0)+148>>2])}}while(0);do{if((j|0)==106){j=0;G=l+(s*184|0)+156|0;J=+g[y>>2];L=+g[z>>2];M=+g[x>>2];S=w-(C*w+A*B+D*E)*J;N=A-(C*w+A*B+D*E)*L;w=D-(C*w+A*B+D*E)*M;g[l+(s*184|0)+156>>2]=S;I=l+(s*184|0)+160|0;g[I>>2]=N;H=l+(s*184|0)+164|0;g[H>>2]=w;g[l+(s*184|0)+168>>2]=0.0;if((c[f+64>>2]&64|0)==0?S*S+N*N+w*w>1.1920928955078125e-7:0){ca=1.0/+Q(+(S*S+N*N+w*w));g[G>>2]=S*ca;g[I>>2]=ca*N;g[H>>2]=ca*w;Ol(h,G);Ol(q,G);Pl(b,G,m,n,t,u,r+64|0,r+48|0,1.0,0.0,0.0);if((c[f+64>>2]&16|0)==0){break}R=l+(s*184|0)+172|0;aa=+g[I>>2];Z=+g[x>>2];Y=+g[H>>2];_=+g[z>>2];ba=+g[y>>2];$=+g[G>>2];g[l+(s*184|0)+172>>2]=aa*Z-Y*_;g[l+(s*184|0)+184>>2]=0.0;ca=1.0/+Q(+((aa*Z-Y*_)*(aa*Z-Y*_)+(Y*ba-Z*$)*(Y*ba-Z*$)+(_*$-aa*ba)*(_*$-aa*ba)));g[R>>2]=(aa*Z-Y*_)*ca;g[l+(s*184|0)+176>>2]=(Y*ba-Z*$)*ca;g[l+(s*184|0)+180>>2]=(_*$-aa*ba)*ca;Ol(h,R);Ol(q,R);Pl(b,R,m,n,t,u,r+64|0,r+48|0,1.0,0.0,0.0);break}x=l+(s*184|0)+172|0;if(+P(+M)>.7071067690849304){ca=1.0/+Q(+(M*M+L*L));g[G>>2]=0.0;g[I>>2]=-(ca*M);g[H>>2]=ca*L;g[x>>2]=(M*M+L*L)*ca;g[l+(s*184|0)+176>>2]=-(J*ca*L);g[l+(s*184|0)+180>>2]=J*-(ca*M)}else{ca=1.0/+Q(+(J*J+L*L));g[G>>2]=-(L*ca);g[I>>2]=ca*J;g[H>>2]=0.0;g[x>>2]=-(M*ca*J);g[l+(s*184|0)+176>>2]=M*-(L*ca);g[l+(s*184|0)+180>>2]=(J*J+L*L)*ca}Ol(h,G);Ol(q,G);Pl(b,G,m,n,t,u,r+64|0,r+48|0,1.0,0.0,0.0);y=c[f+64>>2]|0;if((y&16|0)!=0){Ol(h,x);Ol(q,x);Pl(b,x,m,n,t,u,r+64|0,r+48|0,1.0,0.0,0.0);y=c[f+64>>2]|0}if((y&80|0)!=80){break}a[l+(s*184|0)+120>>0]=1}}while(0);u=c[b+16>>2]|0;y=c[u+(m*244|0)+240>>2]|0;x=c[u+(n*244|0)+240>>2]|0;t=c[v+(t*152|0)+140>>2]|0;v=c[b+76>>2]|0;z=c[f+64>>2]|0;do{if((z&4|0)==0){g[v+(t*152|0)+100>>2]=0.0}else{w=+g[l+(s*184|0)+128>>2]*+g[f+60>>2];g[v+(t*152|0)+100>>2]=w;if((y|0)!=0){aa=+g[y+344>>2];ca=w*aa*+g[v+(t*152|0)+20>>2]*+g[y+352>>2]*+g[u+(m*244|0)+116>>2];ba=w*aa*+g[v+(t*152|0)+24>>2]*+g[y+356>>2]*+g[u+(m*244|0)+120>>2];g[u+(m*244|0)+64>>2]=+g[u+(m*244|0)+112>>2]*w*aa*+g[v+(t*152|0)+16>>2]*+g[y+348>>2]+ +g[u+(m*244|0)+64>>2];g[u+(m*244|0)+68>>2]=ca+ +g[u+(m*244|0)+68>>2];g[u+(m*244|0)+72>>2]=ba+ +g[u+(m*244|0)+72>>2];ba=w*+g[u+(m*244|0)+100>>2]*+g[v+(t*152|0)+68>>2];ca=w*+g[u+(m*244|0)+104>>2]*+g[v+(t*152|0)+72>>2];g[u+(m*244|0)+80>>2]=w*+g[u+(m*244|0)+96>>2]*+g[v+(t*152|0)+64>>2]+ +g[u+(m*244|0)+80>>2];g[u+(m*244|0)+84>>2]=ba+ +g[u+(m*244|0)+84>>2];g[u+(m*244|0)+88>>2]=ca+ +g[u+(m*244|0)+88>>2]}if((x|0)==0){break}w=+g[x+344>>2];A=+g[v+(t*152|0)+100>>2];if((c[u+(n*244|0)+240>>2]|0)==0){break}ca=+g[v+(t*152|0)+88>>2];ba=+g[v+(t*152|0)+84>>2];aa=+g[v+(t*152|0)+80>>2];_=A*w*+g[v+(t*152|0)+52>>2]*+g[x+352>>2]*+g[u+(n*244|0)+116>>2];$=A*w*+g[v+(t*152|0)+56>>2]*+g[x+356>>2]*+g[u+(n*244|0)+120>>2];g[u+(n*244|0)+64>>2]=+g[u+(n*244|0)+112>>2]*A*w*+g[v+(t*152|0)+48>>2]*+g[x+348>>2]+ +g[u+(n*244|0)+64>>2];g[u+(n*244|0)+68>>2]=_+ +g[u+(n*244|0)+68>>2];g[u+(n*244|0)+72>>2]=$+ +g[u+(n*244|0)+72>>2];ba=ba*+g[u+(n*244|0)+100>>2]*-A;ca=ca*+g[u+(n*244|0)+104>>2]*-A;g[u+(n*244|0)+80>>2]=+g[u+(n*244|0)+80>>2]-aa*+g[u+(n*244|0)+96>>2]*-A;g[u+(n*244|0)+84>>2]=+g[u+(n*244|0)+84>>2]-ba;g[u+(n*244|0)+88>>2]=+g[u+(n*244|0)+88>>2]-ca}}while(0);do{if((z&16|0)!=0){if((z&4|0)==0){g[v+((t+1|0)*152|0)+100>>2]=0.0;break}w=+g[l+(s*184|0)+132>>2]*+g[f+60>>2];g[v+((t+1|0)*152|0)+100>>2]=w;do{if((y|0)!=0){A=+g[y+344>>2];if((c[u+(m*244|0)+240>>2]|0)==0){break}ca=w*A*+g[v+((t+1|0)*152|0)+20>>2]*+g[u+(m*244|0)+116>>2];ba=w*A*+g[v+((t+1|0)*152|0)+24>>2]*+g[u+(m*244|0)+120>>2];g[u+(m*244|0)+64>>2]=+g[u+(m*244|0)+112>>2]*w*A*+g[v+((t+1|0)*152|0)+16>>2]+ +g[u+(m*244|0)+64>>2];g[u+(m*244|0)+68>>2]=ca+ +g[u+(m*244|0)+68>>2];g[u+(m*244|0)+72>>2]=ba+ +g[u+(m*244|0)+72>>2];ba=w*+g[u+(m*244|0)+100>>2]*+g[v+((t+1|0)*152|0)+68>>2];ca=w*+g[u+(m*244|0)+104>>2]*+g[v+((t+1|0)*152|0)+72>>2];g[u+(m*244|0)+80>>2]=w*+g[u+(m*244|0)+96>>2]*+g[v+((t+1|0)*152|0)+64>>2]+ +g[u+(m*244|0)+80>>2];g[u+(m*244|0)+84>>2]=ba+ +g[u+(m*244|0)+84>>2];g[u+(m*244|0)+88>>2]=ca+ +g[u+(m*244|0)+88>>2]}}while(0);if((x|0)==0){break}A=+g[x+344>>2];w=+g[v+((t+1|0)*152|0)+100>>2];if((c[u+(n*244|0)+240>>2]|0)==0){break}ca=+g[v+((t+1|0)*152|0)+88>>2];ba=+g[v+((t+1|0)*152|0)+84>>2];aa=+g[v+((t+1|0)*152|0)+80>>2];_=w*A*+g[v+((t+1|0)*152|0)+52>>2]*+g[u+(n*244|0)+116>>2];$=w*A*+g[v+((t+1|0)*152|0)+56>>2]*+g[u+(n*244|0)+120>>2];g[u+(n*244|0)+64>>2]=+g[u+(n*244|0)+112>>2]*w*A*+g[v+((t+1|0)*152|0)+48>>2]+ +g[u+(n*244|0)+64>>2];g[u+(n*244|0)+68>>2]=_+ +g[u+(n*244|0)+68>>2];g[u+(n*244|0)+72>>2]=$+ +g[u+(n*244|0)+72>>2];ba=ba*+g[u+(n*244|0)+100>>2]*-w;ca=ca*+g[u+(n*244|0)+104>>2]*-w;g[u+(n*244|0)+80>>2]=+g[u+(n*244|0)+80>>2]-aa*+g[u+(n*244|0)+96>>2]*-w;g[u+(n*244|0)+84>>2]=+g[u+(n*244|0)+84>>2]-ba;g[u+(n*244|0)+88>>2]=+g[u+(n*244|0)+88>>2]-ca}}while(0);t=c[l+748>>2]|0}s=s+1|0}while((s|0)<(t|0))}}}while(0);k=k+1|0}while((k|0)!=(e|0));i=r;return}function Ul(b,d,e,f,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0;m=i;i=i+320|0;c[b+188>>2]=-1;vx(3384);c[b+184>>2]=0;if((e|0)>0){p=0;do{c[(c[d+(p<<2)>>2]|0)+212>>2]=-1;p=p+1|0}while((p|0)!=(e|0))}q=c[b+12>>2]|0;if((q|0)<(e+1|0)){if((e+1|0)!=0?(c[4546]=(c[4546]|0)+1,o=Zx(((e+1|0)*244|3)+16|0)|0,(o|0)!=0):0){c[(o+19&-16)+ -4>>2]=o;o=o+19&-16}else{o=0}p=c[b+8>>2]|0;if((p|0)>0){q=0;do{x=o+(q*244|0)|0;Y=c[b+16>>2]|0;w=Y+(q*244|0)|0;c[x+0>>2]=c[w+0>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];c[x+12>>2]=c[w+12>>2];x=o+(q*244|0)+16|0;w=Y+(q*244|0)+16|0;c[x+0>>2]=c[w+0>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];c[x+12>>2]=c[w+12>>2];x=o+(q*244|0)+32|0;w=Y+(q*244|0)+32|0;c[x+0>>2]=c[w+0>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];c[x+12>>2]=c[w+12>>2];x=o+(q*244|0)+48|0;w=Y+(q*244|0)+48|0;c[x+0>>2]=c[w+0>>2];c[x+4>>2]=c[w+4>>2];c[x+8>>2]=c[w+8>>2];c[x+12>>2]=c[w+12>>2];ey(o+(q*244|0)+64|0,Y+(q*244|0)+64|0,180)|0;q=q+1|0}while((q|0)!=(p|0))}p=c[b+16>>2]|0;if((p|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[p+ -4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=o;c[b+12>>2]=e+1;q=e+1|0;o=b+8|0}else{o=b+8|0}by(m+56|0,0,244)|0;p=c[o>>2]|0;if((p|0)<0){if((q|0)<0){q=c[b+16>>2]|0;if((q|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[q+ -4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=0;c[b+12>>2]=0}do{Y=c[b+16>>2]|0;x=Y+(p*244|0)|0;c[x+0>>2]=c[m+56>>2];c[x+4>>2]=c[m+60>>2];c[x+8>>2]=c[m+64>>2];c[x+12>>2]=c[m+68>>2];x=Y+(p*244|0)+16|0;c[x+0>>2]=c[m+72>>2];c[x+4>>2]=c[m+76>>2];c[x+8>>2]=c[m+80>>2];c[x+12>>2]=c[m+84>>2];x=Y+(p*244|0)+32|0;c[x+0>>2]=c[m+88>>2];c[x+4>>2]=c[m+92>>2];c[x+8>>2]=c[m+96>>2];c[x+12>>2]=c[m+100>>2];x=Y+(p*244|0)+48|0;c[x+0>>2]=c[m+104>>2];c[x+4>>2]=c[m+108>>2];c[x+8>>2]=c[m+112>>2];c[x+12>>2]=c[m+116>>2];ey(Y+(p*244|0)+64|0,m+120|0,180)|0;p=p+1|0}while((p|0)!=0)}c[o>>2]=0;if((e|0)>0){o=0;do{p=d+(o<<2)|0;q=Rl(b,c[p>>2]|0,+g[l+12>>2])|0;p=c[p>>2]|0;if((!((p|0)==0?1:(c[p+236>>2]&2|0)==0)?+g[p+344>>2]!=0.0:0)?(n=c[b+16>>2]|0,(c[p+504>>2]&2|0)!=0):0){E=+g[l+76>>2];S=1.0/+g[p+396>>2];V=1.0/+g[p+400>>2];F=1.0/+g[p+404>>2];M=+g[p+4>>2];N=+g[p+8>>2];O=+g[p+12>>2];R=+g[p+20>>2];U=+g[p+24>>2];X=+g[p+28>>2];T=+g[p+36>>2];W=+g[p+40>>2];C=+g[p+44>>2];B=+g[p+328>>2];z=+g[p+332>>2];D=+g[p+336>>2];y=(M*S*M+N*V*N+O*F*O)*B+(S*M*R+V*N*U+F*O*X)*z+(S*M*T+V*N*W+F*O*C)*D;A=(M*S*R+N*V*U+O*F*X)*B+(R*S*R+U*V*U+X*F*X)*z+(S*R*T+V*U*W+F*X*C)*D;C=D*(T*S*T+W*V*W+C*F*C)+(B*(M*S*T+N*V*W+O*F*C)+z*(R*S*T+U*V*W+X*F*C));F=(z*C-D*A)*(z*C-D*A)+(D*y-B*C)*(D*y-B*C)+(B*A-z*y)*(B*A-z*y);if(F>E*E){X=1.0/+Q(+F)*E;E=(z*C-D*A)*X;C=X*(D*y-B*C);y=X*(B*A-z*y)}else{E=z*C-D*A;C=D*y-B*C;y=B*A-z*y}V=+g[l+12>>2];W=(E*+g[p+268>>2]+C*+g[p+284>>2]+y*+g[p+300>>2])*V;X=V*(E*+g[p+272>>2]+C*+g[p+288>>2]+y*+g[p+304>>2]);g[n+(q*244|0)+224>>2]=+g[n+(q*244|0)+224>>2]-(E*+g[p+264>>2]+C*+g[p+280>>2]+y*+g[p+296>>2])*V;g[n+(q*244|0)+228>>2]=+g[n+(q*244|0)+228>>2]-W;g[n+(q*244|0)+232>>2]=+g[n+(q*244|0)+232>>2]-X}o=o+1|0}while((o|0)<(e|0))}if((k|0)>0){e=0;do{Y=c[j+(e<<2)>>2]|0;Nb[c[(c[Y>>2]|0)+8>>2]&255](Y);g[Y+36>>2]=0.0;e=e+1|0}while((e|0)<(k|0))}n=c[b+168>>2]|0;if((n|0)<(k|0)?(c[b+172>>2]|0)<(k|0):0){if((k|0)==0){e=0}else{c[4546]=(c[4546]|0)+1;e=Zx((k<<3|3)+16|0)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}n=c[b+168>>2]|0}if((n|0)>0){d=0;do{o=e+(d<<3)|0;if((o|0)!=0){x=(c[b+176>>2]|0)+(d<<3)|0;Y=c[x+4>>2]|0;c[o>>2]=c[x>>2];c[o+4>>2]=Y}d=d+1|0}while((d|0)!=(n|0))}n=c[b+176>>2]|0;if((n|0)!=0){if((a[b+180>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[n+ -4>>2]|0)}c[b+176>>2]=0}a[b+180>>0]=1;c[b+176>>2]=e;c[b+172>>2]=k}c[b+168>>2]=k;if((k|0)>0){e=0;n=0;do{d=c[b+176>>2]|0;o=d+(e<<3)|0;p=j+(e<<2)|0;q=c[p>>2]|0;r=c[q+44>>2]|0;if((r|0)!=0){q=r+0|0;r=q+64|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(r|0));q=c[p>>2]|0}if((a[q+20>>0]|0)==0){c[o>>2]=0;c[d+(e<<3)+4>>2]=0;d=0}else{Pb[c[(c[q>>2]|0)+16>>2]&127](q,o);d=c[o>>2]|0}n=d+n|0;e=e+1|0}while((e|0)<(k|0))}else{n=0}e=c[b+48>>2]|0;if((e|0)<(n|0)?(c[b+52>>2]|0)<(n|0):0){if((n|0)==0){d=0}else{c[4546]=(c[4546]|0)+1;e=Zx((n*152|3)+16|0)|0;if((e|0)==0){d=0}else{c[(e+19&-16)+ -4>>2]=e;d=e+19&-16}e=c[b+48>>2]|0}if((e|0)>0){o=0;do{ey(d+(o*152|0)|0,(c[b+56>>2]|0)+(o*152|0)|0,152)|0;o=o+1|0}while((o|0)!=(e|0))}e=c[b+56>>2]|0;if((e|0)!=0){if((a[b+60>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=d;c[b+52>>2]=n}c[b+48>>2]=n;if((k|0)>0){o=c[b+176>>2]|0;e=0;n=0;while(1){d=o+(n<<3)|0;if((c[d>>2]|0)==0){d=0}else{v=c[b+56>>2]|0;u=j+(n<<2)|0;t=c[u>>2]|0;o=c[t+28>>2]|0;p=c[t+32>>2]|0;s=Rl(b,o,+g[l+12>>2])|0;r=Rl(b,p,+g[l+12>>2])|0;q=c[b+16>>2]|0;x=c[t+24>>2]|0;if((x|0)<=0){x=c[l+20>>2]|0}if((x|0)>(c[b+184>>2]|0)){c[b+184>>2]=x}if((c[d>>2]|0)>0){w=0;do{Y=w+e|0;by(v+(Y*152|0)|0,0,152)|0;g[v+(Y*152|0)+120>>2]=-3.4028234663852886e+38;g[v+(Y*152|0)+124>>2]=3.4028234663852886e+38;g[v+(Y*152|0)+100>>2]=0.0;g[v+(Y*152|0)+96>>2]=0.0;c[v+(Y*152|0)+144>>2]=s;c[v+(Y*152|0)+148>>2]=r;c[v+(Y*152|0)+136>>2]=x;w=w+1|0}while((w|0)<(c[d>>2]|0))}c[q+(s*244|0)+64>>2]=0;c[q+(s*244|0)+68>>2]=0;c[q+(s*244|0)+72>>2]=0;c[q+(s*244|0)+76>>2]=0;c[q+(s*244|0)+80>>2]=0;c[q+(s*244|0)+84>>2]=0;c[q+(s*244|0)+88>>2]=0;c[q+(s*244|0)+92>>2]=0;c[q+(s*244|0)+144>>2]=0;c[q+(s*244|0)+148>>2]=0;c[q+(s*244|0)+152>>2]=0;c[q+(s*244|0)+156>>2]=0;c[q+(s*244|0)+160>>2]=0;c[q+(s*244|0)+164>>2]=0;c[q+(s*244|0)+168>>2]=0;c[q+(s*244|0)+172>>2]=0;c[q+(r*244|0)+64>>2]=0;c[q+(r*244|0)+68>>2]=0;c[q+(r*244|0)+72>>2]=0;c[q+(r*244|0)+76>>2]=0;c[q+(r*244|0)+80>>2]=0;c[q+(r*244|0)+84>>2]=0;c[q+(r*244|0)+88>>2]=0;c[q+(r*244|0)+92>>2]=0;c[q+(r*244|0)+144>>2]=0;c[q+(r*244|0)+148>>2]=0;c[q+(r*244|0)+152>>2]=0;c[q+(r*244|0)+156>>2]=0;c[q+(r*244|0)+160>>2]=0;c[q+(r*244|0)+164>>2]=0;c[q+(r*244|0)+168>>2]=0;c[q+(r*244|0)+172>>2]=0;g[m>>2]=1.0/+g[l+12>>2];g[m+4>>2]=+g[l+32>>2];c[m+8>>2]=v+(e*152|0)+16;c[m+12>>2]=v+(e*152|0);c[m+16>>2]=v+(e*152|0)+48;c[m+20>>2]=v+(e*152|0)+32;c[m+24>>2]=38;c[m+28>>2]=v+(e*152|0)+112;Y=v+(e*152|0)+116|0;g[Y>>2]=+g[l+40>>2];g[m+52>>2]=+g[l+4>>2];c[m+32>>2]=Y;c[m+36>>2]=v+(e*152|0)+120;c[m+40>>2]=v+(e*152|0)+124;c[m+48>>2]=c[l+20>>2];Y=c[u>>2]|0;Pb[c[(c[Y>>2]|0)+20>>2]&127](Y,m);if((c[d>>2]|0)>0){w=0;do{x=w+e|0;Y=(c[u>>2]|0)+16|0;y=+g[Y>>2];if(+g[v+(x*152|0)+124>>2]>=y){g[v+(x*152|0)+124>>2]=y;y=+g[Y>>2]}y=-y;if(+g[v+(x*152|0)+120>>2]<=y){g[v+(x*152|0)+120>>2]=y}c[v+(x*152|0)+132>>2]=t;Y=c[t+28>>2]|0;W=+g[v+(x*152|0)>>2];I=+g[v+(x*152|0)+4>>2];J=+g[v+(x*152|0)+8>>2];y=(W*+g[Y+280>>2]+I*+g[Y+284>>2]+J*+g[Y+288>>2])*+g[Y+548>>2];H=(W*+g[Y+296>>2]+I*+g[Y+300>>2]+J*+g[Y+304>>2])*+g[Y+552>>2];g[v+(x*152|0)+64>>2]=(+g[Y+264>>2]*W+ +g[Y+268>>2]*I+ +g[Y+272>>2]*J)*+g[Y+544>>2];g[v+(x*152|0)+68>>2]=y;g[v+(x*152|0)+72>>2]=H;g[v+(x*152|0)+76>>2]=0.0;Y=c[t+32>>2]|0;H=+g[v+(x*152|0)+32>>2];y=+g[v+(x*152|0)+36>>2];J=+g[v+(x*152|0)+40>>2];I=(H*+g[Y+280>>2]+y*+g[Y+284>>2]+J*+g[Y+288>>2])*+g[Y+548>>2];W=(H*+g[Y+296>>2]+y*+g[Y+300>>2]+J*+g[Y+304>>2])*+g[Y+552>>2];g[v+(x*152|0)+80>>2]=(+g[Y+264>>2]*H+ +g[Y+268>>2]*y+ +g[Y+272>>2]*J)*+g[Y+544>>2];g[v+(x*152|0)+84>>2]=I;g[v+(x*152|0)+88>>2]=W;g[v+(x*152|0)+92>>2]=0.0;W=+g[o+344>>2];I=+g[v+(x*152|0)+16>>2];H=+g[v+(x*152|0)+20>>2];G=+g[v+(x*152|0)+24>>2];F=+g[v+(x*152|0)>>2];E=+g[v+(x*152|0)+4>>2];D=+g[v+(x*152|0)+8>>2];X=+g[p+344>>2];C=+g[v+(x*152|0)+48>>2];B=+g[v+(x*152|0)+52>>2];A=+g[v+(x*152|0)+56>>2];z=+g[v+(x*152|0)+32>>2];J=I*W*I+H*W*H+G*W*G+(F*(+g[o+264>>2]*F+ +g[o+268>>2]*E+ +g[o+272>>2]*D)+E*(F*+g[o+280>>2]+E*+g[o+284>>2]+D*+g[o+288>>2])+D*(F*+g[o+296>>2]+E*+g[o+300>>2]+D*+g[o+304>>2]))+(C*X*C+B*X*B+A*X*A)+(z*(+g[p+264>>2]*z+ +g[p+268>>2]*y+ +g[p+272>>2]*J)+y*(z*+g[p+280>>2]+y*+g[p+284>>2]+J*+g[p+288>>2])+J*(z*+g[p+296>>2]+y*+g[p+300>>2]+J*+g[p+304>>2]));if(+P(+J)>1.1920928955078125e-7){T=1.0/J}else{T=0.0}g[v+(x*152|0)+108>>2]=T;if((c[q+(s*244|0)+240>>2]|0)==0){X=0.0;K=0.0;L=0.0;M=0.0;N=0.0;O=0.0}else{X=+g[q+(s*244|0)+208>>2];K=+g[q+(s*244|0)+212>>2];L=+g[q+(s*244|0)+216>>2];M=+g[q+(s*244|0)+224>>2];N=+g[q+(s*244|0)+228>>2];O=+g[q+(s*244|0)+232>>2]}if((c[q+(r*244|0)+240>>2]|0)==0){W=0.0;V=0.0;U=0.0;J=0.0;S=0.0;R=0.0}else{W=+g[q+(r*244|0)+208>>2];V=+g[q+(r*244|0)+212>>2];U=+g[q+(r*244|0)+216>>2];J=+g[q+(r*244|0)+224>>2];S=+g[q+(r*244|0)+228>>2];R=+g[q+(r*244|0)+232>>2]}g[v+(x*152|0)+112>>2]=+g[v+(x*152|0)+112>>2]*T+T*(0.0- +g[m+52>>2]*((X+ +g[o+312>>2])*I+(K+ +g[o+316>>2])*H+(L+ +g[o+320>>2])*G+((M+ +g[o+328>>2])*F+(N+ +g[o+332>>2])*E+(O+ +g[o+336>>2])*D)+((W+ +g[p+312>>2])*C+(V+ +g[p+316>>2])*B+(U+ +g[p+320>>2])*A+((J+ +g[p+328>>2])*z+(S+ +g[p+332>>2])*y+(R+ +g[p+336>>2])*+g[v+(x*152|0)+40>>2]))));g[v+(x*152|0)+100>>2]=0.0;w=w+1|0}while((w|0)<(c[d>>2]|0))}o=c[b+176>>2]|0;d=c[o+(n<<3)>>2]|0}n=n+1|0;if((n|0)>=(k|0)){break}else{e=d+e|0}}}wc[c[(c[b>>2]|0)+28>>2]&63](b,f,h,l);f=c[b+48>>2]|0;j=c[b+28>>2]|0;k=c[b+68>>2]|0;e=c[b+128>>2]|0;if((e|0)<(f|0)?(c[b+132>>2]|0)<(f|0):0){if((f|0)==0){h=0}else{c[4546]=(c[4546]|0)+1;h=Zx((f<<2|3)+16|0)|0;if((h|0)==0){h=0}else{c[(h+19&-16)+ -4>>2]=h;h=h+19&-16}e=c[b+128>>2]|0}if((e|0)>0){n=0;do{d=h+(n<<2)|0;if((d|0)!=0){c[d>>2]=c[(c[b+136>>2]|0)+(n<<2)>>2]}n=n+1|0}while((n|0)!=(e|0))}e=c[b+136>>2]|0;if((e|0)!=0){if((a[b+140>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+136>>2]=0}a[b+140>>0]=1;c[b+136>>2]=h;c[b+132>>2]=f}c[b+128>>2]=f;if((c[l+64>>2]&16|0)==0){h=c[b+108>>2]|0;if((h|0)<(j|0)?(c[b+112>>2]|0)<(j|0):0){if((j|0)==0){l=0}else{c[4546]=(c[4546]|0)+1;l=Zx((j<<2|3)+16|0)|0;if((l|0)==0){l=0}else{c[(l+19&-16)+ -4>>2]=l;l=l+19&-16}h=c[b+108>>2]|0}if((h|0)>0){n=0;do{e=l+(n<<2)|0;if((e|0)!=0){c[e>>2]=c[(c[b+116>>2]|0)+(n<<2)>>2]}n=n+1|0}while((n|0)!=(h|0))}h=c[b+116>>2]|0;if((h|0)!=0){if((a[b+120>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=l;c[b+112>>2]=j}c[b+108>>2]=j}else{l=c[b+108>>2]|0;if((l|0)<(j<<1|0)?(c[b+112>>2]|0)<(j<<1|0):0){if((j|0)==0){h=0}else{c[4546]=(c[4546]|0)+1;l=Zx((j<<3|3)+16|0)|0;if((l|0)==0){h=0}else{c[(l+19&-16)+ -4>>2]=l;h=l+19&-16}l=c[b+108>>2]|0}if((l|0)>0){n=0;do{e=h+(n<<2)|0;if((e|0)!=0){c[e>>2]=c[(c[b+116>>2]|0)+(n<<2)>>2]}n=n+1|0}while((n|0)!=(l|0))}l=c[b+116>>2]|0;if((l|0)!=0){if((a[b+120>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0)}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=h;c[b+112>>2]=j<<1}c[b+108>>2]=j<<1}l=c[b+148>>2]|0;if((l|0)<(k|0)?(c[b+152>>2]|0)<(k|0):0){if((k|0)==0){h=0}else{c[4546]=(c[4546]|0)+1;l=Zx((k<<2|3)+16|0)|0;if((l|0)==0){h=0}else{c[(l+19&-16)+ -4>>2]=l;h=l+19&-16}l=c[b+148>>2]|0}if((l|0)>0){n=0;do{e=h+(n<<2)|0;if((e|0)!=0){c[e>>2]=c[(c[b+156>>2]|0)+(n<<2)>>2]}n=n+1|0}while((n|0)!=(l|0))}l=c[b+156>>2]|0;if((l|0)!=0){if((a[b+160>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0)}c[b+156>>2]=0}a[b+160>>0]=1;c[b+156>>2]=h;c[b+152>>2]=k}c[b+148>>2]=k;if((f|0)>0){l=c[b+136>>2]|0;h=0;do{c[l+(h<<2)>>2]=h;h=h+1|0}while((h|0)!=(f|0))}if((j|0)>0){l=c[b+116>>2]|0;f=0;do{c[l+(f<<2)>>2]=f;f=f+1|0}while((f|0)!=(j|0))}if((k|0)>0){b=c[b+156>>2]|0;l=0;do{c[b+(l<<2)>>2]=l;l=l+1|0}while((l|0)!=(k|0))}b=c[4564]|0;Y=(c[b+16>>2]|0)+ -1|0;c[b+16>>2]=Y;if((Y|0)!=0){i=m;return 0.0}do{if((c[b+4>>2]|0)!=0){Gb(m+304|0,0)|0;Y=c[4550]|0;g[b+8>>2]=+(((c[m+308>>2]|0)-(c[Y+4>>2]|0)+(((c[m+304>>2]|0)-(c[Y>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3+ +g[b+8>>2];if((c[b+16>>2]|0)==0){b=c[4564]|0;break}else{i=m;return 0.0}}}while(0);c[4564]=c[b+20>>2];i=m;return 0.0}function Vl(b,d,e,f,h,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0;j=i;n=c[b+48>>2]|0;e=c[b+28>>2]|0;h=c[b+68>>2]|0;if((c[m+64>>2]&1|0)!=0){if((n|0)>0){f=c[b+136>>2]|0;q=c[b+192>>2]|0;r=0;do{s=f+(r<<2)|0;t=c[s>>2]|0;r=r+1|0;q=(aa(q,1664525)|0)+1013904223|0;if(r>>>0<65537){u=q>>>16^q;if(r>>>0<257){if(r>>>0<17){u=(u>>>8^u)>>>4^(u>>>8^u);if(r>>>0<5){if(r>>>0<3){u=(u>>>2^u)>>>1^(u>>>2^u)}else{u=u>>>2^u}}}else{u=u>>>8^u}}}else{u=q}u=f+(((u>>>0)%(r>>>0)|0)<<2)|0;c[s>>2]=c[u>>2];c[u>>2]=t}while((r|0)!=(n|0));c[b+192>>2]=q}if((c[m+20>>2]|0)>(d|0)){if((e|0)>0){s=c[b+116>>2]|0;r=c[b+192>>2]|0;q=0;do{f=s+(q<<2)|0;n=c[f>>2]|0;q=q+1|0;r=(aa(r,1664525)|0)+1013904223|0;if(q>>>0<65537){t=r>>>16^r;if(q>>>0<257){if(q>>>0<17){t=(t>>>8^t)>>>4^(t>>>8^t);if(q>>>0<5){if(q>>>0<3){t=(t>>>2^t)>>>1^(t>>>2^t)}else{t=t>>>2^t}}}else{t=t>>>8^t}}}else{t=r}u=s+(((t>>>0)%(q>>>0)|0)<<2)|0;c[f>>2]=c[u>>2];c[u>>2]=n}while((q|0)!=(e|0));c[b+192>>2]=r}if((h|0)>0){r=c[b+156>>2]|0;q=c[b+192>>2]|0;f=0;do{n=r+(f<<2)|0;e=c[n>>2]|0;f=f+1|0;q=(aa(q,1664525)|0)+1013904223|0;if(f>>>0<65537){s=q>>>16^q;if(f>>>0<257){if(f>>>0<17){s=(s>>>8^s)>>>4^(s>>>8^s);if(f>>>0<5){if(f>>>0<3){s=(s>>>2^s)>>>1^(s>>>2^s)}else{s=s>>>2^s}}}else{s=s>>>8^s}}}else{s=q}u=r+(((s>>>0)%(f>>>0)|0)<<2)|0;c[n>>2]=c[u>>2];c[u>>2]=e}while((f|0)!=(h|0));c[b+192>>2]=q}}}f=c[b+48>>2]|0;if((c[m+64>>2]&256|0)==0){if((f|0)>0){o=0;do{h=c[(c[b+136>>2]|0)+(o<<2)>>2]|0;p=c[b+56>>2]|0;if((c[p+(h*152|0)+136>>2]|0)>(d|0)){f=c[b+16>>2]|0;Kl(f+((c[p+(h*152|0)+144>>2]|0)*244|0)|0,f+((c[p+(h*152|0)+148>>2]|0)*244|0)|0,p+(h*152|0)|0);f=c[b+48>>2]|0}o=o+1|0}while((o|0)<(f|0))}if((c[m+20>>2]|0)<=(d|0)){i=j;return 0.0}if((l|0)>0){p=0;do{o=k+(p<<2)|0;d=c[o>>2]|0;if((a[d+20>>0]|0)!=0){s=Rl(b,c[d+28>>2]|0,+g[m+12>>2])|0;u=Rl(b,c[(c[o>>2]|0)+32>>2]|0,+g[m+12>>2])|0;t=c[b+16>>2]|0;r=c[o>>2]|0;rc[c[(c[r>>2]|0)+24>>2]&15](r,t+(s*244|0)|0,t+(u*244|0)|0,+g[m+12>>2])}p=p+1|0}while((p|0)!=(l|0))}m=c[b+28>>2]|0;if((m|0)>0){l=0;do{u=c[(c[b+116>>2]|0)+(l<<2)>>2]|0;t=c[b+36>>2]|0;s=c[b+16>>2]|0;Ll(s+((c[t+(u*152|0)+144>>2]|0)*244|0)|0,s+((c[t+(u*152|0)+148>>2]|0)*244|0)|0,t+(u*152|0)|0);l=l+1|0}while((l|0)!=(m|0))}m=c[b+68>>2]|0;if((m|0)>0){l=0;do{k=c[(c[b+156>>2]|0)+(l<<2)>>2]|0;o=c[b+76>>2]|0;v=+g[(c[b+36>>2]|0)+((c[o+(k*152|0)+140>>2]|0)*152|0)+100>>2];if(v>0.0){v=v*+g[o+(k*152|0)+104>>2];g[o+(k*152|0)+120>>2]=-v;g[o+(k*152|0)+124>>2]=v;u=c[b+16>>2]|0;Kl(u+((c[o+(k*152|0)+144>>2]|0)*244|0)|0,u+((c[o+(k*152|0)+148>>2]|0)*244|0)|0,o+(k*152|0)|0)}l=l+1|0}while((l|0)!=(m|0))}m=c[b+88>>2]|0;if((m|0)<=0){i=j;return 0.0}l=0;do{k=c[b+96>>2]|0;v=+g[(c[b+36>>2]|0)+((c[k+(l*152|0)+140>>2]|0)*152|0)+100>>2];if(v>0.0){w=+g[k+(l*152|0)+104>>2];v=v*w>w?w:v*w;g[k+(l*152|0)+120>>2]=-v;g[k+(l*152|0)+124>>2]=v;u=c[b+16>>2]|0;Kl(u+((c[k+(l*152|0)+144>>2]|0)*244|0)|0,u+((c[k+(l*152|0)+148>>2]|0)*244|0)|0,k+(l*152|0)|0)}l=l+1|0}while((l|0)!=(m|0));i=j;return 0.0}if((f|0)>0){h=0;do{n=c[(c[b+136>>2]|0)+(h<<2)>>2]|0;e=c[b+56>>2]|0;if((c[e+(n*152|0)+136>>2]|0)>(d|0)){f=c[b+16>>2]|0;Kl(f+((c[e+(n*152|0)+144>>2]|0)*244|0)|0,f+((c[e+(n*152|0)+148>>2]|0)*244|0)|0,e+(n*152|0)|0);f=c[b+48>>2]|0}h=h+1|0}while((h|0)<(f|0))}if((c[m+20>>2]|0)<=(d|0)){i=j;return 0.0}if((l|0)>0){d=0;do{e=k+(d<<2)|0;h=c[e>>2]|0;if((a[h+20>>0]|0)!=0){s=Rl(b,c[h+28>>2]|0,+g[m+12>>2])|0;u=Rl(b,c[(c[e>>2]|0)+32>>2]|0,+g[m+12>>2])|0;t=c[b+16>>2]|0;r=c[e>>2]|0;rc[c[(c[r>>2]|0)+24>>2]&15](r,t+(s*244|0)|0,t+(u*244|0)|0,+g[m+12>>2])}d=d+1|0}while((d|0)!=(l|0))}n=c[m+64>>2]|0;l=c[b+28>>2]|0;if((n&512|0)!=0){if((l|0)<=0){i=j;return 0.0}e=0;do{h=c[(c[b+116>>2]|0)+(e<<2)>>2]|0;d=c[b+36>>2]|0;k=c[b+16>>2]|0;Ll(k+((c[d+(h*152|0)+144>>2]|0)*244|0)|0,k+((c[d+(h*152|0)+148>>2]|0)*244|0)|0,d+(h*152|0)|0);v=+g[d+(h*152|0)+100>>2];h=aa(e,(n>>>4&1)+1|0)|0;d=c[(c[b+156>>2]|0)+(h<<2)>>2]|0;k=c[b+76>>2]|0;if(v>0.0){w=v*+g[k+(d*152|0)+104>>2];g[k+(d*152|0)+120>>2]=-w;g[k+(d*152|0)+124>>2]=w;u=c[b+16>>2]|0;Kl(u+((c[k+(d*152|0)+144>>2]|0)*244|0)|0,u+((c[k+(d*152|0)+148>>2]|0)*244|0)|0,k+(d*152|0)|0)}if((c[m+64>>2]&16|0)!=0?(o=c[(c[b+156>>2]|0)+(h+1<<2)>>2]|0,p=c[b+76>>2]|0,v>0.0):0){w=v*+g[p+(o*152|0)+104>>2];g[p+(o*152|0)+120>>2]=-w;g[p+(o*152|0)+124>>2]=w;u=c[b+16>>2]|0;Kl(u+((c[p+(o*152|0)+144>>2]|0)*244|0)|0,u+((c[p+(o*152|0)+148>>2]|0)*244|0)|0,p+(o*152|0)|0)}e=e+1|0}while((e|0)!=(l|0));i=j;return 0.0}if((l|0)>0){m=0;do{u=c[(c[b+116>>2]|0)+(m<<2)>>2]|0;t=c[b+36>>2]|0;s=c[b+16>>2]|0;Ll(s+((c[t+(u*152|0)+144>>2]|0)*244|0)|0,s+((c[t+(u*152|0)+148>>2]|0)*244|0)|0,t+(u*152|0)|0);m=m+1|0}while((m|0)!=(l|0))}m=c[b+68>>2]|0;if((m|0)>0){l=0;do{k=c[(c[b+156>>2]|0)+(l<<2)>>2]|0;o=c[b+76>>2]|0;v=+g[(c[b+36>>2]|0)+((c[o+(k*152|0)+140>>2]|0)*152|0)+100>>2];if(v>0.0){w=v*+g[o+(k*152|0)+104>>2];g[o+(k*152|0)+120>>2]=-w;g[o+(k*152|0)+124>>2]=w;u=c[b+16>>2]|0;Kl(u+((c[o+(k*152|0)+144>>2]|0)*244|0)|0,u+((c[o+(k*152|0)+148>>2]|0)*244|0)|0,o+(k*152|0)|0)}l=l+1|0}while((l|0)!=(m|0))}k=c[b+88>>2]|0;if((k|0)<=0){i=j;return 0.0}l=0;do{m=c[b+96>>2]|0;v=+g[(c[b+36>>2]|0)+((c[m+(l*152|0)+140>>2]|0)*152|0)+100>>2];if(v>0.0){w=+g[m+(l*152|0)+104>>2];w=v*w>w?w:v*w;g[m+(l*152|0)+120>>2]=-w;g[m+(l*152|0)+124>>2]=w;u=c[b+16>>2]|0;Kl(u+((c[m+(l*152|0)+144>>2]|0)*244|0)|0,u+((c[m+(l*152|0)+148>>2]|0)*244|0)|0,m+(l*152|0)|0)}l=l+1|0}while((l|0)!=(k|0));i=j;return 0.0}function Wl(a,b,d,e,f,g,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;d=i;if((c[j+44>>2]|0)==0){i=d;return}h=c[j+20>>2]|0;if((c[j+64>>2]&256|0)==0){if((h|0)<=0){i=d;return}f=1;while(1){g=c[a+28>>2]|0;if((g|0)>0){h=0;do{e=c[(c[a+116>>2]|0)+(h<<2)>>2]|0;b=c[a+36>>2]|0;k=c[a+16>>2]|0;Ml(k+((c[b+(e*152|0)+144>>2]|0)*244|0)|0,k+((c[b+(e*152|0)+148>>2]|0)*244|0)|0,b+(e*152|0)|0);h=h+1|0}while((h|0)!=(g|0));h=c[j+20>>2]|0}if((f|0)>=(h|0)){break}f=f+1|0}i=d;return}else{if((h|0)<=0){i=d;return}f=1;while(1){g=c[a+28>>2]|0;if((g|0)>0){h=0;do{e=c[(c[a+116>>2]|0)+(h<<2)>>2]|0;b=c[a+36>>2]|0;k=c[a+16>>2]|0;Ml(k+((c[b+(e*152|0)+144>>2]|0)*244|0)|0,k+((c[b+(e*152|0)+148>>2]|0)*244|0)|0,b+(e*152|0)|0);h=h+1|0}while((h|0)!=(g|0));h=c[j+20>>2]|0}if((f|0)>=(h|0)){break}f=f+1|0}i=d;return}}function Xl(a,b,d,e,f,h,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;m=i;i=i+16|0;vx(3416);fc[c[(c[a>>2]|0)+32>>2]&1](a,b,d,e,f,h,j,k,l);o=c[a+184>>2]|0;n=c[k+20>>2]|0;n=(o|0)>(n|0)?o:n;if((n|0)>0){o=0;do{+jc[c[(c[a>>2]|0)+40>>2]&3](a,o,b,d,e,f,h,j,k,l);o=o+1|0}while((o|0)<(n|0))}h=c[4564]|0;o=(c[h+16>>2]|0)+ -1|0;c[h+16>>2]=o;if((o|0)!=0){i=m;return 0.0}do{if((c[h+4>>2]|0)!=0){Gb(m|0,0)|0;o=c[4550]|0;g[h+8>>2]=+(((c[m+4>>2]|0)-(c[o+4>>2]|0)+(((c[m>>2]|0)-(c[o>>2]|0)|0)*1e6|0)-(c[h+12>>2]|0)|0)>>>0)/1.0e3+ +g[h+8>>2];if((c[h+16>>2]|0)==0){h=c[4564]|0;break}else{i=m;return 0.0}}}while(0);c[4564]=c[h+20>>2];i=m;return 0.0}function Yl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0;d=i;i=i+80|0;j=c[b+28>>2]|0;l=c[f+64>>2]|0;if((l&4|0)!=0&(j|0)>0){e=c[b+36>>2]|0;k=c[b+76>>2]|0;if((l&16|0)==0){l=0;do{q=c[e+(l*152|0)+132>>2]|0;g[q+120>>2]=+g[e+(l*152|0)+100>>2];g[q+124>>2]=+g[k+((c[e+(l*152|0)+140>>2]|0)*152|0)+100>>2];l=l+1|0}while((l|0)!=(j|0))}else{l=0;do{q=c[e+(l*152|0)+132>>2]|0;g[q+120>>2]=+g[e+(l*152|0)+100>>2];p=c[e+(l*152|0)+140>>2]|0;g[q+124>>2]=+g[k+(p*152|0)+100>>2];g[q+128>>2]=+g[k+((p+1|0)*152|0)+100>>2];l=l+1|0}while((l|0)!=(j|0))}}q=c[b+48>>2]|0;if((q|0)>0){p=0;do{j=c[b+56>>2]|0;l=c[j+(p*152|0)+132>>2]|0;k=c[l+44>>2]|0;e=j+(p*152|0)+100|0;if((k|0)!=0){o=+g[e>>2];s=c[l+28>>2]|0;n=1.0/+g[f+12>>2];m=o*+g[j+(p*152|0)+20>>2]*+g[s+352>>2]*n;r=o*+g[j+(p*152|0)+24>>2]*+g[s+356>>2]*n;g[k>>2]=+g[j+(p*152|0)+16>>2]*o*+g[s+348>>2]*n+ +g[k>>2];g[k+4>>2]=m+ +g[k+4>>2];g[k+8>>2]=r+ +g[k+8>>2];r=+g[e>>2];s=c[l+32>>2]|0;m=1.0/+g[f+12>>2];n=r*+g[j+(p*152|0)+52>>2]*+g[s+352>>2]*m;o=r*+g[j+(p*152|0)+56>>2]*+g[s+356>>2]*m;g[k+32>>2]=+g[j+(p*152|0)+48>>2]*r*+g[s+348>>2]*m+ +g[k+32>>2];g[k+36>>2]=n+ +g[k+36>>2];g[k+40>>2]=o+ +g[k+40>>2];s=c[l+28>>2]|0;o=+g[e>>2];n=1.0/+g[f+12>>2];m=+g[j+(p*152|0)+4>>2]*+g[s+548>>2]*o*n;r=o*+g[j+(p*152|0)+8>>2]*+g[s+552>>2]*n;g[k+16>>2]=+g[j+(p*152|0)>>2]*+g[s+544>>2]*o*n+ +g[k+16>>2];g[k+20>>2]=m+ +g[k+20>>2];g[k+24>>2]=r+ +g[k+24>>2];s=c[l+32>>2]|0;r=+g[e>>2];m=1.0/+g[f+12>>2];n=+g[j+(p*152|0)+36>>2]*+g[s+548>>2]*r*m;o=r*+g[j+(p*152|0)+40>>2]*+g[s+552>>2]*m;g[k+48>>2]=+g[j+(p*152|0)+32>>2]*+g[s+544>>2]*r*m+ +g[k+48>>2];g[k+52>>2]=n+ +g[k+52>>2];g[k+56>>2]=o+ +g[k+56>>2]}g[l+36>>2]=+g[e>>2];r=+P(+(+g[e>>2]));if(r>=+g[l+16>>2]){a[l+20>>0]=0}p=p+1|0}while((p|0)!=(q|0))}p=c[b+8>>2]|0;if((p|0)>0){j=c[b+16>>2]|0;e=0;do{k=j+(e*244|0)|0;l=c[j+(e*244|0)+240>>2]|0;if((l|0)!=0){if((c[f+44>>2]|0)==0){s=j+(e*244|0)+176|0;m=+g[j+(e*244|0)+64>>2]+ +g[s>>2];g[s>>2]=m;s=j+(e*244|0)+180|0;n=+g[j+(e*244|0)+68>>2]+ +g[s>>2];g[s>>2]=n;s=j+(e*244|0)+184|0;o=+g[j+(e*244|0)+72>>2]+ +g[s>>2];g[s>>2]=o;s=j+(e*244|0)+192|0;g[s>>2]=+g[j+(e*244|0)+80>>2]+ +g[s>>2];s=j+(e*244|0)+196|0;g[s>>2]=+g[j+(e*244|0)+84>>2]+ +g[s>>2];s=j+(e*244|0)+200|0;g[s>>2]=+g[j+(e*244|0)+88>>2]+ +g[s>>2]}else{n=+g[f+12>>2];m=+g[f+52>>2];l=j+(e*244|0)+176|0;g[l>>2]=+g[j+(e*244|0)+64>>2]+ +g[l>>2];l=j+(e*244|0)+180|0;g[l>>2]=+g[j+(e*244|0)+68>>2]+ +g[l>>2];l=j+(e*244|0)+184|0;g[l>>2]=+g[j+(e*244|0)+72>>2]+ +g[l>>2];l=j+(e*244|0)+192|0;g[l>>2]=+g[j+(e*244|0)+80>>2]+ +g[l>>2];l=j+(e*244|0)+196|0;g[l>>2]=+g[j+(e*244|0)+84>>2]+ +g[l>>2];l=j+(e*244|0)+200|0;g[l>>2]=+g[j+(e*244|0)+88>>2]+ +g[l>>2];l=j+(e*244|0)+144|0;p=j+(e*244|0)+148|0;if(((((!(+g[l>>2]!=0.0)?!(+g[p>>2]!=0.0):0)?!(+g[j+(e*244|0)+152>>2]!=0.0):0)?!(+g[j+(e*244|0)+160>>2]!=0.0):0)?!(+g[j+(e*244|0)+164>>2]!=0.0):0)?!(+g[j+(e*244|0)+168>>2]!=0.0):0){k=j}else{h=22}if((h|0)==22){h=0;o=+g[j+(e*244|0)+164>>2]*m;r=+g[j+(e*244|0)+168>>2]*m;g[d>>2]=+g[j+(e*244|0)+160>>2]*m;g[d+4>>2]=o;g[d+8>>2]=r;g[d+12>>2]=0.0;Hj(k,+g[l>>2],+g[p>>2],+g[j+(e*244|0)+152>>2],d,n,d+16|0);c[k+0>>2]=c[d+16>>2];c[k+4>>2]=c[d+20>>2];c[k+8>>2]=c[d+24>>2];c[k+12>>2]=c[d+28>>2];k=j+(e*244|0)+16|0;c[k+0>>2]=c[d+32>>2];c[k+4>>2]=c[d+36>>2];c[k+8>>2]=c[d+40>>2];c[k+12>>2]=c[d+44>>2];k=j+(e*244|0)+32|0;c[k+0>>2]=c[d+48>>2];c[k+4>>2]=c[d+52>>2];c[k+8>>2]=c[d+56>>2];c[k+12>>2]=c[d+60>>2];k=j+(e*244|0)+48|0;c[k+0>>2]=c[d+64>>2];c[k+4>>2]=c[d+68>>2];c[k+8>>2]=c[d+72>>2];c[k+12>>2]=c[d+76>>2];k=c[b+16>>2]|0}j=k;m=+g[k+(e*244|0)+176>>2];n=+g[k+(e*244|0)+180>>2];o=+g[k+(e*244|0)+184>>2];l=c[k+(e*244|0)+240>>2]|0}m=m+ +g[j+(e*244|0)+208>>2];r=n+ +g[j+(e*244|0)+212>>2];n=o+ +g[j+(e*244|0)+216>>2];q=l+260|0;c[q>>2]=(c[q>>2]|0)+1;g[l+312>>2]=m;g[l+316>>2]=r;g[l+320>>2]=n;g[l+324>>2]=0.0;q=c[b+16>>2]|0;s=c[q+(e*244|0)+240>>2]|0;n=+g[q+(e*244|0)+192>>2]+ +g[q+(e*244|0)+224>>2];o=+g[q+(e*244|0)+196>>2]+ +g[q+(e*244|0)+228>>2];r=+g[q+(e*244|0)+200>>2]+ +g[q+(e*244|0)+232>>2];c[s+260>>2]=(c[s+260>>2]|0)+1;g[s+328>>2]=n;g[s+332>>2]=o;g[s+336>>2]=r;g[s+340>>2]=0.0;if((c[f+44>>2]|0)!=0){q=c[b+16>>2]|0;s=c[q+(e*244|0)+240>>2]|0;p=q+(e*244|0)|0;c[s+260>>2]=(c[s+260>>2]|0)+1;c[s+4>>2]=c[p+0>>2];c[s+8>>2]=c[p+4>>2];c[s+12>>2]=c[p+8>>2];c[s+16>>2]=c[p+12>>2];p=q+(e*244|0)+16|0;c[s+20>>2]=c[p+0>>2];c[s+24>>2]=c[p+4>>2];c[s+28>>2]=c[p+8>>2];c[s+32>>2]=c[p+12>>2];p=q+(e*244|0)+32|0;c[s+36>>2]=c[p+0>>2];c[s+40>>2]=c[p+4>>2];c[s+44>>2]=c[p+8>>2];c[s+48>>2]=c[p+12>>2];q=q+(e*244|0)+48|0;c[s+52>>2]=c[q+0>>2];c[s+56>>2]=c[q+4>>2];c[s+60>>2]=c[q+8>>2];c[s+64>>2]=c[q+12>>2]}j=c[b+16>>2]|0;c[(c[j+(e*244|0)+240>>2]|0)+212>>2]=-1;p=c[b+8>>2]|0}e=e+1|0}while((e|0)<(p|0))}if((c[b+28>>2]|0)<0?(c[b+32>>2]|0)<0:0){f=c[b+36>>2]|0;if((f|0)!=0){if((a[b+40>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+32>>2]=0}c[b+28>>2]=0;if((c[b+48>>2]|0)<0?(c[b+52>>2]|0)<0:0){f=c[b+56>>2]|0;if((f|0)!=0){if((a[b+60>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=0;c[b+52>>2]=0}c[b+48>>2]=0;if((c[b+68>>2]|0)<0?(c[b+72>>2]|0)<0:0){f=c[b+76>>2]|0;if((f|0)!=0){if((a[b+80>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[b+76>>2]=0}a[b+80>>0]=1;c[b+76>>2]=0;c[b+72>>2]=0}c[b+68>>2]=0;if((c[b+88>>2]|0)<0?(c[b+92>>2]|0)<0:0){f=c[b+96>>2]|0;if((f|0)!=0){if((a[b+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=0;c[b+92>>2]=0}c[b+88>>2]=0;if((c[b+8>>2]|0)>=0){c[b+8>>2]=0;i=d;return 0.0}if((c[b+12>>2]|0)>=0){c[b+8>>2]=0;i=d;return 0.0}f=c[b+16>>2]|0;if((f|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=0;c[b+12>>2]=0;c[b+8>>2]=0;i=d;return 0.0}function Zl(a,b,d,e,f,h,j,k,l,m){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;m=i;i=i+16|0;vx(3456);+lc[c[(c[a>>2]|0)+44>>2]&3](a,b,d,e,f,h,j,k,l);+lc[c[(c[a>>2]|0)+48>>2]&3](a,b,d,e,f,h,j,k,l);+pc[c[(c[a>>2]|0)+36>>2]&1](a,b,d,k);j=c[4564]|0;e=(c[j+16>>2]|0)+ -1|0;c[j+16>>2]=e;if((e|0)!=0){i=m;return 0.0}do{if((c[j+4>>2]|0)!=0){Gb(m|0,0)|0;e=c[4550]|0;g[j+8>>2]=+(((c[m+4>>2]|0)-(c[e+4>>2]|0)+(((c[m>>2]|0)-(c[e>>2]|0)|0)*1e6|0)-(c[j+12>>2]|0)|0)>>>0)/1.0e3+ +g[j+8>>2];if((c[j+16>>2]|0)==0){j=c[4564]|0;break}else{i=m;return 0.0}}}while(0);c[4564]=c[j+20>>2];i=m;return 0.0}function _l(a){a=a|0;c[a+192>>2]=0;return}function $l(a,b,c){a=a|0;b=b|0;c=c|0;return}function am(a,b,c){a=a|0;b=b|0;c=c|0;return}function bm(a){a=a|0;return 1}function cm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=i;i=i+32|0;c[b+4>>2]=d;c[b>>2]=64;c[b+8>>2]=-1;c[b+12>>2]=-1;g[b+16>>2]=3.4028234663852886e+38;a[b+20>>0]=1;a[b+21>>0]=0;c[b+24>>2]=-1;c[b+28>>2]=e;if((a[4208]|0)==0?(Ya(4208)|0)!=0:0){c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;Al(3592,0.0,0,0,f+16|0);cb(4208)}c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;Bl(3592,0.0,f);c[b+32>>2]=3592;g[b+36>>2]=0.0;g[b+40>>2]=.30000001192092896;c[b+44>>2]=0;i=f;return}function dm(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,h=0,j=0;f=i;c[b>>2]=hc[c[(c[e>>2]|0)+28>>2]&31](e,c[a+28>>2]|0)|0;c[b+4>>2]=hc[c[(c[e>>2]|0)+28>>2]&31](e,c[a+32>>2]|0)|0;h=hc[c[(c[e>>2]|0)+40>>2]&31](e,a)|0;j=hc[c[(c[e>>2]|0)+28>>2]&31](e,h)|0;c[b+8>>2]=j;if((j|0)!=0){Pb[c[(c[e>>2]|0)+48>>2]&127](e,h)}c[b+12>>2]=c[a+4>>2];c[b+24>>2]=d[a+21>>0]|0;c[b+40>>2]=c[a+24>>2];g[b+44>>2]=+g[a+16>>2];c[b+48>>2]=d[a+20>>0]|0;c[b+20>>2]=c[a+12>>2];c[b+16>>2]=c[a+8>>2];g[b+28>>2]=+g[a+36>>2];g[b+32>>2]=+g[a+40>>2];c[b+36>>2]=0;h=c[a+28>>2]|0;if((c[h+488>>2]|0)>0){e=0;do{if((c[(c[h+496>>2]|0)+(e<<2)>>2]|0)==(a|0)){c[b+36>>2]=1;h=c[a+28>>2]|0}e=e+1|0}while((e|0)<(c[h+488>>2]|0))}h=c[a+32>>2]|0;if((c[h+488>>2]|0)>0){e=0}else{i=f;return 3560}do{if((c[(c[h+496>>2]|0)+(e<<2)>>2]|0)==(a|0)){c[b+36>>2]=1;h=c[a+32>>2]|0}e=e+1|0}while((e|0)<(c[h+488>>2]|0));i=f;return 3560}function em(d,f,h,j,k,l){d=d|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0.0,p=0.0,q=0.0;m=i;c[d>>2]=4400;b[d+4>>1]=-2;b[d+6>>1]=-1;c[d+92>>2]=k;c[d+96>>2]=0;a[d+100>>0]=0;c[d+104>>2]=0;c[d+108>>2]=0;if((k|0)==0){c[4546]=(c[4546]|0)+1;k=Zx(95)|0;if((k|0)!=0?(c[(k+19&-16)+ -4>>2]=k,(k+19&-16|0)!=0):0){ft(k+19&-16);k=k+19&-16}else{k=0}c[d+92>>2]=k;a[d+100>>0]=1}if(!l){c[4546]=(c[4546]|0)+1;l=Zx(43)|0;if((l|0)!=0?(n=l+19&-16,c[n+ -4>>2]=l,(l+19&-16|0)!=0):0){c[n+0>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[(l+19&-16)>>2]=4464;a[n+20>>0]=1;c[n+16>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;n=l+19&-16}else{n=0}c[d+112>>2]=n;c[4546]=(c[4546]|0)+1;n=Zx(215)|0;if((n|0)!=0?(c[(n+19&-16)+ -4>>2]=n,(n+19&-16|0)!=0):0){pr(n+19&-16,c[d+112>>2]|0);n=n+19&-16}else{n=0}c[d+108>>2]=n;a[n+193>>0]=1}c[d+8>>2]=c[f+0>>2];c[d+12>>2]=c[f+4>>2];c[d+16>>2]=c[f+8>>2];c[d+20>>2]=c[f+12>>2];c[d+24>>2]=c[h+0>>2];c[d+28>>2]=c[h+4>>2];c[d+32>>2]=c[h+8>>2];c[d+36>>2]=c[h+12>>2];q=+(e[d+6>>1]|0);p=q/(+g[d+28>>2]- +g[d+12>>2]);o=q/(+g[d+32>>2]- +g[d+16>>2]);g[d+40>>2]=q/(+g[d+24>>2]- +g[d+8>>2]);g[d+44>>2]=p;g[d+48>>2]=o;g[d+52>>2]=0.0;f=(j&65535)+1&65535;c[4546]=(c[4546]|0)+1;h=Zx(f<<6|19)|0;if((h|0)==0){h=0}else{c[(h+19&-16)+ -4>>2]=h;h=h+19&-16}if((f|0)!=0){n=h+(f<<6)|0;l=h;do{c[l>>2]=0;c[l+8>>2]=0;l=l+64|0}while((l|0)!=(n|0))}c[d+60>>2]=h;b[d+58>>1]=(j&65535)+1;b[d+56>>1]=0;b[d+64>>1]=1;if(f>>>0>1){j=1;n=1;do{b[h+(j<<6)+48>>1]=j+1;n=n+1<<16>>16;j=n&65535}while(j>>>0>>0)}b[h+(f+ -1<<6)+48>>1]=0;c[4546]=(c[4546]|0)+1;j=Zx((f<<3|3)+16|0)|0;if((j|0)!=0){c[(j+19&-16)+ -4>>2]=j;c[d+80>>2]=j+19&-16;if((j+19&-16|0)==0){j=0}else{j=j+19&-16}}else{c[d+80>>2]=0;j=0}c[d+68>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx((f<<3|3)+16|0)|0;if((j|0)!=0){c[(j+19&-16)+ -4>>2]=j;c[d+84>>2]=j+19&-16;if((j+19&-16|0)==0){j=0}else{j=j+19&-16}}else{c[d+84>>2]=0;j=0}c[d+72>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx((f<<3|3)+16|0)|0;if((j|0)!=0){c[(j+19&-16)+ -4>>2]=j;c[d+88>>2]=j+19&-16;if((j+19&-16|0)==0){j=0}else{j=j+19&-16}}else{c[d+88>>2]=0;j=0}c[d+76>>2]=j;c[c[d+60>>2]>>2]=0;k=c[d+60>>2]|0;b[k+48>>1]=0;b[k+54>>1]=1;l=c[d+68>>2]|0;b[l>>1]=0;b[l+2>>1]=0;b[l+4>>1]=b[d+6>>1]|0;b[l+6>>1]=0;b[k+50>>1]=0;b[k+56>>1]=1;l=c[d+72>>2]|0;b[l>>1]=0;b[l+2>>1]=0;b[l+4>>1]=b[d+6>>1]|0;b[l+6>>1]=0;b[k+52>>1]=0;b[k+58>>1]=1;k=c[d+76>>2]|0;b[k>>1]=0;b[k+2>>1]=0;b[k+4>>1]=b[d+6>>1]|0;b[k+6>>1]=0;c[d>>2]=4224;i=m;return}function fm(a){a=a|0;var b=0;b=i;ym(a);i=b;return}function gm(a){a=a|0;var b=0;b=i;ym(a);if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function hm(a,d,f,h,j,k,l,m,n){a=a|0;d=d|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;o=i;i=i+16|0;vm(a,o+6|0,+g[d>>2],+g[d+4>>2],+g[d+8>>2],0);vm(a,o,+g[f>>2],+g[f+4>>2],+g[f+8>>2],1);p=b[a+64>>1]|0;q=c[a+60>>2]|0;b[a+64>>1]=b[q+((p&65535)<<6)+48>>1]|0;b[a+56>>1]=(b[a+56>>1]|0)+1<<16>>16;c[q+((p&65535)<<6)+12>>2]=p&65535;c[q+((p&65535)<<6)>>2]=j;b[q+((p&65535)<<6)+4>>1]=k;b[q+((p&65535)<<6)+6>>1]=l;c[q+((p&65535)<<6)+8>>2]=n;u=(e[a+56>>1]|0)<<1;v=(u&65534)+ -1|0;s=(c[a+60>>2]|0)+54|0;b[s>>1]=(e[s>>1]|0)+2;s=c[a+68>>2]|0;r=e[s+(v<<2)>>1]|e[s+(v<<2)+2>>1]<<16;b[s+((u&65534|1)<<2)>>1]=r;b[s+((u&65534|1)<<2)+2>>1]=r>>>16;s=c[a+68>>2]|0;b[s+(v<<2)>>1]=b[o+6>>1]|0;b[s+(v<<2)+2>>1]=p;b[s+((u&65534)<<2)>>1]=b[o>>1]|0;b[s+((u&65534)<<2)+2>>1]=p;b[q+((p&65535)<<6)+48>>1]=v;b[q+((p&65535)<<6)+54>>1]=u;s=(c[a+60>>2]|0)+56|0;b[s>>1]=(e[s>>1]|0)+2;s=c[a+72>>2]|0;r=e[s+(v<<2)>>1]|e[s+(v<<2)+2>>1]<<16;b[s+((u&65534|1)<<2)>>1]=r;b[s+((u&65534|1)<<2)+2>>1]=r>>>16;s=c[a+72>>2]|0;b[s+(v<<2)>>1]=b[o+8>>1]|0;b[s+(v<<2)+2>>1]=p;b[s+((u&65534)<<2)>>1]=b[o+2>>1]|0;b[s+((u&65534)<<2)+2>>1]=p;b[q+((p&65535)<<6)+50>>1]=v;b[q+((p&65535)<<6)+56>>1]=u;s=(c[a+60>>2]|0)+58|0;b[s>>1]=(e[s>>1]|0)+2;s=c[a+76>>2]|0;r=e[s+(v<<2)>>1]|e[s+(v<<2)+2>>1]<<16;b[s+((u&65534|1)<<2)>>1]=r;b[s+((u&65534|1)<<2)+2>>1]=r>>>16;s=c[a+76>>2]|0;b[s+(v<<2)>>1]=b[o+10>>1]|0;b[s+(v<<2)+2>>1]=p;b[s+((u&65534)<<2)>>1]=b[o+4>>1]|0;b[s+((u&65534)<<2)+2>>1]=p;b[q+((p&65535)<<6)+52>>1]=v;b[q+((p&65535)<<6)+58>>1]=u;u=c[a+68>>2]|0;v=e[q+((p&65535)<<6)+48>>1]|0;s=c[a+60>>2]|0;r=b[u+(v+ -1<<2)>>1]|0;if((e[u+(v<<2)>>1]|0)<(r&65535)){n=s+((e[u+(v<<2)+2>>1]|0)<<6)+48|0;t=u+(v<<2)|0;u=u+(v+ -1<<2)|0;while(1){v=e[u+2>>1]|0;if((r&1)==0){v=s+(v<<6)+48|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16}else{v=s+(v<<6)+54|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16}b[n>>1]=(b[n>>1]|0)+ -1<<16>>16;r=e[t>>1]|e[t+2>>1]<<16;v=e[u>>1]|e[u+2>>1]<<16;b[t>>1]=v;b[t+2>>1]=v>>>16;b[u>>1]=r;b[u+2>>1]=r>>>16;t=t+ -4|0;u=u+ -4|0;r=b[u>>1]|0;if(!((e[t>>1]|0)<(r&65535))){break}s=c[a+60>>2]|0}n=c[a+68>>2]|0}else{n=u}r=e[q+((p&65535)<<6)+54>>1]|0;u=n+(r<<2)|0;t=n+(r+ -1<<2)|0;s=b[t>>1]|0;a:do{if((e[u>>1]|0)<(s&65535)){v=c[a+60>>2]|0;n=v+((e[n+(r<<2)+2>>1]|0)<<6)+54|0;r=v;while(1){v=e[t+2>>1]|0;if((s&1)==0){v=r+(v<<6)+48|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16}else{v=r+(v<<6)+54|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16}b[n>>1]=(b[n>>1]|0)+ -1<<16>>16;s=e[u>>1]|e[u+2>>1]<<16;v=e[t>>1]|e[t+2>>1]<<16;b[u>>1]=v;b[u+2>>1]=v>>>16;b[t>>1]=s;b[t+2>>1]=s>>>16;u=u+ -4|0;t=t+ -4|0;s=b[t>>1]|0;if(!((e[u>>1]|0)<(s&65535))){break a}r=c[a+60>>2]|0}}}while(0);v=c[a+72>>2]|0;u=e[q+((p&65535)<<6)+50>>1]|0;s=c[a+60>>2]|0;r=b[v+(u+ -1<<2)>>1]|0;if((e[v+(u<<2)>>1]|0)<(r&65535)){n=s+((e[v+(u<<2)+2>>1]|0)<<6)+50|0;t=v+(u<<2)|0;u=v+(u+ -1<<2)|0;while(1){v=e[u+2>>1]|0;if((r&1)==0){v=s+(v<<6)+50|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16}else{v=s+(v<<6)+56|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16}b[n>>1]=(b[n>>1]|0)+ -1<<16>>16;r=e[t>>1]|e[t+2>>1]<<16;v=e[u>>1]|e[u+2>>1]<<16;b[t>>1]=v;b[t+2>>1]=v>>>16;b[u>>1]=r;b[u+2>>1]=r>>>16;t=t+ -4|0;u=u+ -4|0;r=b[u>>1]|0;if(!((e[t>>1]|0)<(r&65535))){break}s=c[a+60>>2]|0}v=c[a+72>>2]|0}n=e[q+((p&65535)<<6)+56>>1]|0;u=v+(n<<2)|0;t=v+(n+ -1<<2)|0;r=b[t>>1]|0;b:do{if((e[u>>1]|0)<(r&65535)){s=c[a+60>>2]|0;n=s+((e[v+(n<<2)+2>>1]|0)<<6)+56|0;while(1){v=e[t+2>>1]|0;if((r&1)==0){v=s+(v<<6)+50|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16}else{v=s+(v<<6)+56|0;b[v>>1]=(b[v>>1]|0)+1<<16>>16}b[n>>1]=(b[n>>1]|0)+ -1<<16>>16;r=e[u>>1]|e[u+2>>1]<<16;v=e[t>>1]|e[t+2>>1]<<16;b[u>>1]=v;b[u+2>>1]=v>>>16;b[t>>1]=r;b[t+2>>1]=r>>>16;u=u+ -4|0;t=t+ -4|0;r=b[t>>1]|0;if(!((e[u>>1]|0)<(r&65535))){break b}s=c[a+60>>2]|0}}}while(0);wm(a,2,b[q+((p&65535)<<6)+52>>1]|0);xm(a,2,b[q+((p&65535)<<6)+58>>1]|0,m);q=c[a+60>>2]|0;a=c[a+108>>2]|0;if((a|0)==0){v=q+((p&65535)<<6)|0;i=o;return v|0}c[q+((p&65535)<<6)+60>>2]=qc[c[(c[a>>2]|0)+8>>2]&3](a,d,f,h,j,k,l,m,0)|0;v=q+((p&65535)<<6)|0;i=o;return v|0}function im(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;h=c[a+108>>2]|0;if((h|0)!=0){sc[c[(c[h>>2]|0)+12>>2]&63](h,c[d+60>>2]|0,f)}h=c[d+12>>2]|0;d=c[a+60>>2]|0;r=c[a+92>>2]|0;if(!(Rb[c[(c[r>>2]|0)+56>>2]&127](r)|0)){r=c[a+92>>2]|0;sc[c[(c[r>>2]|0)+16>>2]&63](r,d+((h&65535)<<6)|0,f)}f=e[a+56>>1]|0;j=c[a+60>>2]|0;b[j+54>>1]=(e[j+54>>1]|0)+65534;b[j+56>>1]=(e[j+56>>1]|0)+65534;b[j+58>>1]=(e[j+58>>1]|0)+65534;j=0;do{l=a+(j<<2)+68|0;k=c[l>>2]|0;o=e[d+((h&65535)<<6)+(j<<1)+54>>1]|0;b[k+(o<<2)>>1]=b[a+6>>1]|0;p=b[k+(o+1<<2)+2>>1]|0;if(p<<16>>16==0){o=k}else{m=(c[a+60>>2]|0)+((e[k+(o<<2)+2>>1]|0)<<6)+(j<<1)+54|0;n=k+(o<<2)|0;o=k+(o+1<<2)|0;while(1){r=b[o>>1]|0;if((e[n>>1]|0)<(r&65535)){break}q=c[a+60>>2]|0;p=p&65535;if((r&1)==0){r=q+(p<<6)+(j<<1)+48|0;b[r>>1]=(b[r>>1]|0)+ -1<<16>>16}else{r=q+(p<<6)+(j<<1)+54|0;b[r>>1]=(b[r>>1]|0)+ -1<<16>>16}b[m>>1]=(b[m>>1]|0)+1<<16>>16;p=e[n>>1]|e[n+2>>1]<<16;r=e[o>>1]|e[o+2>>1]<<16;b[n>>1]=r;b[n+2>>1]=r>>>16;b[o>>1]=p;b[o+2>>1]=p>>>16;p=b[o+6>>1]|0;if(p<<16>>16==0){break}else{n=n+4|0;o=o+4|0}}o=c[l>>2]|0}p=e[d+((h&65535)<<6)+(j<<1)+48>>1]|0;b[k+(p<<2)>>1]=b[a+6>>1]|0;n=b[o+(p+1<<2)+2>>1]|0;a:do{if(!(n<<16>>16==0)){l=(c[a+60>>2]|0)+((e[o+(p<<2)+2>>1]|0)<<6)+(j<<1)+48|0;m=o+(p<<2)|0;o=o+(p+1<<2)|0;while(1){p=b[o>>1]|0;if((e[m>>1]|0)<(p&65535)){break a}q=c[a+60>>2]|0;n=n&65535;if((p&1)==0){r=q+(n<<6)+(j<<1)+48|0;b[r>>1]=(b[r>>1]|0)+ -1<<16>>16}else{r=q+(n<<6)+(j<<1)+54|0;b[r>>1]=(b[r>>1]|0)+ -1<<16>>16}b[l>>1]=(b[l>>1]|0)+1<<16>>16;n=e[m>>1]|e[m+2>>1]<<16;r=e[o>>1]|e[o+2>>1]<<16;b[m>>1]=r;b[m+2>>1]=r>>>16;b[o>>1]=n;b[o+2>>1]=n>>>16;n=b[o+6>>1]|0;if(n<<16>>16==0){break}else{m=m+4|0;o=o+4|0}}}}while(0);b[k+((f<<1)+ -1<<2)+2>>1]=0;b[k+((f<<1)+ -1<<2)>>1]=b[a+6>>1]|0;j=j+1|0}while((j|0)!=3);b[(c[a+60>>2]|0)+((h&65535)<<6)+48>>1]=b[a+64>>1]|0;b[a+64>>1]=h;b[a+56>>1]=(b[a+56>>1]|0)+ -1<<16>>16;i=g;return}function jm(a,d,f,h,j){a=a|0;d=d|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;k=i;i=i+16|0;c[d+16>>2]=c[f+0>>2];c[d+20>>2]=c[f+4>>2];c[d+24>>2]=c[f+8>>2];c[d+28>>2]=c[f+12>>2];c[d+32>>2]=c[h+0>>2];c[d+36>>2]=c[h+4>>2];c[d+40>>2]=c[h+8>>2];c[d+44>>2]=c[h+12>>2];q=c[a+60>>2]|0;r=c[d+12>>2]&65535;vm(a,k+6|0,+g[f>>2],+g[f+4>>2],+g[f+8>>2],0);vm(a,k,+g[h>>2],+g[h+4>>2],+g[h+8>>2],1);y=0;do{z=b[q+(r<<6)+(y<<1)+48>>1]|0;w=b[q+(r<<6)+(y<<1)+54>>1]|0;F=b[k+6+(y<<1)>>1]|0;A=a+(y<<2)+68|0;I=c[A>>2]|0;H=(F&65535)-(e[I+((z&65535)<<2)>>1]|0)|0;G=b[k+(y<<1)>>1]|0;x=(G&65535)-(e[I+((w&65535)<<2)>>1]|0)|0;b[I+((z&65535)<<2)>>1]=F;b[I+((w&65535)<<2)>>1]=G;if((H|0)<0){wm(a,y,z)}a:do{if((x|0)>0?(v=c[A>>2]|0,s=c[a+60>>2]|0,t=e[v+((w&65535)<<2)+2>>1]|0,u=b[v+((w&65535)+1<<2)+2>>1]|0,!(u<<16>>16==0)):0){B=1<>1]|0;if((e[D>>1]|0)<(F&65535)){break a}G=c[a+60>>2]|0;I=I&65535;if((F&1)==0){if(((((e[s+(t<<6)+(B<<1)+54>>1]|0)>=(e[G+(I<<6)+(B<<1)+48>>1]|0)?(e[G+(I<<6)+(B<<1)+54>>1]|0)>=(e[s+(t<<6)+(B<<1)+48>>1]|0):0)?(e[s+(t<<6)+((1<>1]|0)>=(e[G+(I<<6)+((1<>1]|0):0)?(e[G+(I<<6)+((1<>1]|0)>=(e[s+(t<<6)+((1<>1]|0):0)?(m=c[a+92>>2]|0,n=G+((e[D+2>>1]|0)<<6)|0,_b[c[(c[m>>2]|0)+8>>2]&31](m,n,G+(I<<6)|0)|0,m=c[a+96>>2]|0,(m|0)!=0):0){_b[c[(c[m>>2]|0)+8>>2]&31](m,n,G+(I<<6)|0)|0}I=G+(I<<6)+(y<<1)+48|0;b[I>>1]=(b[I>>1]|0)+ -1<<16>>16}else{I=G+(I<<6)+(y<<1)+54|0;b[I>>1]=(b[I>>1]|0)+ -1<<16>>16}b[C>>1]=(b[C>>1]|0)+1<<16>>16;I=e[D>>1]|e[D+2>>1]<<16;G=e[E>>1]|e[E+2>>1]<<16;b[D>>1]=G;b[D+2>>1]=G>>>16;b[E>>1]=I;b[E+2>>1]=I>>>16;I=b[E+6>>1]|0;if(I<<16>>16==0){break}else{D=D+4|0;E=E+4|0}}}}while(0);b:do{if((H|0)>0?(o=c[A>>2]|0,p=b[o+((z&65535)+1<<2)+2>>1]|0,!(p<<16>>16==0)):0){B=(c[a+60>>2]|0)+((e[o+((z&65535)<<2)+2>>1]|0)<<6)+(y<<1)+48|0;C=1<>1]|0;if((e[A>>1]|0)<(F&65535)){break b}D=c[a+60>>2]|0;E=E&65535;if((F&1)==0){I=D+(E<<6)+(y<<1)+48|0;b[I>>1]=(b[I>>1]|0)+ -1<<16>>16}else{F=e[A+2>>1]|0;if(((((e[D+(F<<6)+(C<<1)+54>>1]|0)>=(e[D+(E<<6)+(C<<1)+48>>1]|0)?(e[D+(E<<6)+(C<<1)+54>>1]|0)>=(e[D+(F<<6)+(C<<1)+48>>1]|0):0)?(e[D+(F<<6)+((1<>1]|0)>=(e[D+(E<<6)+((1<>1]|0):0)?(e[D+(E<<6)+((1<>1]|0)>=(e[D+(F<<6)+((1<>1]|0):0)?(l=c[a+92>>2]|0,Vb[c[(c[l>>2]|0)+12>>2]&31](l,D+(F<<6)|0,D+(E<<6)|0,j)|0,l=c[a+96>>2]|0,(l|0)!=0):0){Vb[c[(c[l>>2]|0)+12>>2]&31](l,D+(F<<6)|0,D+(E<<6)|0,j)|0}I=D+(E<<6)+(y<<1)+54|0;b[I>>1]=(b[I>>1]|0)+ -1<<16>>16}b[B>>1]=(b[B>>1]|0)+1<<16>>16;E=e[A>>1]|e[A+2>>1]<<16;I=e[z>>1]|e[z+2>>1]<<16;b[A>>1]=I;b[A+2>>1]=I>>>16;b[z>>1]=E;b[z+2>>1]=E>>>16;E=b[z+6>>1]|0;if(E<<16>>16==0){break}else{A=A+4|0;z=z+4|0}}}}while(0);if((x|0)<0){xm(a,y,w,j)}y=y+1|0}while((y|0)!=3);l=c[a+108>>2]|0;if((l|0)==0){i=k;return}Lb[c[(c[l>>2]|0)+16>>2]&31](l,c[d+60>>2]|0,f,h,j);i=k;return}function km(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=i;c[d+0>>2]=c[b+16>>2];c[d+4>>2]=c[b+20>>2];c[d+8>>2]=c[b+24>>2];c[d+12>>2]=c[b+28>>2];c[e+0>>2]=c[b+32>>2];c[e+4>>2]=c[b+36>>2];c[e+8>>2]=c[b+40>>2];c[e+12>>2]=c[b+44>>2];i=a;return}function lm(a,d,f,g,h,j){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0;k=i;l=c[a+108>>2]|0;if((l|0)!=0){$b[c[(c[l>>2]|0)+24>>2]&7](l,d,f,g,h,j);i=k;return}l=b[a+56>>1]|0;if(!((l&65535)<<1>>>0>1)){i=k;return}h=1;j=2;while(1){f=c[a+68>>2]|0;if(!((b[f+(h<<2)>>1]&1)==0)){hc[c[(c[g>>2]|0)+8>>2]&31](g,(c[a+60>>2]|0)+((e[f+(h<<2)+2>>1]|0)<<6)|0)|0;l=b[a+56>>1]|0}h=j&65535;if(!(h>>>0<((l&65535)<<1|1)>>>0)){break}j=j+1<<16>>16}i=k;return}function mm(a,d,f,h){a=a|0;d=d|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0;j=i;k=c[a+108>>2]|0;if((k|0)!=0){wc[c[(c[k>>2]|0)+28>>2]&63](k,d,f,h);i=j;return}m=b[a+56>>1]|0;if(!((m&65535)<<1>>>0>1)){i=j;return}n=1;k=2;while(1){o=c[a+68>>2]|0;if(!((b[o+(n<<2)>>1]&1)==0)){l=c[a+60>>2]|0;n=e[o+(n<<2)+2>>1]|0;if(!(+g[d>>2]>+g[l+(n<<6)+32>>2])?!(+g[f>>2]<+g[l+(n<<6)+16>>2]):0){o=1}else{o=0}if(!(!(+g[d+8>>2]>+g[l+(n<<6)+40>>2])?!(+g[f+8>>2]<+g[l+(n<<6)+24>>2]):0)){o=0}if(!(+g[d+4>>2]>+g[l+(n<<6)+36>>2])?!(+g[f+4>>2]<+g[l+(n<<6)+20>>2]|o^1):0){hc[c[(c[h>>2]|0)+8>>2]&31](h,l+(n<<6)|0)|0;m=b[a+56>>1]|0}}n=k&65535;if(!(n>>>0<((m&65535)<<1|1)>>>0)){break}k=k+1<<16>>16}i=j;return}function nm(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;i=i+32|0;r=c[a+92>>2]|0;if(!(Rb[c[(c[r>>2]|0)+56>>2]&127](r)|0)){i=f;return}d=c[a+92>>2]|0;d=Rb[c[(c[d>>2]|0)+28>>2]&127](d)|0;g=c[d+4>>2]|0;if((g|0)>1){um(d,0,g+ -1|0);g=c[d+4>>2]|0}o=g-(c[a+104>>2]|0)|0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;tm(d,o,f+16|0);c[a+104>>2]=0;o=c[d+4>>2]|0;if((o|0)>0){h=0;p=0;m=0;g=0;while(1){j=c[d+12>>2]|0;k=j+(g<<4)|0;n=c[k>>2]|0;j=j+(g<<4)+4|0;l=c[j>>2]|0;if((n|0)==(h|0)){if((l|0)==(p|0)){l=p;n=h;h=12}else{n=h;h=8}}else{h=8}a:do{if((h|0)==8){h=0;q=n+54|0;r=n+48|0;p=0;do{if((e[q+(p<<1)>>1]|0)<(e[l+48+(p<<1)>>1]|0)){h=12;break a}if((e[l+54+(p<<1)>>1]|0)<(e[r+(p<<1)>>1]|0)){h=12;break a}p=p+1|0}while((p|0)<3)}}while(0);if((h|0)==12){m=c[a+92>>2]|0;sc[c[(c[m>>2]|0)+32>>2]&63](m,k,b);c[k>>2]=0;c[j>>2]=0;m=(c[a+104>>2]|0)+1|0;c[a+104>>2]=m;c[3430]=(c[3430]|0)+ -1;o=c[d+4>>2]|0}g=g+1|0;if((g|0)>=(o|0)){break}else{h=n;p=l}}if((o|0)>1){um(d,0,o+ -1|0);m=c[a+104>>2]|0;o=c[d+4>>2]|0}}else{m=0}r=o-m|0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;tm(d,r,f);c[a+104>>2]=0;i=f;return}function om(a){a=a|0;return c[a+92>>2]|0}function pm(a){a=a|0;return c[a+92>>2]|0}function qm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[b+0>>2]=c[a+8>>2];c[b+4>>2]=c[a+12>>2];c[b+8>>2]=c[a+16>>2];c[b+12>>2]=c[a+20>>2];c[d+0>>2]=c[a+24>>2];c[d+4>>2]=c[a+28>>2];c[d+8>>2]=c[a+32>>2];c[d+12>>2]=c[a+36>>2];i=e;return}function rm(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;d=i;if((b[a+56>>1]|0)!=0){i=d;return}b[a+64>>1]=1;f=b[a+58>>1]|0;e=c[a+60>>2]|0;if((f&65535)>1){f=1;g=1;while(1){b[e+(f<<6)+48>>1]=f+1;g=g+1<<16>>16;f=b[a+58>>1]|0;if((g&65535)<(f&65535)){f=g&65535}else{break}}}b[e+((f&65535)+ -1<<6)+48>>1]=0;i=d;return}function sm(a){a=a|0;return}function tm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;g=c[b+4>>2]|0;if(!((g|0)<=(d|0)&(g|0)<(d|0))){c[b+4>>2]=d;i=f;return}if((c[b+8>>2]|0)<(d|0)){if((d|0)==0){h=0;j=g}else{c[4546]=(c[4546]|0)+1;h=Zx((d<<4|3)+16|0)|0;if((h|0)==0){h=0}else{c[(h+19&-16)+ -4>>2]=h;h=h+19&-16}j=c[b+4>>2]|0}if((j|0)>0){k=0;do{l=c[b+12>>2]|0;c[h+(k<<4)>>2]=c[l+(k<<4)>>2];c[h+(k<<4)+4>>2]=c[l+(k<<4)+4>>2];c[h+(k<<4)+8>>2]=c[l+(k<<4)+8>>2];c[h+(k<<4)+12>>2]=c[l+(k<<4)+12>>2];k=k+1|0}while((k|0)!=(j|0))}j=c[b+12>>2]|0;if((j|0)!=0){if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=h;c[b+8>>2]=d;h=b+12|0}else{h=b+12|0}do{l=c[h>>2]|0;c[l+(g<<4)>>2]=c[e>>2];c[l+(g<<4)+4>>2]=c[e+4>>2];c[l+(g<<4)+8>>2]=c[e+8>>2];c[l+(g<<4)+12>>2]=c[e+12>>2];g=g+1|0}while((g|0)!=(d|0));c[b+4>>2]=d;i=f;return}function um(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=i;while(1){j=(b+d|0)/2|0;g=c[a+12>>2]|0;h=c[g+(j<<4)>>2]|0;f=c[g+(j<<4)+4>>2]|0;j=c[g+(j<<4)+8>>2]|0;k=b;o=d;while(1){a:while(1){m=c[g+(k<<4)>>2]|0;if((m|0)==0){q=-1}else{q=c[m+12>>2]|0}if((h|0)==0){n=-1}else{n=c[h+12>>2]|0}l=c[g+(k<<4)+4>>2]|0;if((l|0)==0){r=-1}else{r=c[l+12>>2]|0}if((f|0)==0){p=-1}else{p=c[f+12>>2]|0}do{if((q|0)<=(n|0)){n=(m|0)==(h|0)&(r|0)>(p|0);if(n|(m|0)==(h|0)^1){if(n){break}else{break a}}if((l|0)!=(f|0)){break a}if(!((c[g+(k<<4)+8>>2]|0)>>>0>j>>>0)){break a}}}while(0);k=k+1|0}b:do{if((h|0)==0){while(1){p=c[g+(o<<4)>>2]|0;if((p|0)==0){r=-1}else{r=c[p+12>>2]|0}if((f|0)==0){s=-1}else{s=c[f+12>>2]|0}n=c[g+(o<<4)+4>>2]|0;if((n|0)==0){q=-1}else{q=c[n+12>>2]|0}do{if(!((r|0)<-1)){q=(p|0)==0&(s|0)>(q|0);if(q|(p|0)==0^1){if(q){break}else{break b}}if((f|0)!=(n|0)){break b}if(!(j>>>0>(c[g+(o<<4)+8>>2]|0)>>>0)){break b}}}while(0);o=o+ -1|0}}else{n=c[h+12>>2]|0;q=o;while(1){p=c[g+(q<<4)>>2]|0;if((p|0)==0){t=-1}else{t=c[p+12>>2]|0}if((f|0)==0){r=-1}else{r=c[f+12>>2]|0}o=c[g+(q<<4)+4>>2]|0;if((o|0)==0){s=-1}else{s=c[o+12>>2]|0}do{if((n|0)<=(t|0)){r=(h|0)==(p|0)&(r|0)>(s|0);if(r|(h|0)==(p|0)^1){if(r){break}else{o=q;break b}}if((f|0)!=(o|0)){o=q;break b}if(!(j>>>0>(c[g+(q<<4)+8>>2]|0)>>>0)){o=q;break b}}}while(0);q=q+ -1|0}}}while(0);if((k|0)<=(o|0)){t=g+(k<<4)|0;r=c[g+(k<<4)+8>>2]|0;s=c[g+(k<<4)+12>>2]|0;q=g+(o<<4)|0;c[t+0>>2]=c[q+0>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];t=c[a+12>>2]|0;c[t+(o<<4)>>2]=m;c[t+(o<<4)+4>>2]=l;c[t+(o<<4)+8>>2]=r;c[t+(o<<4)+12>>2]=s;k=k+1|0;o=o+ -1|0}if((k|0)>(o|0)){break}g=c[a+12>>2]|0}if((o|0)>(b|0)){um(a,b,o)}if((k|0)<(d|0)){b=k}else{break}}i=e;return}function vm(a,c,d,e,f,h){a=a|0;c=c|0;d=+d;e=+e;f=+f;h=h|0;var j=0,k=0;j=i;d=(d- +g[a+8>>2])*+g[a+40>>2];e=(e- +g[a+12>>2])*+g[a+44>>2];f=(f- +g[a+16>>2])*+g[a+48>>2];do{if(!(d<=0.0)){k=b[a+6>>1]|0;if(!(d>=+(k&65535|0))){k=b[a+4>>1]&(~~d&65535)&65535|h;break}else{k=b[a+4>>1]&k&65535|h;break}}else{k=h}}while(0);b[c>>1]=k;do{if(!(e<=0.0)){k=b[a+6>>1]|0;if(!(e>=+(k&65535|0))){k=b[a+4>>1]&(~~e&65535)&65535|h;break}else{k=b[a+4>>1]&k&65535|h;break}}else{k=h}}while(0);b[c+2>>1]=k;if(f<=0.0){h=h&65535;k=c+4|0;b[k>>1]=h;i=j;return}k=b[a+6>>1]|0;if(!(f>=+(k&65535|0))){h=b[a+4>>1]&(~~f&65535)&65535|h;h=h&65535;k=c+4|0;b[k>>1]=h;i=j;return}else{h=b[a+4>>1]&k&65535|h;h=h&65535;k=c+4|0;b[k>>1]=h;i=j;return}}function wm(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=i;p=c[a+(d<<2)+68>>2]|0;g=c[a+60>>2]|0;h=e[p+((f&65535)<<2)+2>>1]|0;n=b[p+((f&65535)+ -1<<2)>>1]|0;if(!((e[p+((f&65535)<<2)>>1]|0)<(n&65535))){i=l;return}m=g;o=p+((f&65535)<<2)|0;p=p+((f&65535)+ -1<<2)|0;while(1){f=e[p+2>>1]|0;if((n&1)==0){f=m+(f<<6)+(d<<1)+48|0;b[f>>1]=(b[f>>1]|0)+1<<16>>16}else{if(((((e[g+(h<<6)+((1<>1]|0)>=(e[m+(f<<6)+((1<>1]|0)?(e[m+(f<<6)+((1<>1]|0)>=(e[g+(h<<6)+((1<>1]|0):0)?(e[g+(h<<6)+((1<<(1<>1]|0)>=(e[m+(f<<6)+((1<<(1<>1]|0):0)?(e[m+(f<<6)+((1<<(1<>1]|0)>=(e[g+(h<<6)+((1<<(1<>1]|0):0)?(j=c[a+92>>2]|0,k=m+(f<<6)|0,_b[c[(c[j>>2]|0)+8>>2]&31](j,g+(h<<6)|0,k)|0,j=c[a+96>>2]|0,(j|0)!=0):0){_b[c[(c[j>>2]|0)+8>>2]&31](j,g+(h<<6)|0,k)|0}f=m+(f<<6)+(d<<1)+54|0;b[f>>1]=(b[f>>1]|0)+1<<16>>16}b[g+(h<<6)+(d<<1)+48>>1]=(b[g+(h<<6)+(d<<1)+48>>1]|0)+ -1<<16>>16;n=e[o>>1]|e[o+2>>1]<<16;f=e[p>>1]|e[p+2>>1]<<16;b[o>>1]=f;b[o+2>>1]=f>>>16;b[p>>1]=n;b[p+2>>1]=n>>>16;o=o+ -4|0;p=p+ -4|0;n=b[p>>1]|0;if(!((e[o>>1]|0)<(n&65535))){break}m=c[a+60>>2]|0}i=l;return}function xm(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=i;q=c[a+(d<<2)+68>>2]|0;o=b[q+((f&65535)+ -1<<2)>>1]|0;if(!((e[q+((f&65535)<<2)>>1]|0)<(o&65535))){i=j;return}n=c[a+60>>2]|0;h=n+((e[q+((f&65535)<<2)+2>>1]|0)<<6)+(d<<1)+54|0;p=q+((f&65535)<<2)|0;q=q+((f&65535)+ -1<<2)|0;while(1){f=e[q+2>>1]|0;if((o&1)==0){o=e[p+2>>1]|0;if(((((e[n+(o<<6)+((1<>1]|0)>=(e[n+(f<<6)+((1<>1]|0)?(e[n+(f<<6)+((1<>1]|0)>=(e[n+(o<<6)+((1<>1]|0):0)?(e[n+(o<<6)+((1<<(1<>1]|0)>=(e[n+(f<<6)+((1<<(1<>1]|0):0)?(e[n+(f<<6)+((1<<(1<>1]|0)>=(e[n+(o<<6)+((1<<(1<>1]|0):0)?(l=c[a+92>>2]|0,m=n+(o<<6)|0,k=n+(f<<6)|0,Vb[c[(c[l>>2]|0)+12>>2]&31](l,m,k,g)|0,l=c[a+96>>2]|0,(l|0)!=0):0){Vb[c[(c[l>>2]|0)+12>>2]&31](l,m,k,g)|0}f=n+(f<<6)+(d<<1)+48|0;b[f>>1]=(b[f>>1]|0)+1<<16>>16}else{f=n+(f<<6)+(d<<1)+54|0;b[f>>1]=(b[f>>1]|0)+1<<16>>16}b[h>>1]=(b[h>>1]|0)+ -1<<16>>16;o=e[p>>1]|e[p+2>>1]<<16;f=e[q>>1]|e[q+2>>1]<<16;b[p>>1]=f;b[p+2>>1]=f>>>16;b[q>>1]=o;b[q+2>>1]=o>>>16;p=p+ -4|0;q=q+ -4|0;o=b[q>>1]|0;if(!((e[p>>1]|0)<(o&65535))){break}n=c[a+60>>2]|0}i=j;return}function ym(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=4400;if((c[b+108>>2]|0)!=0){e=c[b+112>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+112>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+108>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+108>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}}e=c[b+88>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+84>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+80>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+60>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}if((a[b+100>>0]|0)==0){i=d;return}e=c[b+92>>2]|0;Nb[c[c[e>>2]>>2]&255](e);b=c[b+92>>2]|0;if((b|0)==0){i=d;return}c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);i=d;return}function zm(a){a=a|0;var b=0;b=i;ym(a);i=b;return}function Am(a){a=a|0;var b=0;b=i;ym(a);if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Bm(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=4464;e=c[b+16>>2]|0;if((e|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;i=d;return}function Cm(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=4464;e=c[b+16>>2]|0;if((e|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}if((b|0)==0){i=d;return}}_x(b);i=d;return}function Dm(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Em(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 0}function Fm(a,b,c){a=a|0;b=b|0;c=c|0;return}function Gm(a){a=a|0;return c[a+16>>2]|0}function Hm(a){a=a|0;return c[a+16>>2]|0}function Im(a){a=a|0;return a+4|0}function Jm(a,b,c){a=a|0;b=b|0;c=c|0;return}function Km(a){a=a|0;return 0}function Lm(a,b,c){a=a|0;b=b|0;c=c|0;return}function Mm(a,b){a=a|0;b=b|0;return}function Nm(a,b,c){a=a|0;b=b|0;c=c|0;return}function Om(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Pm(a){a=a|0;return 1}function Qm(a,b){a=a|0;b=b|0;return}function Rm(a,b){a=a|0;b=b|0;return}function Sm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0;f=i;k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);o=k+ +g[a+28>>2];m=k+ +g[a+32>>2];k=k+ +g[a+36>>2];w=+P(+(+g[b>>2]));v=+P(+(+g[b+4>>2]));u=+P(+(+g[b+8>>2]));s=+P(+(+g[b+16>>2]));r=+P(+(+g[b+20>>2]));q=+P(+(+g[b+24>>2]));n=+P(+(+g[b+32>>2]));l=+P(+(+g[b+36>>2]));j=+P(+(+g[b+40>>2]));t=+g[b+48>>2];p=+g[b+52>>2];h=+g[b+56>>2];g[d>>2]=t-(o*w+m*v+k*u);g[d+4>>2]=p-(o*s+m*r+k*q);g[d+8>>2]=h-(o*n+m*l+k*j);g[d+12>>2]=0.0;g[e>>2]=o*w+m*v+k*u+t;g[e+4>>2]=o*s+m*r+k*q+p;g[e+8>>2]=o*n+m*l+k*j+h;g[e+12>>2]=0.0;i=f;return}function Tm(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0;e=i;k=+g[a+28>>2];h=+g[a+32>>2];l=+g[a+36>>2];j=+bc[c[(c[a>>2]|0)+48>>2]&15](a);f=+bc[c[(c[a>>2]|0)+48>>2]&15](a);l=(l+ +bc[c[(c[a>>2]|0)+48>>2]&15](a))*2.0;g[d>>2]=b/12.0*((h+f)*2.0*(h+f)*2.0+l*l);g[d+4>>2]=b/12.0*((k+j)*2.0*(k+j)*2.0+l*l);g[d+8>>2]=b/12.0*((k+j)*2.0*(k+j)*2.0+(h+f)*2.0*(h+f)*2.0);g[d+12>>2]=0.0;i=e;return}function Um(a){a=a|0;var b=0,d=0;b=i;c[a>>2]=14224;d=c[a+52>>2]|0;if((d|0)==0){i=b;return}Nb[c[c[d>>2]>>2]&255](d);a=c[a+52>>2]|0;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Vm(a){a=a|0;var b=0,d=0;b=i;c[a>>2]=14224;d=c[a+52>>2]|0;if((d|0)!=0){Nb[c[c[d>>2]>>2]&255](d);d=c[a+52>>2]|0;if((d|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[d+ -4>>2]|0)}if((a|0)==0){i=b;return}}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Wm(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;d=i;m=+bc[c[(c[a>>2]|0)+48>>2]&15](a);j=+bc[c[(c[a>>2]|0)+48>>2]&15](a);e=+bc[c[(c[a>>2]|0)+48>>2]&15](a);o=(m+ +g[a+28>>2])/+g[a+12>>2];l=(j+ +g[a+32>>2])/+g[a+16>>2];h=(e+ +g[a+36>>2])/+g[a+20>>2];n=+P(+(+g[b>>2]));k=+P(+(+g[b+4>>2]));f=+P(+(+g[b+8>>2]));g[a+12>>2]=n;g[a+16>>2]=k;g[a+20>>2]=f;g[a+24>>2]=0.0;g[a+28>>2]=o*n-m;g[a+32>>2]=l*k-j;g[a+36>>2]=h*f-e;g[a+40>>2]=0.0;i=d;return}function Xm(a){a=a|0;return 4832}function Ym(a,b){a=a|0;b=+b;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0;d=i;j=+bc[c[(c[a>>2]|0)+48>>2]&15](a);f=+bc[c[(c[a>>2]|0)+48>>2]&15](a);k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);j=j+ +g[a+28>>2];f=f+ +g[a+32>>2];k=k+ +g[a+36>>2];g[a+44>>2]=b;h=+bc[c[(c[a>>2]|0)+48>>2]&15](a);e=+bc[c[(c[a>>2]|0)+48>>2]&15](a);b=k- +bc[c[(c[a>>2]|0)+48>>2]&15](a);g[a+28>>2]=j-h;g[a+32>>2]=f-e;g[a+36>>2]=b;g[a+40>>2]=0.0;i=d;return}function Zm(a){a=a|0;return+(+g[a+44>>2])}function _m(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0;e=i;k=+g[b+28>>2];l=+g[b+32>>2];f=+g[b+36>>2];j=+bc[c[(c[b>>2]|0)+48>>2]&15](b);h=+bc[c[(c[b>>2]|0)+48>>2]&15](b);f=f+ +bc[c[(c[b>>2]|0)+48>>2]&15](b);h=+g[d+4>>2]>=0.0?l+h:-(l+h);f=+g[d+8>>2]>=0.0?f:-f;g[a>>2]=+g[d>>2]>=0.0?k+j:-(k+j);g[a+4>>2]=h;g[a+8>>2]=f;g[a+12>>2]=0.0;i=e;return}function $m(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0;f=+g[b+28>>2];e=+g[b+32>>2];e=+g[c+4>>2]>=0.0?e:-e;d=+g[b+36>>2];d=+g[c+8>>2]>=0.0?d:-d;g[a>>2]=+g[c>>2]>=0.0?f:-f;g[a+4>>2]=e;g[a+8>>2]=d;g[a+12>>2]=0.0;return}function an(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0;e=i;if((d|0)<=0){i=e;return}f=0;do{k=+g[a+28>>2];j=+g[a+32>>2];j=+g[b+(f<<4)+4>>2]>=0.0?j:-j;h=+g[a+36>>2];h=+g[b+(f<<4)+8>>2]>=0.0?h:-h;g[c+(f<<4)>>2]=+g[b+(f<<4)>>2]>=0.0?k:-k;g[c+(f<<4)+4>>2]=j;g[c+(f<<4)+8>>2]=h;g[c+(f<<4)+12>>2]=0.0;f=f+1|0}while((f|0)!=(d|0));i=e;return}function bn(a){a=a|0;return 6}function cn(a,b,c){a=a|0;b=b|0;c=c|0;a=i;switch(b|0){case 2:{g[c>>2]=0.0;g[c+4>>2]=1.0;g[c+8>>2]=0.0;g[c+12>>2]=0.0;i=a;return};case 5:{g[c>>2]=0.0;g[c+4>>2]=0.0;g[c+8>>2]=-1.0;g[c+12>>2]=0.0;i=a;return};case 4:{g[c>>2]=0.0;g[c+4>>2]=0.0;g[c+8>>2]=1.0;g[c+12>>2]=0.0;i=a;return};case 3:{g[c>>2]=0.0;g[c+4>>2]=-1.0;g[c+8>>2]=0.0;g[c+12>>2]=0.0;i=a;return};case 1:{g[c>>2]=-1.0;g[c+4>>2]=0.0;g[c+8>>2]=0.0;g[c+12>>2]=0.0;i=a;return};case 0:{g[c>>2]=1.0;g[c+4>>2]=0.0;g[c+8>>2]=0.0;g[c+12>>2]=0.0;i=a;return};default:{i=a;return}}}function dn(a){a=a|0;return 8}function en(a){a=a|0;return 12}function fn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;do{switch(b|0){case 0:{g=0;b=1;break};case 8:{g=4;b=5;break};case 4:{g=0;break};case 3:{g=2;break};case 10:{g=5;b=7;break};case 7:{g=3;break};case 11:{g=6;b=7;break};case 2:{g=1;b=3;break};case 1:{g=0;b=2;break};case 6:{g=2;break};case 9:{g=4;b=6;break};case 5:{g=1;break};default:{g=0;b=0}}}while(0);sc[c[(c[a>>2]|0)+108>>2]&63](a,g,d);sc[c[(c[a>>2]|0)+108>>2]&63](a,b,e);i=f;return}function gn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0;e=i;l=+g[a+28>>2];j=+g[a+32>>2];f=+g[a+36>>2];k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);h=+bc[c[(c[a>>2]|0)+48>>2]&15](a);f=f+ +bc[c[(c[a>>2]|0)+48>>2]&15](a);g[d>>2]=+(b&1^1|0)*(l+k)- +(b&1|0)*(l+k);g[d+4>>2]=+(b>>>1&1^1|0)*(j+h)- +(b>>>1&1|0)*(j+h);g[d+8>>2]=+(b>>>2&1^1|0)*f- +(b>>>2&1|0)*f;g[d+12>>2]=0.0;i=e;return}function hn(a){a=a|0;return 6}function jn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0.0,k=0.0;f=i;i=i+48|0;sc[c[(c[a>>2]|0)+124>>2]&63](a,f+32|0,e);k=+g[f+32>>2];j=+g[f+36>>2];h=+g[f+40>>2];g[b>>2]=k;g[b+4>>2]=j;g[b+8>>2]=h;g[b+12>>2]=0.0;e=c[(c[a>>2]|0)+64>>2]|0;g[f>>2]=-k;g[f+4>>2]=-j;g[f+8>>2]=-h;g[f+12>>2]=0.0;sc[e&63](f+16|0,a,f);c[d+0>>2]=c[f+16>>2];c[d+4>>2]=c[f+20>>2];c[d+8>>2]=c[f+24>>2];c[d+12>>2]=c[f+28>>2];i=f;return}function kn(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0.0,f=0.0,h=0.0,j=0.0;d=i;h=+g[a+28>>2];f=+g[a+32>>2];e=+g[a+36>>2];j=+g[b>>2];if(!(j<=h+c)){a=0;i=d;return a|0}if(!(j>=-h-c)){a=0;i=d;return a|0}h=+g[b+4>>2];if(!(h<=f+c)){a=0;i=d;return a|0}if(!(h>=-f-c)){a=0;i=d;return a|0}f=+g[b+8>>2];if(!(f<=e+c)){a=0;i=d;return a|0}a=f>=-e-c;i=d;return a|0}function ln(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,h=0.0;d=i;e=+g[a+28>>2];f=+g[a+32>>2];h=+g[a+36>>2];switch(c|0){case 4:{g[b>>2]=0.0;g[b+4>>2]=0.0;g[b+8>>2]=1.0;g[b+12>>2]=-h;i=d;return};case 1:{g[b>>2]=-1.0;g[b+4>>2]=0.0;g[b+8>>2]=0.0;g[b+12>>2]=-e;i=d;return};case 0:{g[b>>2]=1.0;g[b+4>>2]=0.0;g[b+8>>2]=0.0;g[b+12>>2]=-e;i=d;return};case 5:{g[b>>2]=0.0;g[b+4>>2]=0.0;g[b+8>>2]=-1.0;g[b+12>>2]=-h;i=d;return};case 3:{g[b>>2]=0.0;g[b+4>>2]=-1.0;g[b+8>>2]=0.0;g[b+12>>2]=-f;i=d;return};case 2:{g[b>>2]=0.0;g[b+4>>2]=1.0;g[b+8>>2]=0.0;g[b+12>>2]=-f;i=d;return};default:{i=d;return}}}function mn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0;h=i;i=i+48|0;c[b+8>>2]=0;g[b+12>>2]=0.0;c[b>>2]=15584;c[b+48>>2]=d;c[b+4>>2]=21;if(Rb[c[(c[d>>2]|0)+40>>2]&127](d)|0){sc[c[(c[d>>2]|0)+48>>2]&63](d,b+16|0,b+32|0)}else{c[h+32>>2]=0;c[h+36>>2]=0;c[h+40>>2]=0;c[h+44>>2]=0;g[h+32>>2]=1.0;sc[c[(c[b>>2]|0)+68>>2]&63](h+16|0,b,h+32|0);g[b+32>>2]=+g[h+16>>2]+ +g[b+12>>2];g[h+32>>2]=-1.0;sc[c[(c[b>>2]|0)+68>>2]&63](h,b,h+32|0);c[h+16>>2]=c[h+0>>2];c[h+20>>2]=c[h+4>>2];c[h+24>>2]=c[h+8>>2];c[h+28>>2]=c[h+12>>2];g[b+16>>2]=+g[h+16>>2]- +g[b+12>>2];c[h+32>>2]=0;c[h+36>>2]=0;c[h+40>>2]=0;c[h+44>>2]=0;g[h+36>>2]=1.0;sc[c[(c[b>>2]|0)+68>>2]&63](h+16|0,b,h+32|0);g[b+36>>2]=+g[h+20>>2]+ +g[b+12>>2];g[h+36>>2]=-1.0;sc[c[(c[b>>2]|0)+68>>2]&63](h,b,h+32|0);c[h+16>>2]=c[h+0>>2];c[h+20>>2]=c[h+4>>2];c[h+24>>2]=c[h+8>>2];c[h+28>>2]=c[h+12>>2];g[b+20>>2]=+g[h+20>>2]- +g[b+12>>2];c[h+32>>2]=0;c[h+36>>2]=0;c[h+40>>2]=0;c[h+44>>2]=0;g[h+40>>2]=1.0;sc[c[(c[b>>2]|0)+68>>2]&63](h+16|0,b,h+32|0);g[b+40>>2]=+g[h+24>>2]+ +g[b+12>>2];g[h+40>>2]=-1.0;sc[c[(c[b>>2]|0)+68>>2]&63](h,b,h+32|0);c[h+16>>2]=c[h+0>>2];c[h+20>>2]=c[h+4>>2];c[h+24>>2]=c[h+8>>2];c[h+28>>2]=c[h+12>>2];g[b+24>>2]=+g[h+24>>2]- +g[b+12>>2]}c[b>>2]=4848;c[b+52>>2]=0;c[b+56>>2]=0;a[b+60>>0]=e&1;a[b+61>>0]=0;c[b+4>>2]=21;if(!f){i=h;return}c[4546]=(c[4546]|0)+1;e=Zx(191)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}c[e+52>>2]=282;a[e+60>>0]=0;a[e+80>>0]=1;c[e+76>>2]=0;c[e+68>>2]=0;c[e+72>>2]=0;a[e+100>>0]=1;c[e+96>>2]=0;c[e+88>>2]=0;c[e+92>>2]=0;a[e+120>>0]=1;c[e+116>>2]=0;c[e+108>>2]=0;c[e+112>>2]=0;a[e+140>>0]=1;c[e+136>>2]=0;c[e+128>>2]=0;c[e+132>>2]=0;c[e+144>>2]=0;a[e+164>>0]=1;c[e+160>>2]=0;c[e+152>>2]=0;c[e+156>>2]=0;c[e+168>>2]=0;g[e+4>>2]=-3.4028234663852886e+38;g[e+8>>2]=-3.4028234663852886e+38;g[e+12>>2]=-3.4028234663852886e+38;g[e+16>>2]=0.0;g[e+20>>2]=3.4028234663852886e+38;g[e+24>>2]=3.4028234663852886e+38;g[e+28>>2]=3.4028234663852886e+38;g[e+32>>2]=0.0;c[e>>2]=13368;c[b+52>>2]=e;Ys(e,c[b+48>>2]|0,(a[b+60>>0]|0)!=0,b+16|0,b+32|0);a[b+61>>0]=1;i=h;return}function nn(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=4848;if((a[b+61>>0]|0)!=0){e=c[b+52>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+52>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}if((b|0)==0){i=d;return}}c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);i=d;return}function on(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=4848;if((a[b+61>>0]|0)==0){i=d;return}e=c[b+52>>2]|0;Nb[c[c[e>>2]>>2]&255](e);b=c[b+52>>2]|0;if((b|0)==0){i=d;return}c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);i=d;return}function pn(d,f,h,j){d=d|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0;k=i;i=i+80|0;w=c[d+48>>2]|0;c[k>>2]=5032;c[k+4>>2]=w;c[k+8>>2]=f;f=c[d+52>>2]|0;if((a[f+60>>0]|0)==0){n=c[f+56>>2]|0;a:do{if((n|0)>0){l=0;m=c[f+96>>2]|0;d=1;while(1){if(!(+g[h>>2]>+g[m+16>>2])?!(+g[j>>2]<+g[m>>2]):0){o=1}else{o=0}if(!(!(+g[h+8>>2]>+g[m+24>>2])?!(+g[j+8>>2]<+g[m+8>>2]):0)){o=0}if(!(+g[h+4>>2]>+g[m+20>>2])?!(+g[j+4>>2]<+g[m+4>>2]):0){q=c[m+32>>2]|0;if((q|0)==-1&o){sc[c[(c[k>>2]|0)+8>>2]&63](k,c[m+36>>2]|0,c[m+40>>2]|0);n=c[f+56>>2]|0;o=44}else{p=q;q=(q|0)==-1;r=o;o=43}}else{q=c[m+32>>2]|0;p=q;q=(q|0)==-1;r=0;o=43}if((o|0)==43){o=0;if(r|q){o=44}else{l=p+l|0;m=m+(p<<6)|0}}if((o|0)==44){l=l+1|0;m=m+64|0}if((l|0)>=(n|0)){break a}d=d+1|0}}else{d=0}}while(0);if((c[3610]|0)>=(d|0)){i=k;return}c[3610]=d;i=k;return}z=+g[h>>2];D=+g[h+4>>2];H=+g[h+8>>2];G=+g[f+4>>2];z=z>2];D=D>2];H=H>2];E=+g[f+24>>2];A=+g[f+28>>2];F=+g[f+36>>2];B=+g[f+40>>2];x=+g[f+44>>2];h=~~(((I>1]=h;l=~~(((E>1]=l;d=~~(((A>1]=d;H=+g[j>>2];D=+g[j+4>>2];z=+g[j+8>>2];H=H>1]=j;n=(~~(((E>1]=n;m=(~~(((A>1]=m;o=c[f+144>>2]|0;if((o|0)==0){o=c[f+56>>2]|0;b:do{if((o|0)>0){p=0;q=c[f+136>>2]|0;f=1;while(1){s=((j&65535)>=(e[q>>1]|0)?(h&65535)<=(e[q+6>>1]|0):0)&(d&65535)<=(e[q+10>>1]|0)&(m&65535)>=(e[q+4>>1]|0)&(l&65535)<=(e[q+8>>1]|0)&(n&65535)>=(e[q+2>>1]|0);r=q+12|0;t=c[r>>2]|0;if((t|0)>-1&s){sc[c[(c[k>>2]|0)+8>>2]&63](k,t>>21,t&2097151)}if(s|(t|0)>-1){p=p+1|0;q=q+16|0}else{w=c[r>>2]|0;p=p-w|0;q=q+(0-w<<4)|0}if((p|0)>=(o|0)){break b}f=f+1|0}}else{f=0}}while(0);if((c[3610]|0)>=(f|0)){i=k;return}c[3610]=f;i=k;return}else if((o|0)==1){if((c[f+152>>2]|0)<=0){i=k;return}o=0;do{q=c[f+160>>2]|0;if(((j&65535)>=(e[q+(o<<5)>>1]|0)?(h&65535)<=(e[q+(o<<5)+6>>1]|0):0)&(d&65535)<=(e[q+(o<<5)+10>>1]|0)&(m&65535)>=(e[q+(o<<5)+4>>1]|0)&(l&65535)<=(e[q+(o<<5)+8>>1]|0)&(n&65535)>=(e[q+(o<<5)+2>>1]|0)){p=c[q+(o<<5)+12>>2]|0;r=c[q+(o<<5)+16>>2]|0;c:do{if((r|0)>0){s=p;t=(c[f+136>>2]|0)+(p<<4)|0;q=1;while(1){w=((j&65535)>=(e[t>>1]|0)?(h&65535)<=(e[t+6>>1]|0):0)&(d&65535)<=(e[t+10>>1]|0)&(m&65535)>=(e[t+4>>1]|0)&(l&65535)<=(e[t+8>>1]|0)&(n&65535)>=(e[t+2>>1]|0);u=t+12|0;v=c[u>>2]|0;if((v|0)>-1&w){sc[c[(c[k>>2]|0)+8>>2]&63](k,v>>21,v&2097151)}if(w|(v|0)>-1){s=s+1|0;t=t+16|0}else{w=c[u>>2]|0;s=s-w|0;t=t+(0-w<<4)|0}if((s|0)>=(r+p|0)){break c}q=q+1|0}}else{q=0}}while(0);if((c[3610]|0)<(q|0)){c[3610]=q}}o=o+1|0}while((o|0)<(c[f+152>>2]|0));i=k;return}else if((o|0)==2){Ut(c[f+136>>2]|0,k,k+66|0,k+60|0);i=k;return}else{i=k;return}}function qn(b,d){b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0;e=i;l=Rb[c[(c[b>>2]|0)+28>>2]&127](b)|0;k=+g[l>>2]- +g[d>>2];j=+g[l+4>>2]- +g[d+4>>2];h=+g[l+8>>2]- +g[d+8>>2];if(!(k*k+j*j+h*h>1.1920928955078125e-7)){i=e;return}ev(b,d);if((a[b+61>>0]|0)!=0?(f=c[b+52>>2]|0,Nb[c[c[f>>2]>>2]&255](f),f=c[b+52>>2]|0,(f|0)!=0):0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[4546]=(c[4546]|0)+1;f=Zx(191)|0;if((f|0)==0){f=0}else{c[(f+19&-16)+ -4>>2]=f;f=f+19&-16}c[f+52>>2]=282;a[f+60>>0]=0;a[f+80>>0]=1;c[f+76>>2]=0;c[f+68>>2]=0;c[f+72>>2]=0;a[f+100>>0]=1;c[f+96>>2]=0;c[f+88>>2]=0;c[f+92>>2]=0;a[f+120>>0]=1;c[f+116>>2]=0;c[f+108>>2]=0;c[f+112>>2]=0;a[f+140>>0]=1;c[f+136>>2]=0;c[f+128>>2]=0;c[f+132>>2]=0;c[f+144>>2]=0;a[f+164>>0]=1;c[f+160>>2]=0;c[f+152>>2]=0;c[f+156>>2]=0;c[f+168>>2]=0;g[f+4>>2]=-3.4028234663852886e+38;g[f+8>>2]=-3.4028234663852886e+38;g[f+12>>2]=-3.4028234663852886e+38;g[f+16>>2]=0.0;g[f+20>>2]=3.4028234663852886e+38;g[f+24>>2]=3.4028234663852886e+38;g[f+28>>2]=3.4028234663852886e+38;g[f+32>>2]=0.0;c[f>>2]=13368;c[b+52>>2]=f;Ys(f,c[b+48>>2]|0,(a[b+60>>0]|0)!=0,b+16|0,b+32|0);a[b+61>>0]=1;i=e;return}function rn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0;e=i;h=hc[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;j=hc[c[(c[d>>2]|0)+28>>2]&31](d,h)|0;c[b>>2]=j;if((j|0)!=0){Pb[c[(c[d>>2]|0)+48>>2]&127](d,h)}c[b+4>>2]=c[a+4>>2];j=c[a+48>>2]|0;_b[c[(c[j>>2]|0)+56>>2]&31](j,b+12|0,d)|0;g[b+52>>2]=+g[a+12>>2];do{if((c[a+52>>2]|0)!=0?((Rb[c[(c[d>>2]|0)+52>>2]&127](d)|0)&1|0)==0:0){h=hc[c[(c[d>>2]|0)+24>>2]&31](d,c[a+52>>2]|0)|0;if((h|0)==0){c[b+40>>2]=hc[c[(c[d>>2]|0)+28>>2]&31](d,c[a+52>>2]|0)|0;c[b+44>>2]=0;h=c[a+52>>2]|0;h=Rb[c[(c[h>>2]|0)+12>>2]&127](h)|0;h=_b[c[(c[d>>2]|0)+16>>2]&31](d,h,1)|0;j=c[a+52>>2]|0;j=_b[c[(c[j>>2]|0)+16>>2]&31](j,c[h+8>>2]|0,d)|0;Lb[c[(c[d>>2]|0)+20>>2]&31](d,h,j,1213612625,c[a+52>>2]|0);break}else{c[b+40>>2]=h;c[b+44>>2]=0;break}}else{f=8}}while(0);if((f|0)==8){c[b+40>>2]=0;c[b+44>>2]=0}if((c[a+56>>2]|0)!=0?((Rb[c[(c[d>>2]|0)+52>>2]&127](d)|0)&2|0)==0:0){f=hc[c[(c[d>>2]|0)+24>>2]&31](d,c[a+56>>2]|0)|0;if((f|0)==0){c[b+48>>2]=hc[c[(c[d>>2]|0)+28>>2]&31](d,c[a+56>>2]|0)|0;h=c[a+56>>2]|0;h=Rb[c[(c[h>>2]|0)+8>>2]&127](h)|0;h=_b[c[(c[d>>2]|0)+16>>2]&31](d,h,1)|0;j=c[a+56>>2]|0;j=_b[c[(c[j>>2]|0)+12>>2]&31](j,c[h+8>>2]|0,d)|0;Lb[c[(c[d>>2]|0)+20>>2]&31](d,h,j,1346456916,c[a+56>>2]|0);i=e;return 4936}else{c[b+48>>2]=f;i=e;return 4936}}c[b+48>>2]=0;i=e;return 4936}function sn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=c[a+52>>2]|0;if((e|0)==0){i=d;return}f=Rb[c[(c[e>>2]|0)+12>>2]&127](e)|0;f=_b[c[(c[b>>2]|0)+16>>2]&31](b,f,1)|0;e=c[a+52>>2]|0;e=_b[c[(c[e>>2]|0)+16>>2]&31](e,c[f+8>>2]|0,b)|0;Lb[c[(c[b>>2]|0)+20>>2]&31](b,f,e,1213612625,c[a+52>>2]|0);i=d;return}function tn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=c[a+56>>2]|0;if((e|0)==0){i=d;return}f=Rb[c[(c[e>>2]|0)+8>>2]&127](e)|0;f=_b[c[(c[b>>2]|0)+16>>2]&31](b,f,1)|0;e=c[a+56>>2]|0;e=_b[c[(c[e>>2]|0)+12>>2]&31](e,c[f+8>>2]|0,b)|0;Lb[c[(c[b>>2]|0)+20>>2]&31](b,f,e,1346456916,c[a+56>>2]|0);i=d;return}function un(a){a=a|0;return 5008}function vn(a,b){a=a|0;b=+b;g[a+12>>2]=b;return}function wn(a){a=a|0;return+(+g[a+12>>2])}function xn(a){a=a|0;return 60}function yn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;sc[c[(c[b>>2]|0)+68>>2]&63](a,b,d);i=e;return}function zn(a){a=a|0;return}function An(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Bn(a,b,f){a=a|0;b=b|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0;o=i;i=i+32|0;l=c[a+4>>2]|0;gc[c[(c[l>>2]|0)+16>>2]&3](l,o+28|0,o+24|0,o+20|0,o+16|0,o+12|0,o+8|0,o+4|0,o,b);l=c[o+12>>2]|0;m=aa(c[o+8>>2]|0,f)|0;k=c[a+4>>2]|0;n=c[o>>2]|0;j=2;while(1){if((n|0)==2){q=c[l+m+(j<<2)>>2]|0}else if((n|0)==3){q=e[l+m+(j<<1)>>1]|0}else{q=d[l+(j+m)>>0]|0}p=c[o+28>>2]|0;q=aa(c[o+16>>2]|0,q)|0;if((c[o+20>>2]|0)==0){s=+g[p+(q+4)>>2]*+g[k+8>>2];r=+g[p+(q+8)>>2]*+g[k+12>>2];g[a+(j<<4)+12>>2]=+g[p+q>>2]*+g[k+4>>2];g[a+(j<<4)+16>>2]=s;g[a+(j<<4)+20>>2]=r;g[a+(j<<4)+24>>2]=0.0}else{r=+h[p+(q+8)>>3]*+g[k+8>>2];s=+h[p+(q+16)>>3]*+g[k+12>>2];g[a+(j<<4)+12>>2]=+h[p+q>>3]*+g[k+4>>2];g[a+(j<<4)+16>>2]=r;g[a+(j<<4)+20>>2]=s;g[a+(j<<4)+24>>2]=0.0}if((j|0)>0){j=j+ -1|0}else{break}}q=c[a+8>>2]|0;wc[c[(c[q>>2]|0)+8>>2]&63](q,a+12|0,b,f);q=c[a+4>>2]|0;Pb[c[(c[q>>2]|0)+24>>2]&127](q,b);i=o;return}function Cn(a){a=a|0;return}function Dn(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function En(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0;n=i;i=i+80|0;l=c[a+4>>2]|0;gc[c[(c[l>>2]|0)+16>>2]&3](l,n+28|0,n+24|0,n+20|0,n+16|0,n+12|0,n+8|0,n+4|0,n,b);l=c[n+12>>2]|0;k=aa(c[n+8>>2]|0,d)|0;f=c[a+4>>2]|0;m=(c[n+20>>2]|0)==0;j=c[n+28>>2]|0;if((c[n>>2]|0)!=3){o=c[n+16>>2]|0;p=aa(o,c[l+(k+8)>>2]|0)|0;if(m){s=+g[j+(p+4)>>2]*+g[f+8>>2];r=+g[j+(p+8)>>2]*+g[f+12>>2];g[n+64>>2]=+g[j+p>>2]*+g[f+4>>2];g[n+68>>2]=s;g[n+72>>2]=r;g[n+76>>2]=0.0;q=aa(o,c[l+(k+4)>>2]|0)|0;r=+g[j+(q+4)>>2]*+g[f+8>>2];s=+g[j+(q+8)>>2]*+g[f+12>>2];g[n+48>>2]=+g[j+q>>2]*+g[f+4>>2];g[n+52>>2]=r;g[n+56>>2]=s;g[n+60>>2]=0.0;q=aa(o,c[l+k>>2]|0)|0;s=+g[j+(q+4)>>2]*+g[f+8>>2];r=+g[j+(q+8)>>2]*+g[f+12>>2];g[n+32>>2]=+g[j+q>>2]*+g[f+4>>2];g[n+36>>2]=s;g[n+40>>2]=r;g[n+44>>2]=0.0;q=a+8|0;q=c[q>>2]|0;p=c[q>>2]|0;p=p+8|0;p=c[p>>2]|0;wc[p&63](q,n+32|0,b,d);q=c[a+4>>2]|0;p=c[q>>2]|0;p=p+24|0;p=c[p>>2]|0;Pb[p&127](q,b);i=n;return}else{r=+h[j+(p+8)>>3]*+g[f+8>>2];s=+h[j+(p+16)>>3]*+g[f+12>>2];g[n+64>>2]=+h[j+p>>3]*+g[f+4>>2];g[n+68>>2]=r;g[n+72>>2]=s;g[n+76>>2]=0.0;q=aa(o,c[l+(k+4)>>2]|0)|0;s=+h[j+(q+8)>>3]*+g[f+8>>2];r=+h[j+(q+16)>>3]*+g[f+12>>2];g[n+48>>2]=+h[j+q>>3]*+g[f+4>>2];g[n+52>>2]=s;g[n+56>>2]=r;g[n+60>>2]=0.0;q=aa(o,c[l+k>>2]|0)|0;r=+h[j+(q+8)>>3]*+g[f+8>>2];s=+h[j+(q+16)>>3]*+g[f+12>>2];g[n+32>>2]=+h[j+q>>3]*+g[f+4>>2];g[n+36>>2]=r;g[n+40>>2]=s;g[n+44>>2]=0.0;q=a+8|0;q=c[q>>2]|0;p=c[q>>2]|0;p=p+8|0;p=c[p>>2]|0;wc[p&63](q,n+32|0,b,d);q=c[a+4>>2]|0;p=c[q>>2]|0;p=p+24|0;p=c[p>>2]|0;Pb[p&127](q,b);i=n;return}}o=c[n+16>>2]|0;p=2;while(1){q=aa(o,e[l+k+(p<<1)>>1]|0)|0;if(m){r=+g[j+(q+4)>>2]*+g[f+8>>2];s=+g[j+(q+8)>>2]*+g[f+12>>2];g[n+32+(p<<4)>>2]=+g[j+q>>2]*+g[f+4>>2];g[n+32+(p<<4)+4>>2]=r;g[n+32+(p<<4)+8>>2]=s;g[n+32+(p<<4)+12>>2]=0.0}else{r=+h[j+(q+8)>>3]*+g[f+8>>2];s=+h[j+(q+16)>>3]*+g[f+12>>2];g[n+32+(p<<4)>>2]=+h[j+q>>3]*+g[f+4>>2];g[n+32+(p<<4)+4>>2]=r;g[n+32+(p<<4)+8>>2]=s;g[n+32+(p<<4)+12>>2]=0.0}if((p|0)>0){p=p+ -1|0}else{break}}q=a+8|0;q=c[q>>2]|0;p=c[q>>2]|0;p=p+8|0;p=c[p>>2]|0;wc[p&63](q,n+32|0,b,d);q=c[a+4>>2]|0;p=c[q>>2]|0;p=p+24|0;p=c[p>>2]|0;Pb[p&127](q,b);i=n;return}function Fn(a){a=a|0;return}function Gn(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return} function wq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0,L=0,M=0,N=0,O=0;h=i;i=i+288|0;if((c[b+16>>2]|0)==0){K=c[b+12>>2]|0;b=c[b+20>>2]|0;n=+g[d>>2];q=+g[d+4>>2];u=+g[d+8>>2];k=+g[d+16>>2];r=+g[d+20>>2];j=+g[d+24>>2];m=+g[d+32>>2];s=+g[d+36>>2];l=+g[d+40>>2];F=+g[d+48>>2];E=+g[d+52>>2];D=+g[d+56>>2];J=+g[e>>2];I=+g[e+16>>2];y=+g[e+32>>2];H=+g[e+4>>2];G=+g[e+20>>2];w=+g[e+36>>2];v=+g[e+8>>2];z=+g[e+24>>2];x=+g[e+40>>2];C=-+g[e+48>>2];B=-+g[e+52>>2];p=-+g[e+56>>2];d=c[(c[K>>2]|0)+64>>2]|0;A=-+g[b+48>>2];t=-+g[b+52>>2];o=-+g[b+56>>2];g[h+32>>2]=(n*J+k*I+m*y)*A+(n*H+k*G+m*w)*t+(n*v+k*z+m*x)*o;g[h+36>>2]=(q*J+r*I+s*y)*A+(q*H+r*G+s*w)*t+(q*v+r*z+s*x)*o;g[h+40>>2]=(u*J+j*I+l*y)*A+(u*H+j*G+l*w)*t+(u*v+j*z+l*x)*o;g[h+44>>2]=0.0;sc[d&63](h+48|0,K,h+32|0);o=+g[h+48>>2];t=+g[h+52>>2];A=+g[h+56>>2];y=F*J+E*I+D*y+(J*C+I*B+y*p)+((n*J+k*I+m*y)*o+(q*J+r*I+s*y)*t+(u*J+j*I+l*y)*A);w=F*H+E*G+D*w+(H*C+G*B+w*p)+((n*H+k*G+m*w)*o+(q*H+r*G+s*w)*t+(u*H+j*G+l*w)*A);A=F*v+E*z+D*x+(v*C+z*B+x*p)+((n*v+k*z+m*x)*o+(q*v+r*z+s*x)*t+(u*v+j*z+l*x)*A);x=+g[b+48>>2];l=+g[b+52>>2];z=+g[b+56>>2];j=z*A+(x*y+l*w)- +g[b+64>>2];v=+g[e>>2];u=+g[e+4>>2];t=+g[e+8>>2];s=+g[e+16>>2];r=+g[e+20>>2];q=+g[e+24>>2];o=+g[e+32>>2];m=+g[e+36>>2];k=+g[e+40>>2];n=s*(y-x*j)+(w-l*j)*r+(A-z*j)*q+ +g[e+52>>2];p=(y-x*j)*o+(w-l*j)*m+(A-z*j)*k+ +g[e+56>>2];g[h+16>>2]=t*(A-z*j)+(v*(y-x*j)+u*(w-l*j))+ +g[e+48>>2];g[h+20>>2]=n;g[h+24>>2]=p;g[h+28>>2]=0.0;p=+g[b+48>>2];n=+g[b+52>>2];l=+g[b+56>>2];g[h>>2]=v*p+u*n+t*l;g[h+4>>2]=p*s+n*r+l*q;g[h+8>>2]=p*o+n*m+l*k;g[h+12>>2]=0.0;rc[c[(c[f>>2]|0)+16>>2]&15](f,h,h+16|0,j);i=h;return}else{N=c[b+4>>2]|0;a[N+312>>0]=0;c[N>>2]=0;a[N+356>>0]=1;g[N+292>>2]=999999984306749400.0;g[N+296>>2]=999999984306749400.0;g[N+300>>2]=999999984306749400.0;g[N+304>>2]=0.0;c[N+336>>2]=0;c[N+340>>2]=0;c[N+344>>2]=0;c[N+348>>2]=0;a[N+352>>0]=0;a[N+332>>0]=a[N+332>>0]&-16;N=c[b+12>>2]|0;M=c[b+16>>2]|0;L=c[N+4>>2]|0;K=c[M+4>>2]|0;I=+bc[c[(c[N>>2]|0)+48>>2]&15](N);O=c[b+16>>2]|0;J=+bc[c[(c[O>>2]|0)+48>>2]&15](O);O=c[b+4>>2]|0;b=c[b+8>>2]|0;c[h+200>>2]=11880;g[h+204>>2]=0.0;g[h+208>>2]=1.0;g[h+212>>2]=0.0;g[h+216>>2]=0.0;c[h+220>>2]=b;c[h+224>>2]=O;c[h+228>>2]=N;c[h+232>>2]=M;c[h+236>>2]=L;c[h+240>>2]=K;g[h+244>>2]=I;g[h+248>>2]=J;a[h+252>>0]=0;c[h+260>>2]=-1;c[h+272>>2]=1;c[h+276>>2]=1;g[h+192>>2]=999999984306749400.0;c[h+64>>2]=c[d+0>>2];c[h+68>>2]=c[d+4>>2];c[h+72>>2]=c[d+8>>2];c[h+76>>2]=c[d+12>>2];c[h+80>>2]=c[d+16>>2];c[h+84>>2]=c[d+20>>2];c[h+88>>2]=c[d+24>>2];c[h+92>>2]=c[d+28>>2];c[h+96>>2]=c[d+32>>2];c[h+100>>2]=c[d+36>>2];c[h+104>>2]=c[d+40>>2];c[h+108>>2]=c[d+44>>2];c[h+112>>2]=c[d+48>>2];c[h+116>>2]=c[d+52>>2];c[h+120>>2]=c[d+56>>2];c[h+124>>2]=c[d+60>>2];c[h+128>>2]=c[e+0>>2];c[h+132>>2]=c[e+4>>2];c[h+136>>2]=c[e+8>>2];c[h+140>>2]=c[e+12>>2];c[h+144>>2]=c[e+16>>2];c[h+148>>2]=c[e+20>>2];c[h+152>>2]=c[e+24>>2];c[h+156>>2]=c[e+28>>2];c[h+160>>2]=c[e+32>>2];c[h+164>>2]=c[e+36>>2];c[h+168>>2]=c[e+40>>2];c[h+172>>2]=c[e+44>>2];c[h+176>>2]=c[e+48>>2];c[h+180>>2]=c[e+52>>2];c[h+184>>2]=c[e+56>>2];c[h+188>>2]=c[e+60>>2];Js(h+200|0,h+64|0,f,0,0);i=h;return}}function xq(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0;k=i;i=i+304|0;l=+g[e+48>>2]- +g[d+48>>2];n=+g[e+52>>2]- +g[d+52>>2];m=+g[e+56>>2]- +g[d+56>>2];Qj(d,e,k+256|0,k+192|0);t=+g[k+192>>2];s=+g[k+256>>2]*t;r=t*+g[k+260>>2];t=t*+g[k+264>>2];g[k+176>>2]=s;g[k+180>>2]=r;g[k+184>>2]=t;g[k+188>>2]=0.0;o=+g[h+48>>2]- +g[f+48>>2];q=+g[h+52>>2]- +g[f+52>>2];p=+g[h+56>>2]- +g[f+56>>2];Qj(f,h,k+256|0,k+192|0);v=+g[k+192>>2];u=+g[k+256>>2]*v;w=v*+g[k+260>>2];v=v*+g[k+264>>2];g[k+160>>2]=u;g[k+164>>2]=w;g[k+168>>2]=v;g[k+172>>2]=0.0;h=c[b+12>>2]|0;x=+bc[c[(c[h>>2]|0)+16>>2]&15](h);h=c[b+16>>2]|0;if((h|0)==0){y=0.0}else{y=+bc[c[(c[h>>2]|0)+16>>2]&15](h)}s=x*+Q(+(s*s+r*r+t*t))+y*+Q(+(u*u+w*w+v*v));if(s+ +Q(+((o-l)*(o-l)+(q-n)*(q-n)+(p-m)*(p-m)))==0.0){e=0;i=k;return e|0}c[k+256>>2]=9368;g[k+292>>2]=999999984306749400.0;a[k+296>>0]=0;wq(b,d,f,k+256|0);e=(a[k+296>>0]|0)==0;c[k+144>>2]=c[k+276>>2];c[k+148>>2]=c[k+280>>2];c[k+152>>2]=c[k+284>>2];c[k+156>>2]=c[k+288>>2];if(e){e=0;i=k;return e|0}v=+g[k+260>>2];w=+g[k+264>>2];x=+g[k+268>>2];if(s+((o-l)*v+(q-n)*w+(p-m)*x)<=1.1920928955078125e-7){e=0;i=k;return e|0}u=+g[k+272>>2];t=+g[k+292>>2]+ +g[j+172>>2];r=0.0;h=0;while(1){if(!(t>.0010000000474974513)){d=18;break}e=c[j+168>>2]|0;if((e|0)!=0){z=c[(c[e>>2]|0)+20>>2]|0;g[k+128>>2]=1.0;g[k+132>>2]=1.0;g[k+136>>2]=1.0;g[k+140>>2]=0.0;Sb[z&3](e,k+144|0,.20000000298023224,k+128|0)}u=s+((p-m)*x+((q-n)*w+(o-l)*v));if(u<=1.1920928955078125e-7){j=0;d=19;break}v=r+t/u;if(!(!(v<0.0)&!(v>1.0)&!(v<=r))){j=0;d=19;break}Hj(d,l,n,m,k+176|0,v,k+192|0);Hj(f,o,q,p,k+160|0,v,k+64|0);e=c[j+168>>2]|0;if((e|0)!=0){z=c[(c[e>>2]|0)+20>>2]|0;g[k+48>>2]=1.0;g[k+52>>2]=0.0;g[k+56>>2]=0.0;g[k+60>>2]=0.0;Sb[z&3](e,k+240|0,.20000000298023224,k+48|0)}Mb[c[c[j>>2]>>2]&31](j,v);c[k>>2]=9368;g[k+36>>2]=999999984306749400.0;a[k+40>>0]=0;wq(b,k+192|0,k+64|0,k);if((a[k+40>>0]|0)==0){d=16;break}t=+g[k+36>>2]+ +g[j+172>>2];c[k+144>>2]=c[k+20>>2];c[k+148>>2]=c[k+24>>2];c[k+152>>2]=c[k+28>>2];c[k+156>>2]=c[k+32>>2];e=h+1|0;if((h|0)>63){d=17;break}else{u=+g[k+16>>2];r=v;v=+g[k+4>>2];w=+g[k+8>>2];x=+g[k+12>>2];h=e}}if((d|0)==16){sc[c[(c[j>>2]|0)+8>>2]&63](j,-1,h);z=0;i=k;return z|0}else if((d|0)==17){sc[c[(c[j>>2]|0)+8>>2]&63](j,-2,e);z=0;i=k;return z|0}else if((d|0)==18){g[j+164>>2]=r;g[j+132>>2]=v;g[j+136>>2]=w;g[j+140>>2]=x;g[j+144>>2]=u;c[j+148>>2]=c[k+144>>2];c[j+152>>2]=c[k+148>>2];c[j+156>>2]=c[k+152>>2];c[j+160>>2]=c[k+156>>2];z=1;i=k;return z|0}else if((d|0)==19){i=k;return j|0}return 0}function yq(a){a=a|0;return}function zq(a){a=a|0;return}function Aq(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Bq(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Cq(a,b,c){a=a|0;b=b|0;c=c|0;return}function Dq(a,b,c){a=a|0;b=b|0;c=c|0;return}function Eq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0;h=i;if(!(+g[b+36>>2]>f)){i=h;return}a[b+40>>0]=1;c[b+4>>2]=c[d+0>>2];c[b+8>>2]=c[d+4>>2];c[b+12>>2]=c[d+8>>2];c[b+16>>2]=c[d+12>>2];c[b+20>>2]=c[e+0>>2];c[b+24>>2]=c[e+4>>2];c[b+28>>2]=c[e+8>>2];c[b+32>>2]=c[e+12>>2];g[b+36>>2]=f;i=h;return}function Fq(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;e=+P(+(+g[b>>2]));d=+P(+(+g[b+4>>2]));c=+P(+(+g[b+8>>2]));g[a+12>>2]=e;g[a+16>>2]=d;g[a+20>>2]=c;g[a+24>>2]=0.0;return}function Gq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0;f=i;i=i+96|0;h=+bc[c[(c[a>>2]|0)+48>>2]&15](a);j=0;do{q=f+80+(j<<2)|0;c[f+80>>2]=0;c[f+84>>2]=0;c[f+88>>2]=0;c[f+92>>2]=0;g[q>>2]=1.0;k=c[(c[a>>2]|0)+64>>2]|0;l=+g[f+80>>2];m=+g[f+84>>2];n=+g[f+88>>2];o=l*+g[b+4>>2]+m*+g[b+20>>2]+n*+g[b+36>>2];p=l*+g[b+8>>2]+m*+g[b+24>>2]+n*+g[b+40>>2];g[f+48>>2]=+g[b>>2]*l+ +g[b+16>>2]*m+ +g[b+32>>2]*n;g[f+52>>2]=o;g[f+56>>2]=p;g[f+60>>2]=0.0;sc[k&63](f+64|0,a,f+48|0);p=+g[f+64>>2];o=+g[f+68>>2];n=+g[f+72>>2];m=p*+g[b+16>>2]+o*+g[b+20>>2]+n*+g[b+24>>2]+ +g[b+52>>2];l=p*+g[b+32>>2]+o*+g[b+36>>2]+n*+g[b+40>>2]+ +g[b+56>>2];g[f+32>>2]=p*+g[b>>2]+o*+g[b+4>>2]+n*+g[b+8>>2]+ +g[b+48>>2];g[f+36>>2]=m;g[f+40>>2]=l;g[f+44>>2]=0.0;k=f+32+(j<<2)|0;g[e+(j<<2)>>2]=h+ +g[k>>2];g[q>>2]=-1.0;q=c[(c[a>>2]|0)+64>>2]|0;l=+g[f+80>>2];m=+g[f+84>>2];n=+g[f+88>>2];o=l*+g[b+4>>2]+m*+g[b+20>>2]+n*+g[b+36>>2];p=l*+g[b+8>>2]+m*+g[b+24>>2]+n*+g[b+40>>2];g[f>>2]=+g[b>>2]*l+ +g[b+16>>2]*m+ +g[b+32>>2]*n;g[f+4>>2]=o;g[f+8>>2]=p;g[f+12>>2]=0.0;sc[q&63](f+16|0,a,f);p=+g[f+16>>2];o=+g[f+20>>2];n=+g[f+24>>2];m=p*+g[b+16>>2]+o*+g[b+20>>2]+n*+g[b+24>>2]+ +g[b+52>>2];l=p*+g[b+32>>2]+o*+g[b+36>>2]+n*+g[b+40>>2]+ +g[b+56>>2];g[f+32>>2]=p*+g[b>>2]+o*+g[b+4>>2]+n*+g[b+8>>2]+ +g[b+48>>2];g[f+36>>2]=m;g[f+40>>2]=l;g[f+44>>2]=0.0;g[d+(j<<2)>>2]=+g[k>>2]-h;j=j+1|0}while((j|0)!=3);i=f;return}function Hq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0;e=i;sc[c[(c[b>>2]|0)+68>>2]&63](a,b,d);if(!(+bc[c[(c[b>>2]|0)+48>>2]&15](b)!=0.0)){i=e;return}l=+g[d>>2];j=+g[d+4>>2];h=+g[d+8>>2];f=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:h;k=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:j;l=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:l;h=1.0/+Q(+(f*f+(l*l+k*k)));j=+bc[c[(c[b>>2]|0)+48>>2]&15](b);g[a>>2]=h*l*j+ +g[a>>2];g[a+4>>2]=j*h*k+ +g[a+4>>2];g[a+8>>2]=j*h*f+ +g[a+8>>2];i=e;return}function Iq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0;h=i;i=i+64|0;n=+g[d>>2];o=+g[d+4>>2];m=+g[d+8>>2];p=n*+g[b+4>>2]+o*+g[b+20>>2]+m*+g[b+36>>2];q=n*+g[b+8>>2]+o*+g[b+24>>2]+m*+g[b+40>>2];g[h+48>>2]=+g[b>>2]*n+ +g[b+16>>2]*o+ +g[b+32>>2]*m;g[h+52>>2]=p;g[h+56>>2]=q;g[h+60>>2]=0.0;sc[c[(c[a>>2]|0)+64>>2]&63](h+32|0,a,h+48|0);q=+g[h+32>>2];p=+g[h+36>>2];m=+g[h+40>>2];o=q*+g[b>>2]+p*+g[b+4>>2]+m*+g[b+8>>2]+ +g[b+48>>2];n=q*+g[b+16>>2]+p*+g[b+20>>2]+m*+g[b+24>>2]+ +g[b+52>>2];m=q*+g[b+32>>2]+p*+g[b+36>>2]+m*+g[b+40>>2]+ +g[b+56>>2];r=c[(c[a>>2]|0)+64>>2]|0;p=-+g[h+52>>2];q=-+g[h+56>>2];g[h>>2]=-+g[h+48>>2];g[h+4>>2]=p;g[h+8>>2]=q;g[h+12>>2]=0.0;sc[r&63](h+16|0,a,h);q=+g[h+16>>2];p=+g[h+20>>2];j=+g[h+24>>2];l=q*+g[b>>2]+p*+g[b+4>>2]+j*+g[b+8>>2]+ +g[b+48>>2];k=q*+g[b+16>>2]+p*+g[b+20>>2]+j*+g[b+24>>2]+ +g[b+52>>2];j=q*+g[b+32>>2]+p*+g[b+36>>2]+j*+g[b+40>>2]+ +g[b+56>>2];g[e>>2]=o*+g[d>>2]+n*+g[d+4>>2]+m*+g[d+8>>2];j=l*+g[d>>2]+k*+g[d+4>>2]+j*+g[d+8>>2];g[f>>2]=j;k=+g[e>>2];if(!(k>j)){i=h;return}g[e>>2]=j;g[f>>2]=k;i=h;return}function Jq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0.0,w=0,x=0;e=i;i=i+80|0;switch(c[b+4>>2]|0){case 0:{s=+g[b+28>>2];u=+g[b+32>>2];u=+g[d+4>>2]>=0.0?u:-u;v=+g[b+36>>2];v=+g[d+8>>2]>=0.0?v:-v;g[a>>2]=+g[d>>2]>=0.0?s:-s;g[a+4>>2]=u;g[a+8>>2]=v;g[a+12>>2]=0.0;i=e;return};case 8:{c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;i=e;return};case 4:{t=c[b+104>>2]|0;w=c[b+96>>2]|0;f=+g[b+12>>2];h=+g[b+16>>2];j=+g[b+20>>2];l=+g[d>>2]*f;k=+g[d+4>>2]*h;o=+g[d+8>>2]*j;if((w|0)>0){d=0;m=-3.4028234663852886e+38;x=-1;while(1){n=l*+g[t+(d<<4)>>2]+k*+g[t+(d<<4)+4>>2]+o*+g[t+(d<<4)+8>>2];b=n>m;x=b?d:x;d=d+1|0;if((d|0)==(w|0)){break}else{m=b?n:m}}}else{x=-1}u=h*+g[t+(x<<4)+4>>2];v=j*+g[t+(x<<4)+8>>2];g[a>>2]=f*+g[t+(x<<4)>>2];g[a+4>>2]=u;g[a+8>>2]=v;g[a+12>>2]=0.0;i=e;return};case 5:{t=c[b+92>>2]|0;w=c[b+96>>2]|0;h=+g[b+12>>2];f=+g[b+16>>2];j=+g[b+20>>2];l=+g[d>>2]*h;k=+g[d+4>>2]*f;n=+g[d+8>>2]*j;if((w|0)>0){b=0;m=-3.4028234663852886e+38;x=-1;while(1){o=l*+g[t+(b<<4)>>2]+k*+g[t+(b<<4)+4>>2]+n*+g[t+(b<<4)+8>>2];d=o>m;x=d?b:x;b=b+1|0;if((b|0)==(w|0)){break}else{m=d?o:m}}}else{x=-1}u=f*+g[t+(x<<4)+4>>2];v=j*+g[t+(x<<4)+8>>2];g[a>>2]=h*+g[t+(x<<4)>>2];g[a+4>>2]=u;g[a+8>>2]=v;g[a+12>>2]=0.0;i=e;return};case 1:{u=+g[d>>2];v=+g[d+4>>2];j=+g[d+8>>2];h=u*+g[b+56>>2]+v*+g[b+60>>2]+j*+g[b+64>>2];f=u*+g[b+72>>2]+v*+g[b+76>>2]+j*+g[b+80>>2];j=u*+g[b+88>>2]+v*+g[b+92>>2]+j*+g[b+96>>2];if(h>2];v=+g[b+56+(d<<4)+8>>2];g[a>>2]=+g[b+56+(d<<4)>>2];g[a+4>>2]=u;g[a+8>>2]=v;g[a+12>>2]=0.0;i=e;return};case 10:{h=+g[d>>2];j=+g[d+4>>2];k=+g[d+8>>2];d=c[b+52>>2]|0;f=+g[b+(d<<2)+28>>2];n=+g[b+(((d+2|0)%3|0)<<2)+28>>2];if(h*h+j*j+k*k<9999999747378752.0e-20){h=1.0;j=0.0;l=0.0}else{l=1.0/+Q(+(h*h+j*j+k*k));h=h*l;j=j*l;l=k*l}c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;g[e+16+(d<<2)>>2]=f;k=n*h;m=n*j;n=n*l;o=+g[b+44>>2];q=h*o;p=j*o;o=l*o;u=+g[e+16>>2]+k-q;s=m+ +g[e+20>>2]-p;v=n+ +g[e+24>>2]-o;r=l*v+(h*u+j*s);if(!(r>-999999984306749400.0)){r=-999999984306749400.0;u=0.0;v=0.0;s=0.0}c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;g[e+(d<<2)>>2]=-f;k=k+ +g[e>>2]-q;p=m+ +g[e+4>>2]-p;q=n+ +g[e+8>>2]-o;x=l*q+(h*k+j*p)>r;g[a>>2]=x?k:u;g[a+4>>2]=x?p:s;g[a+8>>2]=x?q:v;g[a+12>>2]=0.0;i=e;return};case 13:{c[e+64>>2]=c[b+28>>2];c[e+68>>2]=c[b+32>>2];c[e+72>>2]=c[b+36>>2];c[e+76>>2]=c[b+40>>2];g[e+48>>2]=+g[d>>2];f=+g[d+4>>2];g[e+52>>2]=f;h=+g[d+8>>2];g[e+56>>2]=h;g[e+60>>2]=0.0;w=c[b+52>>2]|0;if((w|0)==1){t=0;b=w;d=2}else if((w|0)==2){h=f;t=0;b=w;d=1}else{t=1;b=0;d=2}f=+g[e+64+(t<<2)>>2];k=+g[e+64+(w<<2)>>2];l=+g[e+48+(t<<2)>>2];j=+Q(+(l*l+h*h));if(j!=0.0){g[e+32+(t<<2)>>2]=l*(f/j);if(+g[e+48+(b<<2)>>2]<0.0){k=-k}g[e+32+(b<<2)>>2]=k;g[e+32+(d<<2)>>2]=f/j*h;g[a>>2]=+g[e+32>>2];g[a+4>>2]=+g[e+36>>2];g[a+8>>2]=+g[e+40>>2];g[a+12>>2]=0.0;i=e;return}else{g[e+32+(t<<2)>>2]=f;if(+g[e+48+(b<<2)>>2]<0.0){k=-k}g[e+32+(b<<2)>>2]=k;g[e+32+(d<<2)>>2]=0.0;g[a>>2]=+g[e+32>>2];g[a+4>>2]=+g[e+36>>2];g[a+8>>2]=+g[e+40>>2];g[a+12>>2]=0.0;i=e;return}};default:{sc[c[(c[b>>2]|0)+68>>2]&63](a,b,d);i=e;return}}}function Kq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0;e=i;i=i+32|0;c[e+16>>2]=c[d+0>>2];c[e+20>>2]=c[d+4>>2];c[e+24>>2]=c[d+8>>2];c[e+28>>2]=c[d+12>>2];h=+g[e+16>>2];j=+g[e+20>>2];f=+g[e+24>>2];if(h*h+j*j+f*f<1.4210854715202004e-14){g[e+16>>2]=-1.0;g[e+20>>2]=-1.0;g[e+24>>2]=-1.0;g[e+28>>2]=0.0;h=-1.0;j=-1.0;f=-1.0}k=1.0/+Q(+(h*h+j*j+f*f));g[e+16>>2]=h*k;g[e+20>>2]=j*k;g[e+24>>2]=f*k;Jq(e,b,e+16|0);switch(c[b+4>>2]|0){case 4:case 5:{f=+g[b+44>>2];break};case 1:{f=+g[b+44>>2];break};case 0:{f=+g[b+44>>2];break};case 10:{f=+g[b+44>>2];break};case 13:{f=+g[b+44>>2];break};case 8:{f=+g[b+28>>2]*+g[b+12>>2];break};case 11:{f=+g[b+44>>2];break};default:{f=+bc[c[(c[b>>2]|0)+48>>2]&15](b)}}j=f*+g[e+20>>2]+ +g[e+4>>2];k=f*+g[e+24>>2]+ +g[e+8>>2];g[a>>2]=f*+g[e+16>>2]+ +g[e>>2];g[a+4>>2]=j;g[a+8>>2]=k;g[a+12>>2]=0.0;i=e;return}function Lq(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,j=0,k=0.0,l=0.0;d=i;c[a+4>>2]=35;c[a+8>>2]=0;g[a+12>>2]=1.0;g[a+16>>2]=1.0;g[a+20>>2]=1.0;g[a+24>>2]=0.0;g[a+44>>2]=.03999999910593033;c[a>>2]=9592;c[a+52>>2]=1;f=+g[b>>2];h=+g[b+4>>2];e=+g[b+8>>2];if(f>2]*.10000000149011612;if(e<.03999999910593033){l=+Zm(a);k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);h=+bc[c[(c[a>>2]|0)+48>>2]&15](a);l=l+ +g[a+28>>2];k=k+ +g[a+32>>2];h=h+ +g[a+36>>2];g[a+44>>2]=e;e=+bc[c[(c[a>>2]|0)+48>>2]&15](a);f=+bc[c[(c[a>>2]|0)+48>>2]&15](a);h=h- +bc[c[(c[a>>2]|0)+48>>2]&15](a);g[a+28>>2]=l-e;g[a+32>>2]=k-f;g[a+36>>2]=h;g[a+40>>2]=0.0;j=c[a>>2]|0}else{j=9592|0}h=+bc[c[j+48>>2]&15](a);k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);l=+bc[c[(c[a>>2]|0)+48>>2]&15](a);k=+g[b+4>>2]*+g[a+16>>2]-k;l=+g[b+8>>2]*+g[a+20>>2]-l;g[a+28>>2]=+g[b>>2]*+g[a+12>>2]-h;g[a+32>>2]=k;g[a+36>>2]=l;g[a+40>>2]=0.0;c[a+4>>2]=13;i=d;return}function Mq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0;f=i;k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);o=k+ +g[a+28>>2];m=k+ +g[a+32>>2];k=k+ +g[a+36>>2];w=+P(+(+g[b>>2]));v=+P(+(+g[b+4>>2]));u=+P(+(+g[b+8>>2]));s=+P(+(+g[b+16>>2]));r=+P(+(+g[b+20>>2]));q=+P(+(+g[b+24>>2]));n=+P(+(+g[b+32>>2]));l=+P(+(+g[b+36>>2]));j=+P(+(+g[b+40>>2]));t=+g[b+48>>2];p=+g[b+52>>2];h=+g[b+56>>2];g[d>>2]=t-(o*w+m*v+k*u);g[d+4>>2]=p-(o*s+m*r+k*q);g[d+8>>2]=h-(o*n+m*l+k*j);g[d+12>>2]=0.0;g[e>>2]=o*w+m*v+k*u+t;g[e+4>>2]=o*s+m*r+k*q+p;g[e+8>>2]=o*n+m*l+k*j+h;g[e+12>>2]=0.0;i=f;return}function Nq(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0,h=0.0,j=0,k=0.0,l=0.0;e=i;i=i+16|0;c[e+0>>2]=c[a+28>>2];c[e+4>>2]=c[a+32>>2];c[e+8>>2]=c[a+36>>2];c[e+12>>2]=c[a+40>>2];l=+bc[c[(c[a>>2]|0)+48>>2]&15](a);h=+bc[c[(c[a>>2]|0)+48>>2]&15](a);k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);g[e>>2]=l+ +g[e>>2];g[e+4>>2]=h+ +g[e+4>>2];g[e+8>>2]=k+ +g[e+8>>2];a=c[a+52>>2]|0;if((a|0)==0){f=0;j=1}else if((a|0)==2){f=2;j=0}else{f=1;j=0}h=+g[e+(j<<2)>>2];k=+g[e+(f<<2)>>2];k=b*.25*h*h+b/12.0*k*k*4.0;if((a|0)==2){g[d>>2]=k;g[d+4>>2]=k;g[d+8>>2]=b*.5*h*h;g[d+12>>2]=0.0;i=e;return}else if((a|0)==0){g[d>>2]=b*.5*h*h;g[d+4>>2]=k;g[d+8>>2]=k;g[d+12>>2]=0.0;i=e;return}else{g[d>>2]=k;g[d+4>>2]=b*.5*h*h;g[d+8>>2]=k;g[d+12>>2]=0.0;i=e;return}}function Oq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0;d=i;e=+g[b+32>>2];k=+g[b+28>>2];j=+g[c+4>>2];h=+g[c+8>>2];f=+Q(+(j*j+h*h));if(f!=0.0){g[a+4>>2]=j*(e/f);if(+g[c>>2]<0.0){k=-k}g[a>>2]=k;g[a+8>>2]=h*(e/f);i=d;return}else{g[a+4>>2]=e;if(+g[c>>2]<0.0){k=-k}g[a>>2]=k;g[a+8>>2]=0.0;i=d;return}}function Pq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0;d=i;e=+g[b+28>>2];k=+g[b+36>>2];j=+g[c>>2];h=+g[c+4>>2];f=+Q(+(j*j+h*h));if(f!=0.0){g[a>>2]=j*(e/f);if(+g[c+8>>2]<0.0){k=-k}g[a+8>>2]=k;g[a+4>>2]=h*(e/f);i=d;return}else{g[a>>2]=e;if(+g[c+8>>2]<0.0){k=-k}g[a+8>>2]=k;g[a+4>>2]=0.0;i=d;return}}function Qq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0;d=i;e=+g[b+28>>2];k=+g[b+32>>2];j=+g[c>>2];h=+g[c+8>>2];f=+Q(+(j*j+h*h));if(f!=0.0){g[a>>2]=j*(e/f);if(+g[c+4>>2]<0.0){k=-k}g[a+4>>2]=k;g[a+8>>2]=h*(e/f);i=d;return}else{g[a>>2]=e;if(+g[c+4>>2]<0.0){k=-k}g[a+4>>2]=k;g[a+8>>2]=0.0;i=d;return}}function Rq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0;e=i;if((d|0)<=0){i=e;return}f=0;do{h=+g[a+28>>2];m=+g[a+32>>2];l=+g[b+(f<<4)>>2];k=+g[b+(f<<4)+8>>2];j=+Q(+(l*l+k*k));if(!(j!=0.0)){if(+g[b+(f<<4)+4>>2]<0.0){m=-m;l=h;h=0.0}else{l=h;h=0.0}}else{if(+g[b+(f<<4)+4>>2]<0.0){m=-m}l=l*(h/j);h=k*(h/j)}g[c+(f<<4)>>2]=l;g[c+(f<<4)+4>>2]=m;g[c+(f<<4)+8>>2]=h;f=f+1|0}while((f|0)!=(d|0));i=e;return}function Sq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0;e=i;if((d|0)<=0){i=e;return}f=0;do{h=+g[a+28>>2];m=+g[a+36>>2];l=+g[b+(f<<4)>>2];k=+g[b+(f<<4)+4>>2];j=+Q(+(l*l+k*k));if(!(j!=0.0)){if(+g[b+(f<<4)+8>>2]<0.0){m=-m;l=h;h=0.0}else{l=h;h=0.0}}else{if(+g[b+(f<<4)+8>>2]<0.0){m=-m}l=l*(h/j);h=k*(h/j)}g[c+(f<<4)>>2]=l;g[c+(f<<4)+4>>2]=h;g[c+(f<<4)+8>>2]=m;f=f+1|0}while((f|0)!=(d|0));i=e;return}function Tq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0;f=i;if((d|0)<=0){i=f;return}e=0;do{h=+g[a+32>>2];m=+g[a+28>>2];n=b+(e<<4)|0;l=+g[b+(e<<4)+4>>2];j=+g[b+(e<<4)+8>>2];k=+Q(+(l*l+j*j));if(!(k!=0.0)){if(+g[n>>2]<0.0){m=-m;l=h;h=0.0}else{l=h;h=0.0}}else{if(+g[n>>2]<0.0){m=-m}l=l*(h/k);h=j*(h/k)}g[c+(e<<4)>>2]=m;g[c+(e<<4)+4>>2]=l;g[c+(e<<4)+8>>2]=h;e=e+1|0}while((e|0)!=(d|0));i=f;return}function Uq(a){a=a|0;return}function Vq(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Wq(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;d=i;m=+bc[c[(c[a>>2]|0)+48>>2]&15](a);j=+bc[c[(c[a>>2]|0)+48>>2]&15](a);e=+bc[c[(c[a>>2]|0)+48>>2]&15](a);o=(m+ +g[a+28>>2])/+g[a+12>>2];l=(j+ +g[a+32>>2])/+g[a+16>>2];h=(e+ +g[a+36>>2])/+g[a+20>>2];n=+P(+(+g[b>>2]));k=+P(+(+g[b+4>>2]));f=+P(+(+g[b+8>>2]));g[a+12>>2]=n;g[a+16>>2]=k;g[a+20>>2]=f;g[a+24>>2]=0.0;g[a+28>>2]=o*n-m;g[a+32>>2]=l*k-j;g[a+36>>2]=h*f-e;g[a+40>>2]=0.0;i=d;return}function Xq(a){a=a|0;return 10072}function Yq(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+(c[b+52>>2]<<2)>>2]=1.0;i=d;return}function Zq(a,b){a=a|0;b=+b;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0;d=i;j=+bc[c[(c[a>>2]|0)+48>>2]&15](a);f=+bc[c[(c[a>>2]|0)+48>>2]&15](a);k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);j=j+ +g[a+28>>2];f=f+ +g[a+32>>2];k=k+ +g[a+36>>2];g[a+44>>2]=b;h=+bc[c[(c[a>>2]|0)+48>>2]&15](a);e=+bc[c[(c[a>>2]|0)+48>>2]&15](a);b=k- +bc[c[(c[a>>2]|0)+48>>2]&15](a);g[a+28>>2]=j-h;g[a+32>>2]=f-e;g[a+36>>2]=b;g[a+40>>2]=0.0;i=d;return}function _q(a){a=a|0;return 60}function $q(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0;e=i;f=hc[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;h=hc[c[(c[d>>2]|0)+28>>2]&31](d,f)|0;c[b>>2]=h;if((h|0)!=0){Pb[c[(c[d>>2]|0)+48>>2]&127](d,f)}c[b+4>>2]=c[a+4>>2];g[b+28>>2]=+g[a+28>>2];g[b+32>>2]=+g[a+32>>2];g[b+36>>2]=+g[a+36>>2];g[b+40>>2]=+g[a+40>>2];g[b+12>>2]=+g[a+12>>2];g[b+16>>2]=+g[a+16>>2];g[b+20>>2]=+g[a+20>>2];g[b+24>>2]=+g[a+24>>2];g[b+44>>2]=+g[a+44>>2];c[b+52>>2]=c[a+52>>2];i=e;return 10048}function ar(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0;e=i;sc[c[(c[b>>2]|0)+68>>2]&63](a,b,d);if(!(+bc[c[(c[b>>2]|0)+48>>2]&15](b)!=0.0)){i=e;return}l=+g[d>>2];j=+g[d+4>>2];h=+g[d+8>>2];f=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:h;k=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:j;l=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:l;h=1.0/+Q(+(f*f+(l*l+k*k)));j=+bc[c[(c[b>>2]|0)+48>>2]&15](b);g[a>>2]=h*l*j+ +g[a>>2];g[a+4>>2]=j*h*k+ +g[a+4>>2];g[a+8>>2]=j*h*f+ +g[a+8>>2];i=e;return}function br(a){a=a|0;var b=0.0,d=0.0,e=0;e=i;d=+g[a+28>>2];b=+bc[c[(c[a>>2]|0)+48>>2]&15](a);+bc[c[(c[a>>2]|0)+48>>2]&15](a);+bc[c[(c[a>>2]|0)+48>>2]&15](a);i=e;return+(d+b)}function cr(a){a=a|0;return}function dr(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function er(a){a=a|0;return 10032}function fr(a){a=a|0;var b=0.0,d=0.0,e=0;e=i;d=+g[a+32>>2];+bc[c[(c[a>>2]|0)+48>>2]&15](a);b=+bc[c[(c[a>>2]|0)+48>>2]&15](a);+bc[c[(c[a>>2]|0)+48>>2]&15](a);i=e;return+(d+b)}function gr(a){a=a|0;return}function hr(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function ir(a){a=a|0;return 10016}function jr(a){a=a|0;var b=0.0,d=0.0,e=0;e=i;d=+g[a+28>>2];b=+bc[c[(c[a>>2]|0)+48>>2]&15](a);+bc[c[(c[a>>2]|0)+48>>2]&15](a);+bc[c[(c[a>>2]|0)+48>>2]&15](a);i=e;return+(d+b)}function kr(b){b=b|0;var d=0,e=0;d=i;e=c[b>>2]|0;if((e|0)!=0){lr(b,e)}e=c[b+4>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+4>>2]=0;c[b+8>>2]=-1;e=c[b+32>>2]|0;if((e|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;c[b+16>>2]=0;e=c[b+52>>2]|0;if((e|0)==0){a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;i=d;return}if((a[b+56>>0]|0)==0){a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;i=d;return}c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0);e=c[b+32>>2]|0;a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;if((e|0)==0){a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;i=d;return}if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+32>>2]=0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;i=d;return}function lr(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;if((c[b+40>>2]|0)!=0){lr(a,c[b+36>>2]|0);lr(a,c[b+40>>2]|0)}if((c[a>>2]|0)==(b|0)){c[a>>2]=0}e=c[a+4>>2]|0;if((e|0)==0){c[a+4>>2]=b;i=d;return}c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0);c[a+4>>2]=b;i=d;return}function mr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;d=i;i=i+32|0;if((b|0)<0){b=c[a+12>>2]|0}j=c[a>>2]|0;if(!((j|0)!=0&(b|0)>0)){i=d;return}while(1){f=j+40|0;a:do{if((c[f>>2]|0)!=0){e=0;while(1){g=(c[a+16>>2]|0)>>>e&1;k=j+32|0;h=c[k>>2]|0;if(h>>>0>j>>>0){l=(c[h+40>>2]|0)==(j|0)&1;m=c[h+((l^1)<<2)+36>>2]|0;n=c[h+32>>2]|0;if((n|0)==0){c[a>>2]=j}else{c[n+(((c[n+40>>2]|0)==(h|0)&1)<<2)+36>>2]=j}c[m+32>>2]=j;c[h+32>>2]=j;c[k>>2]=n;n=j+36|0;c[h+36>>2]=c[n>>2];c[h+40>>2]=c[f>>2];c[(c[n>>2]|0)+32>>2]=h;c[(c[f>>2]|0)+32>>2]=h;c[j+(l<<2)+36>>2]=h;c[j+((l^1)<<2)+36>>2]=m;c[d+0>>2]=c[h+0>>2];c[d+4>>2]=c[h+4>>2];c[d+8>>2]=c[h+8>>2];c[d+12>>2]=c[h+12>>2];c[d+16>>2]=c[h+16>>2];c[d+20>>2]=c[h+20>>2];c[d+24>>2]=c[h+24>>2];c[d+28>>2]=c[h+28>>2];c[h+0>>2]=c[j+0>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];c[h+16>>2]=c[j+16>>2];c[h+20>>2]=c[j+20>>2];c[h+24>>2]=c[j+24>>2];c[h+28>>2]=c[j+28>>2];c[j+0>>2]=c[d+0>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];c[j+16>>2]=c[d+16>>2];c[j+20>>2]=c[d+20>>2];c[j+24>>2]=c[d+24>>2];c[j+28>>2]=c[d+28>>2]}else{h=j}j=c[h+(g<<2)+36>>2]|0;if((c[j+40>>2]|0)==0){break a}f=j+40|0;e=e+1&31}}}while(0);if((or(a,j)|0)==0){e=0}else{e=c[a>>2]|0}nr(a,e,j);c[a+16>>2]=(c[a+16>>2]|0)+1;b=b+ -1|0;if((b|0)==0){break}j=c[a>>2]|0}i=d;return}function nr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0,r=0,s=0.0;e=i;if((c[a>>2]|0)==0){c[a>>2]=d;c[d+32>>2]=0;i=e;return}f=c[b+40>>2]|0;if((f|0)!=0){l=+g[d>>2]+ +g[d+16>>2];j=+g[d+4>>2]+ +g[d+20>>2];h=+g[d+8>>2]+ +g[d+24>>2];do{r=c[b+36>>2]|0;p=+P(+(l-(+g[r>>2]+ +g[r+16>>2])))+ +P(+(j-(+g[r+4>>2]+ +g[r+20>>2])))+ +P(+(h-(+g[r+8>>2]+ +g[r+24>>2])));b=c[b+((!(p<+P(+(l-(+g[f>>2]+ +g[f+16>>2])))+ +P(+(j-(+g[f+4>>2]+ +g[f+20>>2])))+ +P(+(h-(+g[f+8>>2]+ +g[f+24>>2]))))&1)<<2)+36>>2]|0;f=c[b+40>>2]|0}while((f|0)!=0)}k=b+32|0;f=c[k>>2]|0;r=c[a+4>>2]|0;if((r|0)==0){c[4546]=(c[4546]|0)+1;r=Zx(63)|0;if((r|0)!=0?(c[(r+19&-16)+ -4>>2]=r,(r+19&-16|0)!=0):0){o=(r+19&-16)+0|0;q=o+44|0;do{c[o>>2]=0;o=o+4|0}while((o|0)<(q|0));r=r+19&-16}else{r=0}}else{c[a+4>>2]=0}c[r+32>>2]=f;o=r+36|0;c[o>>2]=0;q=r+40|0;c[q>>2]=0;s=+g[d>>2];p=+g[b>>2];p=s>2]=p;s=+g[d+16>>2];l=+g[b+16>>2];l=s>l?s:l;g[r+16>>2]=l;s=+g[d+4>>2];n=+g[b+4>>2];n=s>2]=n;s=+g[d+20>>2];j=+g[b+20>>2];j=s>j?s:j;g[r+20>>2]=j;s=+g[d+8>>2];m=+g[b+8>>2];m=s>2]=m;s=+g[d+24>>2];h=+g[b+24>>2];h=s>h?s:h;g[r+24>>2]=h;if((f|0)==0){c[o>>2]=b;c[k>>2]=r;c[q>>2]=d;c[d+32>>2]=r;c[a>>2]=r;i=e;return}c[f+(((c[(c[k>>2]|0)+40>>2]|0)==(b|0)&1)<<2)+36>>2]=r;c[o>>2]=b;c[k>>2]=r;c[q>>2]=d;c[d+32>>2]=r;while(1){d=f+4|0;if(((((+g[f>>2]<=p?+g[d>>2]<=n:0)?+g[f+8>>2]<=m:0)?+g[f+16>>2]>=l:0)?+g[f+20>>2]>=j:0)?+g[f+24>>2]>=h:0){d=21;break}q=c[f+36>>2]|0;r=c[f+40>>2]|0;s=+g[q>>2];p=+g[r>>2];p=s>2]=p;s=+g[q+16>>2];l=+g[r+16>>2];l=s>l?s:l;g[f+16>>2]=l;s=+g[q+4>>2];n=+g[r+4>>2];n=s>2]=n;s=+g[q+20>>2];j=+g[r+20>>2];j=s>j?s:j;g[f+20>>2]=j;s=+g[q+8>>2];m=+g[r+8>>2];m=s>2]=m;s=+g[q+24>>2];h=+g[r+24>>2];h=s>h?s:h;g[f+24>>2]=h;f=c[f+32>>2]|0;if((f|0)==0){d=21;break}}if((d|0)==21){i=e;return}}function or(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0;d=i;if((c[a>>2]|0)==(b|0)){c[a>>2]=0;b=0;i=d;return b|0}f=c[b+32>>2]|0;h=c[f+32>>2]|0;b=c[f+(((c[f+40>>2]|0)!=(b|0)&1)<<2)+36>>2]|0;if((h|0)==0){c[a>>2]=b;c[b+32>>2]=0;e=c[a+4>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[a+4>>2]=f;b=c[a>>2]|0;i=d;return b|0}c[h+(((c[h+40>>2]|0)==(f|0)&1)<<2)+36>>2]=b;c[b+32>>2]=h;b=c[a+4>>2]|0;if((b|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0)}c[a+4>>2]=f;do{u=+g[h>>2];z=h+4|0;s=+g[z>>2];x=h+8|0;q=+g[x>>2];A=h+16|0;o=+g[A>>2];y=h+20|0;m=+g[y>>2];b=h+24|0;k=+g[b>>2];w=c[h+36>>2]|0;f=c[h+40>>2]|0;v=+g[w>>2];t=+g[f>>2];t=v>2]=t;v=+g[w+16>>2];n=+g[f+16>>2];n=v>n?v:n;g[A>>2]=n;v=+g[w+4>>2];r=+g[f+4>>2];r=v>2]=r;v=+g[w+20>>2];l=+g[f+20>>2];l=v>l?v:l;g[y>>2]=l;v=+g[w+8>>2];p=+g[f+8>>2];p=v>2]=p;v=+g[w+24>>2];j=+g[f+24>>2];j=v>j?v:j;g[b>>2]=j;if(!(u!=t|s!=r|q!=p|o!=n)?!(m!=l|k!=j):0){e=14;break}h=c[h+32>>2]|0}while((h|0)!=0);if((e|0)==14){i=d;return h|0}A=c[a>>2]|0;i=d;return A|0}function pr(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;c[b>>2]=10096;f=b+4|0;do{a[f+36>>0]=1;c[f+32>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;a[f+56>>0]=1;c[f+52>>2]=0;c[f+44>>2]=0;c[f+48>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=-1;c[f+12>>2]=0;c[f+16>>2]=0;f=f+60|0}while((f|0)!=(b+124|0));a[b+193>>0]=0;a[b+194>>0]=1;a[b+192>>0]=(d|0)!=0^1;g[b+140>>2]=0.0;c[b+144>>2]=0;c[b+164>>2]=0;c[b+148>>2]=1;c[b+152>>2]=0;c[b+156>>2]=10;c[b+160>>2]=1;c[b+168>>2]=0;c[b+172>>2]=0;g[b+176>>2]=0.0;if((d|0)!=0){f=b+136|0;c[f>>2]=d;f=b+188|0;c[f>>2]=0;f=b+180|0;c[f>>2]=0;f=b+184|0;c[f>>2]=0;f=b+124|0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;i=e;return}c[4546]=(c[4546]|0)+1;d=Zx(95)|0;if((d|0)!=0?(c[(d+19&-16)+ -4>>2]=d,(d+19&-16|0)!=0):0){ft(d+19&-16);d=d+19&-16}else{d=0}f=b+136|0;c[f>>2]=d;f=b+188|0;c[f>>2]=0;f=b+180|0;c[f>>2]=0;f=b+184|0;c[f>>2]=0;f=b+124|0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;i=e;return}function qr(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=10096;if((a[b+192>>0]|0)!=0?(e=c[b+136>>2]|0,Nb[c[c[e>>2]>>2]&255](e),e=c[b+136>>2]|0,(e|0)!=0):0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=b+124|0;do{e=e+ -60|0;kr(e)}while((e|0)!=(b+4|0));if((b|0)==0){i=d;return}_x(b);i=d;return}function rr(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=10096;if((a[b+192>>0]|0)!=0?(e=c[b+136>>2]|0,Nb[c[c[e>>2]>>2]&255](e),e=c[b+136>>2]|0,(e|0)!=0):0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=b+124|0;do{e=e+ -60|0;kr(e)}while((e|0)!=(b+4|0));i=d;return}function sr(d,e,f,g,h,j,k,l,m){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;m=i;i=i+48|0;c[4546]=(c[4546]|0)+1;g=Zx(83)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}c[g>>2]=h;b[g+4>>1]=j;b[g+6>>1]=k;h=g+16|0;c[h+0>>2]=c[e+0>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];h=g+32|0;c[h+0>>2]=c[f+0>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[h+12>>2]=c[f+12>>2];c[g+8>>2]=0;h=g+56|0;c[h>>2]=0;j=g+52|0;c[j>>2]=0;c[m+16>>2]=c[e+0>>2];c[m+20>>2]=c[e+4>>2];c[m+24>>2]=c[e+8>>2];c[m+28>>2]=c[e+12>>2];c[m+32>>2]=c[f+0>>2];c[m+36>>2]=c[f+4>>2];c[m+40>>2]=c[f+8>>2];c[m+44>>2]=c[f+12>>2];c[g+60>>2]=c[d+144>>2];e=(c[d+188>>2]|0)+1|0;c[d+188>>2]=e;c[g+12>>2]=e;e=c[d+8>>2]|0;if((e|0)==0){c[4546]=(c[4546]|0)+1;e=Zx(63)|0;if((e|0)!=0?(c[(e+19&-16)+ -4>>2]=e,(e+19&-16|0)!=0):0){k=(e+19&-16)+0|0;f=k+44|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(f|0));e=e+19&-16}else{e=0}}else{c[d+8>>2]=0}c[e+32>>2]=0;c[e+36>>2]=g;c[e+40>>2]=0;c[e+0>>2]=c[m+16>>2];c[e+4>>2]=c[m+20>>2];c[e+8>>2]=c[m+24>>2];c[e+12>>2]=c[m+28>>2];c[e+16>>2]=c[m+32>>2];c[e+20>>2]=c[m+36>>2];c[e+24>>2]=c[m+40>>2];c[e+28>>2]=c[m+44>>2];nr(d+4|0,c[d+4>>2]|0,e);c[d+16>>2]=(c[d+16>>2]|0)+1;c[g+48>>2]=e;e=d+(c[d+144>>2]<<2)+124|0;c[j>>2]=0;c[h>>2]=c[e>>2];f=c[e>>2]|0;if((f|0)!=0){c[f+52>>2]=g}c[e>>2]=g;if((a[d+193>>0]|0)!=0){i=m;return g|0}c[m>>2]=10360;c[m+4>>2]=d;c[m+8>>2]=g;tr(c[d+4>>2]|0,m+16|0,m);tr(c[d+64>>2]|0,m+16|0,m);i=m;return g|0}function tr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=i;if((a|0)==0){i=h;return}e=+g[b>>2];n=+g[b+4>>2];o=+g[b+8>>2];k=+g[b+16>>2];m=+g[b+20>>2];p=+g[b+24>>2];c[4546]=(c[4546]|0)+1;q=Zx(275)|0;if((q|0)!=0){c[(q+19&-16)+ -4>>2]=q;b=q+19&-16;if((q+19&-16|0)!=0){c[b>>2]=a}}else{b=0}t=64;a=1;do{r=a+ -1|0;q=c[b+(r<<2)>>2]|0;do{if(((((+g[q>>2]<=k?+g[q+16>>2]>=e:0)?+g[q+4>>2]<=m:0)?+g[q+20>>2]>=n:0)?+g[q+8>>2]<=p:0)?+g[q+24>>2]>=o:0){if((c[q+40>>2]|0)==0){Pb[c[(c[d>>2]|0)+12>>2]&127](d,q);a=r;break}s=c[q+36>>2]|0;if((r|0)==(t|0)?(f=(t|0)==0?1:t<<1,(a|0)<=(f|0)):0){if((f|0)!=0?(c[4546]=(c[4546]|0)+1,l=Zx((f<<2|3)+16|0)|0,(l|0)!=0):0){c[(l+19&-16)+ -4>>2]=l;u=l+19&-16}else{u=0}if((t|0)>0){w=0;do{v=u+(w<<2)|0;if((v|0)!=0){c[v>>2]=c[b+(w<<2)>>2]}w=w+1|0}while((w|0)!=(t|0))}if((b|0)==0){t=f;b=u}else{c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);t=f;b=u}}r=b+(r<<2)|0;if((r|0)!=0){c[r>>2]=s}q=c[q+40>>2]|0;if((a|0)==(t|0)){t=(a|0)==0?1:a<<1;if((a|0)<(t|0)){if((t|0)!=0?(c[4546]=(c[4546]|0)+1,j=Zx((t<<2|3)+16|0)|0,(j|0)!=0):0){c[(j+19&-16)+ -4>>2]=j;r=j+19&-16}else{r=0}if((a|0)>0){s=0;do{u=r+(s<<2)|0;if((u|0)!=0){c[u>>2]=c[b+(s<<2)>>2]}s=s+1|0}while((s|0)!=(a|0))}if((b|0)==0){b=r}else{c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);b=r}}else{t=a}}r=b+(a<<2)|0;if((r|0)!=0){c[r>>2]=q}a=a+1|0}else{a=r}}while(0)}while((a|0)>0);if((b|0)==0){i=h;return}c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);i=h;return}function ur(a){a=a|0;return}function vr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;if((c[d+60>>2]|0)==2){g=c[d+48>>2]|0;or(b+64|0,g)|0;h=c[b+68>>2]|0;if((h|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+68>>2]=g;c[b+76>>2]=(c[b+76>>2]|0)+ -1}else{g=c[d+48>>2]|0;or(b+4|0,g)|0;h=c[b+8>>2]|0;if((h|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+8>>2]=g;c[b+16>>2]=(c[b+16>>2]|0)+ -1}h=c[d+52>>2]|0;g=c[d+56>>2]|0;if((h|0)==0){c[b+(c[d+60>>2]<<2)+124>>2]=g}else{c[h+56>>2]=g}g=c[d+56>>2]|0;if((g|0)!=0){c[g+52>>2]=c[d+52>>2]}h=c[b+136>>2]|0;sc[c[(c[h>>2]|0)+16>>2]&63](h,d,e);if((d|0)==0){h=b+194|0;a[h>>0]=1;i=f;return}c[4548]=(c[4548]|0)+1;_x(c[d+ -4>>2]|0);h=b+194|0;a[h>>0]=1;i=f;return}function wr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=i;c[d+0>>2]=c[b+16>>2];c[d+4>>2]=c[b+20>>2];c[d+8>>2]=c[b+24>>2];c[d+12>>2]=c[b+28>>2];c[e+0>>2]=c[b+32>>2];c[e+4>>2]=c[b+36>>2];c[e+8>>2]=c[b+40>>2];c[e+12>>2]=c[b+44>>2];i=a;return}function xr(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;d=i;i=i+16|0;c[d>>2]=10280;c[d+4>>2]=e;yr(a+4|0,c[a+4>>2]|0,b,e+4|0,e+20|0,+g[e+32>>2],f,h,d);yr(a+64|0,c[a+64>>2]|0,b,e+4|0,e+20|0,+g[e+32>>2],f,h,d);i=d;return}function yr(b,d,e,f,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=+j;k=k|0;l=l|0;m=m|0;var n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0.0;o=i;i=i+32|0;if((d|0)==0){i=o;return}s=c[b+44>>2]|0;if((s|0)<128){if((c[b+48>>2]|0)<128){c[4546]=(c[4546]|0)+1;t=Zx(531)|0;if((t|0)==0){t=0}else{c[(t+19&-16)+ -4>>2]=t;t=t+19&-16}v=c[b+44>>2]|0;if((v|0)>0){u=0;do{w=t+(u<<2)|0;if((w|0)!=0){c[w>>2]=c[(c[b+52>>2]|0)+(u<<2)>>2]}u=u+1|0}while((u|0)!=(v|0))}u=c[b+52>>2]|0;if((u|0)!=0){if((a[b+56>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[u+ -4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=t;c[b+48>>2]=128;t=b+52|0}else{t=b+52|0}do{u=(c[t>>2]|0)+(s<<2)|0;if((u|0)!=0){c[u>>2]=0}s=s+1|0}while((s|0)!=128);s=b+48|0}else{s=b+48|0}c[b+44>>2]=128;c[c[b+52>>2]>>2]=d;d=1;v=126;do{t=d+ -1|0;w=c[b+52>>2]|0;u=c[w+(t<<2)>>2]|0;y=+g[u+4>>2]- +g[l+4>>2];x=+g[u+8>>2]- +g[l+8>>2];g[o>>2]=+g[u>>2]- +g[l>>2];g[o+4>>2]=y;g[o+8>>2]=x;g[o+12>>2]=0.0;x=+g[u+20>>2]- +g[k+4>>2];y=+g[u+24>>2]- +g[k+8>>2];g[o+16>>2]=+g[u+16>>2]- +g[k>>2];g[o+20>>2]=x;g[o+24>>2]=y;g[o+28>>2]=0.0;D=c[h>>2]|0;y=+g[e>>2];x=+g[f>>2];z=(+g[o+(D<<4)>>2]-y)*x;y=x*(+g[o+(1-D<<4)>>2]-y);D=c[h+4>>2]|0;x=+g[e+4>>2];E=+g[f+4>>2];A=(+g[o+(D<<4)+4>>2]-x)*E;x=E*(+g[o+(1-D<<4)+4>>2]-x);do{if(((!(z>x|A>y)?(p=A>z?A:z,r=x>2]|0,q=+g[e+8>>2],E=+g[f+8>>2],n=(+g[o+(D<<4)+8>>2]-q)*E,q=E*(+g[o+(1-D<<4)+8>>2]-q),!(p>q|n>r)):0)?(n>p?n:p)0.0:0){if((c[u+40>>2]|0)==0){Pb[c[(c[m>>2]|0)+12>>2]&127](m,u);d=t;break}if((t|0)>(v|0)){v=c[b+44>>2]|0;if((v|0)<(v<<1|0)){if((c[s>>2]|0)<(v<<1|0)){if((v|0)!=0){c[4546]=(c[4546]|0)+1;w=Zx((v<<3|3)+16|0)|0;if((w|0)==0){w=0}else{c[(w+19&-16)+ -4>>2]=w;w=w+19&-16}C=c[b+44>>2]|0;if((C|0)>0){B=0;do{D=w+(B<<2)|0;if((D|0)!=0){c[D>>2]=c[(c[b+52>>2]|0)+(B<<2)>>2]}B=B+1|0}while((B|0)!=(C|0))}}else{w=0}B=c[b+52>>2]|0;if((B|0)!=0){if((a[b+56>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[B+ -4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=w;c[s>>2]=v<<1;B=v}else{B=v}do{w=w+(B<<2)|0;if((w|0)!=0){c[w>>2]=0}B=B+1|0;w=c[b+52>>2]|0}while((B|0)!=(v<<1|0))}c[b+44>>2]=v<<1;v=(v<<1)+ -2|0}c[w+(t<<2)>>2]=c[u+36>>2];c[(c[b+52>>2]|0)+(d<<2)>>2]=c[u+40>>2];d=d+1|0}else{d=t}}while(0)}while((d|0)!=0);i=o;return}function zr(a){a=a|0;return}function Ar(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;i=i+48|0;c[f+32>>2]=10200;c[f+36>>2]=e;c[f+0>>2]=c[b+0>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[d+0>>2];c[f+20>>2]=c[d+4>>2];c[f+24>>2]=c[d+8>>2];c[f+28>>2]=c[d+12>>2];tr(c[a+4>>2]|0,f,f+32|0);tr(c[a+64>>2]|0,f,f+32|0);i=f;return}function Br(a){a=a|0;return}function Cr(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0.0;h=i;i=i+16|0;r=+g[e>>2];p=+g[e+4>>2];n=+g[e+8>>2];k=+g[e+12>>2];q=+g[f>>2];o=+g[f+4>>2];m=+g[f+8>>2];j=+g[f+12>>2];do{if((c[d+60>>2]|0)==2){D=c[d+48>>2]|0;or(b+64|0,D)|0;l=c[b+68>>2]|0;if((l|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0)}c[b+68>>2]=D;c[b+76>>2]=(c[b+76>>2]|0)+ -1;l=c[b+8>>2]|0;if((l|0)==0){c[4546]=(c[4546]|0)+1;D=Zx(63)|0;if((D|0)!=0?(c[(D+19&-16)+ -4>>2]=D,(D+19&-16|0)!=0):0){E=(D+19&-16)+0|0;l=E+44|0;do{c[E>>2]=0;E=E+4|0}while((E|0)<(l|0));l=D+19&-16}else{l=0}}else{c[b+8>>2]=0}c[l+32>>2]=0;c[l+36>>2]=d;c[l+40>>2]=0;g[l>>2]=r;g[l+4>>2]=p;g[l+8>>2]=n;g[l+12>>2]=k;g[l+16>>2]=q;g[l+20>>2]=o;g[l+24>>2]=m;g[l+28>>2]=j;nr(b+4|0,c[b+4>>2]|0,l);c[b+16>>2]=(c[b+16>>2]|0)+1;c[d+48>>2]=l;l=1}else{c[b+168>>2]=(c[b+168>>2]|0)+1;l=c[d+48>>2]|0;y=+g[l>>2];if(((((y<=q?(s=+g[l+16>>2],s>=r):0)?(t=+g[l+4>>2],t<=o):0)?(w=+g[l+20>>2],w>=p):0)?(u=+g[l+8>>2],u<=m):0)?(v=+g[l+24>>2],v>=n):0){H=+g[d+16>>2];C=+g[d+20>>2];B=+g[d+24>>2];x=+g[b+140>>2];z=(+g[d+32>>2]-H)*.5*x;A=x*(+g[d+36>>2]-C)*.5;x=x*(+g[d+40>>2]-B)*.5;if(r-H<0.0){z=-z}if(p-C<0.0){A=-A}if(n-B<0.0){x=-x}if(!(!(y<=r)|!(t<=p)|!(u<=n)|!(s>=q)|!(w>=o)|!(v>=m))){l=0;break}if(z>0.0){r=r+-.05000000074505806;q=z+(q+.05000000074505806)}else{r=z+(r+-.05000000074505806);q=q+.05000000074505806}if(A>0.0){p=p+-.05000000074505806;o=A+(o+.05000000074505806)}else{p=A+(p+-.05000000074505806);o=o+.05000000074505806}if(x>0.0){n=n+-.05000000074505806;m=x+(m+.05000000074505806)}else{n=x+(n+-.05000000074505806);m=m+.05000000074505806}F=or(b+4|0,l)|0;a:do{if((F|0)!=0){D=c[b+12>>2]|0;if(!((D|0)>-1)){F=c[b+4>>2]|0;break}if((D|0)>0){E=0;while(1){G=c[F+32>>2]|0;E=E+1|0;if((G|0)==0){break a}if((E|0)>=(D|0)){F=G;break}else{F=G}}}}else{F=0}}while(0);g[l>>2]=r;g[l+4>>2]=p;g[l+8>>2]=n;g[l+12>>2]=k;g[l+16>>2]=q;g[l+20>>2]=o;g[l+24>>2]=m;g[l+28>>2]=j;nr(b+4|0,F,l);c[b+172>>2]=(c[b+172>>2]|0)+1;l=1;break}F=or(b+4|0,l)|0;b:do{if((F|0)!=0){D=c[b+12>>2]|0;if(!((D|0)>-1)){F=c[b+4>>2]|0;break}if((D|0)>0){E=0;while(1){G=c[F+32>>2]|0;E=E+1|0;if((G|0)==0){break b}if((E|0)>=(D|0)){F=G;break}else{F=G}}}}else{F=0}}while(0);g[l>>2]=r;g[l+4>>2]=p;g[l+8>>2]=n;g[l+12>>2]=k;g[l+16>>2]=q;g[l+20>>2]=o;g[l+24>>2]=m;g[l+28>>2]=j;nr(b+4|0,F,l);c[b+172>>2]=(c[b+172>>2]|0)+1;l=1}}while(0);D=c[d+52>>2]|0;E=c[d+56>>2]|0;if((D|0)==0){c[b+(c[d+60>>2]<<2)+124>>2]=E}else{c[D+56>>2]=E}D=c[d+56>>2]|0;if((D|0)!=0){c[D+52>>2]=c[d+52>>2]}c[d+16>>2]=c[e+0>>2];c[d+20>>2]=c[e+4>>2];c[d+24>>2]=c[e+8>>2];c[d+28>>2]=c[e+12>>2];c[d+32>>2]=c[f+0>>2];c[d+36>>2]=c[f+4>>2];c[d+40>>2]=c[f+8>>2];c[d+44>>2]=c[f+12>>2];c[d+60>>2]=c[b+144>>2];f=b+(c[b+144>>2]<<2)+124|0;c[d+52>>2]=0;c[d+56>>2]=c[f>>2];e=c[f>>2]|0;if((e|0)!=0){c[e+52>>2]=d}c[f>>2]=d;if(!l){i=h;return}a[b+194>>0]=1;if((a[b+193>>0]|0)!=0){i=h;return}c[h>>2]=10360;c[h+4>>2]=b;Dr(b+64|0,c[b+64>>2]|0,c[d+48>>2]|0,h);Dr(b+4|0,c[b+4>>2]|0,c[d+48>>2]|0,h);i=h;return}function Dr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;if((d|0)==0|(e|0)==0){i=h;return}if((c[b+24>>2]|0)<128?(c[b+28>>2]|0)<128:0){c[4546]=(c[4546]|0)+1;j=Zx(1043)|0;if((j|0)==0){j=0}else{c[(j+19&-16)+ -4>>2]=j;j=j+19&-16}m=c[b+24>>2]|0;if((m|0)>0){l=0;do{k=j+(l<<3)|0;if((k|0)!=0){p=(c[b+32>>2]|0)+(l<<3)|0;q=c[p+4>>2]|0;c[k>>2]=c[p>>2];c[k+4>>2]=q}l=l+1|0}while((l|0)!=(m|0))}k=c[b+32>>2]|0;if((k|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=j;c[b+28>>2]=128;j=b+28|0}else{j=b+28|0}c[b+24>>2]=128;m=c[b+32>>2]|0;c[m>>2]=d;c[m+4>>2]=e;e=1;m=124;do{l=e+ -1|0;o=c[b+32>>2]|0;k=c[o+(l<<3)>>2]|0;d=c[o+(l<<3)+4>>2]|0;if((l|0)>(m|0)){m=c[b+24>>2]|0;if((m|0)<(m<<1|0)?(c[j>>2]|0)<(m<<1|0):0){if((m|0)!=0){c[4546]=(c[4546]|0)+1;n=Zx((m<<4|3)+16|0)|0;if((n|0)==0){q=0}else{c[(n+19&-16)+ -4>>2]=n;q=n+19&-16}o=c[b+24>>2]|0;if((o|0)>0){n=0;do{p=q+(n<<3)|0;if((p|0)!=0){s=(c[b+32>>2]|0)+(n<<3)|0;r=c[s+4>>2]|0;c[p>>2]=c[s>>2];c[p+4>>2]=r}n=n+1|0}while((n|0)!=(o|0));o=q}else{o=q}}else{o=0}n=c[b+32>>2]|0;if((n|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[n+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=o;c[j>>2]=m<<1}c[b+24>>2]=m<<1;m=(m<<1)+ -4|0}do{if((k|0)==(d|0)){if((c[k+40>>2]|0)==0){e=l}else{r=c[k+36>>2]|0;s=o+(l<<3)|0;c[s>>2]=r;c[s+4>>2]=r;s=c[k+40>>2]|0;r=(c[b+32>>2]|0)+(e<<3)|0;c[r>>2]=s;c[r+4>>2]=s;r=c[k+40>>2]|0;s=(c[b+32>>2]|0)+(e+1<<3)|0;c[s>>2]=c[k+36>>2];c[s+4>>2]=r;e=e+2|0}}else{if(((((+g[k>>2]<=+g[d+16>>2]?+g[k+16>>2]>=+g[d>>2]:0)?+g[k+4>>2]<=+g[d+20>>2]:0)?+g[k+20>>2]>=+g[d+4>>2]:0)?+g[k+8>>2]<=+g[d+24>>2]:0)?+g[k+24>>2]>=+g[d+8>>2]:0){n=(c[d+40>>2]|0)!=0;if((c[k+40>>2]|0)==0){if(n){s=c[d+36>>2]|0;r=o+(l<<3)|0;c[r>>2]=k;c[r+4>>2]=s;r=c[d+40>>2]|0;s=(c[b+32>>2]|0)+(e<<3)|0;c[s>>2]=k;c[s+4>>2]=r;e=e+1|0;break}else{sc[c[(c[f>>2]|0)+8>>2]&63](f,k,d);e=l;break}}else{l=o+(l<<3)|0;o=c[k+36>>2]|0;if(n){r=c[d+36>>2]|0;c[l>>2]=o;c[l+4>>2]=r;r=c[d+36>>2]|0;s=(c[b+32>>2]|0)+(e<<3)|0;c[s>>2]=c[k+40>>2];c[s+4>>2]=r;s=c[d+40>>2]|0;r=(c[b+32>>2]|0)+(e+1<<3)|0;c[r>>2]=c[k+36>>2];c[r+4>>2]=s;r=c[d+40>>2]|0;s=(c[b+32>>2]|0)+(e+2<<3)|0;c[s>>2]=c[k+40>>2];c[s+4>>2]=r;e=e+3|0;break}else{c[l>>2]=o;c[l+4>>2]=d;s=(c[b+32>>2]|0)+(e<<3)|0;c[s>>2]=c[k+40>>2];c[s+4>>2]=d;e=e+1|0;break}}}else{e=l}}}while(0)}while((e|0)!=0);i=h;return}function Er(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=i;i=i+48|0;mr(b+4|0,((aa(c[b+152>>2]|0,c[b+16>>2]|0)|0)/100|0)+1|0);if((c[b+164>>2]|0)!=0){p=((aa(c[b+148>>2]|0,c[b+76>>2]|0)|0)/100|0)+1|0;mr(b+64|0,p);p=(c[b+164>>2]|0)-p|0;c[b+164>>2]=(p|0)<0?0:p}l=((c[b+144>>2]|0)+1|0)%2|0;c[b+144>>2]=l;l=c[b+(l<<2)+124>>2]|0;if((l|0)!=0){do{m=l+56|0;k=l;l=c[m>>2]|0;n=c[k+52>>2]|0;if((n|0)==0){c[b+(c[k+60>>2]<<2)+124>>2]=l}else{c[n+56>>2]=l}n=c[m>>2]|0;if((n|0)!=0){c[n+52>>2]=c[k+52>>2]}c[k+52>>2]=0;c[m>>2]=c[b+132>>2];m=c[b+132>>2]|0;if((m|0)!=0){c[m+52>>2]=k}c[b+132>>2]=k;n=c[k+48>>2]|0;or(b+4|0,n)|0;m=c[b+8>>2]|0;if((m|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0)}c[b+8>>2]=n;c[b+16>>2]=(c[b+16>>2]|0)+ -1;c[e+16>>2]=c[k+16>>2];c[e+20>>2]=c[k+20>>2];c[e+24>>2]=c[k+24>>2];c[e+28>>2]=c[k+28>>2];c[e+32>>2]=c[k+32>>2];c[e+36>>2]=c[k+36>>2];c[e+40>>2]=c[k+40>>2];c[e+44>>2]=c[k+44>>2];m=c[b+68>>2]|0;if((m|0)==0){c[4546]=(c[4546]|0)+1;m=Zx(63)|0;if((m|0)!=0?(c[(m+19&-16)+ -4>>2]=m,(m+19&-16|0)!=0):0){o=(m+19&-16)+0|0;n=o+44|0;do{c[o>>2]=0;o=o+4|0}while((o|0)<(n|0));m=m+19&-16}else{m=0}}else{c[b+68>>2]=0}c[m+32>>2]=0;c[m+36>>2]=k;c[m+40>>2]=0;c[m+0>>2]=c[e+16>>2];c[m+4>>2]=c[e+20>>2];c[m+8>>2]=c[e+24>>2];c[m+12>>2]=c[e+28>>2];c[m+16>>2]=c[e+32>>2];c[m+20>>2]=c[e+36>>2];c[m+24>>2]=c[e+40>>2];c[m+28>>2]=c[e+44>>2];nr(b+64|0,c[b+64>>2]|0,m);c[b+76>>2]=(c[b+76>>2]|0)+1;c[k+48>>2]=m;c[k+60>>2]=2}while((l|0)!=0);c[b+164>>2]=c[b+76>>2];a[b+194>>0]=1}c[e>>2]=10360;c[e+4>>2]=b;if((a[b+193>>0]|0)!=0?(Dr(b+4|0,c[b+4>>2]|0,c[b+64>>2]|0,e),(a[b+193>>0]|0)!=0):0){p=c[b+4>>2]|0;Dr(b+4|0,p,p,e)}do{if((a[b+194>>0]|0)!=0?(h=c[b+136>>2]|0,h=Rb[c[(c[h>>2]|0)+28>>2]&127](h)|0,j=c[h+4>>2]|0,(j|0)>0):0){l=(aa(c[b+156>>2]|0,j)|0)/100|0;p=c[b+160>>2]|0;l=(p|0)>(l|0)?p:l;l=(j|0)<(l|0)?j:l;if((l|0)>0){k=0;do{n=((c[b+184>>2]|0)+k|0)%(j|0)|0;o=c[h+12>>2]|0;m=c[o+(n<<4)>>2]|0;n=c[o+(n<<4)+4>>2]|0;o=c[m+48>>2]|0;p=c[n+48>>2]|0;if(!(((((+g[o>>2]<=+g[p+16>>2]?+g[o+16>>2]>=+g[p>>2]:0)?+g[o+4>>2]<=+g[p+20>>2]:0)?+g[o+20>>2]>=+g[p+4>>2]:0)?+g[o+8>>2]<=+g[p+24>>2]:0)?+g[o+24>>2]>=+g[p+8>>2]:0)){j=c[b+136>>2]|0;Vb[c[(c[j>>2]|0)+12>>2]&31](j,m,n,d)|0;j=c[h+4>>2]|0;k=k+ -1|0;l=l+ -1|0}k=k+1|0}while((k|0)<(l|0));if((j|0)<=0){c[b+184>>2]=0;break}}c[b+184>>2]=((c[b+184>>2]|0)+l|0)%(j|0)|0}}while(0);c[b+180>>2]=(c[b+180>>2]|0)+1;c[b+160>>2]=1;a[b+194>>0]=0;h=c[b+168>>2]|0;if((h|0)==0){g[b+176>>2]=0.0;j=c[b+172>>2]|0}else{j=c[b+172>>2]|0;g[b+176>>2]=+(j>>>0)/+(h>>>0)}c[b+172>>2]=j>>>1;c[b+168>>2]=h>>>1;p=c[b+136>>2]|0;if(!(Rb[c[(c[p>>2]|0)+56>>2]&127](p)|0)){i=e;return}h=c[b+136>>2]|0;h=Rb[c[(c[h>>2]|0)+28>>2]&127](h)|0;m=c[h+4>>2]|0;if((m|0)>1){um(h,0,m+ -1|0);o=0;l=0;j=0;k=0;f=45}else{l=0;o=0;j=0;k=0}while(1){if((f|0)==45){m=c[h+4>>2]|0}if((j|0)>=(m|0)){break}n=c[h+12>>2]|0;m=n+(j<<4)|0;f=c[m>>2]|0;n=n+(j<<4)+4|0;p=c[n>>2]|0;if((f|0)==(l|0)){if((p|0)==(o|0)){f=55}else{f=49}}else{l=f;f=49}if((f|0)==49){f=0;q=c[l+48>>2]|0;o=c[p+48>>2]|0;if(((((+g[q>>2]<=+g[o+16>>2]?+g[q+16>>2]>=+g[o>>2]:0)?+g[q+4>>2]<=+g[o+20>>2]:0)?+g[q+20>>2]>=+g[o+4>>2]:0)?+g[q+8>>2]<=+g[o+24>>2]:0)?+g[q+24>>2]>=+g[o+8>>2]:0){o=p}else{o=p;f=55}}if((f|0)==55){q=c[b+136>>2]|0;sc[c[(c[q>>2]|0)+32>>2]&63](q,m,d);c[m>>2]=0;c[n>>2]=0;k=k+1|0}j=j+1|0;f=45}if((m|0)>1){um(h,0,m+ -1|0);m=c[h+4>>2]|0}b=m-k|0;if((k|0)<0){if((c[h+8>>2]|0)<(b|0)){if((m|0)==(k|0)){d=0}else{c[4546]=(c[4546]|0)+1;d=Zx((b<<4|3)+16|0)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}k=c[h+4>>2]|0}if((k|0)>0){f=0;do{q=c[h+12>>2]|0;c[d+(f<<4)>>2]=c[q+(f<<4)>>2];c[d+(f<<4)+4>>2]=c[q+(f<<4)+4>>2];c[d+(f<<4)+8>>2]=c[q+(f<<4)+8>>2];c[d+(f<<4)+12>>2]=c[q+(f<<4)+12>>2];f=f+1|0}while((f|0)!=(k|0))}f=c[h+12>>2]|0;if((f|0)!=0){if((a[h+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[h+12>>2]=0}a[h+16>>0]=1;c[h+12>>2]=d;c[h+8>>2]=b;d=h+12|0}else{d=h+12|0}do{p=(c[d>>2]|0)+(m<<4)|0;m=m+1|0;q=(m|0)==(b|0);c[p+0>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0}while(!q)}c[h+4>>2]=b;i=e;return}function Fr(a){a=a|0;return c[a+136>>2]|0}function Gr(a){a=a|0;return c[a+136>>2]|0}function Hr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;e=i;f=c[a+4>>2]|0;a=c[a+64>>2]|0;do{if((f|0)==0){if((a|0)==0){h=0.0;j=0.0;o=0.0;n=0.0;m=0.0;l=0.0;k=0.0;p=0.0}else{h=+g[a>>2];j=+g[a+4>>2];o=+g[a+8>>2];n=+g[a+12>>2];m=+g[a+16>>2];l=+g[a+20>>2];k=+g[a+24>>2];p=+g[a+28>>2]}}else{h=+g[f>>2];if((a|0)==0){j=+g[f+4>>2];o=+g[f+8>>2];n=+g[f+12>>2];m=+g[f+16>>2];l=+g[f+20>>2];k=+g[f+24>>2];p=+g[f+28>>2];break}else{t=+g[a>>2];r=+g[f+16>>2];m=+g[a+16>>2];s=+g[f+4>>2];j=+g[a+4>>2];q=+g[f+20>>2];l=+g[a+20>>2];n=+g[f+8>>2];o=+g[a+8>>2];p=+g[f+24>>2];k=+g[a+24>>2];h=hm?r:m;l=q>l?q:l;k=p>k?p:k;p=0.0;break}}}while(0);g[b>>2]=h;g[b+4>>2]=j;g[b+8>>2]=o;g[b+12>>2]=n;g[d>>2]=m;g[d+4>>2]=l;g[d+8>>2]=k;g[d+12>>2]=p;i=e;return}function Ir(b,d){b=b|0;d=d|0;var e=0;d=i;if((c[b+16>>2]|0)!=(0-(c[b+76>>2]|0)|0)){i=d;return}e=c[b+4>>2]|0;if((e|0)!=0){lr(b+4|0,e)}e=c[b+8>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+8>>2]=0;c[b+12>>2]=-1;e=c[b+36>>2]|0;if((e|0)!=0){if((a[b+40>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;c[b+20>>2]=0;e=c[b+64>>2]|0;if((e|0)!=0){lr(b+64|0,e)}e=c[b+68>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+68>>2]=0;c[b+72>>2]=-1;e=c[b+96>>2]|0;if((e|0)!=0){if((a[b+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;c[b+80>>2]=0;a[b+193>>0]=0;a[b+194>>0]=1;c[b+144>>2]=0;c[b+164>>2]=0;c[b+148>>2]=1;c[b+152>>2]=0;c[b+156>>2]=10;c[b+160>>2]=1;c[b+124>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;c[b+168>>2]=0;c[b+172>>2]=0;c[b+176>>2]=0;c[b+180>>2]=0;c[b+184>>2]=0;c[b+188>>2]=0;i=d;return}function Jr(a){a=a|0;return}function Kr(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Lr(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+4>>2]|0;hc[c[(c[a>>2]|0)+8>>2]&31](a,c[b+36>>2]|0)|0;i=d;return}function Mr(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Nr(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+4>>2]|0;hc[c[(c[a>>2]|0)+8>>2]&31](a,c[b+36>>2]|0)|0;i=d;return}function Or(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Pr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if((b|0)==(d|0)){i=e;return}f=c[(c[a+4>>2]|0)+136>>2]|0;_b[c[(c[f>>2]|0)+8>>2]&31](f,c[b+36>>2]|0,c[d+36>>2]|0)|0;d=(c[a+4>>2]|0)+160|0;c[d>>2]=(c[d>>2]|0)+1;i=e;return}function Qr(a,b){a=a|0;b=b|0;var d=0;d=i;sc[c[(c[a>>2]|0)+8>>2]&63](a,b,c[(c[a+8>>2]|0)+48>>2]|0);i=d;return}function Rr(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;e=i;c[b>>2]=10440;c[4546]=(c[4546]|0)+1;k=Zx(379)|0;if((k|0)==0){k=0}else{c[(k+19&-16)+ -4>>2]=k;k=k+19&-16}g[k+308>>2]=9999999747378752.0e-20;l=k+332|0;a[l>>0]=a[l>>0]&-16;c[b+24>>2]=k;k=(c[d+20>>2]|0)==0;c[4546]=(c[4546]|0)+1;l=Zx(23)|0;if((l|0)==0){m=0}else{c[(l+19&-16)+ -4>>2]=l;m=l+19&-16}l=(m|0)==0;if(k){if(l){m=0}else{c[m>>2]=13064}c[b+28>>2]=m}else{if(l){m=0}else{c[m>>2]=11736}c[b+28>>2]=m}c[4546]=(c[4546]|0)+1;k=Zx(43)|0;if((k|0)!=0?(j=k+19&-16,c[j+ -4>>2]=k,(k+19&-16|0)!=0):0){m=c[b+24>>2]|0;n=c[b+28>>2]|0;a[j+4>>0]=0;c[(k+19&-16)>>2]=16960;c[j+16>>2]=0;c[j+20>>2]=3;c[j+12>>2]=m;c[j+8>>2]=n;j=k+19&-16}else{j=0}c[b+32>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx(27)|0;if((j|0)!=0?(c[(j+19&-16)+ -4>>2]=j,(j+19&-16|0)!=0):0){a[(j+19&-16)+4>>0]=0;c[(j+19&-16)>>2]=11448;j=j+19&-16}else{j=0}c[b+36>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx(27)|0;if((j|0)!=0?(c[(j+19&-16)+ -4>>2]=j,(j+19&-16|0)!=0):0){a[(j+19&-16)+4>>0]=0;c[(j+19&-16)>>2]=11344;j=j+19&-16}else{j=0}c[b+40>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx(27)|0;if((j|0)!=0?(c[(j+19&-16)+ -4>>2]=j,(j+19&-16|0)!=0):0){a[(j+19&-16)+4>>0]=0;c[(j+19&-16)>>2]=11256;j=j+19&-16}else{j=0}c[b+44>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx(27)|0;if((j|0)!=0?(c[(j+19&-16)+ -4>>2]=j,(j+19&-16|0)!=0):0){a[(j+19&-16)+4>>0]=0;c[(j+19&-16)>>2]=11160;j=j+19&-16}else{j=0}c[b+48>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx(27)|0;if((j|0)!=0?(c[(j+19&-16)+ -4>>2]=j,(j+19&-16|0)!=0):0){a[(j+19&-16)+4>>0]=0;c[(j+19&-16)>>2]=11064;j=j+19&-16}else{j=0}c[b+52>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx(27)|0;if((j|0)!=0?(c[(j+19&-16)+ -4>>2]=j,(j+19&-16|0)!=0):0){a[(j+19&-16)+4>>0]=0;c[(j+19&-16)>>2]=10984;j=j+19&-16}else{j=0}c[b+56>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx(27)|0;if((j|0)!=0?(c[(j+19&-16)+ -4>>2]=j,(j+19&-16|0)!=0):0){a[(j+19&-16)+4>>0]=0;c[(j+19&-16)>>2]=10888;j=j+19&-16}else{j=0}c[b+60>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx(27)|0;if((j|0)!=0?(c[(j+19&-16)+ -4>>2]=j,(j+19&-16|0)!=0):0){a[(j+19&-16)+4>>0]=0;c[(j+19&-16)>>2]=10792;j=j+19&-16}else{j=0}c[b+76>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx(27)|0;if((j|0)!=0?(c[(j+19&-16)+ -4>>2]=j,(j+19&-16|0)!=0):0){a[(j+19&-16)+4>>0]=0;c[(j+19&-16)>>2]=10792;j=j+19&-16}else{j=0}c[b+80>>2]=j;a[j+4>>0]=1;c[4546]=(c[4546]|0)+1;j=Zx(27)|0;if((j|0)!=0?(c[(j+19&-16)+ -4>>2]=j,(j+19&-16|0)!=0):0){a[(j+19&-16)+4>>0]=0;c[(j+19&-16)>>2]=10704;j=j+19&-16}else{j=0}c[b+72>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx(35)|0;if((j|0)!=0?(h=j+19&-16,c[h+ -4>>2]=j,(j+19&-16|0)!=0):0){a[h+4>>0]=0;c[(j+19&-16)>>2]=10568;c[h+8>>2]=1;c[h+12>>2]=0;h=j+19&-16}else{h=0}c[b+88>>2]=h;c[4546]=(c[4546]|0)+1;h=Zx(35)|0;if((h|0)!=0?(f=h+19&-16,c[f+ -4>>2]=h,(h+19&-16|0)!=0):0){a[f+4>>0]=0;c[(h+19&-16)>>2]=10568;c[f+8>>2]=1;c[f+12>>2]=0;f=h+19&-16}else{f=0}c[b+84>>2]=f;a[f+4>>0]=1;f=c[d+16>>2]|0;f=(f|0)<36?36:f;f=(f|0)>80?f:80;f=(f|0)>44?f:44;h=c[d>>2]|0;if((h|0)==0){a[b+12>>0]=1;c[4546]=(c[4546]|0)+1;h=Zx(39)|0;do{if((h|0)==0){h=0}else{l=h+19&-16;c[l+ -4>>2]=h;if((h+19&-16|0)==0){h=0;break}j=c[d+8>>2]|0;c[(h+19&-16)>>2]=772;c[l+4>>2]=j;c[4546]=(c[4546]|0)+1;j=Zx((j*772|3)+16|0)|0;if((j|0)==0){k=0}else{c[(j+19&-16)+ -4>>2]=j;k=j+19&-16}c[l+16>>2]=k;c[l+12>>2]=k;j=c[l+4>>2]|0;c[l+8>>2]=j;if((j+ -1|0)!=0){n=c[(h+19&-16)>>2]|0;m=j+ -1|0;l=k;do{o=l;l=l+n|0;c[o>>2]=l;m=m+ -1|0}while((m|0)!=0);k=k+(aa(n,j+ -1|0)|0)|0}c[k>>2]=0;h=h+19&-16}}while(0);c[b+8>>2]=h}else{a[b+12>>0]=0;c[b+8>>2]=h}h=c[d+4>>2]|0;if((h|0)!=0){a[b+20>>0]=0;c[b+16>>2]=h;i=e;return}a[b+20>>0]=1;c[4546]=(c[4546]|0)+1;h=Zx(39)|0;do{if((h|0)==0){d=0}else{j=h+19&-16;c[j+ -4>>2]=h;if((h+19&-16|0)==0){d=0;break}d=c[d+12>>2]|0;c[(h+19&-16)>>2]=f;c[j+4>>2]=d;d=aa(d,f)|0;c[4546]=(c[4546]|0)+1;d=Zx(d+19|0)|0;if((d|0)==0){f=0}else{c[(d+19&-16)+ -4>>2]=d;f=d+19&-16}c[j+16>>2]=f;c[j+12>>2]=f;d=c[j+4>>2]|0;c[j+8>>2]=d;if((d+ -1|0)!=0){k=c[(h+19&-16)>>2]|0;j=d+ -1|0;l=f;do{o=l;l=l+k|0;c[o>>2]=l;j=j+ -1|0}while((j|0)!=0);f=f+(aa(k,d+ -1|0)|0)|0}c[f>>2]=0;d=h+19&-16}}while(0);c[b+16>>2]=d;i=e;return}function Sr(a){a=a|0;var b=0;b=i;Tr(a);if((a|0)==0){i=b;return}_x(a);i=b;return}function Tr(b){b=b|0;var d=0,e=0,f=0;d=i;c[b>>2]=10440;if((a[b+20>>0]|0)!=0){e=c[b+16>>2]|0;f=c[e+16>>2]|0;if((f|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0);e=c[b+16>>2]|0}if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}}if((a[b+12>>0]|0)!=0){e=c[b+8>>2]|0;f=c[e+16>>2]|0;if((f|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0);e=c[b+8>>2]|0}if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}}e=c[b+32>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+32>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+36>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+36>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+40>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+40>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+44>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+44>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+48>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+48>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+52>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+52>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+56>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+56>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+60>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+60>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+76>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+76>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+80>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+80>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+72>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+72>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+88>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+88>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+84>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+84>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+24>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}f=c[b+28>>2]|0;Nb[c[c[f>>2]>>2]&255](f);b=c[b+28>>2]|0;if((b|0)==0){i=d;return}c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);i=d;return}function Ur(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;do{if(!((b|0)==8&(d|0)==8)){if((b|0)==8&(d|0)==1){a=a+76|0;break}if((b|0)==1&(d|0)==8){a=a+80|0;break}if((d|b|0)==0){a=a+72|0;break}if((b|0)<20&(d|0)==28){a=a+88|0;break}if((d|0)<20&(b|0)==28){a=a+84|0;break}if((b|0)<20){if((d|0)<20){a=a+32|0;break}if((d+ -21|0)>>>0<9){a=a+36|0;break}}else{if((d|0)<20?(b+ -21|0)>>>0<9:0){a=a+40|0;break}}if((b|0)==31){if((d|0)==31){a=a+48|0;break}else{a=a+44|0;break}}else{if((d|0)==31){a=a+52|0;break}else{a=a+56|0;break}}}else{a=a+60|0}}while(0);i=e;return c[a>>2]|0}function Vr(a){a=a|0;return c[a+8>>2]|0}function Wr(a){a=a|0;return c[a+16>>2]|0}function Xr(a){a=a|0;return c[a+24>>2]|0}function Yr(a){a=a|0;return}function Zr(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function _r(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;h=c[d>>2]|0;h=hc[c[(c[h>>2]|0)+56>>2]&31](h,28)|0;if((a[b+4>>0]|0)==0){if((h|0)==0){f=0;i=g;return f|0}j=c[b+8>>2]|0;b=c[b+12>>2]|0;d=c[d>>2]|0;c[h+4>>2]=d;c[h>>2]=17576;a[h+8>>0]=0;c[h+12>>2]=0;a[h+16>>0]=0;c[h+20>>2]=j;c[h+24>>2]=b;if(!(_b[c[(c[d>>2]|0)+24>>2]&31](d,c[e+8>>2]|0,c[f+8>>2]|0)|0)){j=h;i=g;return j|0}j=c[h+4>>2]|0;c[h+12>>2]=_b[c[(c[j>>2]|0)+12>>2]&31](j,c[e+8>>2]|0,c[f+8>>2]|0)|0;a[h+8>>0]=1;j=h;i=g;return j|0}else{if((h|0)==0){j=0;i=g;return j|0}k=c[b+8>>2]|0;b=c[b+12>>2]|0;j=c[d>>2]|0;c[h+4>>2]=j;c[h>>2]=17576;a[h+8>>0]=0;c[h+12>>2]=0;a[h+16>>0]=1;c[h+20>>2]=k;c[h+24>>2]=b;if(!(_b[c[(c[j>>2]|0)+24>>2]&31](j,c[f+8>>2]|0,c[e+8>>2]|0)|0)){k=h;i=g;return k|0}k=c[h+4>>2]|0;c[h+12>>2]=_b[c[(c[k>>2]|0)+12>>2]&31](k,c[f+8>>2]|0,c[e+8>>2]|0)|0;a[h+8>>0]=1;k=h;i=g;return k|0}return 0}function $r(a){a=a|0;return}function as(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function bs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=i;g=c[d>>2]|0;g=hc[c[(c[g>>2]|0)+56>>2]&31](g,16)|0;if((g|0)==0){g=0;i=b;return g|0}d=c[d>>2]|0;c[g+4>>2]=d;c[g>>2]=16064;a[g+8>>0]=0;c[g+12>>2]=0;if(!(_b[c[(c[d>>2]|0)+24>>2]&31](d,c[e+8>>2]|0,c[f+8>>2]|0)|0)){i=b;return g|0}d=c[g+4>>2]|0;c[g+12>>2]=_b[c[(c[d>>2]|0)+12>>2]&31](d,c[e+8>>2]|0,c[f+8>>2]|0)|0;a[g+8>>0]=1;i=b;return g|0}function cs(a){a=a|0;return}function ds(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function es(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;h=c[d>>2]|0;h=hc[c[(c[h>>2]|0)+56>>2]&31](h,20)|0;if((h|0)==0){b=0;i=g;return b|0}j=c[d+4>>2]|0;b=a[b+4>>0]|0;d=c[d>>2]|0;c[h+4>>2]=d;c[h>>2]=15232;a[h+8>>0]=0;c[h+12>>2]=j;a[h+16>>0]=b;if((j|0)!=0){j=h;i=g;return j|0}c[h+12>>2]=_b[c[(c[d>>2]|0)+12>>2]&31](d,c[e+8>>2]|0,c[f+8>>2]|0)|0;a[h+8>>0]=1;j=h;i=g;return j|0}function fs(a){a=a|0;return}function gs(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function hs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=i;g=c[d>>2]|0;g=hc[c[(c[g>>2]|0)+56>>2]&31](g,16)|0;if((g|0)==0){g=0;i=b;return g|0}d=c[d>>2]|0;c[g+4>>2]=d;c[g>>2]=15144;a[g+8>>0]=0;c[g+12>>2]=0;c[g+12>>2]=_b[c[(c[d>>2]|0)+12>>2]&31](d,c[e+8>>2]|0,c[f+8>>2]|0)|0;a[g+8>>0]=1;i=b;return g|0}function is(a){a=a|0;return}function js(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function ks(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=i;d=c[b>>2]|0;d=hc[c[(c[d>>2]|0)+56>>2]&31](d,8)|0;if((d|0)==0){e=0;i=a;return e|0}c[d+4>>2]=c[b>>2];c[d>>2]=11568;e=d;i=a;return e|0}function ls(a){a=a|0;return}function ms(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function ns(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=i;g=c[d>>2]|0;g=hc[c[(c[g>>2]|0)+56>>2]&31](g,44)|0;if((g|0)==0){g=0;i=b;return g|0}c[g+4>>2]=c[d>>2];c[g>>2]=16208;a[g+24>>0]=1;c[g+20>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;a[g+28>>0]=1;c[g+32>>2]=c[d+4>>2];a[g+36>>0]=0;c[g+40>>2]=c[(c[f+4>>2]|0)+68>>2];Fv(g,e,f);i=b;return g|0}function os(a){a=a|0;return}function ps(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function qs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;b=c[d>>2]|0;b=hc[c[(c[b>>2]|0)+56>>2]&31](b,48)|0;if((b|0)==0){m=0;i=h;return m|0}c[b+4>>2]=c[d>>2];c[b>>2]=16376;a[b+28>>0]=1;c[b+24>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+32>>2]=c[d+4>>2];a[b+36>>0]=0;c[4546]=(c[4546]|0)+1;d=Zx(87)|0;if((d|0)!=0?(g=d+19&-16,c[g+ -4>>2]=d,(d+19&-16|0)!=0):0){c[(d+19&-16)>>2]=17768;a[g+20>>0]=1;c[g+16>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;a[g+24>>0]=0;a[g+44>>0]=1;c[g+40>>2]=0;c[g+32>>2]=0;c[g+36>>2]=0;a[g+64>>0]=1;c[g+60>>2]=0;c[g+52>>2]=0;c[g+56>>2]=0;c[4546]=(c[4546]|0)+1;j=Zx(43)|0;if((j|0)==0){j=0}else{c[(j+19&-16)+ -4>>2]=j;j=j+19&-16}k=c[g+8>>2]|0;if((k|0)>0){l=0;do{m=j+(l*12|0)|0;if((m|0)!=0){n=(c[g+16>>2]|0)+(l*12|0)|0;c[m+0>>2]=c[n+0>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2]}l=l+1|0}while((l|0)!=(k|0))}k=c[g+16>>2]|0;if((k|0)!=0){if((a[g+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[g+16>>2]=0}a[g+20>>0]=1;c[g+16>>2]=j;c[g+12>>2]=2;Tw(d+19&-16);g=d+19&-16}else{g=0}c[b+8>>2]=g;c[b+40>>2]=c[(c[e+4>>2]|0)+68>>2];c[b+44>>2]=c[(c[f+4>>2]|0)+68>>2];n=b;i=h;return n|0}function rs(a){a=a|0;return}function ss(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function ts(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=i;g=c[d>>2]|0;g=hc[c[(c[g>>2]|0)+56>>2]&31](g,44)|0;if((g|0)==0){g=0;i=b;return g|0}c[g+4>>2]=c[d>>2];c[g>>2]=16208;a[g+24>>0]=1;c[g+20>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;a[g+28>>0]=0;c[g+32>>2]=c[d+4>>2];a[g+36>>0]=0;c[g+40>>2]=c[(c[e+4>>2]|0)+68>>2];Fv(g,e,f);i=b;return g|0}function us(a){a=a|0;return}function vs(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function ws(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=i;g=c[d>>2]|0;g=hc[c[(c[g>>2]|0)+56>>2]&31](g,80)|0;if((g|0)==0){g=0;i=b;return g|0}c[g+4>>2]=c[d>>2];c[g>>2]=16600;a[g+8>>0]=1;d=c[d>>2]|0;c[g+12>>2]=16632;c[g+60>>2]=d;c[g+64>>2]=0;c[g+16>>2]=f;c[g+20>>2]=e;e=_b[c[(c[d>>2]|0)+12>>2]&31](d,c[f+8>>2]|0,c[e+8>>2]|0)|0;c[g+76>>2]=e;f=c[g+60>>2]|0;Pb[c[(c[f>>2]|0)+20>>2]&127](f,e);i=b;return g|0}function xs(a){a=a|0;return}function ys(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function zs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=i;g=c[d>>2]|0;g=hc[c[(c[g>>2]|0)+56>>2]&31](g,80)|0;if((g|0)==0){g=0;i=b;return g|0}c[g+4>>2]=c[d>>2];c[g>>2]=16600;a[g+8>>0]=0;d=c[d>>2]|0;c[g+12>>2]=16632;c[g+60>>2]=d;c[g+64>>2]=0;c[g+16>>2]=e;c[g+20>>2]=f;f=_b[c[(c[d>>2]|0)+12>>2]&31](d,c[e+8>>2]|0,c[f+8>>2]|0)|0;c[g+76>>2]=f;e=c[g+60>>2]|0;Pb[c[(c[e>>2]|0)+20>>2]&127](e,f);i=b;return g|0}function As(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return}function Bs(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function Cs(a){a=a|0;return}function Ds(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Es(a,b){a=a|0;b=b|0;return}function Fs(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0;k=i;i=i+288|0;u=c[b+4>>2]|0;a[u+312>>0]=0;c[u>>2]=0;a[u+356>>0]=1;g[u+292>>2]=999999984306749400.0;g[u+296>>2]=999999984306749400.0;g[u+300>>2]=999999984306749400.0;g[u+304>>2]=0.0;c[u+336>>2]=0;c[u+340>>2]=0;c[u+344>>2]=0;c[u+348>>2]=0;a[u+352>>0]=0;a[u+332>>0]=a[u+332>>0]&-16;n=+g[e+48>>2]- +g[d+48>>2]-(+g[h+48>>2]- +g[f+48>>2]);m=+g[e+52>>2]- +g[d+52>>2]-(+g[h+52>>2]- +g[f+52>>2]);l=+g[e+56>>2]- +g[d+56>>2]-(+g[h+56>>2]- +g[f+56>>2]);c[k+216>>2]=9368;g[k+252>>2]=999999984306749400.0;a[k+256>>0]=0;u=c[b+8>>2]|0;t=c[b+12>>2]|0;b=c[b+4>>2]|0;c[k+136>>2]=11880;g[k+140>>2]=0.0;g[k+144>>2]=1.0;g[k+148>>2]=0.0;g[k+152>>2]=0.0;c[k+156>>2]=0;c[k+160>>2]=b;c[k+164>>2]=u;c[k+168>>2]=t;c[k+172>>2]=c[u+4>>2];c[k+176>>2]=c[t+4>>2];g[k+180>>2]=+bc[c[(c[u>>2]|0)+48>>2]&15](u);g[k+184>>2]=+bc[c[(c[t>>2]|0)+48>>2]&15](t);a[k+188>>0]=0;c[k+196>>2]=-1;c[k+208>>2]=1;c[k+212>>2]=1;g[k+128>>2]=999999984306749400.0;c[k+0>>2]=c[d+0>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];c[k+16>>2]=c[d+16>>2];c[k+20>>2]=c[d+20>>2];c[k+24>>2]=c[d+24>>2];c[k+28>>2]=c[d+28>>2];c[k+32>>2]=c[d+32>>2];c[k+36>>2]=c[d+36>>2];c[k+40>>2]=c[d+40>>2];c[k+44>>2]=c[d+44>>2];c[k+48>>2]=c[d+48>>2];c[k+52>>2]=c[d+52>>2];c[k+56>>2]=c[d+56>>2];c[k+60>>2]=c[d+60>>2];c[k+64>>2]=c[f+0>>2];c[k+68>>2]=c[f+4>>2];c[k+72>>2]=c[f+8>>2];c[k+76>>2]=c[f+12>>2];c[k+80>>2]=c[f+16>>2];c[k+84>>2]=c[f+20>>2];c[k+88>>2]=c[f+24>>2];c[k+92>>2]=c[f+28>>2];c[k+96>>2]=c[f+32>>2];c[k+100>>2]=c[f+36>>2];c[k+104>>2]=c[f+40>>2];c[k+108>>2]=c[f+44>>2];c[k+112>>2]=c[f+48>>2];c[k+116>>2]=c[f+52>>2];c[k+120>>2]=c[f+56>>2];c[k+124>>2]=c[f+60>>2];Js(k+136|0,k,k+216|0,0,0);t=(a[k+256>>0]|0)==0;b=k+236|0;c[k+264>>2]=c[b+0>>2];c[k+268>>2]=c[b+4>>2];c[k+272>>2]=c[b+8>>2];c[k+276>>2]=c[b+12>>2];if(t){u=0;i=k;return u|0}q=+g[k+252>>2];o=+g[k+220>>2];p=+g[k+224>>2];r=+g[k+228>>2];s=+g[k+232>>2];do{if(q>.0010000000474974513){s=q;q=0.0;t=1;while(1){if((t|0)>32){j=0;e=13;break}v=q;q=q-s/(l*r+(m*p+n*o));if(!(!(q<0.0)&!(q>1.0)&!(q<=v))){j=0;e=13;break}Mb[c[c[j>>2]>>2]&31](j,q);v=1.0-q;g[k+48>>2]=v*+g[d+48>>2]+q*+g[e+48>>2];g[k+52>>2]=v*+g[d+52>>2]+q*+g[e+52>>2];g[k+56>>2]=v*+g[d+56>>2]+q*+g[e+56>>2];g[k+112>>2]=v*+g[f+48>>2]+q*+g[h+48>>2];g[k+116>>2]=v*+g[f+52>>2]+q*+g[h+52>>2];g[k+120>>2]=v*+g[f+56>>2]+q*+g[h+56>>2];Js(k+136|0,k,k+216|0,0,0);if((a[k+256>>0]|0)==0){j=0;e=13;break}s=+g[k+252>>2];if(s<0.0){e=8;break}c[k+264>>2]=c[b+0>>2];c[k+268>>2]=c[b+4>>2];c[k+272>>2]=c[b+8>>2];c[k+276>>2]=c[b+12>>2];o=+g[k+220>>2];p=+g[k+224>>2];r=+g[k+228>>2];if(!(s>.0010000000474974513)){e=10;break}else{t=t+1|0}}if((e|0)==8){g[j+164>>2]=q;r=+g[k+224>>2];s=+g[k+228>>2];v=+g[k+232>>2];g[j+132>>2]=+g[k+220>>2];g[j+136>>2]=r;g[j+140>>2]=s;g[j+144>>2]=v;c[j+148>>2]=c[b+0>>2];c[j+152>>2]=c[b+4>>2];c[j+156>>2]=c[b+8>>2];c[j+160>>2]=c[b+12>>2];u=1;i=k;return u|0}else if((e|0)==10){s=+g[k+232>>2];break}else if((e|0)==13){i=k;return j|0}}else{q=0.0}}while(0);if(l*r+(m*p+n*o)>=-+g[j+172>>2]){u=0;i=k;return u|0}g[j+164>>2]=q;g[j+132>>2]=o;g[j+136>>2]=p;g[j+140>>2]=r;g[j+144>>2]=s;c[j+148>>2]=c[k+264>>2];c[j+152>>2]=c[k+268>>2];c[j+156>>2]=c[k+272>>2];c[j+160>>2]=c[k+276>>2];u=1;i=k;return u|0}function Gs(a){a=a|0;return}function Hs(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Is(b,e,f,h,j,k,l,m,n,o){b=b|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0.0,x=0,y=0.0,z=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0;b=i;i=i+10240|0;U=+g[k+52>>2]- +g[j+52>>2];H=+g[k+56>>2]- +g[j+56>>2];g[b>>2]=+g[k+48>>2]- +g[j+48>>2];g[b+4>>2]=U;g[b+8>>2]=H;g[b+12>>2]=0.0;c[b+10088>>2]=f;c[b+10092>>2]=h;H=+g[k>>2];U=+g[j>>2];G=+g[k+16>>2];B=+g[j+16>>2];C=+g[k+32>>2];V=+g[j+32>>2];L=+g[j+4>>2];W=+g[j+20>>2];M=+g[j+36>>2];w=+g[j+8>>2];K=+g[j+24>>2];I=+g[j+40>>2];T=+g[k+4>>2];S=+g[k+20>>2];R=+g[k+36>>2];P=+g[k+8>>2];O=+g[k+24>>2];N=+g[k+40>>2];g[b+10096>>2]=H*U+G*B+C*V;g[b+10100>>2]=H*L+G*W+C*M;g[b+10104>>2]=H*w+G*K+C*I;g[b+10108>>2]=0.0;g[b+10112>>2]=U*T+B*S+V*R;g[b+10116>>2]=L*T+W*S+M*R;g[b+10120>>2]=w*T+K*S+I*R;g[b+10124>>2]=0.0;g[b+10128>>2]=U*P+B*O+V*N;g[b+10132>>2]=L*P+W*O+M*N;g[b+10136>>2]=w*P+K*O+I*N;g[b+10140>>2]=0.0;I=+g[k+48>>2]- +g[j+48>>2];K=+g[k+52>>2]- +g[j+52>>2];w=+g[k+56>>2]- +g[j+56>>2];M=+g[j>>2];W=+g[k>>2];L=+g[j+16>>2];V=+g[k+16>>2];B=+g[j+32>>2];U=+g[k+32>>2];C=+g[j+4>>2];G=+g[j+20>>2];H=+g[j+36>>2];J=+g[j+8>>2];y=+g[j+24>>2];u=+g[j+40>>2];g[b+10144>>2]=M*W+L*V+B*U;g[b+10148>>2]=M*T+L*S+B*R;g[b+10152>>2]=M*P+L*O+B*N;g[b+10156>>2]=0.0;g[b+10160>>2]=W*C+V*G+U*H;g[b+10164>>2]=T*C+S*G+R*H;g[b+10168>>2]=P*C+O*G+N*H;g[b+10172>>2]=0.0;g[b+10176>>2]=W*J+V*y+U*u;g[b+10180>>2]=T*J+S*y+R*u;g[b+10184>>2]=P*J+O*y+N*u;g[b+10188>>2]=0.0;g[b+10192>>2]=I*M+K*L+w*B;g[b+10196>>2]=I*C+K*G+w*H;g[b+10200>>2]=I*J+K*y+w*u;g[b+10204>>2]=0.0;c[b+10208>>2]=61;c[b+10212>>2]=0;c[b+10072>>2]=0;c[b+9836>>2]=0;c[b+9840>>2]=0;c[b+9844>>2]=0;c[b+9848>>2]=0;c[b+10084>>2]=2;c[b+10076>>2]=0;g[b+9852>>2]=0.0;u=+g[b>>2];w=+g[b+4>>2];y=+g[b+8>>2];g[b+9328>>2]=-u;g[b+9332>>2]=-w;g[b+9336>>2]=-y;g[b+9340>>2]=0.0;do{if((Lw(b+9708|0,b+10088|0,b+9328|0)|0)==1){r=b+9296|0;e=b+9304|0;q=b+9308|0;c[r+0>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[b+16>>2]=9;o=b+56|0;c[b+9292>>2]=0;c[o+0>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;t=0;do{s=128-t+ -1|0;c[b+16+(s*56|0)+2152>>2]=0;v=c[e>>2]|0;c[b+16+(s*56|0)+2156>>2]=v;if((v|0)!=0){c[v+44>>2]=b+16+(s*56|0)+2108}c[e>>2]=b+16+(s*56|0)+2108;c[q>>2]=(c[q>>2]|0)+1;t=t+1|0}while((t|0)!=128);s=c[b+10080>>2]|0;if((c[s+32>>2]|0)>>>0>1?Mw(b+9708|0)|0:0){t=c[r>>2]|0;if((t|0)!=0){x=c[b+9300>>2]|0;v=c[q>>2]|0;do{z=t+48|0;D=c[z>>2]|0;A=t+44|0;if((D|0)!=0){c[D+44>>2]=c[A>>2]}D=c[A>>2]|0;if((D|0)!=0){c[D+48>>2]=c[z>>2]}if((c[r>>2]|0)==(t|0)){c[r>>2]=c[z>>2]}x=x+ -1|0;c[A>>2]=0;c[z>>2]=c[e>>2];z=c[e>>2]|0;if((z|0)!=0){c[z+44>>2]=t}c[e>>2]=t;v=v+1|0;t=c[r>>2]|0}while((t|0)!=0);c[b+9300>>2]=x;c[q>>2]=v}c[b+16>>2]=0;c[b+9292>>2]=0;x=c[s>>2]|0;z=c[s+12>>2]|0;W=+g[z+16>>2];N=+g[x+16>>2]-W;P=+g[z+20>>2];R=+g[x+20>>2]-P;T=+g[z+24>>2];U=+g[x+24>>2]-T;z=c[s+4>>2]|0;S=+g[z+16>>2]-W;V=+g[z+20>>2]-P;O=+g[z+24>>2]-T;t=c[s+8>>2]|0;W=+g[t+16>>2]-W;P=+g[t+20>>2]-P;T=+g[t+24>>2]-T;if(N*V*T+(R*O*W+U*S*P-N*O*P-R*S*T)-U*V*W<0.0){c[s>>2]=z;c[s+4>>2]=x;W=+g[s+16>>2];g[s+16>>2]=+g[s+20>>2];g[s+20>>2]=W;v=z}else{v=x;x=z}A=Nw(b+16|0,v,x,t,1)|0;z=Nw(b+16|0,c[s+4>>2]|0,c[s>>2]|0,c[s+12>>2]|0,1)|0;x=Nw(b+16|0,c[s+8>>2]|0,c[s+4>>2]|0,c[s+12>>2]|0,1)|0;t=Nw(b+16|0,c[s>>2]|0,c[s+8>>2]|0,c[s+12>>2]|0,1)|0;if((c[b+9300>>2]|0)==4){v=c[r>>2]|0;C=+g[v+16>>2];s=c[v+48>>2]|0;if((s|0)!=0){u=C*C;D=v;while(1){w=+g[s+16>>2];v=w*w>2]|0;if((s|0)==0){break}else{u=v?w*w:u}}v=D;C=+g[D+16>>2]}u=+g[v>>2];y=+g[v+4>>2];B=+g[v+8>>2];w=+g[v+12>>2];D=c[v+20>>2]|0;E=c[v+24>>2]|0;F=c[v+28>>2]|0;a[A+52>>0]=0;c[A+32>>2]=z;a[z+52>>0]=0;c[z+32>>2]=A;a[A+53>>0]=0;c[A+36>>2]=x;a[x+52>>0]=1;c[x+32>>2]=A;a[A+54>>0]=0;c[A+40>>2]=t;a[t+52>>0]=2;c[t+32>>2]=A;a[z+53>>0]=2;c[z+36>>2]=t;a[t+54>>0]=1;c[t+40>>2]=z;a[z+54>>0]=1;c[z+40>>2]=x;a[x+53>>0]=2;c[x+36>>2]=z;a[x+54>>0]=1;c[x+40>>2]=t;a[t+53>>0]=2;c[t+36>>2]=x;c[b+16>>2]=0;s=0;A=D;z=E;x=F;t=1;while(1){F=c[b+9292>>2]|0;if(!(F>>>0<64)){p=48;break}c[b+10216>>2]=0;c[b+10220>>2]=0;c[b+10224>>2]=0;c[b+9292>>2]=F+1;a[v+55>>0]=t;D=v+4|0;E=v+8|0;Ow(b+9708|0,+g[v>>2],+g[D>>2],+g[E>>2],b+16+(F<<5)+60|0);if(+g[v>>2]*+g[b+16+(F<<5)+76>>2]+ +g[D>>2]*+g[b+16+(F<<5)+80>>2]+ +g[E>>2]*+g[b+16+(F<<5)+84>>2]- +g[v+16>>2]>9999999747378752.0e-20){E=0;D=1}else{p=47;break}do{D=D&(Pw(b+16|0,t,b+16+(F<<5)+60|0,c[v+(E<<2)+32>>2]|0,d[v+E+52>>0]|0,b+10216|0)|0);E=E+1|0}while(!(E>>>0>2|D^1));if(!D){p=46;break}if(!((c[b+10224>>2]|0)>>>0>2)){p=46;break}A=c[b+10216>>2]|0;z=c[b+10220>>2]|0;a[A+53>>0]=2;c[A+36>>2]=z;a[z+54>>0]=1;c[z+40>>2]=A;z=v+48|0;A=c[z>>2]|0;x=v+44|0;if((A|0)!=0){c[A+44>>2]=c[x>>2]}A=c[x>>2]|0;if((A|0)!=0){c[A+48>>2]=c[z>>2]}if((c[r>>2]|0)==(v|0)){c[r>>2]=c[z>>2]}c[b+9300>>2]=(c[b+9300>>2]|0)+ -1;c[x>>2]=0;c[z>>2]=c[e>>2];x=c[e>>2]|0;if((x|0)!=0){c[x+44>>2]=v}c[e>>2]=v;c[q>>2]=(c[q>>2]|0)+1;v=c[r>>2]|0;C=+g[v+16>>2];x=c[v+48>>2]|0;if((x|0)!=0){u=C*C;z=v;while(1){w=+g[x+16>>2];v=w*w>2]|0;if((x|0)==0){break}else{u=v?w*w:u}}v=z;C=+g[z+16>>2]}u=+g[v>>2];y=+g[v+4>>2];B=+g[v+8>>2];w=+g[v+12>>2];A=c[v+20>>2]|0;z=c[v+24>>2]|0;x=c[v+28>>2]|0;s=s+1|0;if(!(s>>>0<255)){break}else{t=t+1|0}}if((p|0)==46){c[b+16>>2]=4}else if((p|0)==47){c[b+16>>2]=7}else if((p|0)==48){c[b+16>>2]=6}S=C*u;P=C*y;U=C*B;g[o>>2]=u;g[b+60>>2]=y;g[b+64>>2]=B;g[b+68>>2]=w;g[b+72>>2]=C;c[b+52>>2]=3;c[b+20>>2]=A;c[b+24>>2]=z;c[b+28>>2]=x;D=z+16|0;T=+g[D>>2]-S;E=z+20|0;N=+g[E>>2]-P;F=z+24|0;R=+g[F>>2]-U;v=x+16|0;M=+g[v>>2]-S;z=x+20|0;O=+g[z>>2]-P;x=x+24|0;V=+g[x>>2]-U;V=+Q(+((T*O-N*M)*(T*O-N*M)+((N*V-R*O)*(N*V-R*O)+(R*M-T*V)*(R*M-T*V))));g[b+36>>2]=V;T=+g[v>>2]-S;M=+g[z>>2]-P;R=+g[x>>2]-U;x=A+16|0;O=+g[x>>2]-S;z=A+20|0;N=+g[z>>2]-P;A=A+24|0;W=+g[A>>2]-U;W=+Q(+((T*N-M*O)*(T*N-M*O)+((M*W-R*N)*(M*W-R*N)+(R*O-T*W)*(R*O-T*W))));g[b+40>>2]=W;T=+g[x>>2]-S;O=+g[z>>2]-P;R=+g[A>>2]-U;S=+g[D>>2]-S;P=+g[E>>2]-P;U=+g[F>>2]-U;U=+Q(+((T*P-O*S)*(T*P-O*S)+((O*U-R*P)*(O*U-R*P)+(R*S-T*U)*(R*S-T*U))));g[b+36>>2]=V/(U+(V+W));g[b+40>>2]=W/(U+(V+W));g[b+44>>2]=U/(U+(V+W));if((c[b+16>>2]|0)==9){w=0.0;u=0.0;B=0.0;C=0.0;H=0.0;I=0.0;J=0.0;G=0.0;y=0.0;o=0;break}if((c[b+52>>2]|0)==0){y=0.0;B=0.0;C=0.0}else{e=b+52|0;p=54}}else{p=49}}else{p=49}if((p|0)==49){c[b+16>>2]=8;g[o>>2]=u;g[b+60>>2]=w;g[b+64>>2]=y;g[b+68>>2]=0.0;B=+Q(+(u*u+w*w+y*y));if(B>0.0){y=1.0/B*y;w=1.0/B*w;u=1.0/B*u}else{y=0.0;w=0.0;u=1.0}g[o>>2]=u;g[b+60>>2]=w;g[b+64>>2]=y;g[b+68>>2]=0.0;g[b+72>>2]=0.0;c[b+52>>2]=1;c[b+20>>2]=c[s>>2];g[b+36>>2]=1.0;e=b+52|0;p=54}if((p|0)==54){u=0.0;w=0.0;y=0.0;p=0;do{r=c[b+10208>>2]|0;F=c[b+10212>>2]|0;q=(c[b+10088>>2]|0)+(F>>1)|0;if((F&1|0)!=0){r=c[(c[q>>2]|0)+r>>2]|0}sc[r&63](b+9312|0,q,c[b+16+(p<<2)+4>>2]|0);W=+g[b+16+(p<<2)+20>>2];u=u+ +g[b+9312>>2]*W;w=w+W*+g[b+9316>>2];y=y+W*+g[b+9320>>2];p=p+1|0}while(p>>>0<(c[e>>2]|0)>>>0);B=w;C=u}Y=+g[j>>2];X=+g[j+4>>2];K=+g[j+8>>2];M=+g[j+16>>2];N=+g[j+20>>2];O=+g[j+24>>2];R=+g[j+32>>2];T=+g[j+36>>2];V=+g[j+40>>2];L=+g[j+48>>2];H=+g[j+52>>2];I=+g[j+56>>2];J=+g[o>>2];U=+g[b+72>>2];G=+g[b+60>>2];W=+g[b+64>>2];P=C-J*U;S=B-U*G;U=y-U*W;w=C*Y+B*X+y*K+L;u=C*M+B*N+y*O+H;B=C*R+B*T+y*V+I;C=P*Y+S*X+U*K+L;H=P*M+S*N+U*O+H;I=P*R+S*T+U*V+I;J=-J;G=-G;y=-W;o=1}else{w=0.0;u=0.0;B=0.0;C=0.0;H=0.0;I=0.0;J=0.0;G=0.0;y=0.0;o=0}}while(0);if(o){g[m>>2]=w;g[m+4>>2]=u;g[m+8>>2]=B;g[m+12>>2]=0.0;g[n>>2]=C;g[n+4>>2]=H;g[n+8>>2]=I;g[n+12>>2]=0.0;g[l>>2]=J;g[l+4>>2]=G;g[l+8>>2]=y;g[l+12>>2]=0.0;F=1;i=b;return F|0}c[b+9708>>2]=f;c[b+9712>>2]=h;y=+g[k>>2];M=+g[j>>2];B=+g[k+16>>2];N=+g[j+16>>2];C=+g[k+32>>2];O=+g[j+32>>2];P=+g[j+4>>2];R=+g[j+20>>2];S=+g[j+36>>2];U=+g[j+8>>2];W=+g[j+24>>2];Y=+g[j+40>>2];G=+g[k+4>>2];H=+g[k+20>>2];I=+g[k+36>>2];J=+g[k+8>>2];K=+g[k+24>>2];L=+g[k+40>>2];g[b+9716>>2]=y*M+B*N+C*O;g[b+9720>>2]=y*P+B*R+C*S;g[b+9724>>2]=y*U+B*W+C*Y;g[b+9728>>2]=0.0;g[b+9732>>2]=M*G+N*H+O*I;g[b+9736>>2]=P*G+R*H+S*I;g[b+9740>>2]=U*G+W*H+Y*I;g[b+9744>>2]=0.0;g[b+9748>>2]=M*J+N*K+O*L;g[b+9752>>2]=P*J+R*K+S*L;g[b+9756>>2]=U*J+W*K+Y*L;g[b+9760>>2]=0.0;T=+g[k+48>>2]- +g[j+48>>2];V=+g[k+52>>2]- +g[j+52>>2];X=+g[k+56>>2]- +g[j+56>>2];g[b+9764>>2]=y*M+B*N+C*O;g[b+9768>>2]=M*G+N*H+O*I;g[b+9772>>2]=M*J+N*K+O*L;g[b+9776>>2]=0.0;g[b+9780>>2]=y*P+B*R+C*S;g[b+9784>>2]=P*G+R*H+S*I;g[b+9788>>2]=P*J+R*K+S*L;g[b+9792>>2]=0.0;g[b+9796>>2]=y*U+B*W+C*Y;g[b+9800>>2]=U*G+W*H+Y*I;g[b+9804>>2]=U*J+W*K+Y*L;g[b+9808>>2]=0.0;g[b+9812>>2]=T*M+V*N+X*O;g[b+9816>>2]=T*P+V*R+X*S;g[b+9820>>2]=T*U+V*W+X*Y;g[b+9824>>2]=0.0;c[b+9828>>2]=62;c[b+9832>>2]=0;c[b+9692>>2]=0;c[b+9456>>2]=0;c[b+9460>>2]=0;c[b+9464>>2]=0;c[b+9468>>2]=0;c[b+9704>>2]=2;c[b+9696>>2]=0;g[b+9472>>2]=0.0;if((Lw(b+9328|0,b+9708|0,b)|0)!=0){F=0;i=b;return F|0}k=c[b+9700>>2]|0;if((c[k+32>>2]|0)==0){H=0.0;G=0.0;C=0.0;u=0.0;y=0.0;w=0.0}else{C=0.0;G=0.0;H=0.0;w=0.0;y=0.0;u=0.0;f=0;do{B=+g[k+(f<<2)+16>>2];o=c[b+9828>>2]|0;F=c[b+9832>>2]|0;h=(c[b+9708>>2]|0)+(F>>1)|0;if((F&1|0)!=0){o=c[(c[h>>2]|0)+o>>2]|0}sc[o&63](b+9312|0,h,c[k+(f<<2)>>2]|0);C=C+B*+g[b+9312>>2];G=G+B*+g[b+9316>>2];H=H+B*+g[b+9320>>2];h=c[(c[b+9700>>2]|0)+(f<<2)>>2]|0;I=-+g[h>>2];K=-+g[h+4>>2];J=-+g[h+8>>2];h=c[b+9828>>2]|0;F=c[b+9832>>2]|0;k=(c[b+9712>>2]|0)+(F>>1)|0;if((F&1|0)!=0){h=c[(c[k>>2]|0)+h>>2]|0}X=+g[b+9732>>2]*I+ +g[b+9736>>2]*K+ +g[b+9740>>2]*J;W=+g[b+9748>>2]*I+ +g[b+9752>>2]*K+ +g[b+9756>>2]*J;g[b+10088>>2]=+g[b+9716>>2]*I+ +g[b+9720>>2]*K+ +g[b+9724>>2]*J;g[b+10092>>2]=X;g[b+10096>>2]=W;g[b+10100>>2]=0.0;sc[h&63](b+10216|0,k,b+10088|0);W=+g[b+10216>>2];X=+g[b+10220>>2];Y=+g[b+10224>>2];w=w+B*(W*+g[b+9764>>2]+X*+g[b+9768>>2]+Y*+g[b+9772>>2]+ +g[b+9812>>2]);y=y+B*(W*+g[b+9780>>2]+X*+g[b+9784>>2]+Y*+g[b+9788>>2]+ +g[b+9816>>2]);u=u+B*(W*+g[b+9796>>2]+X*+g[b+9800>>2]+Y*+g[b+9804>>2]+ +g[b+9820>>2]);f=f+1|0;k=c[b+9700>>2]|0}while(f>>>0<(c[k+32>>2]|0)>>>0)}I=+g[j>>2];J=+g[j+4>>2];K=+g[j+8>>2];M=+g[j+16>>2];N=+g[j+20>>2];O=+g[j+24>>2];R=+g[j+32>>2];S=+g[j+36>>2];T=+g[j+40>>2];L=+g[j+48>>2];P=+g[j+52>>2];U=+g[j+56>>2];V=C-w;W=G-y;Y=H-u;X=+Q(+(V*V+W*W+Y*Y));X=1.0/(X>9999999747378752.0e-20?X:1.0);g[m>>2]=C*I+G*J+H*K+L;g[m+4>>2]=C*M+G*N+H*O+P;g[m+8>>2]=C*R+G*S+H*T+U;g[m+12>>2]=0.0;g[n>>2]=w*I+y*J+u*K+L;g[n+4>>2]=w*M+y*N+u*O+P;g[n+8>>2]=w*R+y*S+u*T+U;g[n+12>>2]=0.0;g[l>>2]=X*V;g[l+4>>2]=X*W;g[l+8>>2]=X*Y;g[l+12>>2]=0.0;F=0;i=b;return F|0}function Js(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0;h=i;i=i+288|0;g[b+56>>2]=0.0;p=h+276|0;q=h+280|0;c[h+272>>2]=0;c[h+276>>2]=0;c[h+280>>2]=0;c[h+284>>2]=0;c[h+208>>2]=c[d+0>>2];c[h+212>>2]=c[d+4>>2];c[h+216>>2]=c[d+8>>2];c[h+220>>2]=c[d+12>>2];c[h+224>>2]=c[d+16>>2];c[h+228>>2]=c[d+20>>2];c[h+232>>2]=c[d+24>>2];c[h+236>>2]=c[d+28>>2];c[h+240>>2]=c[d+32>>2];c[h+244>>2]=c[d+36>>2];c[h+248>>2]=c[d+40>>2];c[h+252>>2]=c[d+44>>2];N=h+256|0;c[N+0>>2]=c[d+48>>2];c[N+4>>2]=c[d+52>>2];c[N+8>>2]=c[d+56>>2];c[N+12>>2]=c[d+60>>2];c[h+144>>2]=c[d+64>>2];c[h+148>>2]=c[d+68>>2];c[h+152>>2]=c[d+72>>2];c[h+156>>2]=c[d+76>>2];c[h+160>>2]=c[d+80>>2];c[h+164>>2]=c[d+84>>2];c[h+168>>2]=c[d+88>>2];c[h+172>>2]=c[d+92>>2];c[h+176>>2]=c[d+96>>2];c[h+180>>2]=c[d+100>>2];c[h+184>>2]=c[d+104>>2];c[h+188>>2]=c[d+108>>2];O=h+192|0;c[O+0>>2]=c[d+112>>2];c[O+4>>2]=c[d+116>>2];c[O+8>>2]=c[d+120>>2];c[O+12>>2]=c[d+124>>2];r=+g[N>>2];s=+g[O>>2];t=+g[h+260>>2];u=+g[h+196>>2];n=+g[h+264>>2];o=+g[h+200>>2];g[N>>2]=r-(r+s)*.5;g[h+260>>2]=t-(t+u)*.5;g[h+264>>2]=n-(n+o)*.5;g[O>>2]=s-(r+s)*.5;g[h+196>>2]=u-(t+u)*.5;g[h+200>>2]=o-(n+o)*.5;if(((c[(c[b+28>>2]|0)+4>>2]|0)+ -17|0)>>>0<2){y=((c[(c[b+32>>2]|0)+4>>2]|0)+ -17|0)>>>0<2}else{y=0}w=+g[b+44>>2];v=+g[b+48>>2];c[2966]=(c[2966]|0)+1;O=(a[b+52>>0]|0)==0;v=O?v:0.0;c[b+64>>2]=0;g[b+4>>2]=0.0;g[b+8>>2]=1.0;g[b+12>>2]=0.0;g[b+16>>2]=0.0;c[b+68>>2]=0;c[b+60>>2]=-1;w=(O?w:0.0)+v;O=c[b+24>>2]|0;a[O+312>>0]=0;c[O>>2]=0;a[O+356>>0]=1;g[O+292>>2]=999999984306749400.0;g[O+296>>2]=999999984306749400.0;g[O+300>>2]=999999984306749400.0;g[O+304>>2]=0.0;c[O+336>>2]=0;c[O+340>>2]=0;c[O+344>>2]=0;c[O+348>>2]=0;a[O+352>>0]=0;a[O+332>>0]=a[O+332>>0]&-16;A=+g[b+4>>2];B=+g[b+8>>2];E=+g[b+12>>2];a:do{if(y){z=999999984306749400.0;while(1){K=-A;L=-B;C=-E;F=+g[d+4>>2]*K+ +g[d+20>>2]*L+ +g[d+36>>2]*C;M=+g[d+8>>2]*K+ +g[d+24>>2]*L+ +g[d+40>>2]*C;g[h+128>>2]=+g[d>>2]*K+ +g[d+16>>2]*L+ +g[d+32>>2]*C;g[h+132>>2]=F;g[h+136>>2]=M;g[h+140>>2]=0.0;M=A*+g[d+68>>2]+B*+g[d+84>>2]+E*+g[d+100>>2];F=A*+g[d+72>>2]+B*+g[d+88>>2]+E*+g[d+104>>2];g[h+112>>2]=+g[d+64>>2]*A+ +g[d+80>>2]*B+ +g[d+96>>2]*E;g[h+116>>2]=M;g[h+120>>2]=F;g[h+124>>2]=0.0;Jq(h+96|0,c[b+28>>2]|0,h+128|0);Jq(h+80|0,c[b+32>>2]|0,h+112|0);F=+g[h+96>>2];M=+g[h+100>>2];B=+g[h+104>>2];E=F*+g[h+208>>2]+M*+g[h+212>>2]+B*+g[h+216>>2]+ +g[h+256>>2];B=F*+g[h+224>>2]+M*+g[h+228>>2]+B*+g[h+232>>2]+ +g[h+260>>2];M=+g[h+80>>2];F=+g[h+84>>2];C=+g[h+88>>2];A=M*+g[h+144>>2]+F*+g[h+148>>2]+C*+g[h+152>>2]+ +g[h+192>>2];C=M*+g[h+160>>2]+F*+g[h+164>>2]+C*+g[h+168>>2]+ +g[h+196>>2];F=+g[b+4>>2]*(E-A)+ +g[b+8>>2]*(B-C)+ +g[b+12>>2]*0.0;if(F>0.0?F*F>z*+g[d+128>>2]:0){j=22;break a}y=c[b+24>>2]|0;D=c[y>>2]|0;if((D|0)>0){G=+g[y+308>>2];O=0;N=0;do{K=E-A- +g[y+(N<<4)+4>>2];L=B-C- +g[y+(N<<4)+8>>2];M=0.0- +g[y+(N<<4)+12>>2];O=O|K*K+L*L+M*M<=G;N=N+1|0}while((N|0)!=(D|0))}else{O=0}if((+g[y+304>>2]==0.0?+g[y+300>>2]==0.0:0)?B-C==+g[y+296>>2]:0){N=E-A==+g[y+292>>2]}else{N=0}if(N|O){j=31;break a}H=z-F;if(H<=z*9.999999974752427e-7){j=33;break a}g[y+292>>2]=E-A;g[y+296>>2]=B-C;g[y+300>>2]=0.0;g[y+304>>2]=0.0;a[y+356>>0]=1;g[y+(D<<4)+4>>2]=E-A;g[y+(D<<4)+8>>2]=B-C;g[y+(D<<4)+12>>2]=0.0;g[y+(D<<4)+16>>2]=0.0;N=c[y>>2]|0;g[y+(N<<4)+84>>2]=E;g[y+(N<<4)+88>>2]=B;g[y+(N<<4)+92>>2]=0.0;g[y+(N<<4)+96>>2]=0.0;N=c[y>>2]|0;g[y+(N<<4)+164>>2]=A;g[y+(N<<4)+168>>2]=C;g[y+(N<<4)+172>>2]=0.0;g[y+(N<<4)+176>>2]=0.0;c[y>>2]=(c[y>>2]|0)+1;N=c[b+24>>2]|0;O=sv(N)|0;A=+g[N+276>>2];B=+g[N+280>>2];E=+g[N+284>>2];F=+g[N+288>>2];if(!O){j=35;break a}C=z;z=A*A+B*B+E*E;if(z<9.999999974752427e-7){z=C;j=37;break a}if(C-z<=C*1.1920928955078125e-7){j=39;break a}g[b+4>>2]=A;g[b+8>>2]=B;g[b+12>>2]=E;g[b+16>>2]=F;O=c[b+64>>2]|0;c[b+64>>2]=O+1;if((O|0)>1e3){z=0.0;y=0;A=0.0;B=0.0;C=0.0;break a}if((c[c[b+24>>2]>>2]|0)==4){j=42;break}}}else{z=999999984306749400.0;while(1){G=-A;C=-B;F=-E;H=+g[d+4>>2]*G+ +g[d+20>>2]*C+ +g[d+36>>2]*F;M=+g[d+8>>2]*G+ +g[d+24>>2]*C+ +g[d+40>>2]*F;g[h+128>>2]=+g[d>>2]*G+ +g[d+16>>2]*C+ +g[d+32>>2]*F;g[h+132>>2]=H;g[h+136>>2]=M;g[h+140>>2]=0.0;M=A*+g[d+68>>2]+B*+g[d+84>>2]+E*+g[d+100>>2];H=A*+g[d+72>>2]+B*+g[d+88>>2]+E*+g[d+104>>2];g[h+112>>2]=+g[d+64>>2]*A+ +g[d+80>>2]*B+ +g[d+96>>2]*E;g[h+116>>2]=M;g[h+120>>2]=H;g[h+124>>2]=0.0;Jq(h+96|0,c[b+28>>2]|0,h+128|0);Jq(h+80|0,c[b+32>>2]|0,h+112|0);H=+g[h+96>>2];M=+g[h+100>>2];F=+g[h+104>>2];B=H*+g[h+208>>2]+M*+g[h+212>>2]+F*+g[h+216>>2]+ +g[h+256>>2];C=H*+g[h+224>>2]+M*+g[h+228>>2]+F*+g[h+232>>2]+ +g[h+260>>2];F=H*+g[h+240>>2]+M*+g[h+244>>2]+F*+g[h+248>>2]+ +g[h+264>>2];M=+g[h+80>>2];H=+g[h+84>>2];E=+g[h+88>>2];A=M*+g[h+144>>2]+H*+g[h+148>>2]+E*+g[h+152>>2]+ +g[h+192>>2];G=M*+g[h+160>>2]+H*+g[h+164>>2]+E*+g[h+168>>2]+ +g[h+196>>2];E=M*+g[h+176>>2]+H*+g[h+180>>2]+E*+g[h+184>>2]+ +g[h+200>>2];H=+g[b+4>>2]*(B-A)+ +g[b+8>>2]*(C-G)+ +g[b+12>>2]*(F-E);if(H>0.0?H*H>z*+g[d+128>>2]:0){j=22;break a}D=c[b+24>>2]|0;y=c[D>>2]|0;if((y|0)>0){I=+g[D+308>>2];O=0;N=0;do{K=B-A- +g[D+(N<<4)+4>>2];L=C-G- +g[D+(N<<4)+8>>2];M=F-E- +g[D+(N<<4)+12>>2];O=O|K*K+L*L+M*M<=I;N=N+1|0}while((N|0)!=(y|0))}else{O=0}if((+g[D+304>>2]==0.0?F-E==+g[D+300>>2]:0)?C-G==+g[D+296>>2]:0){N=B-A==+g[D+292>>2]}else{N=0}if(N|O){j=31;break a}H=z-H;if(H<=z*9.999999974752427e-7){j=33;break a}g[D+292>>2]=B-A;g[D+296>>2]=C-G;g[D+300>>2]=F-E;g[D+304>>2]=0.0;a[D+356>>0]=1;g[D+(y<<4)+4>>2]=B-A;g[D+(y<<4)+8>>2]=C-G;g[D+(y<<4)+12>>2]=F-E;g[D+(y<<4)+16>>2]=0.0;N=c[D>>2]|0;g[D+(N<<4)+84>>2]=B;g[D+(N<<4)+88>>2]=C;g[D+(N<<4)+92>>2]=F;g[D+(N<<4)+96>>2]=0.0;N=c[D>>2]|0;g[D+(N<<4)+164>>2]=A;g[D+(N<<4)+168>>2]=G;g[D+(N<<4)+172>>2]=E;g[D+(N<<4)+176>>2]=0.0;c[D>>2]=(c[D>>2]|0)+1;N=c[b+24>>2]|0;O=sv(N)|0;A=+g[N+276>>2];B=+g[N+280>>2];E=+g[N+284>>2];F=+g[N+288>>2];if(!O){j=35;break a}C=z;z=A*A+B*B+E*E;if(z<9.999999974752427e-7){z=C;j=37;break a}if(C-z<=C*1.1920928955078125e-7){j=39;break a}g[b+4>>2]=A;g[b+8>>2]=B;g[b+12>>2]=E;g[b+16>>2]=F;O=c[b+64>>2]|0;c[b+64>>2]=O+1;if((O|0)>1e3){z=0.0;y=0;A=0.0;B=0.0;C=0.0;break a}if((c[c[b+24>>2]>>2]|0)==4){j=42;break}}}}while(0);if((j|0)==22){c[b+68>>2]=10;j=43}else if((j|0)==31){c[b+68>>2]=1;j=43}else if((j|0)==33){c[b+68>>2]=!(H<=0.0)?11:2;j=43}else if((j|0)==35){c[b+68>>2]=3;j=43}else if((j|0)==37){g[b+4>>2]=A;g[b+8>>2]=B;g[b+12>>2]=E;g[b+16>>2]=F;c[b+68>>2]=6;j=43}else if((j|0)==39){c[b+68>>2]=12;j=43}else if((j|0)==42){c[b+68>>2]=13;z=0.0;y=0;A=0.0;B=0.0;C=0.0}do{if((j|0)==43){O=c[b+24>>2]|0;sv(O)|0;A=+g[O+260>>2];B=+g[O+264>>2];C=+g[O+268>>2];c[h+272>>2]=c[b+4>>2];c[h+276>>2]=c[b+8>>2];c[h+280>>2]=c[b+12>>2];c[h+284>>2]=c[b+16>>2];G=+g[b+4>>2];F=+g[b+8>>2];E=+g[b+12>>2];if(G*G+F*F+E*E<1.0e-4){c[b+68>>2]=5}if(G*G+F*F+E*E>1.4210854715202004e-14){L=1.0/+Q(+(G*G+F*F+E*E));g[h+272>>2]=L*+g[h+272>>2];g[p>>2]=L*+g[p>>2];g[q>>2]=L*+g[q>>2];M=v/+Q(+z);c[b+60>>2]=1;z=1.0/L-w;y=1;A=M*G+A;B=M*F+B;C=M*E+C;break}else{c[b+60>>2]=2;z=0.0;y=0;break}}}while(0);if(((c[b+72>>2]|0)!=0?(c[b+20>>2]|0)!=0:0)?(c[b+68>>2]|0)!=0:0){N=w+z<.01}else{N=0}D=y^1;do{if(N|D?(x=c[b+20>>2]|0,(x|0)!=0):0){c[2964]=(c[2964]|0)+1;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;if(!(Qb[c[(c[x>>2]|0)+8>>2]&3](x,c[b+24>>2]|0,c[b+28>>2]|0,c[b+32>>2]|0,h+208|0,h+144|0,b+4|0,h+64|0,h+48|0,f)|0)){J=+g[b+4>>2];G=+g[b+8>>2];E=+g[b+12>>2];if(!(J*J+G*G+E*E>0.0)){j=66;break}I=+g[h+48>>2];K=+g[h+64>>2]-I;H=+g[h+52>>2];L=+g[h+68>>2]-H;F=+g[h+56>>2];M=+g[h+72>>2]-F;w=+Q(+(K*K+L*L+M*M))-w;if(w>2]=c[b+4>>2];c[h+276>>2]=c[b+8>>2];c[h+280>>2]=c[b+12>>2];c[h+284>>2]=c[b+16>>2];C=+g[h+272>>2];B=+g[p>>2];A=+g[q>>2];z=1.0/+Q(+(C*C+B*B+A*A));g[h+272>>2]=C*z;g[p>>2]=B*z;g[q>>2]=A*z;c[b+60>>2]=6;z=w;A=v*J+I;B=v*G+H;C=v*E+F;break}c[b+60>>2]=5;if(y){break}i=h;return}E=+g[h+48>>2];L=+g[h+64>>2];w=+g[h+52>>2];K=+g[h+68>>2];v=+g[h+56>>2];J=+g[h+72>>2];if(!((E-L)*(E-L)+(w-K)*(w-K)+(v-J)*(v-J)<=1.4210854715202004e-14)){F=0.0;M=(E-L)*(E-L)+(w-K)*(w-K)+(v-J)*(v-J);I=E-L;H=v-J;G=w-K}else{I=+g[b+4>>2];G=+g[b+8>>2];H=+g[b+12>>2];F=+g[b+16>>2];M=I*I+G*G+H*H}if(!(M>1.4210854715202004e-14)){c[b+60>>2]=9;if(y){break}i=h;return}M=1.0/+Q(+M);J=-+Q(+((L-E)*(L-E)+(K-w)*(K-w)+(J-v)*(J-v)));if(z>J|D){g[h+272>>2]=I*M;g[p>>2]=G*M;g[q>>2]=H*M;g[h+284>>2]=F;c[b+60>>2]=3;z=J;A=E;B=w;C=v;break}c[b+60>>2]=8;if(!y){i=h;return}}else{j=66}}while(0);if((j|0)==66){if(!y){i=h;return}}if(!(z<0.0)?!(z*z<+g[d+128>>2]):0){i=h;return}if((c[b+76>>2]|0)!=0?(O=c[b+28>>2]|0,wc[c[(c[O>>2]|0)+8>>2]&63](O,h+208|0,h+32|0,h+16|0),K=(+g[h+16>>2]+ +g[h+32>>2])*.5,L=(+g[h+20>>2]+ +g[h+36>>2])*.5,M=(+g[h+24>>2]+ +g[h+40>>2])*.5,O=c[b+32>>2]|0,wc[c[(c[O>>2]|0)+8>>2]&63](O,h+144|0,h+32|0,h+16|0),k=+g[h+272>>2],l=+g[p>>2],m=+g[q>>2],(K-(+g[h+32>>2]+ +g[h+16>>2])*.5)*k+(L-(+g[h+36>>2]+ +g[h+20>>2])*.5)*l+(M-(+g[h+40>>2]+ +g[h+24>>2])*.5)*m<0.0):0){g[h+272>>2]=k*-1.0;g[p>>2]=l*-1.0;g[q>>2]=m*-1.0}c[b+4>>2]=c[h+272>>2];c[b+8>>2]=c[h+276>>2];c[b+12>>2]=c[h+280>>2];c[b+16>>2]=c[h+284>>2];g[b+56>>2]=z;O=c[(c[e>>2]|0)+16>>2]|0;g[h>>2]=(r+s)*.5+A;g[h+4>>2]=(t+u)*.5+B;g[h+8>>2]=(n+o)*.5+C;g[h+12>>2]=0.0;rc[O&15](e,h+272|0,h,z);i=h;return}function Ks(a){a=a|0;return}function Ls(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return} function Hn(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;n=i;i=i+80|0;m=c[a+4>>2]|0;gc[c[(c[m>>2]|0)+16>>2]&3](m,n+28|0,n+24|0,n+20|0,n+16|0,n+12|0,n+8|0,n+4|0,n,b);m=(c[n+12>>2]|0)+(aa(c[n+8>>2]|0,d)|0)|0;k=c[a+4>>2]|0;f=(c[n>>2]|0)==3;l=(c[n+20>>2]|0)==0;j=c[n+28>>2]|0;o=2;while(1){if(f){p=e[m+(o<<1)>>1]|0}else{p=c[m+(o<<2)>>2]|0}p=aa(c[n+16>>2]|0,p)|0;if(l){r=+g[j+(p+4)>>2]*+g[k+8>>2];q=+g[j+(p+8)>>2]*+g[k+12>>2];g[n+32+(o<<4)>>2]=+g[j+p>>2]*+g[k+4>>2];g[n+32+(o<<4)+4>>2]=r;g[n+32+(o<<4)+8>>2]=q;g[n+32+(o<<4)+12>>2]=0.0}else{q=+h[j+(p+8)>>3]*+g[k+8>>2];r=+h[j+(p+16)>>3]*+g[k+12>>2];g[n+32+(o<<4)>>2]=+h[j+p>>3]*+g[k+4>>2];g[n+32+(o<<4)+4>>2]=q;g[n+32+(o<<4)+8>>2]=r;g[n+32+(o<<4)+12>>2]=0.0}if((o|0)>0){o=o+ -1|0}else{break}}p=c[a+8>>2]|0;wc[c[(c[p>>2]|0)+8>>2]&63](p,n+32|0,b,d);p=c[a+4>>2]|0;Pb[c[(c[p>>2]|0)+24>>2]&127](p,b);i=n;return}function In(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;e=i;i=i+32|0;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;f=+g[d>>2];h=+g[d+4>>2];j=+g[d+8>>2];if(f*f+h*h+j*j<9999999747378752.0e-20){f=1.0;h=0.0;j=0.0}else{q=1.0/+Q(+(f*f+h*h+j*j));f=f*q;h=h*q;j=j*q}d=c[b+52>>2]|0;m=+g[b+(((d+2|0)%3|0)<<2)+28>>2];c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;g[e+16+(d<<2)>>2]=+g[b+(d<<2)+28>>2];l=f*m;k=h*m;m=j*m;q=l+ +g[e+16>>2];n=k+ +g[e+20>>2];o=m+ +g[e+24>>2];p=+bc[c[(c[b>>2]|0)+48>>2]&15](b);q=q-f*p;n=n-h*p;p=o-j*p;o=j*p+(f*q+h*n);if(o>-999999984306749400.0){g[a>>2]=q;g[a+4>>2]=n;g[a+8>>2]=p;g[a+12>>2]=0.0}else{o=-999999984306749400.0}c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;d=c[b+52>>2]|0;g[e+(d<<2)>>2]=-+g[b+(d<<2)+28>>2];l=l+ +g[e>>2];k=k+ +g[e+4>>2];q=m+ +g[e+8>>2];m=+bc[c[(c[b>>2]|0)+48>>2]&15](b);l=l-f*m;k=k-h*m;m=q-j*m;if(!(j*m+(f*l+h*k)>o)){i=e;return}g[a>>2]=l;g[a+4>>2]=k;g[a+8>>2]=m;g[a+12>>2]=0.0;i=e;return}function Jn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0;f=i;i=i+32|0;k=c[a+52>>2]|0;h=+g[a+(((k+2|0)%3|0)<<2)+28>>2];if((e|0)<=0){i=f;return}j=0;while(1){m=a+(k<<2)+28|0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;g[f+16+(k<<2)>>2]=+g[m>>2];m=b+(j<<4)|0;l=b+(j<<4)+4|0;k=b+(j<<4)+8|0;u=h*+g[m>>2]+ +g[f+16>>2];s=h*+g[l>>2]+ +g[f+20>>2];q=h*+g[k>>2]+ +g[f+24>>2];w=+bc[c[(c[a>>2]|0)+48>>2]&15](a);t=+g[m>>2];r=+g[l>>2];v=+g[k>>2];if(t*(u-w*t)+r*(s-w*r)+v*(q-w*v)>-999999984306749400.0){g[d+(j<<4)>>2]=u-w*t;g[d+(j<<4)+4>>2]=s-w*r;g[d+(j<<4)+8>>2]=q-w*v;g[d+(j<<4)+12>>2]=0.0;p=+g[m>>2];o=+g[l>>2];n=+g[k>>2];q=t*(u-w*t)+r*(s-w*r)+v*(q-w*v)}else{p=t;o=r;n=v;q=-999999984306749400.0}c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;x=c[a+52>>2]|0;g[f+(x<<2)>>2]=-+g[a+(x<<2)+28>>2];p=h*p+ +g[f>>2];o=h*o+ +g[f+4>>2];r=h*n+ +g[f+8>>2];n=+bc[c[(c[a>>2]|0)+48>>2]&15](a);s=+g[m>>2];t=+g[l>>2];u=+g[k>>2];if(s*(p-n*s)+t*(o-n*t)+u*(r-n*u)>q){g[d+(j<<4)>>2]=p-n*s;g[d+(j<<4)+4>>2]=o-n*t;g[d+(j<<4)+8>>2]=r-n*u;g[d+(j<<4)+12>>2]=0.0}j=j+1|0;if((j|0)==(e|0)){break}k=c[a+52>>2]|0}i=f;return}function Kn(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0;e=i;i=i+16|0;k=c[a+52>>2]|0;h=+g[a+(((k+2|0)%3|0)<<2)+28>>2];g[e>>2]=h;g[e+4>>2]=h;g[e+8>>2]=h;g[e+12>>2]=0.0;g[e+(k<<2)>>2]=+g[a+(k<<2)+28>>2]+ +g[e+(k<<2)>>2];h=(+g[e>>2]+.03999999910593033)*2.0;f=(+g[e+4>>2]+.03999999910593033)*2.0;j=(+g[e+8>>2]+.03999999910593033)*2.0;g[d>>2]=b*.0833333283662796*(f*f+j*j);g[d+4>>2]=b*.0833333283662796*(h*h+j*j);g[d+8>>2]=b*.0833333283662796*(h*h+f*f);i=e;return}function Ln(a){a=a|0;return}function Mn(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Nn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0;f=i;i=i+16|0;x=c[a+52>>2]|0;k=+g[a+(((x+2|0)%3|0)<<2)+28>>2];g[f>>2]=k;g[f+4>>2]=k;g[f+8>>2]=k;g[f+12>>2]=0.0;g[f+(x<<2)>>2]=k+ +g[a+(x<<2)+28>>2];k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);h=+bc[c[(c[a>>2]|0)+48>>2]&15](a);n=+bc[c[(c[a>>2]|0)+48>>2]&15](a);k=k+ +g[f>>2];g[f>>2]=k;h=h+ +g[f+4>>2];g[f+4>>2]=h;n=n+ +g[f+8>>2];u=+P(+(+g[b>>2]));t=+P(+(+g[b+4>>2]));v=+P(+(+g[b+8>>2]));q=+P(+(+g[b+16>>2]));p=+P(+(+g[b+20>>2]));r=+P(+(+g[b+24>>2]));l=+P(+(+g[b+32>>2]));j=+P(+(+g[b+36>>2]));m=+P(+(+g[b+40>>2]));w=+g[b+48>>2];s=+g[b+52>>2];o=+g[b+56>>2];g[d>>2]=w-(n*v+(u*k+t*h));g[d+4>>2]=s-(n*r+(q*k+p*h));g[d+8>>2]=o-(n*m+(l*k+j*h));g[d+12>>2]=0.0;g[e>>2]=w+(n*v+(u*k+t*h));g[e+4>>2]=s+(n*r+(q*k+p*h));g[e+8>>2]=o+(n*m+(l*k+j*h));g[e+12>>2]=0.0;i=f;return}function On(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;d=i;m=+bc[c[(c[a>>2]|0)+48>>2]&15](a);j=+bc[c[(c[a>>2]|0)+48>>2]&15](a);e=+bc[c[(c[a>>2]|0)+48>>2]&15](a);o=(m+ +g[a+28>>2])/+g[a+12>>2];l=(j+ +g[a+32>>2])/+g[a+16>>2];h=(e+ +g[a+36>>2])/+g[a+20>>2];n=+P(+(+g[b>>2]));k=+P(+(+g[b+4>>2]));f=+P(+(+g[b+8>>2]));g[a+12>>2]=n;g[a+16>>2]=k;g[a+20>>2]=f;g[a+24>>2]=0.0;g[a+28>>2]=o*n-m;g[a+32>>2]=l*k-j;g[a+36>>2]=h*f-e;g[a+40>>2]=0.0;i=d;return}function Pn(a){a=a|0;return 6e3}function Qn(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g[a+(c[b+52>>2]<<2)>>2]=1.0;i=d;return}function Rn(a,b){a=a|0;b=+b;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0;d=i;j=+bc[c[(c[a>>2]|0)+48>>2]&15](a);f=+bc[c[(c[a>>2]|0)+48>>2]&15](a);k=+bc[c[(c[a>>2]|0)+48>>2]&15](a);j=j+ +g[a+28>>2];f=f+ +g[a+32>>2];k=k+ +g[a+36>>2];g[a+44>>2]=b;h=+bc[c[(c[a>>2]|0)+48>>2]&15](a);e=+bc[c[(c[a>>2]|0)+48>>2]&15](a);b=k- +bc[c[(c[a>>2]|0)+48>>2]&15](a);g[a+28>>2]=j-h;g[a+32>>2]=f-e;g[a+36>>2]=b;g[a+40>>2]=0.0;i=d;return}function Sn(a){a=a|0;return 60}function Tn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0;e=i;f=hc[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;h=hc[c[(c[d>>2]|0)+28>>2]&31](d,f)|0;c[b>>2]=h;if((h|0)!=0){Pb[c[(c[d>>2]|0)+48>>2]&127](d,f)}c[b+4>>2]=c[a+4>>2];g[b+28>>2]=+g[a+28>>2];g[b+32>>2]=+g[a+32>>2];g[b+36>>2]=+g[a+36>>2];g[b+40>>2]=+g[a+40>>2];g[b+12>>2]=+g[a+12>>2];g[b+16>>2]=+g[a+16>>2];g[b+20>>2]=+g[a+20>>2];g[b+24>>2]=+g[a+24>>2];g[b+44>>2]=+g[a+44>>2];c[b+52>>2]=c[a+52>>2];i=e;return 5976}function Un(a){a=a|0;return}function Vn(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Wn(a){a=a|0;return 5960}function Xn(a){a=a|0;return}function Yn(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Zn(a){a=a|0;return 5944}function _n(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0.0;e=i;i=i+80|0;f=c[c[a>>2]>>2]|0;h=c[c[a+4>>2]>>2]|0;if(!(_b[c[(c[b>>2]|0)+24>>2]&31](b,f,h)|0)){i=e;return}j=c[f+192>>2]|0;c[e+56>>2]=0;c[e+60>>2]=j;c[e+64>>2]=f;c[e+68>>2]=f+4;c[e+72>>2]=-1;c[e+76>>2]=-1;j=c[h+192>>2]|0;c[e+32>>2]=0;c[e+36>>2]=j;c[e+40>>2]=h;c[e+44>>2]=h+4;c[e+48>>2]=-1;c[e+52>>2]=-1;j=c[a+8>>2]|0;if((j|0)==0){j=Vb[c[(c[b>>2]|0)+8>>2]&31](b,e+56|0,e+32|0,0)|0;c[a+8>>2]=j;if((j|0)==0){i=e;return}}c[e>>2]=11992;c[e+4>>2]=0;c[e+8>>2]=e+56;c[e+12>>2]=e+32;if((c[d+8>>2]|0)==1){Lb[c[(c[j>>2]|0)+8>>2]&31](j,e+56|0,e+32|0,d,e);i=e;return}k=+Zb[c[(c[j>>2]|0)+12>>2]&15](j,f,h,d,e);if(!(+g[d+12>>2]>k)){i=e;return}g[d+12>>2]=k;i=e;return}function $n(a){a=a|0;return}function ao(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=6032;e=c[b+20>>2]|0;if((e|0)==0){a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;_x(b);i=d;return}if((a[b+24>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;_x(b);i=d;return}function bo(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=6032;e=c[b+20>>2]|0;if((e|0)!=0){if((a[b+24>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+20>>2]=0}a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;i=d;return}function co(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0.0;f=i;i=i+16|0;c[1504]=(c[1504]|0)+1;if((c[b+4>>2]&2|0)==0){j=14208}else{j=c[d+192>>2]|0;k=+mc[c[(c[j>>2]|0)+20>>2]&1](j,.019999999552965164);g[f+4>>2]=k;j=c[e+192>>2]|0;l=+mc[c[(c[j>>2]|0)+20>>2]&1](j,.019999999552965164);g[f>>2]=l;j=k>2];o=+g[d+184>>2];l=+g[e+184>>2];l=o>2]|0;j=c[m+8>>2]|0;if((j|0)==0){if((c[b+4>>2]&4|0)!=0){n=0;i=f;return n|0}c[4546]=(c[4546]|0)+1;j=Zx(791)|0;if((j|0)==0){j=0}else{c[(j+19&-16)+ -4>>2]=j;j=j+19&-16}}else{n=c[m+12>>2]|0;c[m+12>>2]=c[n>>2];c[m+8>>2]=j+ -1;j=n}c[j>>2]=1025;c[j+116>>2]=0;a[j+120>>0]=0;n=j+124|0;c[n+0>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[n+24>>2]=0;c[n+28>>2]=0;c[j+300>>2]=0;a[j+304>>0]=0;n=j+308|0;c[n+0>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[n+24>>2]=0;c[n+28>>2]=0;c[j+484>>2]=0;a[j+488>>0]=0;n=j+492|0;c[n+0>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[n+24>>2]=0;c[n+28>>2]=0;c[j+668>>2]=0;a[j+672>>0]=0;n=j+676|0;c[n+0>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[n+24>>2]=0;c[n+28>>2]=0;c[j+740>>2]=d;c[j+744>>2]=e;c[j+748>>2]=0;g[j+752>>2]=k;g[j+756>>2]=l;c[j+768>>2]=c[b+12>>2];e=c[b+12>>2]|0;if((e|0)==(c[b+16>>2]|0)?(h=(e|0)==0?1:e<<1,(e|0)<(h|0)):0){if((h|0)==0){d=0}else{c[4546]=(c[4546]|0)+1;d=Zx((h<<2|3)+16|0)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}e=c[b+12>>2]|0}if((e|0)>0){n=0;do{m=d+(n<<2)|0;if((m|0)!=0){c[m>>2]=c[(c[b+20>>2]|0)+(n<<2)>>2]}n=n+1|0}while((n|0)!=(e|0))}m=c[b+20>>2]|0;if((m|0)!=0){if((a[b+24>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0);e=c[b+12>>2]|0}c[b+20>>2]=0}a[b+24>>0]=1;c[b+20>>2]=d;c[b+16>>2]=h}h=(c[b+20>>2]|0)+(e<<2)|0;if((h|0)!=0){c[h>>2]=j}c[b+12>>2]=e+1;n=j;i=f;return n|0}function eo(a,b){a=a|0;b=b|0;var d=0,e=0;a=i;d=c[b+748>>2]|0;if((d|0)>0){e=0;do{e=e+1|0}while((e|0)<(d|0))}c[b+748>>2]=0;i=a;return}function fo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;c[1504]=(c[1504]|0)+ -1;Pb[c[(c[a>>2]|0)+20>>2]&127](a,b);e=c[b+768>>2]|0;f=(c[a+12>>2]|0)+ -1|0;h=c[a+20>>2]|0;g=c[h+(e<<2)>>2]|0;c[h+(e<<2)>>2]=c[h+(f<<2)>>2];c[(c[a+20>>2]|0)+(f<<2)>>2]=g;c[(c[(c[a+20>>2]|0)+(e<<2)>>2]|0)+768>>2]=e;c[a+12>>2]=(c[a+12>>2]|0)+ -1;a=c[a+68>>2]|0;if((b|0)==0){i=d;return}h=c[a+16>>2]|0;if(!(h>>>0>b>>>0)?(h+(aa(c[a>>2]|0,c[a+4>>2]|0)|0)|0)>>>0>b>>>0:0){c[b>>2]=c[a+12>>2];c[a+12>>2]=b;c[a+8>>2]=(c[a+8>>2]|0)+1;i=d;return}c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);i=d;return}function go(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;i=i+16|0;c[f>>2]=a;c[f+4>>2]=e;e=c[a+((c[(c[b+4>>2]|0)+4>>2]|0)*144|0)+(c[(c[d+4>>2]|0)+4>>2]<<2)+72>>2]|0;e=Vb[c[(c[e>>2]|0)+8>>2]&31](e,f,b,d)|0;i=f;return e|0}function ho(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=i;b=c[b+204>>2]|0;if((b&4|0)==0?(e=c[d+204>>2]|0,(e&4|0)==0):0){if((b&3|0)==0){d=1}else{d=(e&3|0)==0}}else{d=0}i=a;return d|0}function io(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=i;e=c[b+216>>2]|0;if((e|0)==2|(e|0)==5?(e=c[d+216>>2]|0,(e|0)==2|(e|0)==5):0){e=0;i=a;return e|0}if((c[b+256>>2]|0)==0){e=1;i=a;return e|0}e=hc[c[c[b>>2]>>2]&31](b,d)|0;i=a;return e|0}function jo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;i=i+16|0;c[f>>2]=6144;c[f+4>>2]=d;c[f+8>>2]=a;sc[c[(c[b>>2]|0)+48>>2]&63](b,f,e);i=f;return}function ko(a){a=a|0;return}function lo(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;a=c[a+64>>2]|0;e=c[a+8>>2]|0;if((e|0)!=0){b=c[a+12>>2]|0;c[a+12>>2]=c[b>>2];c[a+8>>2]=e+ -1;e=b;i=d;return e|0}c[4546]=(c[4546]|0)+1;b=Zx(b+19|0)|0;if((b|0)==0){e=0;i=d;return e|0}c[(b+19&-16)+ -4>>2]=b;e=b+19&-16;i=d;return e|0}function mo(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;a=c[a+64>>2]|0;if((b|0)==0){i=d;return}e=c[a+16>>2]|0;if(!(e>>>0>b>>>0)?(e+(aa(c[a>>2]|0,c[a+4>>2]|0)|0)|0)>>>0>b>>>0:0){c[b>>2]=c[a+12>>2];c[a+12>>2]=b;c[a+8>>2]=(c[a+8>>2]|0)+1;i=d;return}c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);i=d;return}function no(a){a=a|0;return c[a+12>>2]|0}function oo(a,b){a=a|0;b=b|0;return c[(c[a+20>>2]|0)+(b<<2)>>2]|0}function po(a){a=a|0;var b=0;b=i;if((c[a+12>>2]|0)==0){a=0;i=b;return a|0}a=c[a+20>>2]|0;i=b;return a|0}function qo(a){a=a|0;return c[a+68>>2]|0}function ro(a){a=a|0;return c[a+68>>2]|0}function so(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function to(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=c[a+8>>2]|0;sc[c[e+60>>2]&63](b,e,c[a+4>>2]|0);i=d;return 0}function uo(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function vo(a,b,d){a=a|0;b=b|0;d=d|0;c[a+16>>2]=b;c[a+24>>2]=d;return}function wo(a,b,d){a=a|0;b=b|0;d=d|0;c[a+20>>2]=b;c[a+28>>2]=d;return}function xo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0.0;e=i;g[b+16>>2]=+g[a+4>>2];g[b+20>>2]=+g[a+8>>2];g[b+24>>2]=+g[a+12>>2];g[b+28>>2]=+g[a+16>>2];g[b+32>>2]=+g[a+20>>2];g[b+36>>2]=+g[a+24>>2];g[b+40>>2]=+g[a+28>>2];g[b+44>>2]=+g[a+32>>2];g[b+48>>2]=+g[a+36>>2];g[b+52>>2]=+g[a+40>>2];g[b+56>>2]=+g[a+44>>2];g[b+60>>2]=+g[a+48>>2];g[b+64>>2]=+g[a+52>>2];g[b+68>>2]=+g[a+56>>2];g[b+72>>2]=+g[a+60>>2];g[b+76>>2]=+g[a+64>>2];g[b+80>>2]=+g[a+68>>2];g[b+84>>2]=+g[a+72>>2];g[b+88>>2]=+g[a+76>>2];g[b+92>>2]=+g[a+80>>2];g[b+96>>2]=+g[a+84>>2];g[b+100>>2]=+g[a+88>>2];g[b+104>>2]=+g[a+92>>2];g[b+108>>2]=+g[a+96>>2];g[b+112>>2]=+g[a+100>>2];g[b+116>>2]=+g[a+104>>2];g[b+120>>2]=+g[a+108>>2];g[b+124>>2]=+g[a+112>>2];g[b+128>>2]=+g[a+116>>2];g[b+132>>2]=+g[a+120>>2];g[b+136>>2]=+g[a+124>>2];g[b+140>>2]=+g[a+128>>2];g[b+144>>2]=+g[a+132>>2];g[b+148>>2]=+g[a+136>>2];g[b+152>>2]=+g[a+140>>2];g[b+156>>2]=+g[a+144>>2];g[b+160>>2]=+g[a+148>>2];g[b+164>>2]=+g[a+152>>2];g[b+168>>2]=+g[a+156>>2];g[b+172>>2]=+g[a+160>>2];g[b+176>>2]=+g[a+164>>2];g[b+180>>2]=+g[a+168>>2];g[b+184>>2]=+g[a+172>>2];g[b+188>>2]=+g[a+176>>2];c[b+224>>2]=c[a+180>>2];g[b+192>>2]=+g[a+184>>2];c[b>>2]=0;c[b+4>>2]=hc[c[(c[d>>2]|0)+28>>2]&31](d,c[a+192>>2]|0)|0;c[b+8>>2]=0;c[b+228>>2]=c[a+204>>2];c[b+232>>2]=c[a+208>>2];c[b+236>>2]=c[a+212>>2];c[b+240>>2]=c[a+216>>2];g[b+196>>2]=+g[a+220>>2];g[b+200>>2]=+g[a+224>>2];g[b+204>>2]=+g[a+232>>2];g[b+208>>2]=+g[a+228>>2];c[b+244>>2]=c[a+236>>2];f=hc[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;h=hc[c[(c[d>>2]|0)+28>>2]&31](d,f)|0;c[b+12>>2]=h;if((h|0)==0){d=a+244|0;j=+g[d>>2];d=b+212|0;g[d>>2]=j;d=a+248|0;j=+g[d>>2];d=b+216|0;g[d>>2]=j;d=a+252|0;j=+g[d>>2];d=b+220|0;g[d>>2]=j;d=a+256|0;d=c[d>>2]|0;h=b+248|0;c[h>>2]=d;i=e;return 6240}Pb[c[(c[d>>2]|0)+48>>2]&127](d,f);d=a+244|0;j=+g[d>>2];d=b+212|0;g[d>>2]=j;d=a+248|0;j=+g[d>>2];d=b+216|0;g[d>>2]=j;d=a+252|0;j=+g[d>>2];d=b+220|0;g[d>>2]=j;d=a+256|0;d=c[d>>2]|0;h=b+248|0;c[h>>2]=d;i=e;return 6240}function yo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0;e=i;i=i+96|0;g[e+32>>2]=1.0;c[e+36>>2]=0;c[e+40>>2]=0;c[e+44>>2]=0;c[e+48>>2]=0;g[e+52>>2]=1.0;c[e+56>>2]=0;c[e+60>>2]=0;c[e+64>>2]=0;c[e+68>>2]=0;g[e+72>>2]=1.0;n=e+76|0;c[n+0>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;wc[c[(c[a>>2]|0)+8>>2]&63](a,e+32|0,e+16|0,e);l=+g[e>>2];m=+g[e+16>>2];j=+g[e+4>>2];k=+g[e+20>>2];f=+g[e+8>>2];h=+g[e+24>>2];g[d>>2]=+Q(+((l-m)*(l-m)+(j-k)*(j-k)+(f-h)*(f-h)))*.5;g[b>>2]=(m+l)*.5;g[b+4>>2]=(k+j)*.5;g[b+8>>2]=(h+f)*.5;g[b+12>>2]=0.0;i=e;return}function zo(a,b){a=a|0;b=+b;var d=0;d=i;b=+bc[c[(c[a>>2]|0)+16>>2]&15](a)*b;i=d;return+b}function Ao(a){a=a|0;var b=0,d=0.0,e=0.0,f=0.0;b=i;i=i+32|0;sc[c[(c[a>>2]|0)+12>>2]&63](a,b+8|0,b);f=+g[b+8>>2];e=+g[b+12>>2];d=+g[b+16>>2];d=+Q(+(f*f+e*e+d*d));i=b;return+(d+ +g[b>>2])}function Bo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;f=hc[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;g=hc[c[(c[d>>2]|0)+28>>2]&31](d,f)|0;c[b>>2]=g;if((g|0)!=0){Pb[c[(c[d>>2]|0)+48>>2]&127](d,f)}c[b+4>>2]=c[a+4>>2];i=e;return 6304}function Co(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;f=Rb[c[(c[a>>2]|0)+52>>2]&127](a)|0;f=_b[c[(c[b>>2]|0)+16>>2]&31](b,f,1)|0;e=_b[c[(c[a>>2]|0)+56>>2]&31](a,c[f+8>>2]|0,b)|0;Lb[c[(c[b>>2]|0)+20>>2]&31](b,f,e,1346455635,a);i=d;return}function Do(a){a=a|0;return 12}function Eo(a){a=a|0;var b=0;b=i;Fo(a);if((a|0)!=0){_x(a)}i=b;return}function Fo(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c[b>>2]=6368;e=c[b+8>>2]|0;g=c[b+16>>2]|0;if((e|0)>0){f=0;do{h=(c[g+(f<<2)>>2]|0)+188|0;j=c[h>>2]|0;if((j|0)!=0){e=c[b+68>>2]|0;e=Rb[c[(c[e>>2]|0)+36>>2]&127](e)|0;sc[c[(c[e>>2]|0)+40>>2]&63](e,j,c[b+24>>2]|0);e=c[b+68>>2]|0;sc[c[(c[e>>2]|0)+12>>2]&63](e,j,c[b+24>>2]|0);c[h>>2]=0;e=c[b+8>>2]|0;g=c[b+16>>2]|0}f=f+1|0}while((f|0)<(e|0))}if((g|0)==0){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;j=b+12|0;c[j>>2]=0;i=d;return}if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[g+ -4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;j=b+12|0;c[j>>2]=0;i=d;return}function Go(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+96|0;k=c[b+8>>2]|0;if((k|0)==(c[b+12>>2]|0)?(h=(k|0)==0?1:k<<1,(k|0)<(h|0)):0){if((h|0)==0){j=0}else{c[4546]=(c[4546]|0)+1;j=Zx((h<<2|3)+16|0)|0;if((j|0)==0){j=0}else{c[(j+19&-16)+ -4>>2]=j;j=j+19&-16}k=c[b+8>>2]|0}if((k|0)>0){m=0;do{l=j+(m<<2)|0;if((l|0)!=0){c[l>>2]=c[(c[b+16>>2]|0)+(m<<2)>>2]}m=m+1|0}while((m|0)!=(k|0))}l=c[b+16>>2]|0;if((l|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0);k=c[b+8>>2]|0}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=j;c[b+12>>2]=h}h=(c[b+16>>2]|0)+(k<<2)|0;if((h|0)!=0){c[h>>2]=d}c[b+8>>2]=k+1;c[g+32>>2]=c[d+4>>2];c[g+36>>2]=c[d+8>>2];c[g+40>>2]=c[d+12>>2];c[g+44>>2]=c[d+16>>2];c[g+48>>2]=c[d+20>>2];c[g+52>>2]=c[d+24>>2];c[g+56>>2]=c[d+28>>2];c[g+60>>2]=c[d+32>>2];c[g+64>>2]=c[d+36>>2];c[g+68>>2]=c[d+40>>2];c[g+72>>2]=c[d+44>>2];c[g+76>>2]=c[d+48>>2];c[g+80>>2]=c[d+52>>2];c[g+84>>2]=c[d+56>>2];c[g+88>>2]=c[d+60>>2];c[g+92>>2]=c[d+64>>2];m=c[d+192>>2]|0;wc[c[(c[m>>2]|0)+8>>2]&63](m,g+32|0,g+16|0,g);m=c[b+68>>2]|0;c[d+188>>2]=qc[c[(c[m>>2]|0)+8>>2]&3](m,g+16|0,g,c[(c[d+192>>2]|0)+4>>2]|0,d,e,f,c[b+24>>2]|0,0)|0;i=g;return}function Ho(b){b=b|0;var d=0,e=0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0;d=i;i=i+64|0;vx(6648);q=c[b+8>>2]|0;if((q|0)>0){f=0;do{h=c[(c[b+16>>2]|0)+(f<<2)>>2]|0;if(!((a[b+76>>0]|0)==0?(r=c[h+216>>2]|0,(r|0)==2|(r|0)==5):0)){r=c[h+192>>2]|0;wc[c[(c[r>>2]|0)+8>>2]&63](r,h+4|0,d+48|0,d+32|0);k=+g[d+48>>2]+-.019999999552965164;g[d+48>>2]=k;j=+g[d+52>>2]+-.019999999552965164;g[d+52>>2]=j;l=+g[d+56>>2]+-.019999999552965164;g[d+56>>2]=l;o=+g[d+32>>2]+.019999999552965164;g[d+32>>2]=o;n=+g[d+36>>2]+.019999999552965164;g[d+36>>2]=n;m=+g[d+40>>2]+.019999999552965164;g[d+40>>2]=m;if(((a[b+44>>0]|0)!=0?(c[h+236>>2]|0)==2:0)?(c[h+204>>2]&3|0)==0:0){r=c[h+192>>2]|0;wc[c[(c[r>>2]|0)+8>>2]&63](r,h+68|0,d+16|0,d);k=+g[d+16>>2]+-.019999999552965164;g[d+16>>2]=k;j=+g[d+20>>2]+-.019999999552965164;g[d+20>>2]=j;l=+g[d+24>>2]+-.019999999552965164;g[d+24>>2]=l;o=+g[d>>2]+.019999999552965164;g[d>>2]=o;n=+g[d+4>>2]+.019999999552965164;g[d+4>>2]=n;m=+g[d+8>>2]+.019999999552965164;g[d+8>>2]=m;p=+g[d+48>>2];if(k>2]=k}else{k=p}p=+g[d+52>>2];if(j>2]=j}else{j=p}p=+g[d+56>>2];if(l>2]=l}else{l=p}p=+g[d+28>>2];if(p<+g[d+60>>2]){g[d+60>>2]=p}p=+g[d+32>>2];if(p>2]=o}else{o=p}p=+g[d+36>>2];if(p>2]=n}else{n=p}p=+g[d+40>>2];if(p>2]=m}else{m=p}p=+g[d+12>>2];if(+g[d+44>>2]>2]=p}}q=c[b+68>>2]|0;if((c[h+204>>2]&1|0)==0?(k=o-k,o=n-j,p=m-l,!(k*k+o*o+p*p<999999995904.0)):0){if(!(((c[h+216>>2]|0)+ -4|0)>>>0<2)){c[h+216>>2]=5}if((a[6424]|0)!=0?(e=c[b+72>>2]|0,(e|0)!=0):0){a[6424]=0;Pb[c[(c[e>>2]|0)+36>>2]&127](e,6432);r=c[b+72>>2]|0;Pb[c[(c[r>>2]|0)+36>>2]&127](r,6488);r=c[b+72>>2]|0;Pb[c[(c[r>>2]|0)+36>>2]&127](r,6560);r=c[b+72>>2]|0;Pb[c[(c[r>>2]|0)+36>>2]&127](r,6632)}}else{Lb[c[(c[q>>2]|0)+16>>2]&31](q,c[h+188>>2]|0,d+48|0,d+32|0,c[b+24>>2]|0)}q=c[b+8>>2]|0}f=f+1|0}while((f|0)<(q|0))}b=c[4564]|0;r=(c[b+16>>2]|0)+ -1|0;c[b+16>>2]=r;if((r|0)!=0){i=d;return}do{if((c[b+4>>2]|0)!=0){Gb(d+48|0,0)|0;r=c[4550]|0;g[b+8>>2]=+(((c[d+52>>2]|0)-(c[r+4>>2]|0)+(((c[d+48>>2]|0)-(c[r>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3+ +g[b+8>>2];if((c[b+16>>2]|0)==0){b=c[4564]|0;break}else{i=d;return}}}while(0);c[4564]=c[b+20>>2];i=d;return}function Io(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;vx(6664);d=c[a+68>>2]|0;Pb[c[(c[d>>2]|0)+32>>2]&127](d,c[a+24>>2]|0);a=c[4564]|0;d=(c[a+16>>2]|0)+ -1|0;c[a+16>>2]=d;if((d|0)!=0){i=b;return}do{if((c[a+4>>2]|0)!=0){Gb(b|0,0)|0;d=c[4550]|0;g[a+8>>2]=+(((c[b+4>>2]|0)-(c[d+4>>2]|0)+(((c[b>>2]|0)-(c[d>>2]|0)|0)*1e6|0)-(c[a+12>>2]|0)|0)>>>0)/1.0e3+ +g[a+8>>2];if((c[a+16>>2]|0)==0){a=c[4564]|0;break}else{i=b;return}}}while(0);c[4564]=c[a+20>>2];i=b;return}function Jo(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;vx(6696);Nb[c[(c[a>>2]|0)+8>>2]&255](a);Nb[c[(c[a>>2]|0)+12>>2]&255](a);d=c[a+24>>2]|0;vx(6736);if((d|0)!=0){f=c[(c[d>>2]|0)+32>>2]|0;e=c[a+68>>2]|0;e=Rb[c[(c[e>>2]|0)+36>>2]&127](e)|0;wc[f&63](d,e,a+28|0,c[a+24>>2]|0)}a=c[4564]|0;f=(c[a+16>>2]|0)+ -1|0;c[a+16>>2]=f;do{if((f|0)==0){if((c[a+4>>2]|0)!=0){Gb(b|0,0)|0;d=c[4550]|0;g[a+8>>2]=+(((c[b+4>>2]|0)-(c[d+4>>2]|0)+(((c[b>>2]|0)-(c[d>>2]|0)|0)*1e6|0)-(c[a+12>>2]|0)|0)>>>0)/1.0e3+ +g[a+8>>2];d=c[4564]|0;if((c[a+16>>2]|0)==0){a=d}else{a=d;break}}a=c[a+20>>2]|0;c[4564]=a}}while(0);d=a+16|0;f=(c[d>>2]|0)+ -1|0;c[d>>2]=f;if((f|0)!=0){i=b;return}do{if((c[a+4>>2]|0)!=0){Gb(b|0,0)|0;e=c[4550]|0;f=a+8|0;g[f>>2]=+(((c[b+4>>2]|0)-(c[e+4>>2]|0)+(((c[b>>2]|0)-(c[e>>2]|0)|0)*1e6|0)-(c[a+12>>2]|0)|0)>>>0)/1.0e3+ +g[f>>2];if((c[d>>2]|0)==0){a=c[4564]|0;break}else{i=b;return}}}while(0);c[4564]=c[a+20>>2];i=b;return}function Ko(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;e=i;f=c[b+188>>2]|0;if((f|0)!=0){k=c[a+68>>2]|0;k=Rb[c[(c[k>>2]|0)+36>>2]&127](k)|0;sc[c[(c[k>>2]|0)+40>>2]&63](k,f,c[a+24>>2]|0);k=c[a+68>>2]|0;sc[c[(c[k>>2]|0)+12>>2]&63](k,f,c[a+24>>2]|0);c[b+188>>2]=0}f=c[a+8>>2]|0;if((f|0)<=0){i=e;return}g=c[a+16>>2]|0;h=0;while(1){j=g+(h<<2)|0;k=h+1|0;if((c[j>>2]|0)==(b|0)){break}if((k|0)<(f|0)){h=k}else{d=9;break}}if((d|0)==9){i=e;return}if((h|0)>=(f|0)){i=e;return}c[j>>2]=c[g+(f+ -1<<2)>>2];c[(c[a+16>>2]|0)+(f+ -1<<2)>>2]=b;c[a+8>>2]=f+ -1;i=e;return}function Lo(d,e,f,h){d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0,K=0.0,L=0.0;j=i;i=i+1392|0;c[j+1192>>2]=0;g[j+1196>>2]=1.0;g[j+1200>>2]=1.0;g[j+1204>>2]=1.0;g[j+1208>>2]=0.0;c[j+1184>>2]=15008;c[j+1188>>2]=8;g[j+1212>>2]=0.0;g[j+1228>>2]=0.0;z=c[f+4>>2]|0;x=c[f+12>>2]|0;A=c[z+4>>2]|0;if((A|0)<20){c[j+1008>>2]=8584;c[j+1176>>2]=0;g[j+1180>>2]=0.0;g[j+1172>>2]=+g[h+4>>2];g[j+956>>2]=9999999747378752.0e-20;a[j+980>>0]=0;c[j+632>>2]=15320;c[j+636>>2]=j+648;c[j+640>>2]=j+1184;c[j+644>>2]=z;c[j+616>>2]=11672;c[j+620>>2]=j+648;c[j+624>>2]=j+1184;c[j+628>>2]=z;J=(c[h+16>>2]&4|0)==0?j+616|0:j+632|0;if(!(cc[c[(c[J>>2]|0)+8>>2]&3](J,d,e,x,x,j+1008|0)|0)){i=j;return}x=j+1140|0;m=+g[x>>2];k=+g[j+1144>>2];n=+g[j+1148>>2];if(!(m*m+k*k+n*n>9999999747378752.0e-20)){i=j;return}l=+g[j+1172>>2];if(!(l<+g[h+4>>2])){i=j;return}H=1.0/+Q(+(m*m+k*k+n*n));g[x>>2]=m*H;g[j+1144>>2]=k*H;g[j+1148>>2]=n*H;c[j+584>>2]=c[f+8>>2];c[j+588>>2]=0;c[j+592>>2]=c[x+0>>2];c[j+596>>2]=c[x+4>>2];c[j+600>>2]=c[x+8>>2];c[j+604>>2]=c[x+12>>2];g[j+608>>2]=l;+ic[c[(c[h>>2]|0)+12>>2]&7](h,j+584|0,1);i=j;return}if((A+ -21|0)>>>0<9){t=+g[x>>2];u=+g[x+16>>2];q=+g[x+32>>2];v=+g[x+4>>2];w=+g[x+20>>2];r=+g[x+36>>2];G=+g[x+8>>2];H=+g[x+24>>2];s=+g[x+40>>2];y=-+g[x+48>>2];E=-+g[x+52>>2];F=-+g[x+56>>2];n=+g[d+48>>2];o=+g[d+52>>2];p=+g[d+56>>2];g[j+568>>2]=t*y+u*E+q*F+(t*n+u*o+q*p);g[j+572>>2]=v*y+w*E+r*F+(v*n+w*o+r*p);g[j+576>>2]=G*y+H*E+s*F+(G*n+H*o+s*p);g[j+580>>2]=0.0;l=+g[e+48>>2];k=+g[e+52>>2];m=+g[e+56>>2];q=t*y+u*E+q*F+(t*l+u*k+q*m);r=v*y+w*E+r*F+(v*l+w*k+r*m);s=G*y+H*E+s*F+(G*l+H*k+s*m);g[j+552>>2]=q;g[j+556>>2]=r;g[j+560>>2]=s;g[j+564>>2]=0.0;e=c[z+4>>2]|0;if((e|0)==21){J=c[f+8>>2]|0;I=c[h+16>>2]|0;c[j+436>>2]=c[j+568>>2];c[j+440>>2]=c[j+572>>2];c[j+444>>2]=c[j+576>>2];c[j+448>>2]=c[j+580>>2];c[j+452>>2]=c[j+552>>2];c[j+456>>2]=c[j+556>>2];c[j+460>>2]=c[j+560>>2];c[j+464>>2]=c[j+564>>2];c[j+468>>2]=I;g[j+472>>2]=1.0;c[j+432>>2]=8392;c[j+476>>2]=h;c[j+480>>2]=J;c[j+484>>2]=z;c[j+488>>2]=c[x+0>>2];c[j+492>>2]=c[x+4>>2];c[j+496>>2]=c[x+8>>2];c[j+500>>2]=c[x+12>>2];c[j+504>>2]=c[x+16>>2];c[j+508>>2]=c[x+20>>2];c[j+512>>2]=c[x+24>>2];c[j+516>>2]=c[x+28>>2];c[j+520>>2]=c[x+32>>2];c[j+524>>2]=c[x+36>>2];c[j+528>>2]=c[x+40>>2];c[j+532>>2]=c[x+44>>2];c[j+536>>2]=c[x+48>>2];c[j+540>>2]=c[x+52>>2];c[j+544>>2]=c[x+56>>2];c[j+548>>2]=c[x+60>>2];g[j+472>>2]=+g[h+4>>2];x=c[z+48>>2]|0;c[j+1272>>2]=5376;c[j+1276>>2]=x;c[j+1280>>2]=j+432;x=c[z+52>>2]|0;c[j+1328>>2]=0;c[j+1332>>2]=0;c[j+1336>>2]=0;c[j+1340>>2]=0;c[j+1304>>2]=0;c[j+1308>>2]=0;c[j+1312>>2]=0;c[j+1316>>2]=0;if((a[x+60>>0]|0)==0){Vt(x,j+1272|0,j+568|0,q,r,s,j+1328|0,j+1304|0);i=j;return}else{Wt(x,j+1272|0,j+568|0,q,r,s,j+1328|0,j+1304|0,c[x+56>>2]|0);i=j;return}}else if((e|0)==25){J=c[f+8>>2]|0;I=c[h+16>>2]|0;c[j+316>>2]=c[j+568>>2];c[j+320>>2]=c[j+572>>2];c[j+324>>2]=c[j+576>>2];c[j+328>>2]=c[j+580>>2];c[j+332>>2]=c[j+552>>2];c[j+336>>2]=c[j+556>>2];c[j+340>>2]=c[j+560>>2];c[j+344>>2]=c[j+564>>2];c[j+348>>2]=I;g[j+352>>2]=1.0;c[j+312>>2]=8392;c[j+356>>2]=h;c[j+360>>2]=J;c[j+364>>2]=z;c[j+368>>2]=c[x+0>>2];c[j+372>>2]=c[x+4>>2];c[j+376>>2]=c[x+8>>2];c[j+380>>2]=c[x+12>>2];c[j+384>>2]=c[x+16>>2];c[j+388>>2]=c[x+20>>2];c[j+392>>2]=c[x+24>>2];c[j+396>>2]=c[x+28>>2];c[j+400>>2]=c[x+32>>2];c[j+404>>2]=c[x+36>>2];c[j+408>>2]=c[x+40>>2];c[j+412>>2]=c[x+44>>2];c[j+416>>2]=c[x+48>>2];c[j+420>>2]=c[x+52>>2];c[j+424>>2]=c[x+56>>2];c[j+428>>2]=c[x+60>>2];g[j+352>>2]=+g[h+4>>2];wc[c[(c[z>>2]|0)+144>>2]&63](z,j+312|0,j+568|0,j+552|0);i=j;return}else{L=+g[x>>2];K=+g[x+16>>2];s=+g[x+32>>2];t=+g[x+4>>2];u=+g[x+20>>2];v=+g[x+36>>2];F=+g[x+8>>2];G=+g[x+24>>2];H=+g[x+40>>2];w=-+g[x+48>>2];y=-+g[x+52>>2];E=-+g[x+56>>2];r=L*w+K*y+s*E+(L*n+K*o+s*p);q=t*w+u*y+v*E+(t*n+u*o+v*p);o=F*w+G*y+H*E+(F*n+G*o+H*p);p=L*w+K*y+s*E+(L*l+K*k+s*m);n=t*w+u*y+v*E+(t*l+u*k+v*m);k=F*w+G*y+H*E+(F*l+G*k+H*m);J=c[f+8>>2]|0;I=c[h+16>>2]|0;g[j+196>>2]=r;g[j+200>>2]=q;g[j+204>>2]=o;g[j+208>>2]=0.0;g[j+212>>2]=p;g[j+216>>2]=n;g[j+220>>2]=k;g[j+224>>2]=0.0;c[j+228>>2]=I;g[j+232>>2]=1.0;c[j+192>>2]=8200;c[j+236>>2]=h;c[j+240>>2]=J;c[j+244>>2]=z;c[j+248>>2]=c[x+0>>2];c[j+252>>2]=c[x+4>>2];c[j+256>>2]=c[x+8>>2];c[j+260>>2]=c[x+12>>2];c[j+264>>2]=c[x+16>>2];c[j+268>>2]=c[x+20>>2];c[j+272>>2]=c[x+24>>2];c[j+276>>2]=c[x+28>>2];c[j+280>>2]=c[x+32>>2];c[j+284>>2]=c[x+36>>2];c[j+288>>2]=c[x+40>>2];c[j+292>>2]=c[x+44>>2];c[j+296>>2]=c[x+48>>2];c[j+300>>2]=c[x+52>>2];c[j+304>>2]=c[x+56>>2];c[j+308>>2]=c[x+60>>2];g[j+232>>2]=+g[h+4>>2];g[j+176>>2]=r;g[j+180>>2]=q;g[j+184>>2]=o;g[j+188>>2]=0.0;if(p>2]=p}if(n>2]=n}if(k>2]=k}g[j+160>>2]=r;g[j+164>>2]=q;g[j+168>>2]=o;g[j+172>>2]=0.0;if(r>2]=p}if(q>2]=n}if(o>2]=k}wc[c[(c[z>>2]|0)+64>>2]&63](z,j+192|0,j+176|0,j+160|0);i=j;return}}if((A|0)!=31){i=j;return}A=c[z+64>>2]|0;J=c[f+8>>2]|0;c[j+128>>2]=7984;c[j+132>>2]=J;c[j+136>>2]=z;c[j+140>>2]=x;c[j+144>>2]=d;c[j+148>>2]=e;c[j+152>>2]=h;if((A|0)==0){h=c[z+16>>2]|0;if((h|0)<=0){i=j;return}f=0;while(1){J=c[z+24>>2]|0;I=c[J+(f*80|0)+64>>2]|0;xj(j+1328|0,x,J+(f*80|0)|0);J=c[j+132>>2]|0;c[j+1304>>2]=0;c[j+1308>>2]=I;c[j+1312>>2]=J;c[j+1316>>2]=j+1328;c[j+1320>>2]=-1;c[j+1324>>2]=f;J=c[j+152>>2]|0;g[j+1276>>2]=1.0;c[j+1280>>2]=0;b[j+1284>>1]=1;b[j+1286>>1]=-1;c[j+1288>>2]=0;c[j+1272>>2]=7808;c[j+1292>>2]=J;c[j+1296>>2]=f;g[j+1276>>2]=+g[J+4>>2];c[j+1288>>2]=c[J+16>>2];Lo(c[j+144>>2]|0,c[j+148>>2]|0,j+1304|0,j+1272|0);f=f+1|0;if((f|0)>=(h|0)){break}z=c[j+136>>2]|0;x=c[j+140>>2]|0}i=j;return}No(j+64|0,x,d);p=+g[j+112>>2];q=+g[j+116>>2];o=+g[j+120>>2];No(j,x,e);z=c[A>>2]|0;if((z|0)==0){i=j;return}r=+g[j+48>>2]-p;t=+g[j+52>>2]-q;u=+g[j+56>>2]-o;s=1.0/+Q(+(r*r+t*t+u*u));if(r*s==0.0){v=999999984306749400.0}else{v=1.0/(r*s)}if(t*s==0.0){w=999999984306749400.0}else{w=1.0/(t*s)}if(u*s==0.0){y=999999984306749400.0}else{y=1.0/(u*s)}h=v<0.0&1;x=w<0.0&1;f=y<0.0&1;c[4546]=(c[4546]|0)+1;e=Zx(531)|0;if((e|0)==0){D=0}else{c[(e+19&-16)+ -4>>2]=e;D=e+19&-16}d=0;do{e=D+(d<<2)|0;if((e|0)!=0){c[e>>2]=0}d=d+1|0}while((d|0)!=128);c[D>>2]=z;C=128;A=128;z=1;B=126;do{e=z+ -1|0;d=c[D+(e<<2)>>2]|0;c[j+1240>>2]=c[d+0>>2];c[j+1244>>2]=c[d+4>>2];c[j+1248>>2]=c[d+8>>2];c[j+1252>>2]=c[d+12>>2];c[j+1256>>2]=c[d+16>>2];c[j+1260>>2]=c[d+20>>2];c[j+1264>>2]=c[d+24>>2];c[j+1268>>2]=c[d+28>>2];G=v*(+g[j+1240+(h<<4)>>2]-p);E=v*(+g[j+1240+((h^1)<<4)>>2]-p);H=w*(+g[j+1240+(x<<4)+4>>2]-q);F=w*(+g[j+1240+((x^1)<<4)+4>>2]-q);do{if(((!(G>F|H>E)?(n=H>G?H:G,l=F>2]-o),k=y*(+g[j+1240+((f^1)<<4)+8>>2]-o),!(n>k|m>l)):0)?(m>n?m:n)0.0:0){if((c[d+40>>2]|0)==0){Pb[c[(c[j+128>>2]|0)+12>>2]&127](j+128|0,d);z=e;break}if((e|0)>(B|0)){B=A<<1;if((A|0)<(B|0)){do{if((C|0)<(B|0)){do{if((A|0)==0){C=0}else{c[4546]=(c[4546]|0)+1;C=Zx((A<<3|3)+16|0)|0;if((C|0)==0){C=0}else{c[(C+19&-16)+ -4>>2]=C;C=C+19&-16}if((A|0)>0){I=0}else{break}do{J=C+(I<<2)|0;if((J|0)!=0){c[J>>2]=c[D+(I<<2)>>2]}I=I+1|0}while((I|0)!=(A|0))}}while(0);if((D|0)==0){D=C;C=B;break}c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0);D=C;C=B}}while(0);do{I=D+(A<<2)|0;if((I|0)!=0){c[I>>2]=0}A=A+1|0}while((A|0)!=(B|0))}A=B;B=B+ -2|0}c[D+(e<<2)>>2]=c[d+36>>2];c[D+(z<<2)>>2]=c[d+40>>2];z=z+1|0}else{z=e}}while(0)}while((z|0)!=0);if((D|0)==0){i=j;return}c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0);i=j;return}function Mo(a){a=a|0;return}function No(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;j=+g[c+48>>2]- +g[b+48>>2];h=+g[c+52>>2]- +g[b+52>>2];e=+g[c+56>>2]- +g[b+56>>2];p=+g[b>>2];y=+g[c>>2];o=+g[b+16>>2];x=+g[c+16>>2];n=+g[b+32>>2];w=+g[c+32>>2];v=+g[c+4>>2];u=+g[c+20>>2];t=+g[c+36>>2];s=+g[c+8>>2];r=+g[c+24>>2];q=+g[c+40>>2];m=+g[b+4>>2];l=+g[b+20>>2];k=+g[b+36>>2];i=+g[b+8>>2];f=+g[b+24>>2];d=+g[b+40>>2];g[a>>2]=p*y+o*x+n*w;g[a+4>>2]=p*v+o*u+n*t;g[a+8>>2]=p*s+o*r+n*q;g[a+12>>2]=0.0;g[a+16>>2]=y*m+x*l+w*k;g[a+20>>2]=v*m+u*l+t*k;g[a+24>>2]=s*m+r*l+q*k;g[a+28>>2]=0.0;g[a+32>>2]=y*i+x*f+w*d;g[a+36>>2]=v*i+u*f+t*d;g[a+40>>2]=s*i+r*f+q*d;g[a+44>>2]=0.0;g[a+48>>2]=j*p+h*o+e*n;g[a+52>>2]=j*m+h*l+e*k;g[a+56>>2]=j*i+h*f+e*d;g[a+60>>2]=0.0;return}function Oo(d,e,f,h,j,k){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=+k;var l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0;l=i;i=i+1664|0;m=c[h+4>>2]|0;n=c[h+12>>2]|0;D=c[m+4>>2]|0;if((D|0)<20){c[l+1424>>2]=8584;c[l+1592>>2]=0;g[l+1596>>2]=k;g[l+1588>>2]=+g[j+4>>2];g[l+1372>>2]=9999999747378752.0e-20;a[l+1396>>0]=0;c[l+1056>>2]=11736;c[l+1032>>2]=9296;c[l+1036>>2]=l+1064;c[l+1040>>2]=l+1056;c[l+1044>>2]=d;c[l+1048>>2]=m;c[l+1052>>2]=0;if(!(xq(l+1032|0,e,f,n,n,l+1424|0)|0)){i=l;return}m=l+1556|0;q=+g[m>>2];p=+g[l+1560>>2];o=+g[l+1564>>2];if(!(q*q+p*p+o*o>9999999747378752.0e-20)){i=l;return}k=+g[l+1588>>2];if(!(k<+g[j+4>>2])){i=l;return}C=1.0/+Q(+(q*q+p*p+o*o));g[m>>2]=q*C;g[l+1560>>2]=p*C;g[l+1564>>2]=o*C;c[l+984>>2]=c[h+8>>2];c[l+988>>2]=0;c[l+992>>2]=c[m+0>>2];c[l+996>>2]=c[m+4>>2];c[l+1e3>>2]=c[m+8>>2];c[l+1004>>2]=c[m+12>>2];c[l+1008>>2]=c[l+1572>>2];c[l+1012>>2]=c[l+1576>>2];c[l+1016>>2]=c[l+1580>>2];c[l+1020>>2]=c[l+1584>>2];g[l+1024>>2]=k;+ic[c[(c[j>>2]|0)+12>>2]&7](j,l+984|0,1);i=l;return}if(!((D+ -21|0)>>>0<9)){if((D|0)!=31){i=l;return}vx(6768);if((c[m+16>>2]|0)>0){D=0;do{F=c[m+24>>2]|0;o=+g[F+(D*80|0)>>2];r=+g[F+(D*80|0)+4>>2];u=+g[F+(D*80|0)+8>>2];p=+g[F+(D*80|0)+16>>2];s=+g[F+(D*80|0)+20>>2];w=+g[F+(D*80|0)+24>>2];q=+g[F+(D*80|0)+32>>2];t=+g[F+(D*80|0)+36>>2];y=+g[F+(D*80|0)+40>>2];N=+g[F+(D*80|0)+48>>2];M=+g[F+(D*80|0)+52>>2];C=+g[F+(D*80|0)+56>>2];F=c[F+(D*80|0)+64>>2]|0;L=+g[n>>2];K=+g[n+4>>2];J=+g[n+8>>2];I=+g[n+16>>2];H=+g[n+20>>2];G=+g[n+24>>2];v=+g[n+32>>2];x=+g[n+36>>2];z=+g[n+40>>2];A=N*L+M*K+C*J+ +g[n+48>>2];B=N*I+M*H+C*G+ +g[n+52>>2];C=N*v+M*x+C*z+ +g[n+56>>2];g[l+1600>>2]=o*L+p*K+q*J;g[l+1604>>2]=r*L+s*K+t*J;g[l+1608>>2]=u*L+w*K+y*J;g[l+1612>>2]=0.0;g[l+1616>>2]=o*I+p*H+q*G;g[l+1620>>2]=r*I+s*H+t*G;g[l+1624>>2]=u*I+w*H+y*G;g[l+1628>>2]=0.0;g[l+1632>>2]=o*v+p*x+q*z;g[l+1636>>2]=r*v+s*x+t*z;g[l+1640>>2]=u*v+w*x+y*z;g[l+1644>>2]=0.0;g[l+1648>>2]=A;g[l+1652>>2]=B;g[l+1656>>2]=C;g[l+1660>>2]=0.0;b[l+32>>1]=1;b[l+34>>1]=-1;c[l+24>>2]=7168;c[l+36>>2]=j;c[l+40>>2]=D;g[l+28>>2]=+g[j+4>>2];E=c[h+8>>2]|0;c[l>>2]=h;c[l+4>>2]=F;c[l+8>>2]=E;c[l+12>>2]=l+1600;c[l+16>>2]=-1;c[l+20>>2]=D;Oo(d,e,f,l,l+24|0,k);D=D+1|0}while((D|0)<(c[m+16>>2]|0))}h=c[4564]|0;F=(c[h+16>>2]|0)+ -1|0;c[h+16>>2]=F;if((F|0)!=0){i=l;return}do{if((c[h+4>>2]|0)!=0){Gb(l+1600|0,0)|0;F=c[4550]|0;g[h+8>>2]=+(((c[l+1604>>2]|0)-(c[F+4>>2]|0)+(((c[l+1600>>2]|0)-(c[F>>2]|0)|0)*1e6|0)-(c[h+12>>2]|0)|0)>>>0)/1.0e3+ +g[h+8>>2];if((c[h+16>>2]|0)==0){h=c[4564]|0;break}else{i=l;return}}}while(0);c[4564]=c[h+20>>2];i=l;return}if((D|0)==21){v=+g[n>>2];p=+g[n+16>>2];q=+g[n+32>>2];r=+g[n+4>>2];s=+g[n+20>>2];t=+g[n+36>>2];C=+g[n+8>>2];A=+g[n+24>>2];y=+g[n+40>>2];u=-+g[n+48>>2];o=-+g[n+52>>2];w=-+g[n+56>>2];x=+g[e+48>>2];z=+g[e+52>>2];B=+g[e+56>>2];g[l+968>>2]=v*u+p*o+q*w+(v*x+p*z+q*B);g[l+972>>2]=r*u+s*o+t*w+(r*x+s*z+t*B);g[l+976>>2]=C*u+A*o+y*w+(C*x+A*z+y*B);g[l+980>>2]=0.0;B=+g[f+48>>2];z=+g[f+52>>2];x=+g[f+56>>2];O=+g[f>>2];G=+g[f+16>>2];H=+g[f+32>>2];I=+g[f+4>>2];J=+g[f+20>>2];K=+g[f+36>>2];L=+g[f+8>>2];M=+g[f+24>>2];N=+g[f+40>>2];g[l+904>>2]=v*O+p*G+q*H;g[l+908>>2]=v*I+p*J+q*K;g[l+912>>2]=v*L+p*M+q*N;g[l+916>>2]=0.0;g[l+920>>2]=r*O+s*G+t*H;g[l+924>>2]=r*I+s*J+t*K;g[l+928>>2]=r*L+s*M+t*N;g[l+932>>2]=0.0;g[l+936>>2]=C*O+A*G+y*H;g[l+940>>2]=C*I+A*J+y*K;g[l+944>>2]=C*L+A*M+y*N;F=l+948|0;c[F+0>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;c[F+16>>2]=0;h=c[h+8>>2]|0;N=+bc[c[(c[m>>2]|0)+48>>2]&15](m);c[l+680>>2]=14584;c[l+684>>2]=d;c[l+688>>2]=c[e+0>>2];c[l+692>>2]=c[e+4>>2];c[l+696>>2]=c[e+8>>2];c[l+700>>2]=c[e+12>>2];c[l+704>>2]=c[e+16>>2];c[l+708>>2]=c[e+20>>2];c[l+712>>2]=c[e+24>>2];c[l+716>>2]=c[e+28>>2];c[l+720>>2]=c[e+32>>2];c[l+724>>2]=c[e+36>>2];c[l+728>>2]=c[e+40>>2];c[l+732>>2]=c[e+44>>2];c[l+736>>2]=c[e+48>>2];c[l+740>>2]=c[e+52>>2];c[l+744>>2]=c[e+56>>2];c[l+748>>2]=c[e+60>>2];c[l+752>>2]=c[f+0>>2];c[l+756>>2]=c[f+4>>2];c[l+760>>2]=c[f+8>>2];c[l+764>>2]=c[f+12>>2];c[l+768>>2]=c[f+16>>2];c[l+772>>2]=c[f+20>>2];c[l+776>>2]=c[f+24>>2];c[l+780>>2]=c[f+28>>2];c[l+784>>2]=c[f+32>>2];c[l+788>>2]=c[f+36>>2];c[l+792>>2]=c[f+40>>2];c[l+796>>2]=c[f+44>>2];c[l+800>>2]=c[f+48>>2];c[l+804>>2]=c[f+52>>2];c[l+808>>2]=c[f+56>>2];c[l+812>>2]=c[f+60>>2];c[l+816>>2]=c[n+0>>2];c[l+820>>2]=c[n+4>>2];c[l+824>>2]=c[n+8>>2];c[l+828>>2]=c[n+12>>2];c[l+832>>2]=c[n+16>>2];c[l+836>>2]=c[n+20>>2];c[l+840>>2]=c[n+24>>2];c[l+844>>2]=c[n+28>>2];c[l+848>>2]=c[n+32>>2];c[l+852>>2]=c[n+36>>2];c[l+856>>2]=c[n+40>>2];c[l+860>>2]=c[n+44>>2];c[l+864>>2]=c[n+48>>2];c[l+868>>2]=c[n+52>>2];c[l+872>>2]=c[n+56>>2];c[l+876>>2]=c[n+60>>2];g[l+884>>2]=N;c[l+680>>2]=7592;c[l+892>>2]=j;c[l+896>>2]=h;c[l+900>>2]=m;g[l+880>>2]=+g[j+4>>2];g[l+888>>2]=k;wc[c[(c[d>>2]|0)+8>>2]&63](d,l+904|0,l+664|0,l+648|0);h=c[m+48>>2]|0;c[l+1600>>2]=5216;c[l+1604>>2]=h;c[l+1608>>2]=l+680;h=c[m+52>>2]|0;if((a[h+60>>0]|0)==0){Vt(h,l+1600|0,l+968|0,v*u+p*o+q*w+(v*B+p*z+q*x),r*u+s*o+t*w+(r*B+s*z+t*x),C*u+A*o+y*w+(C*B+A*z+y*x),l+664|0,l+648|0);i=l;return}else{Wt(h,l+1600|0,l+968|0,v*u+p*o+q*w+(v*B+p*z+q*x),r*u+s*o+t*w+(r*B+s*z+t*x),C*u+A*o+y*w+(C*B+A*z+y*x),l+664|0,l+648|0,c[h+56>>2]|0);i=l;return}}else if((D|0)==28){c[l+472>>2]=8584;c[l+640>>2]=0;g[l+644>>2]=k;g[l+636>>2]=+g[j+4>>2];c[l+448>>2]=9296;c[l+452>>2]=0;c[l+456>>2]=0;c[l+460>>2]=d;c[l+464>>2]=0;c[l+468>>2]=m;if(!(xq(l+448|0,e,f,n,n,l+472|0)|0)){i=l;return}m=l+604|0;k=+g[m>>2];o=+g[l+608>>2];p=+g[l+612>>2];if(!(k*k+o*o+p*p>9999999747378752.0e-20)){i=l;return}q=+g[l+636>>2];if(!(q<+g[j+4>>2])){i=l;return}O=1.0/+Q(+(k*k+o*o+p*p));g[m>>2]=k*O;g[l+608>>2]=o*O;g[l+612>>2]=p*O;c[l+400>>2]=c[h+8>>2];c[l+404>>2]=0;c[l+408>>2]=c[m+0>>2];c[l+412>>2]=c[m+4>>2];c[l+416>>2]=c[m+8>>2];c[l+420>>2]=c[m+12>>2];c[l+424>>2]=c[l+620>>2];c[l+428>>2]=c[l+624>>2];c[l+432>>2]=c[l+628>>2];c[l+436>>2]=c[l+632>>2];g[l+440>>2]=q;+ic[c[(c[j>>2]|0)+12>>2]&7](j,l+400|0,1);i=l;return}else{u=+g[n>>2];v=+g[n+16>>2];w=+g[n+32>>2];x=+g[n+4>>2];y=+g[n+20>>2];z=+g[n+36>>2];J=+g[n+8>>2];L=+g[n+24>>2];N=+g[n+40>>2];H=-+g[n+48>>2];G=-+g[n+52>>2];C=-+g[n+56>>2];A=+g[e+48>>2];B=+g[e+52>>2];p=+g[e+56>>2];t=u*H+v*G+w*C+(u*A+v*B+w*p);q=x*H+y*G+z*C+(x*A+y*B+z*p);p=J*H+L*G+N*C+(J*A+L*B+N*p);B=+g[f+48>>2];A=+g[f+52>>2];o=+g[f+56>>2];s=u*H+v*G+w*C+(u*B+v*A+w*o);r=x*H+y*G+z*C+(x*B+y*A+z*o);o=J*H+L*G+N*C+(J*B+L*A+N*o);A=+g[f>>2];B=+g[f+16>>2];C=+g[f+32>>2];G=+g[f+4>>2];H=+g[f+20>>2];I=+g[f+36>>2];K=+g[f+8>>2];M=+g[f+24>>2];O=+g[f+40>>2];g[l+336>>2]=u*A+v*B+w*C;g[l+340>>2]=u*G+v*H+w*I;g[l+344>>2]=u*K+v*M+w*O;g[l+348>>2]=0.0;g[l+352>>2]=x*A+y*B+z*C;g[l+356>>2]=x*G+y*H+z*I;g[l+360>>2]=x*K+y*M+z*O;g[l+364>>2]=0.0;g[l+368>>2]=J*A+L*B+N*C;g[l+372>>2]=J*G+L*H+N*I;g[l+376>>2]=J*K+L*M+N*O;F=l+380|0;c[F+0>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;c[F+16>>2]=0;F=c[h+8>>2]|0;O=+bc[c[(c[m>>2]|0)+48>>2]&15](m);c[l+112>>2]=14584;c[l+116>>2]=d;c[l+120>>2]=c[e+0>>2];c[l+124>>2]=c[e+4>>2];c[l+128>>2]=c[e+8>>2];c[l+132>>2]=c[e+12>>2];c[l+136>>2]=c[e+16>>2];c[l+140>>2]=c[e+20>>2];c[l+144>>2]=c[e+24>>2];c[l+148>>2]=c[e+28>>2];c[l+152>>2]=c[e+32>>2];c[l+156>>2]=c[e+36>>2];c[l+160>>2]=c[e+40>>2];c[l+164>>2]=c[e+44>>2];c[l+168>>2]=c[e+48>>2];c[l+172>>2]=c[e+52>>2];c[l+176>>2]=c[e+56>>2];c[l+180>>2]=c[e+60>>2];c[l+184>>2]=c[f+0>>2];c[l+188>>2]=c[f+4>>2];c[l+192>>2]=c[f+8>>2];c[l+196>>2]=c[f+12>>2];c[l+200>>2]=c[f+16>>2];c[l+204>>2]=c[f+20>>2];c[l+208>>2]=c[f+24>>2];c[l+212>>2]=c[f+28>>2];c[l+216>>2]=c[f+32>>2];c[l+220>>2]=c[f+36>>2];c[l+224>>2]=c[f+40>>2];c[l+228>>2]=c[f+44>>2];c[l+232>>2]=c[f+48>>2];c[l+236>>2]=c[f+52>>2];c[l+240>>2]=c[f+56>>2];c[l+244>>2]=c[f+60>>2];c[l+248>>2]=c[n+0>>2];c[l+252>>2]=c[n+4>>2];c[l+256>>2]=c[n+8>>2];c[l+260>>2]=c[n+12>>2];c[l+264>>2]=c[n+16>>2];c[l+268>>2]=c[n+20>>2];c[l+272>>2]=c[n+24>>2];c[l+276>>2]=c[n+28>>2];c[l+280>>2]=c[n+32>>2];c[l+284>>2]=c[n+36>>2];c[l+288>>2]=c[n+40>>2];c[l+292>>2]=c[n+44>>2];c[l+296>>2]=c[n+48>>2];c[l+300>>2]=c[n+52>>2];c[l+304>>2]=c[n+56>>2];c[l+308>>2]=c[n+60>>2];g[l+316>>2]=O;c[l+112>>2]=7368;c[l+324>>2]=j;c[l+328>>2]=F;c[l+332>>2]=m;g[l+312>>2]=+g[j+4>>2];g[l+320>>2]=k;wc[c[(c[d>>2]|0)+8>>2]&63](d,l+336|0,l+96|0,l+80|0);g[l+64>>2]=t;g[l+68>>2]=q;g[l+72>>2]=p;g[l+76>>2]=0.0;if(s>2]=s;v=s}else{v=t}if(r>2]=r;u=r}else{u=q}if(o>2]=o;k=o}else{k=p}g[l+48>>2]=t;g[l+52>>2]=q;g[l+56>>2]=p;g[l+60>>2]=0.0;if(t>2]=s}else{s=t}if(q>2]=r;q=r}if(p>2]=o}else{o=p}g[l+64>>2]=+g[l+96>>2]+v;g[l+68>>2]=+g[l+100>>2]+u;g[l+72>>2]=+g[l+104>>2]+k;g[l+48>>2]=+g[l+80>>2]+s;g[l+52>>2]=+g[l+84>>2]+q;g[l+56>>2]=+g[l+88>>2]+o;wc[c[(c[m>>2]|0)+64>>2]&63](m,l+112|0,l+64|0,l+48|0);i=l;return}}function Po(a){a=a|0;return}function Qo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;j=i;i=i+256|0;c[j+32>>2]=7104;h=j+68|0;c[h+0>>2]=c[b+0>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];c[h+12>>2]=c[b+12>>2];f=j+84|0;c[f+0>>2]=c[d+0>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[j+244>>2]=a;c[j+248>>2]=e;g[j+100>>2]=1.0;c[j+104>>2]=0;c[j+108>>2]=0;c[j+112>>2]=0;c[j+116>>2]=0;g[j+120>>2]=1.0;c[j+124>>2]=0;c[j+128>>2]=0;c[j+132>>2]=0;c[j+136>>2]=0;g[j+140>>2]=1.0;c[j+144>>2]=0;c[j+148>>2]=c[h+0>>2];c[j+152>>2]=c[h+4>>2];c[j+156>>2]=c[h+8>>2];c[j+160>>2]=c[h+12>>2];g[j+164>>2]=1.0;c[j+168>>2]=0;c[j+172>>2]=0;c[j+176>>2]=0;c[j+180>>2]=0;g[j+184>>2]=1.0;c[j+188>>2]=0;c[j+192>>2]=0;c[j+196>>2]=0;c[j+200>>2]=0;g[j+204>>2]=1.0;c[j+208>>2]=0;c[j+212>>2]=c[d+0>>2];c[j+216>>2]=c[d+4>>2];c[j+220>>2]=c[d+8>>2];c[j+224>>2]=c[d+12>>2];n=+g[d>>2]- +g[b>>2];k=+g[d+4>>2]- +g[b+4>>2];q=+g[d+8>>2]- +g[b+8>>2];l=1.0/+Q(+(n*n+k*k+q*q));if(n*l==0.0){p=999999984306749400.0}else{p=1.0/(n*l)}g[j+36>>2]=p;if(k*l==0.0){o=999999984306749400.0}else{o=1.0/(k*l)}g[j+40>>2]=o;if(q*l==0.0){m=999999984306749400.0}else{m=1.0/(q*l)}g[j+44>>2]=m;c[j+52>>2]=p<0.0&1;c[j+56>>2]=o<0.0&1;c[j+60>>2]=m<0.0&1;g[j+64>>2]=n*l*(+g[f>>2]- +g[h>>2])+k*l*(+g[j+88>>2]- +g[j+72>>2])+q*l*(+g[j+92>>2]- +g[j+76>>2]);e=c[a+68>>2]|0;h=c[(c[e>>2]|0)+24>>2]|0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;c[j+0>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;$b[h&7](e,b,d,j+32|0,j+16|0,j);i=j;return}function Ro(a){a=a|0;return}function So(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0.0,v=0,w=0.0,x=0;h=i;i=i+384|0;vx(6792);c[h+112>>2]=c[d+0>>2];c[h+116>>2]=c[d+4>>2];c[h+120>>2]=c[d+8>>2];c[h+124>>2]=c[d+12>>2];c[h+128>>2]=c[d+16>>2];c[h+132>>2]=c[d+20>>2];c[h+136>>2]=c[d+24>>2];c[h+140>>2]=c[d+28>>2];c[h+144>>2]=c[d+32>>2];c[h+148>>2]=c[d+36>>2];c[h+152>>2]=c[d+40>>2];c[h+156>>2]=c[d+44>>2];j=h+160|0;c[j+0>>2]=c[d+48>>2];c[j+4>>2]=c[d+52>>2];c[j+8>>2]=c[d+56>>2];c[j+12>>2]=c[d+60>>2];c[h+48>>2]=c[e+0>>2];c[h+52>>2]=c[e+4>>2];c[h+56>>2]=c[e+8>>2];c[h+60>>2]=c[e+12>>2];c[h+64>>2]=c[e+16>>2];c[h+68>>2]=c[e+20>>2];c[h+72>>2]=c[e+24>>2];c[h+76>>2]=c[e+28>>2];c[h+80>>2]=c[e+32>>2];c[h+84>>2]=c[e+36>>2];c[h+88>>2]=c[e+40>>2];c[h+92>>2]=c[e+44>>2];k=h+96|0;c[k+0>>2]=c[e+48>>2];c[k+4>>2]=c[e+52>>2];c[k+8>>2]=c[e+56>>2];c[k+12>>2]=c[e+60>>2];Qj(h+112|0,h+48|0,h+180|0,h+176|0);l=+g[h+176>>2];u=+g[h+180>>2]*l;t=l*+g[h+184>>2];l=l*+g[h+188>>2];g[h+180>>2]=1.0;x=h+184|0;c[x+0>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;g[h+200>>2]=1.0;v=h+204|0;c[v+0>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;g[h+220>>2]=1.0;s=h+224|0;c[s+0>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;mj(h+112|0,h);p=+g[h>>2];n=+g[h+4>>2];w=+g[h+8>>2];q=+g[h+12>>2];o=p*(2.0/(p*p+n*n+w*w+q*q));m=n*(2.0/(p*p+n*n+w*w+q*q));r=w*(2.0/(p*p+n*n+w*w+q*q));g[h+180>>2]=1.0-(n*m+w*r);g[x>>2]=p*m-q*r;g[h+188>>2]=p*r+q*m;g[h+192>>2]=0.0;g[h+196>>2]=p*m+q*r;g[h+200>>2]=1.0-(p*o+w*r);g[v>>2]=n*r-q*o;g[h+208>>2]=0.0;g[h+212>>2]=p*r-q*m;g[h+216>>2]=n*r+q*o;g[h+220>>2]=1.0-(p*o+n*m);g[s>>2]=0.0;wc[c[(c[b>>2]|0)+8>>2]&63](b,h+180|0,h+32|0,h+16|0);m=+g[h+20>>2];n=+g[h+24>>2];o=+g[h+16>>2];p=+g[h+32>>2]+0.0;q=+g[h+36>>2]+0.0;r=+g[h+40>>2]+0.0;l=+Q(+(u*u+t*t+l*l))*+bc[c[(c[b>>2]|0)+16>>2]&15](b);g[h+44>>2]=0.0;g[h+28>>2]=0.0;g[h+32>>2]=p-l;g[h+36>>2]=q-l;g[h+40>>2]=r-l;g[h+16>>2]=l+o;g[h+20>>2]=l+m;g[h+24>>2]=l+n;c[h+180>>2]=6992;c[h+216>>2]=c[d+0>>2];c[h+220>>2]=c[d+4>>2];c[h+224>>2]=c[d+8>>2];c[h+228>>2]=c[d+12>>2];c[h+232>>2]=c[d+16>>2];c[h+236>>2]=c[d+20>>2];c[h+240>>2]=c[d+24>>2];c[h+244>>2]=c[d+28>>2];c[h+248>>2]=c[d+32>>2];c[h+252>>2]=c[d+36>>2];c[h+256>>2]=c[d+40>>2];c[h+260>>2]=c[d+44>>2];s=h+264|0;c[s+0>>2]=c[d+48>>2];c[s+4>>2]=c[d+52>>2];c[s+8>>2]=c[d+56>>2];c[s+12>>2]=c[d+60>>2];c[h+280>>2]=c[e+0>>2];c[h+284>>2]=c[e+4>>2];c[h+288>>2]=c[e+8>>2];c[h+292>>2]=c[e+12>>2];c[h+296>>2]=c[e+16>>2];c[h+300>>2]=c[e+20>>2];c[h+304>>2]=c[e+24>>2];c[h+308>>2]=c[e+28>>2];c[h+312>>2]=c[e+32>>2];c[h+316>>2]=c[e+36>>2];c[h+320>>2]=c[e+40>>2];c[h+324>>2]=c[e+44>>2];d=h+328|0;c[d+0>>2]=c[e+48>>2];c[d+4>>2]=c[e+52>>2];c[d+8>>2]=c[e+56>>2];c[d+12>>2]=c[e+60>>2];c[h+360>>2]=a;c[h+364>>2]=f;g[h+368>>2]=0.0;c[h+372>>2]=b;n=+g[d>>2]- +g[s>>2];l=+g[h+332>>2]- +g[h+268>>2];m=+g[h+336>>2]- +g[h+272>>2];o=1.0/+Q(+(n*n+l*l+m*m));if(n*o==0.0){p=999999984306749400.0}else{p=1.0/(n*o)}g[h+184>>2]=p;if(l*o==0.0){q=999999984306749400.0}else{q=1.0/(l*o)}g[h+188>>2]=q;if(m*o==0.0){r=999999984306749400.0}else{r=1.0/(m*o)}g[h+192>>2]=r;c[h+200>>2]=p<0.0&1;c[h+204>>2]=q<0.0&1;c[h+208>>2]=r<0.0&1;g[h+212>>2]=m*m*o+(n*n*o+l*l*o);x=c[a+68>>2]|0;$b[c[(c[x>>2]|0)+24>>2]&7](x,j,k,h+180|0,h+32|0,h+16|0);j=c[4564]|0;x=(c[j+16>>2]|0)+ -1|0;c[j+16>>2]=x;if((x|0)!=0){i=h;return}do{if((c[j+4>>2]|0)!=0){Gb(h+180|0,0)|0;x=c[4550]|0;g[j+8>>2]=+(((c[h+184>>2]|0)-(c[x+4>>2]|0)+(((c[h+180>>2]|0)-(c[x>>2]|0)|0)*1e6|0)-(c[j+12>>2]|0)|0)>>>0)/1.0e3+ +g[j+8>>2];if((c[j+16>>2]|0)==0){j=c[4564]|0;break}else{i=h;return}}}while(0);c[4564]=c[j+20>>2];i=h;return}function To(a){a=a|0;return}function Uo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0,N=0;f=i;i=i+480|0;h=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;uc[c[(c[h>>2]|0)+56>>2]&3](h,b,1.0);h=c[d+4>>2]|0;switch(h|0){case 0:{c[f+400>>2]=c[d+28>>2];c[f+404>>2]=c[d+32>>2];c[f+408>>2]=c[d+36>>2];c[f+412>>2]=c[d+40>>2];l=+bc[c[(c[d>>2]|0)+48>>2]&15](d);p=+bc[c[(c[d>>2]|0)+48>>2]&15](d);q=+bc[c[(c[d>>2]|0)+48>>2]&15](d);l=l+ +g[f+400>>2];g[f+400>>2]=l;p=p+ +g[f+404>>2];g[f+404>>2]=p;q=q+ +g[f+408>>2];g[f+408>>2]=q;r=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;o=c[(c[r>>2]|0)+72>>2]|0;g[f+384>>2]=-l;g[f+388>>2]=-p;g[f+392>>2]=-q;g[f+396>>2]=0.0;Lb[o&31](r,f+384|0,f+400|0,b,e);i=f;return};case 10:{r=c[d+52>>2]|0;p=+g[d+(((r+2|0)%3|0)<<2)+28>>2];q=+g[d+(r<<2)+28>>2];o=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;Tb[c[(c[o>>2]|0)+76>>2]&0](o,p,q,r,b,e);i=f;return};case 28:{q=+g[d+64>>2];r=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;ec[c[(c[r>>2]|0)+88>>2]&0](r,d+48|0,q,b,e);i=f;return};case 11:{p=+g[d+56>>2];q=+g[d+60>>2];r=c[d+68>>2]|0;o=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;Tb[c[(c[o>>2]|0)+84>>2]&0](o,p,q,r,b,e);i=f;return};case 13:{r=c[d+52>>2]|0;p=+bc[c[(c[d>>2]|0)+92>>2]&15](d);c[f+304>>2]=c[d+28>>2];c[f+308>>2]=c[d+32>>2];c[f+312>>2]=c[d+36>>2];c[f+316>>2]=c[d+40>>2];s=+bc[c[(c[d>>2]|0)+48>>2]&15](d);l=+bc[c[(c[d>>2]|0)+48>>2]&15](d);q=+bc[c[(c[d>>2]|0)+48>>2]&15](d);g[f+304>>2]=s+ +g[f+304>>2];g[f+308>>2]=l+ +g[f+308>>2];g[f+312>>2]=q+ +g[f+312>>2];q=+g[f+304+(r<<2)>>2];o=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;Tb[c[(c[o>>2]|0)+80>>2]&0](o,p,q,r,b,e);i=f;return};case 9:{h=c[d+92>>2]|0;if((h|0)<=0){i=f;return}do{h=h+ -1|0;r=c[d+100>>2]|0;D=+g[r+(h<<4)>>2];C=+g[r+(h<<4)+4>>2];q=+g[r+(h<<4)+8>>2];r=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;o=c[(c[r>>2]|0)+16>>2]|0;s=+g[(c[d+120>>2]|0)+(h<<2)>>2];A=+g[b>>2];z=+g[b+4>>2];B=+g[b+8>>2];x=+g[b+16>>2];w=+g[b+20>>2];y=+g[b+24>>2];u=+g[b+32>>2];t=+g[b+36>>2];v=+g[b+40>>2];l=D*A+C*z+q*B+ +g[b+48>>2];p=D*x+C*w+q*y+ +g[b+52>>2];q=D*u+C*t+q*v+ +g[b+56>>2];g[f+320>>2]=A+z*0.0+B*0.0;g[f+324>>2]=A*0.0+z+B*0.0;g[f+328>>2]=B+(A*0.0+z*0.0);g[f+332>>2]=0.0;g[f+336>>2]=x+w*0.0+y*0.0;g[f+340>>2]=x*0.0+w+y*0.0;g[f+344>>2]=y+(x*0.0+w*0.0);g[f+348>>2]=0.0;g[f+352>>2]=u+t*0.0+v*0.0;g[f+356>>2]=u*0.0+t+v*0.0;g[f+360>>2]=v+(u*0.0+t*0.0);g[f+364>>2]=0.0;g[f+368>>2]=l;g[f+372>>2]=p;g[f+376>>2]=q;g[f+380>>2]=0.0;Ub[o&0](r,s,f+320|0,e)}while((h|0)>0);i=f;return};case 8:{D=+bc[c[(c[d>>2]|0)+48>>2]&15](d);r=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;Ub[c[(c[r>>2]|0)+16>>2]&0](r,D,b,e);i=f;return};case 31:{h=c[d+16>>2]|0;if((h|0)<=0){i=f;return}do{h=h+ -1|0;r=c[d+24>>2]|0;l=+g[r+(h*80|0)>>2];s=+g[r+(h*80|0)+4>>2];v=+g[r+(h*80|0)+8>>2];p=+g[r+(h*80|0)+16>>2];t=+g[r+(h*80|0)+20>>2];x=+g[r+(h*80|0)+24>>2];q=+g[r+(h*80|0)+32>>2];u=+g[r+(h*80|0)+36>>2];z=+g[r+(h*80|0)+40>>2];L=+g[r+(h*80|0)+48>>2];K=+g[r+(h*80|0)+52>>2];D=+g[r+(h*80|0)+56>>2];r=c[r+(h*80|0)+64>>2]|0;o=c[(c[a>>2]|0)+28>>2]|0;J=+g[b>>2];I=+g[b+4>>2];H=+g[b+8>>2];G=+g[b+16>>2];F=+g[b+20>>2];E=+g[b+24>>2];w=+g[b+32>>2];y=+g[b+36>>2];A=+g[b+40>>2];B=L*J+K*I+D*H+ +g[b+48>>2];C=L*G+K*F+D*E+ +g[b+52>>2];D=L*w+K*y+D*A+ +g[b+56>>2];g[f+416>>2]=l*J+p*I+q*H;g[f+420>>2]=s*J+t*I+u*H;g[f+424>>2]=v*J+x*I+z*H;g[f+428>>2]=0.0;g[f+432>>2]=l*G+p*F+q*E;g[f+436>>2]=s*G+t*F+u*E;g[f+440>>2]=v*G+x*F+z*E;g[f+444>>2]=0.0;g[f+448>>2]=l*w+p*y+q*A;g[f+452>>2]=s*w+t*y+u*A;g[f+456>>2]=v*w+x*y+z*A;g[f+460>>2]=0.0;g[f+464>>2]=B;g[f+468>>2]=C;g[f+472>>2]=D;g[f+476>>2]=0.0;wc[o&63](a,f+416|0,r,e)}while((h|0)>0);i=f;return};default:{a:do{if((h|0)<7){h=c[d+52>>2]|0;if((h|0)==0){if((Rb[c[(c[d>>2]|0)+100>>2]&127](d)|0)<=0){break}h=0;while(1){wc[c[(c[d>>2]|0)+104>>2]&63](d,h,f+208|0,f+192|0);J=+g[f+208>>2];x=+g[b>>2];H=+g[f+212>>2];y=+g[b+4>>2];F=+g[f+216>>2];z=+g[b+8>>2];B=+g[b+16>>2];C=+g[b+20>>2];D=+g[b+24>>2];G=+g[b+32>>2];I=+g[b+36>>2];K=+g[b+40>>2];A=+g[b+48>>2];E=+g[b+52>>2];L=+g[b+56>>2];g[f+176>>2]=J*x+H*y+F*z+A;g[f+180>>2]=J*B+H*C+F*D+E;g[f+184>>2]=J*G+H*I+F*K+L;g[f+188>>2]=0.0;F=+g[f+192>>2];H=+g[f+196>>2];J=+g[f+200>>2];g[f+160>>2]=F*x+H*y+J*z+A;g[f+164>>2]=F*B+H*C+J*D+E;g[f+168>>2]=F*G+H*I+J*K+L;g[f+172>>2]=0.0;r=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;wc[c[(c[r>>2]|0)+8>>2]&63](r,f+176|0,f+160|0,e);h=h+1|0;if((h|0)>=(Rb[c[(c[d>>2]|0)+100>>2]&127](d)|0)){break a}}}if((c[h+28>>2]|0)>0){j=0;do{m=c[h+36>>2]|0;k=c[m+(j*36|0)+4>>2]|0;b:do{if((k|0)>0){n=c[m+(j*36|0)+12>>2]|0;r=n;p=0.0;q=0.0;l=0.0;n=c[n+(k+ -1<<2)>>2]|0;o=0;while(1){m=c[r+(o<<2)>>2]|0;r=c[h+16>>2]|0;p=p+ +g[r+(m<<4)>>2];l=l+ +g[r+(m<<4)+4>>2];q=q+ +g[r+(m<<4)+8>>2];r=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;M=c[(c[r>>2]|0)+8>>2]|0;N=c[h+16>>2]|0;J=+g[N+(n<<4)>>2];x=+g[b>>2];H=+g[N+(n<<4)+4>>2];y=+g[b+4>>2];F=+g[N+(n<<4)+8>>2];z=+g[b+8>>2];B=+g[b+16>>2];C=+g[b+20>>2];D=+g[b+24>>2];G=+g[b+32>>2];I=+g[b+36>>2];K=+g[b+40>>2];A=+g[b+48>>2];E=+g[b+52>>2];L=+g[b+56>>2];g[f+288>>2]=J*x+H*y+F*z+A;g[f+292>>2]=J*B+H*C+F*D+E;g[f+296>>2]=J*G+H*I+F*K+L;g[f+300>>2]=0.0;F=+g[N+(m<<4)>>2];H=+g[N+(m<<4)+4>>2];J=+g[N+(m<<4)+8>>2];g[f+272>>2]=F*x+H*y+J*z+A;g[f+276>>2]=F*B+H*C+J*D+E;g[f+280>>2]=F*G+H*I+J*K+L;g[f+284>>2]=0.0;wc[M&63](r,f+288|0,f+272|0,e);o=o+1|0;n=c[h+36>>2]|0;if((o|0)>=(c[n+(j*36|0)+4>>2]|0)){break b}r=c[n+(j*36|0)+12>>2]|0;n=m}}else{p=0.0;q=0.0;l=0.0}}while(0);p=p*(1.0/+(k|0));l=l*(1.0/+(k|0));q=q*(1.0/+(k|0));N=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;if(((Rb[c[(c[N>>2]|0)+48>>2]&127](N)|0)&16384|0)!=0){g[f+256>>2]=1.0;g[f+260>>2]=1.0;g[f+264>>2]=0.0;g[f+268>>2]=0.0;N=c[h+36>>2]|0;F=+g[N+(j*36|0)+20>>2];H=+g[N+(j*36|0)+24>>2];J=+g[N+(j*36|0)+28>>2];N=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;M=c[(c[N>>2]|0)+8>>2]|0;x=+g[b>>2];y=+g[b+4>>2];z=+g[b+8>>2];B=+g[b+16>>2];C=+g[b+20>>2];D=+g[b+24>>2];G=+g[b+32>>2];I=+g[b+36>>2];K=+g[b+40>>2];A=+g[b+48>>2];E=+g[b+52>>2];L=+g[b+56>>2];g[f+240>>2]=p*x+l*y+q*z+A;g[f+244>>2]=p*B+l*C+q*D+E;g[f+248>>2]=p*G+l*I+q*K+L;g[f+252>>2]=0.0;g[f+224>>2]=(p+F)*x+(l+H)*y+(q+J)*z+A;g[f+228>>2]=(p+F)*B+(l+H)*C+(q+J)*D+E;g[f+232>>2]=(p+F)*G+(l+H)*I+(q+J)*K+L;g[f+236>>2]=0.0;wc[M&63](N,f+240|0,f+224|0,f+256|0)}j=j+1|0}while((j|0)<(c[h+28>>2]|0))}}}while(0);h=c[d+4>>2]|0;if((h+ -21|0)>>>0<9){g[f+144>>2]=999999984306749400.0;g[f+148>>2]=999999984306749400.0;g[f+152>>2]=999999984306749400.0;g[f+156>>2]=0.0;g[f+128>>2]=-999999984306749400.0;g[f+132>>2]=-999999984306749400.0;g[f+136>>2]=-999999984306749400.0;g[f+140>>2]=0.0;h=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;c[f+32>>2]=6848;c[f+36>>2]=6872;c[f+40>>2]=h;c[f+44>>2]=c[e+0>>2];c[f+48>>2]=c[e+4>>2];c[f+52>>2]=c[e+8>>2];c[f+56>>2]=c[e+12>>2];c[f+60>>2]=c[b+0>>2];c[f+64>>2]=c[b+4>>2];c[f+68>>2]=c[b+8>>2];c[f+72>>2]=c[b+12>>2];c[f+76>>2]=c[b+16>>2];c[f+80>>2]=c[b+20>>2];c[f+84>>2]=c[b+24>>2];c[f+88>>2]=c[b+28>>2];c[f+92>>2]=c[b+32>>2];c[f+96>>2]=c[b+36>>2];c[f+100>>2]=c[b+40>>2];c[f+104>>2]=c[b+44>>2];c[f+108>>2]=c[b+48>>2];c[f+112>>2]=c[b+52>>2];c[f+116>>2]=c[b+56>>2];c[f+120>>2]=c[b+60>>2];wc[c[(c[d>>2]|0)+64>>2]&63](d,f+32|0,f+128|0,f+144|0);h=c[d+4>>2]|0}if((h|0)!=3){i=f;return}g[f+16>>2]=999999984306749400.0;g[f+20>>2]=999999984306749400.0;g[f+24>>2]=999999984306749400.0;g[f+28>>2]=0.0;g[f>>2]=-999999984306749400.0;g[f+4>>2]=-999999984306749400.0;g[f+8>>2]=-999999984306749400.0;g[f+12>>2]=0.0;N=Rb[c[(c[a>>2]|0)+20>>2]&127](a)|0;c[f+32>>2]=6848;c[f+36>>2]=6872;c[f+40>>2]=N;c[f+44>>2]=c[e+0>>2];c[f+48>>2]=c[e+4>>2];c[f+52>>2]=c[e+8>>2];c[f+56>>2]=c[e+12>>2];c[f+60>>2]=c[b+0>>2];c[f+64>>2]=c[b+4>>2];c[f+68>>2]=c[b+8>>2];c[f+72>>2]=c[b+12>>2];c[f+76>>2]=c[b+16>>2];c[f+80>>2]=c[b+20>>2];c[f+84>>2]=c[b+24>>2];c[f+88>>2]=c[b+28>>2];c[f+92>>2]=c[b+32>>2];c[f+96>>2]=c[b+36>>2];c[f+100>>2]=c[b+40>>2];c[f+104>>2]=c[b+44>>2];c[f+108>>2]=c[b+48>>2];c[f+112>>2]=c[b+52>>2];c[f+116>>2]=c[b+56>>2];c[f+120>>2]=c[b+60>>2];N=c[d+92>>2]|0;wc[c[(c[N>>2]|0)+8>>2]&63](N,f+36|0,f,f+16|0);i=f;return}}}function Vo(a){a=a|0;return}function Wo(b){b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0;d=i;i=i+112|0;if(((Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0)!=0?(r=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0,((Rb[c[(c[r>>2]|0)+48>>2]&127](r)|0)&8|0)!=0):0)?(e=c[b+24>>2]|0,e=Rb[c[(c[e>>2]|0)+36>>2]&127](e)|0,g[d+96>>2]=1.0,g[d+100>>2]=1.0,g[d+104>>2]=0.0,g[d+108>>2]=0.0,(e|0)>0):0){q=0;do{h=c[b+24>>2]|0;h=hc[c[(c[h>>2]|0)+40>>2]&31](h,q)|0;j=c[h+748>>2]|0;if((j|0)>0){f=0;do{r=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ob[c[(c[r>>2]|0)+32>>2]&0](r,h+(f*184|0)+36|0,h+(f*184|0)+68|0,+g[h+(f*184|0)+84>>2],c[h+(f*184|0)+152>>2]|0,d+96|0);f=f+1|0}while((f|0)!=(j|0))}q=q+1|0}while((q|0)!=(e|0))}if((Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0)==0){i=d;return}r=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;if(((Rb[c[(c[r>>2]|0)+48>>2]&127](r)|0)&3|0)==0){i=d;return}if((c[b+8>>2]|0)<=0){i=d;return}j=d+84|0;h=d+88|0;f=d+92|0;e=0;do{q=c[(c[b+16>>2]|0)+(e<<2)>>2]|0;if((c[q+204>>2]&32|0)==0){if((Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0)!=0?(r=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0,((Rb[c[(c[r>>2]|0)+48>>2]&127](r)|0)&1|0)!=0):0){g[d+80>>2]=1.0;g[j>>2]=1.0;g[h>>2]=1.0;g[f>>2]=0.0;switch(c[q+216>>2]|0){case 1:{g[d+80>>2]=1.0;g[j>>2]=1.0;g[h>>2]=1.0;g[f>>2]=0.0;break};case 4:{g[d+80>>2]=1.0;g[j>>2]=0.0;g[h>>2]=0.0;g[f>>2]=0.0;break};case 2:{g[d+80>>2]=0.0;g[j>>2]=1.0;g[h>>2]=0.0;g[f>>2]=0.0;break};case 3:{g[d+80>>2]=0.0;g[j>>2]=1.0;g[h>>2]=1.0;g[f>>2]=0.0;break};case 5:{g[d+80>>2]=1.0;g[j>>2]=1.0;g[h>>2]=0.0;g[f>>2]=0.0;break};default:{g[d+80>>2]=1.0;g[j>>2]=0.0;g[h>>2]=0.0;g[f>>2]=0.0}}wc[c[(c[b>>2]|0)+28>>2]&63](b,q+4|0,c[q+192>>2]|0,d+80|0)}r=c[b+72>>2]|0;if((r|0)!=0?((Rb[c[(c[r>>2]|0)+48>>2]&127](r)|0)&2|0)!=0:0){g[d+32>>2]=1.0;g[d+36>>2]=0.0;g[d+40>>2]=0.0;g[d+44>>2]=0.0;r=c[q+192>>2]|0;wc[c[(c[r>>2]|0)+8>>2]&63](r,q+4|0,d+64|0,d+48|0);g[d+64>>2]=+g[d+64>>2]+-.019999999552965164;g[d+68>>2]=+g[d+68>>2]+-.019999999552965164;g[d+72>>2]=+g[d+72>>2]+-.019999999552965164;g[d+48>>2]=+g[d+48>>2]+.019999999552965164;g[d+52>>2]=+g[d+52>>2]+.019999999552965164;g[d+56>>2]=+g[d+56>>2]+.019999999552965164;do{if(((a[b+44>>0]|0)!=0?(c[q+236>>2]|0)==2:0)?(c[q+204>>2]&3|0)==0:0){r=c[q+192>>2]|0;wc[c[(c[r>>2]|0)+8>>2]&63](r,q+68|0,d+16|0,d);p=+g[d+16>>2]+-.019999999552965164;g[d+16>>2]=p;o=+g[d+20>>2]+-.019999999552965164;g[d+20>>2]=o;n=+g[d+24>>2]+-.019999999552965164;g[d+24>>2]=n;m=+g[d>>2]+.019999999552965164;g[d>>2]=m;l=+g[d+4>>2]+.019999999552965164;g[d+4>>2]=l;k=+g[d+8>>2]+.019999999552965164;g[d+8>>2]=k;if(p<+g[d+64>>2]){g[d+64>>2]=p}if(o<+g[d+68>>2]){g[d+68>>2]=o}if(n<+g[d+72>>2]){g[d+72>>2]=n}n=+g[d+28>>2];if(n<+g[d+76>>2]){g[d+76>>2]=n}if(+g[d+48>>2]>2]=m}if(+g[d+52>>2]>2]=l}if(+g[d+56>>2]>2]=k}k=+g[d+12>>2];if(!(+g[d+60>>2]>2]=k}}while(0);r=c[b+72>>2]|0;wc[c[(c[r>>2]|0)+52>>2]&63](r,d+64|0,d+48|0,d+32|0)}}e=e+1|0}while((e|0)<(c[b+8>>2]|0));i=d;return}function Xo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=i;i=i+80|0;r=c[b+8>>2]|0;if((r|0)>0){m=0;do{n=c[(c[b+16>>2]|0)+(m<<2)>>2]|0;if((c[n+236>>2]|0)==1){Pb[c[(c[n>>2]|0)+24>>2]&127](n,d);r=c[b+8>>2]|0}m=m+1|0}while((m|0)<(r|0))}a[j+16>>0]=1;c[j+12>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;a[j+36>>0]=1;c[j+32>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;a[j+56>>0]=1;c[j+52>>2]=0;c[j+44>>2]=0;c[j+48>>2]=0;a[j+76>>0]=1;c[j+72>>2]=0;c[j+64>>2]=0;c[j+68>>2]=0;if((r|0)<=0){Zo(j);i=j;return}u=-1;t=0;p=0;s=0;q=0;m=0;while(1){n=c[(c[(c[b+16>>2]|0)+(m<<2)>>2]|0)+192>>2]|0;o=(n+~(n<<15)>>10^n+~(n<<15))*9|0;o=(o>>6^o)+~((o>>6^o)<<11)>>16^(o>>6^o)+~((o>>6^o)<<11);u=o&u;a:do{if(u>>>0>>0?(h=c[p+(u<<2)>>2]|0,!((h|0)==-1)):0){u=c[j+72>>2]|0;v=h;while(1){if((n|0)==(c[u+(v<<3)>>2]|0)){break}v=c[s+(v<<2)>>2]|0;if((v|0)==-1){f=15;break a}}if(!(!((v|0)==-1)?((c[j+52>>2]|0)+(v<<2)|0)!=0:0)){f=15}}else{f=15}}while(0);if((f|0)==15){f=0;r=o&q+ -1;b:do{if(r>>>0>>0?(g=c[p+(r<<2)>>2]|0,!((g|0)==-1)):0){t=c[j+72>>2]|0;u=g;while(1){if((n|0)==(c[t+(u<<3)>>2]|0)){break}u=c[s+(u<<2)>>2]|0;if((u|0)==-1){f=22;break b}}if(!((u|0)==-1)){c[(c[j+52>>2]|0)+(u<<2)>>2]=n}else{f=22}}else{f=22}}while(0);if((f|0)==22){f=0;p=c[j+44>>2]|0;if((p|0)==(q|0)){s=(q|0)==0?1:q<<1;if((q|0)<(s|0)){if((s|0)!=0?(c[4546]=(c[4546]|0)+1,l=Zx((s<<2|3)+16|0)|0,(l|0)!=0):0){c[(l+19&-16)+ -4>>2]=l;t=l+19&-16}else{t=0}if((q|0)>0){u=0;do{v=t+(u<<2)|0;if((v|0)!=0){c[v>>2]=c[(c[j+52>>2]|0)+(u<<2)>>2]}u=u+1|0}while((u|0)!=(q|0))}u=c[j+52>>2]|0;if((u|0)!=0){if((a[j+56>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[u+ -4>>2]|0)}c[j+52>>2]=0}a[j+56>>0]=1;c[j+52>>2]=t;c[j+48>>2]=s;s=q}else{s=q}}else{s=p}t=(c[j+52>>2]|0)+(s<<2)|0;if((t|0)!=0){c[t>>2]=n}c[j+44>>2]=s+1;t=c[j+64>>2]|0;if((t|0)==(c[j+68>>2]|0)?(k=(t|0)==0?1:t<<1,(t|0)<(k|0)):0){if((k|0)!=0?(c[4546]=(c[4546]|0)+1,e=Zx((k<<3|3)+16|0)|0,(e|0)!=0):0){c[(e+19&-16)+ -4>>2]=e;s=e+19&-16}else{s=0}if((t|0)>0){v=0;do{u=s+(v<<3)|0;if((u|0)!=0){x=(c[j+72>>2]|0)+(v<<3)|0;w=c[x+4>>2]|0;c[u>>2]=c[x>>2];c[u+4>>2]=w}v=v+1|0}while((v|0)!=(t|0))}t=c[j+72>>2]|0;if((t|0)!=0){if((a[j+76>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[t+ -4>>2]|0)}c[j+72>>2]=0}a[j+76>>0]=1;c[j+72>>2]=s;c[j+68>>2]=k;t=c[j+64>>2]|0}s=(c[j+72>>2]|0)+(t<<3)|0;if((s|0)!=0){c[s>>2]=n;c[s+4>>2]=0}c[j+64>>2]=t+1;s=c[j+48>>2]|0;if((q|0)<(s|0)){q=c[j+4>>2]|0;do{if((q|0)<(s|0)){if((q|0)<=(s|0)){if((c[j+8>>2]|0)<(s|0)){do{if((s|0)==0){r=0}else{c[4546]=(c[4546]|0)+1;r=Zx((s<<2|3)+16|0)|0;if((r|0)==0){r=0;break}c[(r+19&-16)+ -4>>2]=r;r=r+19&-16}}while(0);v=c[j+12>>2]|0;if((q|0)>0){u=0;do{t=r+(u<<2)|0;if((t|0)!=0){c[t>>2]=c[v+(u<<2)>>2]}u=u+1|0}while((u|0)!=(q|0))}if((v|0)!=0){if((a[j+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[v+ -4>>2]|0)}c[j+12>>2]=0}a[j+16>>0]=1;c[j+12>>2]=r;c[j+8>>2]=s}else{r=c[j+12>>2]|0}t=q;do{u=r+(t<<2)|0;if((u|0)!=0){c[u>>2]=0}t=t+1|0}while((t|0)!=(s|0))}c[j+4>>2]=s;r=c[j+24>>2]|0;if((r|0)<(s|0)){if((c[j+28>>2]|0)<(s|0)){do{if((s|0)==0){t=0}else{c[4546]=(c[4546]|0)+1;t=Zx((s<<2|3)+16|0)|0;if((t|0)==0){t=0;break}c[(t+19&-16)+ -4>>2]=t;t=t+19&-16}}while(0);w=c[j+32>>2]|0;if((r|0)>0){u=0;do{v=t+(u<<2)|0;if((v|0)!=0){c[v>>2]=c[w+(u<<2)>>2]}u=u+1|0}while((u|0)!=(r|0))}if((w|0)!=0){if((a[j+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[w+ -4>>2]|0)}c[j+32>>2]=0}a[j+36>>0]=1;c[j+32>>2]=t;c[j+28>>2]=s}else{t=c[j+32>>2]|0}do{u=t+(r<<2)|0;if((u|0)!=0){c[u>>2]=0}r=r+1|0}while((r|0)!=(s|0))}c[j+24>>2]=s;if((s|0)>0){by(c[j+12>>2]|0,-1,s<<2|0)|0;by(c[j+32>>2]|0,-1,s<<2|0)|0}if((q|0)<=0){s=c[j+48>>2]|0;break}v=c[j+72>>2]|0;u=c[j+12>>2]|0;t=c[j+32>>2]|0;s=c[j+48>>2]|0;r=0;do{x=c[v+(r<<3)>>2]|0;x=(x+~(x<<15)>>10^x+~(x<<15))*9|0;x=u+((((x>>6^x)+~((x>>6^x)<<11)>>16^(x>>6^x)+~((x>>6^x)<<11))&s+ -1)<<2)|0;c[t+(r<<2)>>2]=c[x>>2];c[x>>2]=r;r=r+1|0}while((r|0)!=(q|0))}}while(0);q=s;r=o&s+ -1}else{q=s}x=c[j+12>>2]|0;w=x+(r<<2)|0;s=c[j+32>>2]|0;c[s+(p<<2)>>2]=c[w>>2];c[w>>2]=p;p=x}Pb[c[(c[n>>2]|0)+60>>2]&127](n,d);r=c[b+8>>2]|0}m=m+1|0;if((m|0)>=(r|0)){break}u=q+ -1|0;t=c[j+4>>2]|0}Zo(j);i=j;return}function Yo(a,b){a=a|0;b=b|0;var d=0;d=i;Nb[c[(c[b>>2]|0)+32>>2]&255](b);Xo(a,b);Nb[c[(c[b>>2]|0)+36>>2]&255](b);i=d;return}function Zo(b){b=b|0;var d=0,e=0;d=i;e=c[b+72>>2]|0;if((e|0)!=0){if((a[b+76>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+72>>2]=0}a[b+76>>0]=1;c[b+72>>2]=0;c[b+64>>2]=0;c[b+68>>2]=0;e=c[b+52>>2]|0;if((e|0)!=0){if((a[b+56>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;e=c[b+32>>2]|0;if((e|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;e=c[b+12>>2]|0;if((e|0)==0){a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;e=b+8|0;c[e>>2]=0;i=d;return}if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+12>>2]=0;a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;e=b+8|0;c[e>>2]=0;i=d;return}function _o(a){a=a|0;return}function $o(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function ap(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0.0,H=0.0;d=i;i=i+96|0;p=+g[b>>2];j=+g[a+28>>2];q=+g[b+4>>2];l=+g[a+32>>2];r=+g[b+8>>2];n=+g[a+36>>2];s=+g[a+44>>2];t=+g[a+48>>2];f=+g[a+52>>2];v=+g[a+60>>2];w=+g[a+64>>2];x=+g[a+68>>2];o=+g[a+76>>2];u=+g[a+80>>2];y=+g[a+84>>2];g[d+80>>2]=p*j+q*l+r*n+o;g[d+84>>2]=p*s+q*t+r*f+u;g[d+88>>2]=p*v+q*w+r*x+y;g[d+92>>2]=0.0;h=+g[b+16>>2];k=+g[b+20>>2];m=+g[b+24>>2];g[d+64>>2]=h*j+k*l+m*n+o;g[d+68>>2]=h*s+k*t+m*f+u;g[d+72>>2]=h*v+k*w+m*x+y;g[d+76>>2]=0.0;z=+g[b+32>>2];A=+g[b+36>>2];B=+g[b+40>>2];g[d+48>>2]=z*j+A*l+B*n+o;g[d+52>>2]=z*s+A*t+B*f+u;g[d+56>>2]=z*v+A*w+B*x+y;g[d+60>>2]=0.0;C=(p*j+q*l+r*n+o+(h*j+k*l+m*n+o)+(z*j+A*l+B*n+o))*.3333333432674408;D=(p*s+q*t+r*f+u+(h*s+k*t+m*f+u)+(z*s+A*t+B*f+u))*.3333333432674408;E=(p*v+q*w+r*x+y+(h*v+k*w+m*x+y)+(z*v+A*w+B*x+y))*.3333333432674408;g[d+32>>2]=C;g[d+36>>2]=D;g[d+40>>2]=E;g[d+44>>2]=0.0;e=c[a+8>>2]|0;if(((Rb[c[(c[e>>2]|0)+48>>2]&127](e)|0)&16384|0)==0){b=c[a+8>>2]|0;F=c[b>>2]|0;F=F+8|0;F=c[F>>2]|0;e=a+12|0;wc[F&63](b,d+80|0,d+64|0,e);b=c[a+8>>2]|0;F=c[b>>2]|0;F=F+8|0;F=c[F>>2]|0;wc[F&63](b,d+64|0,d+48|0,e);b=c[a+8>>2]|0;a=c[b>>2]|0;a=a+8|0;a=c[a>>2]|0;wc[a&63](b,d+48|0,d+80|0,e);i=d;return}H=h*j+k*l+m*n+o-(p*j+q*l+r*n+o);G=h*s+k*t+m*f+u-(p*s+q*t+r*f+u);m=h*v+k*w+m*x+y-(p*v+q*w+r*x+y);o=z*j+A*l+B*n+o-(p*j+q*l+r*n+o);u=z*s+A*t+B*f+u-(p*s+q*t+r*f+u);A=z*v+A*w+B*x+y-(p*v+q*w+r*x+y);B=1.0/+Q(+((H*u-G*o)*(H*u-G*o)+((G*A-m*u)*(G*A-m*u)+(m*o-H*A)*(m*o-H*A))));g[d+16>>2]=1.0;g[d+20>>2]=1.0;g[d+24>>2]=0.0;g[d+28>>2]=0.0;e=c[a+8>>2]|0;b=c[(c[e>>2]|0)+8>>2]|0;g[d>>2]=B*(G*A-m*u)+C;g[d+4>>2]=B*(m*o-H*A)+D;g[d+8>>2]=B*(H*u-G*o)+E;g[d+12>>2]=0.0;wc[b&63](e,d+32|0,d,d+16|0);e=c[a+8>>2]|0;b=c[e>>2]|0;b=b+8|0;b=c[b>>2]|0;F=a+12|0;wc[b&63](e,d+80|0,d+64|0,F);e=c[a+8>>2]|0;b=c[e>>2]|0;b=b+8|0;b=c[b>>2]|0;wc[b&63](e,d+64|0,d+48|0,F);e=c[a+8>>2]|0;b=c[e>>2]|0;b=b+8|0;b=c[b>>2]|0;wc[b&63](e,d+48|0,d+80|0,F);i=d;return}function bp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;wc[c[(c[a>>2]|0)+8>>2]&63](a,b,d,e);i=f;return}function cp(a){a=a|0;var b=0;b=i;_x(a+ -4|0);i=b;return}function dp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;wc[c[(c[a+ -4>>2]|0)+8>>2]&63](a+ -4|0,b,d,e);i=f;return}function ep(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function fp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0,j=0;d=i;i=i+32|0;e=c[a+184>>2]|0;if(+g[e+4>>2]==0.0){b=0;i=d;return b|0}b=c[b>>2]|0;if(!(hc[c[(c[e>>2]|0)+8>>2]&31](e,c[b+188>>2]|0)|0)){b=1;i=d;return b|0}h=c[a+192>>2]|0;j=c[b+192>>2]|0;e=c[a+184>>2]|0;f=+g[a+188>>2];c[d>>2]=0;c[d+4>>2]=j;c[d+8>>2]=b;c[d+12>>2]=b+4;c[d+16>>2]=-1;c[d+20>>2]=-1;Oo(h,a+36|0,a+100|0,d,e,f);b=1;i=d;return b|0}function gp(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function hp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+32|0;e=c[a+216>>2]|0;if(+g[e+4>>2]==0.0){b=0;i=d;return b|0}b=c[b>>2]|0;if(!(hc[c[(c[e>>2]|0)+8>>2]&31](e,c[b+188>>2]|0)|0)){b=1;i=d;return b|0}f=c[b+192>>2]|0;e=c[a+216>>2]|0;c[d>>2]=0;c[d+4>>2]=f;c[d+8>>2]=b;c[d+12>>2]=b+4;c[d+16>>2]=-1;c[d+20>>2]=-1;Lo(a+68|0,a+132|0,d,e);b=1;i=d;return b|0}function ip(a){a=a|0;return}function jp(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function kp(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+12>>2]|0;a=hc[c[(c[a>>2]|0)+8>>2]&31](a,b)|0;i=d;return a|0}function lp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0;e=i;i=i+16|0;c[e>>2]=-1;c[e+4>>2]=c[a+16>>2];if((c[b+4>>2]|0)==0){c[b+4>>2]=e}h=c[a+12>>2]|0;f=+ic[c[(c[h>>2]|0)+12>>2]&7](h,b,d);g[a+4>>2]=+g[(c[a+12>>2]|0)+4>>2];i=e;return+f}function mp(a){a=a|0;return}function np(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function op(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=h|0;var j=0;j=i;i=i+64|0;c[j+48>>2]=f;c[j+52>>2]=h;h=c[a+212>>2]|0;if(!(+g[h+4>>2]>=e)){i=j;return+e}c[j>>2]=c[a+216>>2];c[j+4>>2]=j+48;c[j+8>>2]=c[b+0>>2];c[j+12>>2]=c[b+4>>2];c[j+16>>2]=c[b+8>>2];c[j+20>>2]=c[b+12>>2];c[j+24>>2]=c[d+0>>2];c[j+28>>2]=c[d+4>>2];c[j+32>>2]=c[d+8>>2];c[j+36>>2]=c[d+12>>2];g[j+40>>2]=e;e=+ic[c[(c[h>>2]|0)+12>>2]&7](h,j,0);i=j;return+e}function pp(a){a=a|0;return}function qp(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function rp(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;h=h|0;var j=0;j=i;i=i+64|0;c[j+48>>2]=f;c[j+52>>2]=h;h=c[a+212>>2]|0;if(!(+g[h+4>>2]>=e)){i=j;return+e}c[j>>2]=c[a+216>>2];c[j+4>>2]=j+48;c[j+8>>2]=c[b+0>>2];c[j+12>>2]=c[b+4>>2];c[j+16>>2]=c[b+8>>2];c[j+20>>2]=c[b+12>>2];c[j+24>>2]=c[d+0>>2];c[j+28>>2]=c[d+4>>2];c[j+32>>2]=c[d+8>>2];c[j+36>>2]=c[d+12>>2];g[j+40>>2]=e;e=+ic[c[(c[h>>2]|0)+12>>2]&7](h,j,1);i=j;return+e}function sp(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function tp(a){a=a|0;return}function up(a){a=a|0;return}function vp(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function wp(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+20>>2]|0;a=hc[c[(c[a>>2]|0)+8>>2]&31](a,b)|0;i=d;return a|0}function xp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0;e=i;i=i+16|0;c[e>>2]=-1;c[e+4>>2]=c[a+24>>2];if((c[b+4>>2]|0)==0){c[b+4>>2]=e}h=c[a+20>>2]|0;f=+ic[c[(c[h>>2]|0)+12>>2]&7](h,b,d);g[a+4>>2]=+g[(c[a+20>>2]|0)+4>>2];i=e;return+f}function yp(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function zp(a,b,c){a=a|0;b=b|0;c=c|0;return}function Ap(a,d){a=a|0;d=d|0;var e=0,f=0,h=0;e=i;i=i+128|0;f=c[d+36>>2]|0;d=c[(c[a+8>>2]|0)+24>>2]|0;h=c[d+(f*80|0)+64>>2]|0;xj(e+56|0,c[a+12>>2]|0,d+(f*80|0)|0);d=c[a+4>>2]|0;c[e+32>>2]=0;c[e+36>>2]=h;c[e+40>>2]=d;c[e+44>>2]=e+56;c[e+48>>2]=-1;c[e+52>>2]=f;d=c[a+24>>2]|0;g[e+4>>2]=1.0;c[e+8>>2]=0;b[e+12>>1]=1;b[e+14>>1]=-1;c[e+16>>2]=0;c[e>>2]=7808;c[e+20>>2]=d;c[e+24>>2]=f;g[e+4>>2]=+g[d+4>>2];c[e+16>>2]=c[d+16>>2];Lo(c[a+16>>2]|0,c[a+20>>2]|0,e+32|0,e);i=e;return}function Bp(a,b,d){a=a|0;b=b|0;d=+d;var e=0;e=i;Pb[c[(c[a>>2]|0)+12>>2]&127](a,b);i=e;return}function Cp(a,b){a=a|0;b=b|0;return 1}function Dp(a,b){a=a|0;b=b|0;return 1}function Ep(a){a=a|0;return}function Fp(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Gp(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;h=i;i=i+48|0;c[h+32>>2]=e;c[h+36>>2]=f;n=+g[b>>2];m=+g[b+4>>2];j=+g[b+8>>2];l=+g[a+56>>2]*n+ +g[a+60>>2]*m+ +g[a+64>>2]*j;k=n*+g[a+72>>2]+m*+g[a+76>>2]+j*+g[a+80>>2];j=n*+g[a+88>>2]+m*+g[a+92>>2]+j*+g[a+96>>2];c[h>>2]=c[a+48>>2];c[h+4>>2]=h+32;g[h+8>>2]=l;g[h+12>>2]=k;g[h+16>>2]=j;g[h+20>>2]=0.0;g[h+24>>2]=d;e=c[a+44>>2]|0;d=+ic[c[(c[e>>2]|0)+12>>2]&7](e,h,1);i=h;return+d}function Hp(a){a=a|0;return}function Ip(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Jp(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=e|0;f=f|0;var h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;h=i;i=i+48|0;c[h+32>>2]=e;c[h+36>>2]=f;n=+g[b>>2];m=+g[b+4>>2];j=+g[b+8>>2];l=+g[a+56>>2]*n+ +g[a+60>>2]*m+ +g[a+64>>2]*j;k=n*+g[a+72>>2]+m*+g[a+76>>2]+j*+g[a+80>>2];j=n*+g[a+88>>2]+m*+g[a+92>>2]+j*+g[a+96>>2];c[h>>2]=c[a+48>>2];c[h+4>>2]=h+32;g[h+8>>2]=l;g[h+12>>2]=k;g[h+16>>2]=j;g[h+20>>2]=0.0;g[h+24>>2]=d;e=c[a+44>>2]|0;d=+ic[c[(c[e>>2]|0)+12>>2]&7](e,h,1);i=h;return+d}function Kp(a,b){a=a|0;b=+b;return}function Lp(a,b){a=a|0;b=b|0;return}function Mp(a,b,c){a=a|0;b=b|0;c=c|0;return}function Np(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Op(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;c[b+8>>2]=0;c[b>>2]=8656;a[b+28>>0]=1;c[b+24>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;g[b+32>>2]=999999984306749400.0;g[b+36>>2]=999999984306749400.0;g[b+40>>2]=999999984306749400.0;g[b+44>>2]=0.0;g[b+48>>2]=-999999984306749400.0;g[b+52>>2]=-999999984306749400.0;g[b+56>>2]=-999999984306749400.0;g[b+60>>2]=0.0;c[b+64>>2]=0;c[b+68>>2]=1;g[b+72>>2]=0.0;g[b+76>>2]=1.0;g[b+80>>2]=1.0;g[b+84>>2]=1.0;g[b+88>>2]=0.0;c[b+4>>2]=31;if(!d){i=e;return}c[4546]=(c[4546]|0)+1;d=Zx(79)|0;if((d|0)!=0?(f=d+19&-16,c[f+ -4>>2]=d,(d+19&-16|0)!=0):0){a[f+36>>0]=1;c[f+32>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;a[f+56>>0]=1;c[f+52>>2]=0;c[f+44>>2]=0;c[f+48>>2]=0;c[(d+19&-16)>>2]=0;c[f+4>>2]=0;c[f+8>>2]=-1;c[f+12>>2]=0;c[f+16>>2]=0;f=d+19&-16}else{f=0}c[b+64>>2]=f;i=e;return}function Pp(b){b=b|0;var d=0,e=0,f=0;d=i;c[b>>2]=8656;e=c[b+64>>2]|0;if((e|0)!=0?(kr(e),f=c[b+64>>2]|0,(f|0)!=0):0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}e=c[b+24>>2]|0;if((e|0)!=0){if((a[b+28>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+24>>2]=0}a[b+28>>0]=1;c[b+24>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;if((b|0)==0){i=d;return}c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);i=d;return}function Qp(b){b=b|0;var d=0,e=0,f=0;d=i;c[b>>2]=8656;e=c[b+64>>2]|0;if((e|0)!=0?(kr(e),f=c[b+64>>2]|0,(f|0)!=0):0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}e=c[b+24>>2]|0;if((e|0)!=0){if((a[b+28>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+24>>2]=0}a[b+28>>0]=1;c[b+24>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;i=d;return}function Rp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;d=i;i=i+80|0;c[a+68>>2]=(c[a+68>>2]|0)+1;e=c[a+16>>2]|0;if((e|0)<=0){h=c[a>>2]|0;h=h+68|0;h=c[h>>2]|0;Nb[h&255](a);i=d;return}h=e;do{e=e+ -1|0;g=c[a+24>>2]|0;if((c[g+(e*80|0)+64>>2]|0)==(b|0)){c[a+68>>2]=(c[a+68>>2]|0)+1;f=c[a+64>>2]|0;if((f|0)!=0){g=c[g+(e*80|0)+76>>2]|0;or(f,g)|0;h=c[f+4>>2]|0;if((h|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[f+4>>2]=g;c[f+12>>2]=(c[f+12>>2]|0)+ -1;h=c[a+16>>2]|0;g=c[a+24>>2]|0}h=h+ -1|0;m=g+(e*80|0)|0;c[d+0>>2]=c[m+0>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];l=g+(e*80|0)+16|0;c[d+16>>2]=c[l+0>>2];c[d+20>>2]=c[l+4>>2];c[d+24>>2]=c[l+8>>2];c[d+28>>2]=c[l+12>>2];k=g+(e*80|0)+32|0;c[d+32>>2]=c[k+0>>2];c[d+36>>2]=c[k+4>>2];c[d+40>>2]=c[k+8>>2];c[d+44>>2]=c[k+12>>2];j=g+(e*80|0)+48|0;c[d+48>>2]=c[j+0>>2];c[d+52>>2]=c[j+4>>2];c[d+56>>2]=c[j+8>>2];c[d+60>>2]=c[j+12>>2];f=g+(e*80|0)+64|0;c[d+64>>2]=c[f+0>>2];c[d+68>>2]=c[f+4>>2];c[d+72>>2]=c[f+8>>2];c[d+76>>2]=c[f+12>>2];n=g+(h*80|0)|0;c[m+0>>2]=c[n+0>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];m=g+(h*80|0)+16|0;c[l+0>>2]=c[m+0>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];l=g+(h*80|0)+32|0;c[k+0>>2]=c[l+0>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];k=g+(h*80|0)+48|0;c[j+0>>2]=c[k+0>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];g=g+(h*80|0)+64|0;c[f+0>>2]=c[g+0>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];g=c[a+24>>2]|0;c[g+(h*80|0)+0>>2]=c[d+0>>2];c[g+(h*80|0)+4>>2]=c[d+4>>2];c[g+(h*80|0)+8>>2]=c[d+8>>2];c[g+(h*80|0)+12>>2]=c[d+12>>2];c[g+(h*80|0)+16>>2]=c[d+16>>2];c[g+(h*80|0)+20>>2]=c[d+20>>2];c[g+(h*80|0)+24>>2]=c[d+24>>2];c[g+(h*80|0)+28>>2]=c[d+28>>2];c[g+(h*80|0)+32>>2]=c[d+32>>2];c[g+(h*80|0)+36>>2]=c[d+36>>2];c[g+(h*80|0)+40>>2]=c[d+40>>2];c[g+(h*80|0)+44>>2]=c[d+44>>2];c[g+(h*80|0)+48>>2]=c[d+48>>2];c[g+(h*80|0)+52>>2]=c[d+52>>2];c[g+(h*80|0)+56>>2]=c[d+56>>2];c[g+(h*80|0)+60>>2]=c[d+60>>2];c[g+(h*80|0)+64>>2]=c[d+64>>2];c[g+(h*80|0)+68>>2]=c[d+68>>2];c[g+(h*80|0)+72>>2]=c[d+72>>2];c[g+(h*80|0)+76>>2]=c[d+76>>2];if((c[a+64>>2]|0)!=0){c[(c[(c[a+24>>2]|0)+(e*80|0)+76>>2]|0)+36>>2]=e}h=(c[a+16>>2]|0)+ -1|0;c[a+16>>2]=h}}while((e|0)>0);n=c[a>>2]|0;n=n+68|0;n=c[n>>2]|0;Nb[n&255](a);i=d;return}function Sp(a){a=a|0;var b=0,d=0,e=0.0,f=0,h=0;b=i;i=i+32|0;g[a+32>>2]=999999984306749400.0;g[a+36>>2]=999999984306749400.0;g[a+40>>2]=999999984306749400.0;g[a+44>>2]=0.0;g[a+48>>2]=-999999984306749400.0;g[a+52>>2]=-999999984306749400.0;g[a+56>>2]=-999999984306749400.0;g[a+60>>2]=0.0;if((c[a+16>>2]|0)<=0){i=b;return}d=0;do{f=c[a+24>>2]|0;h=c[f+(d*80|0)+64>>2]|0;wc[c[(c[h>>2]|0)+8>>2]&63](h,f+(d*80|0)|0,b+16|0,b);e=+g[b+16>>2];if(+g[a+32>>2]>e){g[a+32>>2]=e}e=+g[b>>2];if(+g[a+48>>2]>2]=e}e=+g[b+20>>2];if(+g[a+36>>2]>e){g[a+36>>2]=e}e=+g[b+4>>2];if(+g[a+52>>2]>2]=e}e=+g[b+24>>2];if(+g[a+40>>2]>e){g[a+40>>2]=e}e=+g[b+8>>2];if(+g[a+56>>2]>2]=e}d=d+1|0}while((d|0)<(c[a+16>>2]|0));i=b;return}function Tp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0;f=i;t=+g[a+48>>2];v=+g[a+32>>2];E=+g[a+52>>2];w=+g[a+36>>2];F=+g[a+56>>2];k=+g[a+40>>2];G=(c[a+16>>2]|0)==0;x=G?0.0:(F+k)*.5;z=G?0.0:(E+w)*.5;B=G?0.0:(t+v)*.5;o=+bc[c[(c[a>>2]|0)+48>>2]&15](a);m=+bc[c[(c[a>>2]|0)+48>>2]&15](a);o=(G?0.0:(t-v)*.5)+o;m=(G?0.0:(E-w)*.5)+m;k=(G?0.0:(F-k)*.5)+ +bc[c[(c[a>>2]|0)+48>>2]&15](a);F=+g[b>>2];w=+P(+F);E=+g[b+4>>2];v=+P(+E);t=+g[b+8>>2];u=+P(+t);D=+g[b+16>>2];s=+P(+D);C=+g[b+20>>2];r=+P(+C);p=+g[b+24>>2];q=+P(+p);A=+g[b+32>>2];n=+P(+A);y=+g[b+36>>2];l=+P(+y);h=+g[b+40>>2];j=+P(+h);t=B*F+z*E+x*t+ +g[b+48>>2];p=B*D+z*C+x*p+ +g[b+52>>2];h=B*A+z*y+x*h+ +g[b+56>>2];g[d>>2]=t-(o*w+m*v+k*u);g[d+4>>2]=p-(o*s+m*r+k*q);g[d+8>>2]=h-(o*n+m*l+k*j);g[d+12>>2]=0.0;g[e>>2]=o*w+m*v+k*u+t;g[e+4>>2]=o*s+m*r+k*q+p;g[e+8>>2]=o*n+m*l+k*j+h;g[e+12>>2]=0.0;i=f;return}function Up(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0;e=i;i=i+96|0;g[e+32>>2]=1.0;c[e+36>>2]=0;c[e+40>>2]=0;c[e+44>>2]=0;c[e+48>>2]=0;g[e+52>>2]=1.0;c[e+56>>2]=0;c[e+60>>2]=0;c[e+64>>2]=0;c[e+68>>2]=0;g[e+72>>2]=1.0;k=e+76|0;c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;wc[c[(c[a>>2]|0)+8>>2]&63](a,e+32|0,e+16|0,e);h=(+g[e>>2]- +g[e+16>>2])*.5*2.0;f=(+g[e+4>>2]- +g[e+20>>2])*.5*2.0;j=(+g[e+8>>2]- +g[e+24>>2])*.5*2.0;g[d>>2]=b/12.0*(f*f+j*j);g[d+4>>2]=b/12.0*(h*h+j*j);g[d+8>>2]=b/12.0*(h*h+f*f);i=e;return}function Vp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;k=i;i=i+144|0;if((c[a+16>>2]|0)<=0){p=a+76|0;c[p+0>>2]=c[b+0>>2];c[p+4>>2]=c[b+4>>2];c[p+8>>2]=c[b+8>>2];c[p+12>>2]=c[b+12>>2];p=c[a>>2]|0;p=p+68|0;p=c[p>>2]|0;Nb[p&255](a);i=k;return}f=k+32|0;h=k+48|0;j=k+64|0;e=0;do{p=c[a+24>>2]|0;o=p+(e*80|0)|0;c[k+16>>2]=c[o+0>>2];c[k+20>>2]=c[o+4>>2];c[k+24>>2]=c[o+8>>2];c[k+28>>2]=c[o+12>>2];o=p+(e*80|0)+16|0;c[f+0>>2]=c[o+0>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[f+12>>2]=c[o+12>>2];o=p+(e*80|0)+32|0;c[h+0>>2]=c[o+0>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];c[h+12>>2]=c[o+12>>2];o=p+(e*80|0)+48|0;c[j+0>>2]=c[o+0>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];p=c[p+(e*80|0)+64>>2]|0;p=Rb[c[(c[p>>2]|0)+28>>2]&127](p)|0;c[k+0>>2]=c[p+0>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];q=+g[k+4>>2]*+g[b+4>>2]/+g[a+80>>2];r=+g[k+8>>2]*+g[b+8>>2]/+g[a+84>>2];g[k>>2]=+g[k>>2]*+g[b>>2]/+g[a+76>>2];g[k+4>>2]=q;g[k+8>>2]=r;g[k+12>>2]=0.0;p=c[(c[a+24>>2]|0)+(e*80|0)+64>>2]|0;Pb[c[(c[p>>2]|0)+24>>2]&127](p,k);r=+g[k+68>>2]*+g[b+4>>2]/+g[a+80>>2];q=+g[k+72>>2]*+g[b+8>>2]/+g[a+84>>2];g[k+64>>2]=+g[j>>2]*+g[b>>2]/+g[a+76>>2];g[k+68>>2]=r;g[k+72>>2]=q;g[k+76>>2]=0.0;p=c[a+24>>2]|0;o=p+(e*80|0)|0;c[o+0>>2]=c[k+16>>2];c[o+4>>2]=c[k+20>>2];c[o+8>>2]=c[k+24>>2];c[o+12>>2]=c[k+28>>2];o=p+(e*80|0)+16|0;c[o+0>>2]=c[f+0>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];c[o+12>>2]=c[f+12>>2];o=p+(e*80|0)+32|0;c[o+0>>2]=c[h+0>>2];c[o+4>>2]=c[h+4>>2];c[o+8>>2]=c[h+8>>2];c[o+12>>2]=c[h+12>>2];p=p+(e*80|0)+48|0;c[p+0>>2]=c[j+0>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];c[p+12>>2]=c[j+12>>2];if((c[a+64>>2]|0)!=0){l=c[(c[a+24>>2]|0)+(e*80|0)+64>>2]|0;wc[c[(c[l>>2]|0)+8>>2]&63](l,k+16|0,k+128|0,k+112|0);c[k+80>>2]=c[k+128>>2];c[k+84>>2]=c[k+132>>2];c[k+88>>2]=c[k+136>>2];c[k+92>>2]=c[k+140>>2];c[k+96>>2]=c[k+112>>2];c[k+100>>2]=c[k+116>>2];c[k+104>>2]=c[k+120>>2];c[k+108>>2]=c[k+124>>2];l=c[a+64>>2]|0;d=c[(c[a+24>>2]|0)+(e*80|0)+76>>2]|0;o=or(l,d)|0;a:do{if((o|0)!=0){m=c[l+8>>2]|0;if(!((m|0)>-1)){o=c[l>>2]|0;break}if((m|0)>0){n=0;while(1){p=c[o+32>>2]|0;n=n+1|0;if((p|0)==0){break a}if((n|0)>=(m|0)){o=p;break}else{o=p}}}}else{o=0}}while(0);c[d+0>>2]=c[k+80>>2];c[d+4>>2]=c[k+84>>2];c[d+8>>2]=c[k+88>>2];c[d+12>>2]=c[k+92>>2];c[d+16>>2]=c[k+96>>2];c[d+20>>2]=c[k+100>>2];c[d+24>>2]=c[k+104>>2];c[d+28>>2]=c[k+108>>2];nr(l,o,d)}e=e+1|0}while((e|0)<(c[a+16>>2]|0));p=a+76|0;c[p+0>>2]=c[b+0>>2];c[p+4>>2]=c[b+4>>2];c[p+8>>2]=c[b+8>>2];c[p+12>>2]=c[b+12>>2];p=c[a>>2]|0;p=p+68|0;p=c[p>>2]|0;Nb[p&255](a);i=k;return}function Wp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0;e=i;f=hc[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;k=hc[c[(c[d>>2]|0)+28>>2]&31](d,f)|0;c[b>>2]=k;if((k|0)!=0){Pb[c[(c[d>>2]|0)+48>>2]&127](d,f)}c[b+4>>2]=c[a+4>>2];g[b+20>>2]=+g[a+72>>2];f=c[a+16>>2]|0;c[b+16>>2]=f;c[b+12>>2]=0;if((f|0)==0){i=e;return 8760}f=_b[c[(c[d>>2]|0)+16>>2]&31](d,76,f)|0;k=c[f+8>>2]|0;c[b+12>>2]=hc[c[(c[d>>2]|0)+28>>2]&31](d,k)|0;if((c[b+16>>2]|0)>0){j=c[a+24>>2]|0;h=0;while(1){g[k+72>>2]=+g[j+(h*80|0)+72>>2];c[k+64>>2]=hc[c[(c[d>>2]|0)+28>>2]&31](d,c[j+(h*80|0)+64>>2]|0)|0;if((hc[c[(c[d>>2]|0)+24>>2]&31](d,c[(c[a+24>>2]|0)+(h*80|0)+64>>2]|0)|0)==0){j=c[(c[d>>2]|0)+16>>2]|0;l=c[(c[a+24>>2]|0)+(h*80|0)+64>>2]|0;l=Rb[c[(c[l>>2]|0)+52>>2]&127](l)|0;l=_b[j&31](d,l,1)|0;j=c[(c[a+24>>2]|0)+(h*80|0)+64>>2]|0;j=_b[c[(c[j>>2]|0)+56>>2]&31](j,c[l+8>>2]|0,d)|0;Lb[c[(c[d>>2]|0)+20>>2]&31](d,l,j,1346455635,c[(c[a+24>>2]|0)+(h*80|0)+64>>2]|0)}j=c[a+24>>2]|0;c[k+68>>2]=c[j+(h*80|0)+68>>2];g[k>>2]=+g[j+(h*80|0)>>2];g[k+4>>2]=+g[j+(h*80|0)+4>>2];g[k+8>>2]=+g[j+(h*80|0)+8>>2];g[k+12>>2]=+g[j+(h*80|0)+12>>2];g[k+16>>2]=+g[j+(h*80|0)+16>>2];g[k+20>>2]=+g[j+(h*80|0)+20>>2];g[k+24>>2]=+g[j+(h*80|0)+24>>2];g[k+28>>2]=+g[j+(h*80|0)+28>>2];g[k+32>>2]=+g[j+(h*80|0)+32>>2];g[k+36>>2]=+g[j+(h*80|0)+36>>2];g[k+40>>2]=+g[j+(h*80|0)+40>>2];g[k+44>>2]=+g[j+(h*80|0)+44>>2];g[k+48>>2]=+g[j+(h*80|0)+48>>2];g[k+52>>2]=+g[j+(h*80|0)+52>>2];g[k+56>>2]=+g[j+(h*80|0)+56>>2];g[k+60>>2]=+g[j+(h*80|0)+60>>2];h=h+1|0;if((h|0)>=(c[b+16>>2]|0)){b=d;break}else{k=k+76|0}}}else{b=d}Lb[c[(c[b>>2]|0)+20>>2]&31](d,f,8728,1497453121,c[f+8>>2]|0);i=e;return 8760}function Xp(a){a=a|0;return a+76|0}function Yp(a){a=a|0;return 8824}function Zp(a,b){a=a|0;b=+b;g[a+72>>2]=b;return}function _p(a){a=a|0;return+(+g[a+72>>2])}function $p(a){a=a|0;return 24}function aq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,j=0,k=0.0,l=0,m=0.0,n=0.0;j=i;i=i+48|0;f=+g[b+60>>2]*.5;e=c[b+68>>2]|0;k=+g[d>>2];m=+g[d+4>>2];n=+g[d+8>>2];n=+Q(+(k*k+m*m+n*n));h=c[b+64>>2]|0;if(+g[d+(e<<2)>>2]>n*+g[b+52>>2]){g[j+32+(h<<2)>>2]=0.0;g[j+32+(e<<2)>>2]=f;g[j+32+(c[b+72>>2]<<2)>>2]=0.0;c[a+0>>2]=c[j+32>>2];c[a+4>>2]=c[j+36>>2];c[a+8>>2]=c[j+40>>2];c[a+12>>2]=c[j+44>>2];i=j;return}k=+g[d+(h<<2)>>2];l=c[b+72>>2]|0;m=+g[d+(l<<2)>>2];n=+Q(+(k*k+m*m));if(n>1.1920928955078125e-7){n=+g[b+56>>2]/n;g[j+16+(h<<2)>>2]=k*n;g[j+16+(e<<2)>>2]=-f;g[j+16+(l<<2)>>2]=n*m;c[a+0>>2]=c[j+16>>2];c[a+4>>2]=c[j+20>>2];c[a+8>>2]=c[j+24>>2];c[a+12>>2]=c[j+28>>2];i=j;return}else{g[j+(h<<2)>>2]=0.0;g[j+(e<<2)>>2]=-f;g[j+(l<<2)>>2]=0.0;c[a+0>>2]=c[j+0>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];i=j;return}}function bq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;aq(a,b,c);i=d;return}function cq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;if((e|0)<=0){i=f;return}g=0;do{h=d+(g<<4)|0;aq(f,a,b+(g<<4)|0);c[h+0>>2]=c[f+0>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[h+12>>2]=c[f+12>>2];g=g+1|0}while((g|0)!=(e|0));i=f;return}function dq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0;e=i;aq(a,b,d);if(!(+bc[c[(c[b>>2]|0)+48>>2]&15](b)!=0.0)){i=e;return}l=+g[d>>2];j=+g[d+4>>2];h=+g[d+8>>2];f=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:h;k=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:j;l=l*l+j*j+h*h<1.4210854715202004e-14?-1.0:l;h=1.0/+Q(+(f*f+(l*l+k*k)));j=+bc[c[(c[b>>2]|0)+48>>2]&15](b);g[a>>2]=h*l*j+ +g[a>>2];g[a+4>>2]=j*h*k+ +g[a+4>>2];g[a+8>>2]=j*h*f+ +g[a+8>>2];i=e;return}function eq(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,h=0,i=0,j=0;j=c[a+68>>2]|0;i=c[a+64>>2]|0;h=c[a+72>>2]|0;e=+g[b+(j<<2)>>2]/+g[a+(j<<2)+12>>2]*+g[a+60>>2];g[a+60>>2]=e;f=+g[a+56>>2]*(+g[b+(i<<2)>>2]/+g[a+(i<<2)+12>>2]+ +g[b+(h<<2)>>2]/+g[a+(h<<2)+12>>2])*.5;g[a+56>>2]=f;g[a+52>>2]=f/+Q(+(e*e+f*f));f=+P(+(+g[b>>2]));e=+P(+(+g[b+4>>2]));d=+P(+(+g[b+8>>2]));g[a+12>>2]=f;g[a+16>>2]=e;g[a+20>>2]=d;g[a+24>>2]=0.0;return}function fq(a){a=a|0;return}function gq(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function hq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;wc[c[(c[a>>2]|0)+80>>2]&63](a,b,d,e);i=f;return}function iq(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0;e=i;i=i+96|0;g[e+32>>2]=1.0;c[e+36>>2]=0;c[e+40>>2]=0;c[e+44>>2]=0;c[e+48>>2]=0;g[e+52>>2]=1.0;c[e+56>>2]=0;c[e+60>>2]=0;c[e+64>>2]=0;c[e+68>>2]=0;g[e+72>>2]=1.0;l=e+76|0;c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;wc[c[(c[a>>2]|0)+8>>2]&63](a,e+32|0,e+16|0,e);j=(+g[e>>2]- +g[e+16>>2])*.5;h=(+g[e+4>>2]- +g[e+20>>2])*.5;k=(+g[e+8>>2]- +g[e+24>>2])*.5;f=+bc[c[(c[a>>2]|0)+48>>2]&15](a);g[d>>2]=b*.0833333283662796*((h+f)*2.0*(h+f)*2.0+(k+f)*2.0*(k+f)*2.0);g[d+4>>2]=b*.0833333283662796*((j+f)*2.0*(j+f)*2.0+(k+f)*2.0*(k+f)*2.0);g[d+8>>2]=b*.0833333283662796*((j+f)*2.0*(j+f)*2.0+(h+f)*2.0*(h+f)*2.0);g[d+12>>2]=0.0;i=e;return}function jq(a){a=a|0;return 9280}function kq(a,b){a=a|0;b=b|0;g[a>>2]=0.0;g[a+4>>2]=1.0;g[a+8>>2]=0.0;g[a+12>>2]=0.0;return}function lq(a,b){a=a|0;b=+b;g[a+44>>2]=b;return}function mq(a){a=a|0;return 60}function nq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0;e=i;f=hc[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;h=hc[c[(c[d>>2]|0)+28>>2]&31](d,f)|0;c[b>>2]=h;if((h|0)!=0){Pb[c[(c[d>>2]|0)+48>>2]&127](d,f)}c[b+4>>2]=c[a+4>>2];g[b+28>>2]=+g[a+28>>2];g[b+32>>2]=+g[a+32>>2];g[b+36>>2]=+g[a+36>>2];g[b+40>>2]=+g[a+40>>2];g[b+12>>2]=+g[a+12>>2];g[b+16>>2]=+g[a+16>>2];g[b+20>>2]=+g[a+20>>2];g[b+24>>2]=+g[a+24>>2];g[b+44>>2]=+g[a+44>>2];c[b+52>>2]=c[a+68>>2];i=e;return 9264}function oq(a){a=a|0;return}function pq(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function qq(a){a=a|0;return 9256}function rq(a,b){a=a|0;b=b|0;g[a>>2]=0.0;g[a+4>>2]=0.0;g[a+8>>2]=1.0;g[a+12>>2]=0.0;return}function sq(a){a=a|0;return}function tq(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function uq(a){a=a|0;return 9248}function vq(a,b){a=a|0;b=b|0;g[a>>2]=1.0;g[a+4>>2]=0.0;g[a+8>>2]=0.0;g[a+12>>2]=0.0;return} function xc(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+7&-8;return b|0}function yc(){return i|0}function zc(a){a=a|0;i=a}function Ac(a,b){a=a|0;b=b|0;if((p|0)==0){p=a;q=b}}function Bc(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Cc(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Dc(a){a=a|0;E=a}function Ec(){return E|0}function Fc(a){a=a|0;return 52}function Gc(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0.0,f=0.0,h=0.0;e=+S(+b);f=+S(+c);h=+S(+d);b=+T(+b);c=+T(+c);d=+T(+d);g[a>>2]=f*h;g[a+4>>2]=c*b*h-e*d;g[a+8>>2]=c*e*h+b*d;g[a+12>>2]=0.0;g[a+16>>2]=f*d;g[a+20>>2]=c*b*d+e*h;g[a+24>>2]=c*e*d-b*h;g[a+28>>2]=0.0;g[a+32>>2]=-c;g[a+36>>2]=f*b;g[a+40>>2]=f*e;g[a+44>>2]=0.0;return}function Hc(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Ic(){var a=0,d=0,e=0;a=i;d=Zx(8)|0;a:do{if((d|0)==0){while(1){d=c[4700]|0;c[4700]=d+0;if((d|0)==0){break}tc[d&3]();d=Zx(8)|0;if((d|0)!=0){break a}}d=Cb(4)|0;c[d>>2]=18640;Ab(d|0,18688,235)}}while(0);e=d;c[e>>2]=0;c[e+4>>2]=0;b[d+4>>1]=1;b[d+6>>1]=-1;c[d>>2]=576;i=a;return d|0}function Jc(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0.0,l=0;l=i;k=+Xb[c[(c[a>>2]|0)+12>>2]&1](a,b,d,e,f,g,h,j);i=l;return+k}function Kc(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Lc(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(95)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}mn(e,a,b,1);i=d;return e|0}function Mc(a){a=a|0;jb(a|0)|0;Fx()}function Nc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;c[4546]=(c[4546]|0)+1;f=Zx(95)|0;if((f|0)==0){f=0}else{c[(f+19&-16)+ -4>>2]=f;f=f+19&-16}mn(f,a,b,d);i=e;return f|0}function Oc(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function Pc(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function Qc(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Rc(){var a=0,b=0;a=i;b=Zx(196)|0;a:do{if((b|0)==0){while(1){b=c[4700]|0;c[4700]=b+0;if((b|0)==0){break}tc[b&3]();b=Zx(196)|0;if((b|0)!=0){break a}}b=Cb(4)|0;c[b>>2]=18640;Ab(b|0,18688,235)}}while(0);pr(b,0);i=a;return b|0}function Sc(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Tc(){var b=0,d=0;b=i;c[4546]=(c[4546]|0)+1;d=Zx(215)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}c[d>>2]=3328;a[d+20>>0]=1;c[d+16>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;a[d+40>>0]=1;c[d+36>>2]=0;c[d+28>>2]=0;c[d+32>>2]=0;a[d+60>>0]=1;c[d+56>>2]=0;c[d+48>>2]=0;c[d+52>>2]=0;a[d+80>>0]=1;c[d+76>>2]=0;c[d+68>>2]=0;c[d+72>>2]=0;a[d+100>>0]=1;c[d+96>>2]=0;c[d+88>>2]=0;c[d+92>>2]=0;a[d+120>>0]=1;c[d+116>>2]=0;c[d+108>>2]=0;c[d+112>>2]=0;a[d+140>>0]=1;c[d+136>>2]=0;c[d+128>>2]=0;c[d+132>>2]=0;a[d+160>>0]=1;c[d+156>>2]=0;c[d+148>>2]=0;c[d+152>>2]=0;a[d+180>>0]=1;c[d+176>>2]=0;c[d+168>>2]=0;c[d+172>>2]=0;c[d+192>>2]=0;i=b;return d|0}function Uc(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Vc(a,b){a=+a;b=+b;var d=0,e=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(75)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}c[e+8>>2]=0;g[e+12>>2]=1.0;g[e+16>>2]=1.0;g[e+20>>2]=1.0;g[e+24>>2]=0.0;g[e+44>>2]=.03999999910593033;c[e>>2]=5520;c[e+4>>2]=10;c[e+52>>2]=1;g[e+28>>2]=a;g[e+32>>2]=b*.5;g[e+36>>2]=a;g[e+40>>2]=0.0;i=d;return e|0}function Wc(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function Xc(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function Yc(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Zc(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(135)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}em(e,a,b,16384,0,0);i=d;return e|0}function _c(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;c[4546]=(c[4546]|0)+1;f=Zx(135)|0;if((f|0)==0){f=0}else{c[(f+19&-16)+ -4>>2]=f;f=f+19&-16}em(f,a,b,d&65535,0,0);i=e;return f|0}function $c(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;c[4546]=(c[4546]|0)+1;g=Zx(135)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}em(g,a,b,d&65535,e,0);i=f;return g|0}function ad(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;c[4546]=(c[4546]|0)+1;h=Zx(135)|0;if((h|0)==0){h=0}else{c[(h+19&-16)+ -4>>2]=h;h=h+19&-16}em(h,a,b,d&65535,e,f);i=g;return h|0}function bd(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function cd(b,d,e){b=+b;d=d|0;e=e|0;var f=0,h=0,j=0,k=0;f=i;h=Zx(140)|0;a:do{if((h|0)==0){while(1){h=c[4700]|0;c[4700]=h+0;if((h|0)==0){break}tc[h&3]();h=Zx(140)|0;if((h|0)!=0){break a}}k=Cb(4)|0;c[k>>2]=18640;Ab(k|0,18688,235)}}while(0);g[h>>2]=b;c[h+4>>2]=d;d=h+8|0;j=h+56|0;k=d;do{k=k+16|0}while((k|0)!=(j|0));c[h+72>>2]=e;j=h+76|0;k=h+100|0;c[j+0>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;g[k>>2]=.5;g[h+104>>2]=0.0;g[h+108>>2]=0.0;g[h+112>>2]=.800000011920929;g[h+116>>2]=1.0;a[h+120>>0]=0;g[h+124>>2]=.004999999888241291;g[h+128>>2]=.009999999776482582;g[h+132>>2]=.009999999776482582;g[h+136>>2]=.009999999776482582;Li(d);i=f;return h|0}function dd(b,d,e,f){b=+b;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0;h=i;j=Zx(140)|0;a:do{if((j|0)==0){while(1){j=c[4700]|0;c[4700]=j+0;if((j|0)==0){break}tc[j&3]();j=Zx(140)|0;if((j|0)!=0){break a}}l=Cb(4)|0;c[l>>2]=18640;Ab(l|0,18688,235)}}while(0);g[j>>2]=b;c[j+4>>2]=d;d=j+8|0;k=j+56|0;l=d;do{l=l+16|0}while((l|0)!=(k|0));c[j+72>>2]=e;l=j+76|0;c[l+0>>2]=c[f+0>>2];c[l+4>>2]=c[f+4>>2];c[l+8>>2]=c[f+8>>2];c[l+12>>2]=c[f+12>>2];g[j+92>>2]=0.0;g[j+96>>2]=0.0;g[j+100>>2]=.5;g[j+104>>2]=0.0;g[j+108>>2]=0.0;g[j+112>>2]=.800000011920929;g[j+116>>2]=1.0;a[j+120>>0]=0;g[j+124>>2]=.004999999888241291;g[j+128>>2]=.009999999776482582;g[j+132>>2]=.009999999776482582;g[j+136>>2]=.009999999776482582;Li(d);i=h;return j|0}function ed(a){a=a|0;return+(+g[a+92>>2])}function fd(a,b){a=a|0;b=+b;g[a+92>>2]=b;return}function gd(a){a=a|0;return+(+g[a+96>>2])}function hd(a,b){a=a|0;b=+b;g[a+96>>2]=b;return}function id(a){a=a|0;return+(+g[a+100>>2])}function jd(a,b){a=a|0;b=+b;g[a+100>>2]=b;return}function kd(a){a=a|0;return+(+g[a+104>>2])}function ld(a,b){a=a|0;b=+b;g[a+104>>2]=b;return}function md(a){a=a|0;return+(+g[a+108>>2])}function nd(a,b){a=a|0;b=+b;g[a+108>>2]=b;return}function od(a){a=a|0;return+(+g[a+112>>2])}function pd(a,b){a=a|0;b=+b;g[a+112>>2]=b;return}function qd(a){a=a|0;return+(+g[a+116>>2])}function rd(a,b){a=a|0;b=+b;g[a+116>>2]=b;return}function sd(b){b=b|0;return(a[b+120>>0]&1)!=0|0}function td(b,c){b=b|0;c=c|0;a[b+120>>0]=c&1;return}function ud(a){a=a|0;return+(+g[a+124>>2])}function vd(a,b){a=a|0;b=+b;g[a+124>>2]=b;return}function wd(a){a=a|0;return+(+g[a+128>>2])}function xd(a,b){a=a|0;b=+b;g[a+128>>2]=b;return}function yd(a){a=a|0;return+(+g[a+132>>2])}function zd(a,b){a=a|0;b=+b;g[a+132>>2]=b;return}function Ad(a){a=a|0;return+(+g[a+136>>2])}function Bd(a,b){a=a|0;b=+b;g[a+136>>2]=b;return}function Cd(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Dd(a){a=a|0;return a+48|0}function Ed(a){a=a|0;return a+32|0}function Fd(a){a=a|0;return a|0}function Gd(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+0>>2]=c[b+0>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];i=d;return}function Hd(a){a=a|0;return a+16|0}function Id(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+16>>2]=c[b+0>>2];c[a+20>>2]=c[b+4>>2];c[a+24>>2]=c[b+8>>2];c[a+28>>2]=c[b+12>>2];i=d;return}function Jd(a){a=a|0;return a+32|0}function Kd(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+32>>2]=c[b+0>>2];c[a+36>>2]=c[b+4>>2];c[a+40>>2]=c[b+8>>2];c[a+44>>2]=c[b+12>>2];i=d;return}function Ld(a){a=a|0;return a+48|0}function Md(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+48>>2]=c[b+0>>2];c[a+52>>2]=c[b+4>>2];c[a+56>>2]=c[b+8>>2];c[a+60>>2]=c[b+12>>2];i=d;return}function Nd(a){a=a|0;return a+64|0}function Od(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+64>>2]=c[b+0>>2];c[a+68>>2]=c[b+4>>2];c[a+72>>2]=c[b+8>>2];c[a+76>>2]=c[b+12>>2];i=d;return}function Pd(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Qd(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Rd(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Sd(a){a=a|0;return c[a+192>>2]|0}function Td(a,b){a=a|0;b=+b;g[a+184>>2]=b;return}function Ud(a,b){a=a|0;b=b|0;var d=0;d=i;if(((c[a+216>>2]|0)+ -4|0)>>>0<2){i=d;return}c[a+216>>2]=b;i=d;return}function Vd(a,b){a=a|0;b=b|0;c[a+216>>2]=b;return}function Wd(a){a=a|0;var b=0;b=i;if((c[a+204>>2]&3|0)!=0){i=b;return}if(!(((c[a+216>>2]|0)+ -4|0)>>>0<2)){c[a+216>>2]=1}g[a+220>>2]=0.0;i=b;return}function Xd(a,b){a=a|0;b=b|0;var d=0;d=i;if(!b?(c[a+204>>2]&3|0)!=0:0){i=d;return}if(!(((c[a+216>>2]|0)+ -4|0)>>>0<2)){c[a+216>>2]=1}g[a+220>>2]=0.0;i=d;return}function Yd(a){a=a|0;a=c[a+216>>2]|0;return((a|0)==2?0:(a|0)!=5)|0}function Zd(a,b){a=a|0;b=+b;c[a+260>>2]=(c[a+260>>2]|0)+1;g[a+228>>2]=b;return}function _d(a,b){a=a|0;b=+b;c[a+260>>2]=(c[a+260>>2]|0)+1;g[a+224>>2]=b;return}function $d(a){a=a|0;return a+4|0}function ae(a){a=a|0;return c[a+204>>2]|0}function be(a,b){a=a|0;b=b|0;c[a+204>>2]=b;return}function ce(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+8>>2]&255](a);i=b;return}function de(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0;f=i;c[4546]=(c[4546]|0)+1;h=Zx(343)|0;if((h|0)==0){h=0}else{c[(h+19&-16)+ -4>>2]=h;h=h+19&-16}a[h+20>>0]=1;c[h+16>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+24>>2]=b;g[h+28>>2]=0.0;c[h+32>>2]=0;c[h+36>>2]=1;g[h+40>>2]=1.0;a[h+44>>0]=1;c[h+48>>2]=0;a[h+52>>0]=0;a[h+53>>0]=1;a[h+54>>0]=1;g[h+56>>2]=.03999999910593033;a[h+60>>0]=0;g[h+64>>2]=0.0;c[h+68>>2]=d;c[h+72>>2]=0;a[h+76>>0]=1;c[h+80>>2]=0;c[h+84>>2]=0;c[h+88>>2]=0;g[h+92>>2]=.6000000238418579;g[h+96>>2]=1.0;g[h+100>>2]=.30000001192092896;g[h+104>>2]=.01666666753590107;g[h+108>>2]=0.0;g[h+116>>2]=20.0;c[h+112>>2]=10;g[h+124>>2]=.20000000298023224;g[h+128>>2]=.800000011920929;g[h+132>>2]=0.0;g[h+120>>2]=1.0;c[h+136>>2]=1;g[h+140>>2]=-.03999999910593033;g[h+144>>2]=.10000000149011612;g[h+148>>2]=0.0;g[h+152>>2]=.8500000238418579;c[h+156>>2]=260;c[h+160>>2]=2;c[h+164>>2]=128;g[h+168>>2]=100.0;g[h+172>>2]=1.0000000150474662e+30;c[h>>2]=1128;a[h+192>>0]=1;c[h+188>>2]=0;c[h+180>>2]=0;c[h+184>>2]=0;d=h+196|0;c[d>>2]=0;j=h+200|0;c[j>>2]=e;a[h+224>>0]=1;c[h+220>>2]=0;c[h+212>>2]=0;c[h+216>>2]=0;a[h+244>>0]=1;c[h+240>>2]=0;c[h+232>>2]=0;c[h+236>>2]=0;g[h+248>>2]=0.0;g[h+252>>2]=-10.0;m=h+256|0;a[h+274>>0]=0;a[h+275>>0]=0;l=h+292|0;c[m+0>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;a[l>>0]=1;c[h+288>>2]=0;c[h+280>>2]=0;c[h+284>>2]=0;c[h+296>>2]=0;a[h+300>>0]=1;a[h+320>>0]=1;c[h+316>>2]=0;c[h+308>>2]=0;c[h+312>>2]=0;if((e|0)==0){c[4546]=(c[4546]|0)+1;e=Zx(215)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}c[e>>2]=3328;a[e+20>>0]=1;c[e+16>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;a[e+40>>0]=1;c[e+36>>2]=0;c[e+28>>2]=0;c[e+32>>2]=0;a[e+60>>0]=1;c[e+56>>2]=0;c[e+48>>2]=0;c[e+52>>2]=0;a[e+80>>0]=1;c[e+76>>2]=0;c[e+68>>2]=0;c[e+72>>2]=0;a[e+100>>0]=1;c[e+96>>2]=0;c[e+88>>2]=0;c[e+92>>2]=0;a[e+120>>0]=1;c[e+116>>2]=0;c[e+108>>2]=0;c[e+112>>2]=0;a[e+140>>0]=1;c[e+136>>2]=0;c[e+128>>2]=0;c[e+132>>2]=0;a[e+160>>0]=1;c[e+156>>2]=0;c[e+148>>2]=0;c[e+152>>2]=0;a[e+180>>0]=1;c[e+176>>2]=0;c[e+168>>2]=0;c[e+172>>2]=0;c[e+192>>2]=0;c[j>>2]=e;a[h+273>>0]=1}else{a[h+273>>0]=0}c[4546]=(c[4546]|0)+1;e=Zx(87)|0;if((e|0)!=0?(k=e+19&-16,c[k+ -4>>2]=e,(e+19&-16|0)!=0):0){c[(e+19&-16)>>2]=14896;a[k+20>>0]=1;c[k+16>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;a[k+40>>0]=1;c[k+36>>2]=0;c[k+28>>2]=0;c[k+32>>2]=0;a[k+60>>0]=1;c[k+56>>2]=0;c[k+48>>2]=0;c[k+52>>2]=0;a[k+64>>0]=1;k=e+19&-16}else{k=0}c[h+204>>2]=k;a[h+272>>0]=1;c[4546]=(c[4546]|0)+1;k=Zx(107)|0;if((k|0)==0){m=0;c[d>>2]=m;i=f;return h|0}e=k+19&-16;c[e+ -4>>2]=k;if((k+19&-16|0)==0){m=0;c[d>>2]=m;i=f;return h|0}m=c[j>>2]|0;c[(k+19&-16)>>2]=2128;c[e+4>>2]=0;c[e+8>>2]=m;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=b;a[e+44>>0]=1;c[e+40>>2]=0;c[e+32>>2]=0;c[e+36>>2]=0;a[e+64>>0]=1;c[e+60>>2]=0;c[e+52>>2]=0;c[e+56>>2]=0;a[e+84>>0]=1;c[e+80>>2]=0;c[e+72>>2]=0;c[e+76>>2]=0;m=k+19&-16;c[d>>2]=m;i=f;return h|0}function ee(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+72>>2]&127](a,b);i=d;return}function fe(b){b=b|0;var d=0;d=i;i=i+16|0;if((a[24]|0)==0?(Ya(24)|0)!=0:0){cb(24)}Pb[c[(c[b>>2]|0)+76>>2]&127](d,b);c[8>>2]=c[d+0>>2];c[12>>2]=c[d+4>>2];c[16>>2]=c[d+8>>2];c[20>>2]=c[d+12>>2];i=d;return 8}function ge(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+84>>2]&127](a,b);i=d;return}function he(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;wc[c[(c[a>>2]|0)+88>>2]&63](a,b,d,e);i=f;return}function ie(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+92>>2]&127](a,b);i=d;return}function je(a,b){a=a|0;b=b|0;var d=0;d=i;sc[c[(c[a>>2]|0)+56>>2]&63](a,b,0);i=d;return}function ke(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;sc[c[(c[a>>2]|0)+56>>2]&63](a,b,d);i=e;return}function le(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+60>>2]&127](a,b);i=d;return}function me(a,b){a=a|0;b=+b;var d=0;d=i;a=vc[c[(c[a>>2]|0)+52>>2]&1](a,b,1,.01666666753590107)|0;i=d;return a|0}function ne(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;a=vc[c[(c[a>>2]|0)+52>>2]&1](a,b,d,.01666666753590107)|0;i=e;return a|0}function oe(a,b,d,e){a=a|0;b=+b;d=d|0;e=+e;var f=0;f=i;a=vc[c[(c[a>>2]|0)+52>>2]&1](a,b,d,e)|0;i=f;return a|0}function pe(a){a=a|0;return c[a+24>>2]|0}function qe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;wc[c[(c[a>>2]|0)+32>>2]&63](a,b,d,e);i=f;return}function re(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+64>>2]&127](a,b);i=d;return}function se(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function te(b,d){b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0;e=i;c[4546]=(c[4546]|0)+1;f=Zx(379)|0;if((f|0)==0){f=0}else{c[(f+19&-16)+ -4>>2]=f;f=f+19&-16}cm(f,3,b);c[f>>2]=2256;n=f+300|0;c[n+0>>2]=c[d+0>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];c[n+12>>2]=c[d+12>>2];m=+g[d>>2];l=+g[d+4>>2];k=+g[d+8>>2];j=m*+g[b+20>>2]+l*+g[b+24>>2]+k*+g[b+28>>2]+ +g[b+56>>2];h=m*+g[b+36>>2]+l*+g[b+40>>2]+k*+g[b+44>>2]+ +g[b+60>>2];g[f+316>>2]=m*+g[b+4>>2]+l*+g[b+8>>2]+k*+g[b+12>>2]+ +g[b+52>>2];g[f+320>>2]=j;g[f+324>>2]=h;g[f+328>>2]=0.0;c[f+332>>2]=0;a[f+344>>0]=0;g[f+348>>2]=.30000001192092896;g[f+352>>2]=1.0;g[f+356>>2]=0.0;i=e;return f|0}function ue(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0;h=i;c[4546]=(c[4546]|0)+1;j=Zx(379)|0;if((j|0)==0){j=0}else{c[(j+19&-16)+ -4>>2]=j;j=j+19&-16}c[j+4>>2]=3;c[j+8>>2]=-1;c[j+12>>2]=-1;g[j+16>>2]=3.4028234663852886e+38;a[j+20>>0]=1;a[j+21>>0]=0;c[j+24>>2]=-1;c[j+28>>2]=b;c[j+32>>2]=d;g[j+36>>2]=0.0;g[j+40>>2]=.30000001192092896;c[j+44>>2]=0;c[j>>2]=2256;d=j+300|0;c[d+0>>2]=c[e+0>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];e=j+316|0;c[e+0>>2]=c[f+0>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];c[j+332>>2]=0;a[j+344>>0]=0;g[j+348>>2]=.30000001192092896;g[j+352>>2]=1.0;g[j+356>>2]=0.0;i=h;return j|0}function ve(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+300>>2]=c[b+0>>2];c[a+304>>2]=c[b+4>>2];c[a+308>>2]=c[b+8>>2];c[a+312>>2]=c[b+12>>2];i=d;return}function we(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+316>>2]=c[b+0>>2];c[a+320>>2]=c[b+4>>2];c[a+324>>2]=c[b+8>>2];c[a+328>>2]=c[b+12>>2];i=d;return}function xe(a){a=a|0;return a+300|0}function ye(a){a=a|0;return a+316|0}function ze(a){a=a|0;return a+348|0}function Ae(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+348>>2]=c[b+0>>2];c[a+352>>2]=c[b+4>>2];c[a+356>>2]=c[b+8>>2];i=d;return}function Be(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Ce(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+8>>2]&127](a,b);i=d;return}function De(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+12>>2]&127](a,b);i=d;return}function Ee(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Fe(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0;e=i;c[4546]=(c[4546]|0)+1;f=Zx(627)|0;if((f|0)==0){f=0}else{c[(f+19&-16)+ -4>>2]=f;f=f+19&-16}cm(f,5,b);c[f>>2]=1e3;k=f+300|0;c[k+0>>2]=c[d+0>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];j=f+316|0;c[j+0>>2]=c[d+16>>2];c[j+4>>2]=c[d+20>>2];c[j+8>>2]=c[d+24>>2];c[j+12>>2]=c[d+28>>2];h=f+332|0;c[h+0>>2]=c[d+32>>2];c[h+4>>2]=c[d+36>>2];c[h+8>>2]=c[d+40>>2];c[h+12>>2]=c[d+44>>2];b=f+348|0;c[b+0>>2]=c[d+48>>2];c[b+4>>2]=c[d+52>>2];c[b+8>>2]=c[d+56>>2];c[b+12>>2]=c[d+60>>2];b=f+364|0;d=f+524|0;a[f+527>>0]=0;c[b+0>>2]=c[k+0>>2];c[b+4>>2]=c[k+4>>2];c[b+8>>2]=c[k+8>>2];c[b+12>>2]=c[k+12>>2];b=f+380|0;c[b+0>>2]=c[j+0>>2];c[b+4>>2]=c[j+4>>2];c[b+8>>2]=c[j+8>>2];c[b+12>>2]=c[j+12>>2];b=f+396|0;c[b+0>>2]=c[h+0>>2];c[b+4>>2]=c[h+4>>2];c[b+8>>2]=c[h+8>>2];c[b+12>>2]=c[h+12>>2];b=f+412|0;a[d>>0]=0;a[f+525>>0]=0;a[f+526>>0]=0;a[f+552>>0]=0;d=f+572|0;c[b+0>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[d>>2]=-1.0;g[f+444>>2]=999999984306749400.0;g[f+448>>2]=999999984306749400.0;g[f+452>>2]=999999984306749400.0;g[f+428>>2]=1.0;g[f+432>>2]=.30000001192092896;g[f+436>>2]=1.0;g[f+440>>2]=.009999999776482582;g[f+456>>2]=.05000000074505806;c[f+592>>2]=0;g[f+596>>2]=0.0;g[f+600>>2]=.699999988079071;g[f+604>>2]=0.0;i=e;return f|0}function Ge(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0;h=i;c[4546]=(c[4546]|0)+1;j=Zx(627)|0;if((j|0)==0){j=0}else{c[(j+19&-16)+ -4>>2]=j;j=j+19&-16}c[j+4>>2]=5;c[j+8>>2]=-1;c[j+12>>2]=-1;g[j+16>>2]=3.4028234663852886e+38;a[j+20>>0]=1;a[j+21>>0]=0;c[j+24>>2]=-1;c[j+28>>2]=b;c[j+32>>2]=d;g[j+36>>2]=0.0;g[j+40>>2]=.30000001192092896;c[j+44>>2]=0;c[j>>2]=1e3;d=j+300|0;c[d+0>>2]=c[e+0>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];d=j+316|0;c[d+0>>2]=c[e+16>>2];c[d+4>>2]=c[e+20>>2];c[d+8>>2]=c[e+24>>2];c[d+12>>2]=c[e+28>>2];d=j+332|0;c[d+0>>2]=c[e+32>>2];c[d+4>>2]=c[e+36>>2];c[d+8>>2]=c[e+40>>2];c[d+12>>2]=c[e+44>>2];d=j+348|0;c[d+0>>2]=c[e+48>>2];c[d+4>>2]=c[e+52>>2];c[d+8>>2]=c[e+56>>2];c[d+12>>2]=c[e+60>>2];e=j+364|0;c[e+0>>2]=c[f+0>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];e=j+380|0;c[e+0>>2]=c[f+16>>2];c[e+4>>2]=c[f+20>>2];c[e+8>>2]=c[f+24>>2];c[e+12>>2]=c[f+28>>2];e=j+396|0;c[e+0>>2]=c[f+32>>2];c[e+4>>2]=c[f+36>>2];c[e+8>>2]=c[f+40>>2];c[e+12>>2]=c[f+44>>2];e=j+412|0;c[e+0>>2]=c[f+48>>2];c[e+4>>2]=c[f+52>>2];c[e+8>>2]=c[f+56>>2];c[e+12>>2]=c[f+60>>2];f=j+524|0;a[j+552>>0]=0;a[f>>0]=0;a[f+1>>0]=0;a[f+2>>0]=0;a[f+3>>0]=0;g[j+572>>2]=-1.0;g[j+444>>2]=999999984306749400.0;g[j+448>>2]=999999984306749400.0;g[j+452>>2]=999999984306749400.0;g[j+428>>2]=1.0;g[j+432>>2]=.30000001192092896;g[j+436>>2]=1.0;g[j+440>>2]=.009999999776482582;g[j+456>>2]=.05000000074505806;c[j+592>>2]=0;g[j+596>>2]=0.0;g[j+600>>2]=.699999988079071;g[j+604>>2]=0.0;i=h;return j|0}function He(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=i;if((b|0)==3){g[a+452>>2]=c}else if((b|0)==4){g[a+448>>2]=c}else if((b|0)==5){g[a+444>>2]=c}i=d;return}function Ie(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Je(a,b){a=+a;b=+b;var d=0,e=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(95)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}c[e+8>>2]=0;g[e+12>>2]=1.0;g[e+16>>2]=1.0;g[e+20>>2]=1.0;g[e+24>>2]=0.0;g[e+44>>2]=.03999999910593033;c[e>>2]=8848;g[e+56>>2]=a;g[e+60>>2]=b;c[e+4>>2]=11;c[e+64>>2]=0;c[e+68>>2]=1;c[e+72>>2]=2;g[e+28>>2]=a;g[e+32>>2]=b;g[e+36>>2]=a;g[e+52>>2]=a/+Q(+(a*a+b*b));i=d;return e|0}function Ke(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function Le(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function Me(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Ne(){var a=0,b=0;a=i;i=i+32|0;b=Zx(92)|0;a:do{if((b|0)==0){while(1){b=c[4700]|0;c[4700]=b+0;if((b|0)==0){break}tc[b&3]();b=Zx(92)|0;if((b|0)!=0){break a}}b=Cb(4)|0;c[b>>2]=18640;Ab(b|0,18688,235)}}while(0);c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=4096;c[a+12>>2]=4096;c[a+16>>2]=0;c[a+20>>2]=1;Rr(b,a);i=a;return b|0}function Oe(a){a=a|0;var b=0,d=0;b=i;d=Zx(92)|0;a:do{if((d|0)==0){while(1){d=c[4700]|0;c[4700]=d+0;if((d|0)==0){break}tc[d&3]();d=Zx(92)|0;if((d|0)!=0){break a}}d=Cb(4)|0;c[d>>2]=18640;Ab(d|0,18688,235)}}while(0);Rr(d,a);i=b;return d|0}function Pe(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Qe(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0.0,l=0;l=i;k=+Xb[c[(c[a>>2]|0)+12>>2]&1](a,b,d,e,f,g,h,j);i=l;return+k}function Re(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Se(a,b){a=+a;b=+b;var d=0,e=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(95)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}c[e+8>>2]=0;g[e+12>>2]=1.0;g[e+16>>2]=1.0;g[e+20>>2]=1.0;g[e+24>>2]=0.0;g[e+44>>2]=.03999999910593033;g[e+56>>2]=a;g[e+60>>2]=b;c[e+4>>2]=11;g[e+52>>2]=a/+Q(+(a*a+b*b));c[e>>2]=8952;c[e+64>>2]=0;c[e+68>>2]=2;c[e+72>>2]=1;g[e+28>>2]=a;g[e+36>>2]=b;g[e+32>>2]=a;i=d;return e|0}function Te(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function Ue(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function Ve(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function We(a,b){a=+a;b=+b;var d=0,e=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(95)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}c[e+8>>2]=0;g[e+12>>2]=1.0;g[e+16>>2]=1.0;g[e+20>>2]=1.0;g[e+24>>2]=0.0;g[e+44>>2]=.03999999910593033;g[e+56>>2]=a;g[e+60>>2]=b;c[e+4>>2]=11;g[e+52>>2]=a/+Q(+(a*a+b*b));c[e>>2]=9056;c[e+64>>2]=1;c[e+68>>2]=0;c[e+72>>2]=2;g[e+32>>2]=a;g[e+28>>2]=b;g[e+36>>2]=a;i=d;return e|0}function Xe(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function Ye(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function Ze(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function _e(){var a=0,b=0;a=i;c[4546]=(c[4546]|0)+1;b=Zx(191)|0;if((b|0)==0){b=0;Ru(b,1,1);i=a;return b|0}c[(b+19&-16)+ -4>>2]=b;b=b+19&-16;Ru(b,1,1);i=a;return b|0}function $e(a){a=a|0;var b=0,d=0;b=i;c[4546]=(c[4546]|0)+1;d=Zx(191)|0;if((d|0)==0){d=0;Ru(d,a,1);i=b;return d|0}c[(d+19&-16)+ -4>>2]=d;d=d+19&-16;Ru(d,a,1);i=b;return d|0}function af(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(191)|0;if((e|0)==0){e=0;Ru(e,a,b);i=d;return e|0}c[(e+19&-16)+ -4>>2]=e;e=e+19&-16;Ru(e,a,b);i=d;return e|0}function bf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;g=c[a+32>>2]|0;c[g>>2]=(c[g>>2]|0)+1;Su(a,Tu(a,b,0)|0);Su(a,Tu(a,d,0)|0);Su(a,Tu(a,e,0)|0);i=f;return}function cf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;h=c[a+32>>2]|0;c[h>>2]=(c[h>>2]|0)+1;Su(a,Tu(a,b,f)|0);Su(a,Tu(a,d,f)|0);Su(a,Tu(a,e,f)|0);i=g;return}function df(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function ef(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function ff(){var b=0,d=0,e=0;b=i;c[4546]=(c[4546]|0)+1;d=Zx(791)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}c[d>>2]=1025;c[d+116>>2]=0;a[d+120>>0]=0;e=d+124|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;c[d+300>>2]=0;a[d+304>>0]=0;e=d+308|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;c[d+484>>2]=0;a[d+488>>0]=0;e=d+492|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;c[d+668>>2]=0;a[d+672>>0]=0;e=d+676|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;c[d+740>>2]=0;c[d+744>>2]=0;c[d+748>>2]=0;c[d+768>>2]=0;i=b;return d|0}function gf(a){a=a|0;return c[a+740>>2]|0}function hf(a){a=a|0;return c[a+744>>2]|0}function jf(a){a=a|0;return c[a+748>>2]|0}function kf(a,b){a=a|0;b=b|0;return a+(b*184|0)+4|0}function lf(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function mf(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0,r=0.0;b=i;c[4546]=(c[4546]|0)+1;d=Zx(75)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}c[d+8>>2]=0;h=d+12|0;g[h>>2]=1.0;e=d+16|0;g[e>>2]=1.0;f=d+20|0;g[f>>2]=1.0;g[d+24>>2]=0.0;j=d+44|0;g[j>>2]=.03999999910593033;c[d+52>>2]=0;c[d>>2]=4672;c[d+4>>2]=0;l=+g[a>>2];m=+g[a+4>>2];k=+g[a+8>>2];if(l>2]*.10000000149011612;if(k<.03999999910593033){r=+Zm(d);p=+bc[c[(c[d>>2]|0)+48>>2]&15](d);m=+bc[c[(c[d>>2]|0)+48>>2]&15](d);q=d+28|0;r=r+ +g[q>>2];o=d+32|0;p=p+ +g[o>>2];n=d+36|0;m=m+ +g[n>>2];g[j>>2]=k;k=+bc[c[(c[d>>2]|0)+48>>2]&15](d);l=+bc[c[(c[d>>2]|0)+48>>2]&15](d);m=m- +bc[c[(c[d>>2]|0)+48>>2]&15](d);g[q>>2]=r-k;g[o>>2]=p-l;g[n>>2]=m;g[d+40>>2]=0.0;j=c[d>>2]|0}else{j=4672|0}m=+bc[c[j+48>>2]&15](d);p=+bc[c[(c[d>>2]|0)+48>>2]&15](d);r=+bc[c[(c[d>>2]|0)+48>>2]&15](d);p=+g[a+4>>2]*+g[e>>2]-p;r=+g[a+8>>2]*+g[f>>2]-r;g[d+28>>2]=+g[a>>2]*+g[h>>2]-m;g[d+32>>2]=p;g[d+36>>2]=r;g[d+40>>2]=0.0;i=b;return d|0}function nf(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function of(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function pf(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function qf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;f=Zx(5260)|0;a:do{if((f|0)==0){while(1){e=c[4700]|0;c[4700]=e+0;if((e|0)==0){break}tc[e&3]();f=Zx(5260)|0;if((f|0)!=0){break a}}g=Cb(4)|0;c[g>>2]=18640;Ab(g|0,18688,235)}}while(0);c[f>>2]=6032;c[f+4>>2]=2;a[f+24>>0]=1;c[f+20>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+28>>2]=11992;e=f+5256|0;c[e>>2]=b;c[f+60>>2]=60;c[f+64>>2]=Rb[c[(c[b>>2]|0)+12>>2]&127](b)|0;c[f+68>>2]=Rb[c[(c[b>>2]|0)+8>>2]&127](b)|0;b=0;do{g=0;do{h=c[e>>2]|0;c[f+(b*144|0)+(g<<2)+72>>2]=_b[c[(c[h>>2]|0)+16>>2]&31](h,b,g)|0;g=g+1|0}while((g|0)<36);b=b+1|0}while((b|0)<36);i=d;return f|0}function rf(a){a=a|0;var b=0;b=i;a=Rb[c[(c[a>>2]|0)+36>>2]&127](a)|0;i=b;return a|0}function sf(a,b){a=a|0;b=b|0;var d=0;d=i;a=hc[c[(c[a>>2]|0)+40>>2]&31](a,b)|0;i=d;return a|0}function tf(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function uf(){var a=0,b=0;a=i;b=Zx(24)|0;a:do{if((b|0)==0){while(1){b=c[4700]|0;c[4700]=b+0;if((b|0)==0){break}tc[b&3]();b=Zx(24)|0;if((b|0)!=0){break a}}b=Cb(4)|0;c[b>>2]=18640;Ab(b|0,18688,235)}}while(0);g[b>>2]=5.880000114440918;g[b+4>>2]=.8299999833106995;g[b+8>>2]=.8799999952316284;g[b+12>>2]=500.0;g[b+16>>2]=10.5;g[b+20>>2]=6.0e3;i=a;return b|0}function vf(){var a=0,b=0;a=i;c[4546]=(c[4546]|0)+1;b=Zx(111)|0;if((b|0)==0){b=0;Op(b,1);i=a;return b|0}c[(b+19&-16)+ -4>>2]=b;b=b+19&-16;Op(b,1);i=a;return b|0}function wf(a){a=a|0;var b=0,d=0;b=i;c[4546]=(c[4546]|0)+1;d=Zx(111)|0;if((d|0)==0){d=0;Op(d,a);i=b;return d|0}c[(d+19&-16)+ -4>>2]=d;d=d+19&-16;Op(d,a);i=b;return d|0}function xf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0;j=i;i=i+128|0;c[b+68>>2]=(c[b+68>>2]|0)+1;c[j+0>>2]=c[d+0>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];c[j+16>>2]=c[d+16>>2];c[j+20>>2]=c[d+20>>2];c[j+24>>2]=c[d+24>>2];c[j+28>>2]=c[d+28>>2];c[j+32>>2]=c[d+32>>2];c[j+36>>2]=c[d+36>>2];c[j+40>>2]=c[d+40>>2];c[j+44>>2]=c[d+44>>2];c[j+48>>2]=c[d+48>>2];c[j+52>>2]=c[d+52>>2];c[j+56>>2]=c[d+56>>2];c[j+60>>2]=c[d+60>>2];f=c[e+4>>2]|0;h=+bc[c[(c[e>>2]|0)+48>>2]&15](e);wc[c[(c[e>>2]|0)+8>>2]&63](e,d,j+112|0,j+96|0);p=+g[j+112>>2];if(+g[b+32>>2]>p){g[b+32>>2]=p}p=+g[j+96>>2];if(+g[b+48>>2]>2]=p}p=+g[j+116>>2];if(+g[b+36>>2]>p){g[b+36>>2]=p}p=+g[j+100>>2];if(+g[b+52>>2]>2]=p}p=+g[j+120>>2];if(+g[b+40>>2]>p){g[b+40>>2]=p}p=+g[j+104>>2];if(+g[b+56>>2]>2]=p}d=c[b+64>>2]|0;if((d|0)==0){l=0;d=b+16|0}else{c[j+64>>2]=c[j+112>>2];c[j+68>>2]=c[j+116>>2];c[j+72>>2]=c[j+120>>2];c[j+76>>2]=c[j+124>>2];c[j+80>>2]=c[j+96>>2];c[j+84>>2]=c[j+100>>2];c[j+88>>2]=c[j+104>>2];c[j+92>>2]=c[j+108>>2];m=c[b+16>>2]|0;l=c[d+4>>2]|0;if((l|0)==0){c[4546]=(c[4546]|0)+1;l=Zx(63)|0;if((l|0)!=0?(c[(l+19&-16)+ -4>>2]=l,(l+19&-16|0)!=0):0){n=(l+19&-16)+0|0;o=n+44|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));l=l+19&-16}else{l=0}}else{c[d+4>>2]=0}c[l+32>>2]=0;c[l+36>>2]=m;c[l+40>>2]=0;c[l+0>>2]=c[j+64>>2];c[l+4>>2]=c[j+68>>2];c[l+8>>2]=c[j+72>>2];c[l+12>>2]=c[j+76>>2];c[l+16>>2]=c[j+80>>2];c[l+20>>2]=c[j+84>>2];c[l+24>>2]=c[j+88>>2];c[l+28>>2]=c[j+92>>2];nr(d,c[d>>2]|0,l);c[d+12>>2]=(c[d+12>>2]|0)+1;d=b+16|0}m=c[d>>2]|0;if((m|0)==(c[b+20>>2]|0)?(k=(m|0)==0?1:m<<1,(m|0)<(k|0)):0){if((k|0)==0){n=0}else{c[4546]=(c[4546]|0)+1;m=Zx((k*80|3)+16|0)|0;if((m|0)==0){n=0}else{c[(m+19&-16)+ -4>>2]=m;n=m+19&-16}m=c[d>>2]|0}if((m|0)>0){o=0;do{q=n+(o*80|0)|0;r=c[b+24>>2]|0;s=r+(o*80|0)|0;c[q+0>>2]=c[s+0>>2];c[q+4>>2]=c[s+4>>2];c[q+8>>2]=c[s+8>>2];c[q+12>>2]=c[s+12>>2];q=n+(o*80|0)+16|0;s=r+(o*80|0)+16|0;c[q+0>>2]=c[s+0>>2];c[q+4>>2]=c[s+4>>2];c[q+8>>2]=c[s+8>>2];c[q+12>>2]=c[s+12>>2];q=n+(o*80|0)+32|0;s=r+(o*80|0)+32|0;c[q+0>>2]=c[s+0>>2];c[q+4>>2]=c[s+4>>2];c[q+8>>2]=c[s+8>>2];c[q+12>>2]=c[s+12>>2];q=n+(o*80|0)+48|0;s=r+(o*80|0)+48|0;c[q+0>>2]=c[s+0>>2];c[q+4>>2]=c[s+4>>2];c[q+8>>2]=c[s+8>>2];c[q+12>>2]=c[s+12>>2];q=n+(o*80|0)+64|0;r=r+(o*80|0)+64|0;c[q+0>>2]=c[r+0>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];o=o+1|0}while((o|0)!=(m|0))}m=c[b+24>>2]|0;if((m|0)!=0){if((a[b+28>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0)}c[b+24>>2]=0}a[b+28>>0]=1;c[b+24>>2]=n;c[b+20>>2]=k;m=c[d>>2]|0}s=c[b+24>>2]|0;r=s+(m*80|0)|0;c[r+0>>2]=c[j+0>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];c[r+12>>2]=c[j+12>>2];r=s+(m*80|0)+16|0;c[r+0>>2]=c[j+16>>2];c[r+4>>2]=c[j+20>>2];c[r+8>>2]=c[j+24>>2];c[r+12>>2]=c[j+28>>2];r=s+(m*80|0)+32|0;c[r+0>>2]=c[j+32>>2];c[r+4>>2]=c[j+36>>2];c[r+8>>2]=c[j+40>>2];c[r+12>>2]=c[j+44>>2];r=s+(m*80|0)+48|0;c[r+0>>2]=c[j+48>>2];c[r+4>>2]=c[j+52>>2];c[r+8>>2]=c[j+56>>2];c[r+12>>2]=c[j+60>>2];s=s+(m*80|0)+64|0;c[s>>2]=e;c[s+4>>2]=f;g[s+8>>2]=h;c[s+12>>2]=l;c[d>>2]=(c[d>>2]|0)+1;i=j;return}function yf(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function zf(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function Af(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Bf(){var a=0,b=0;a=i;c[4546]=(c[4546]|0)+1;b=Zx(219)|0;if((b|0)==0){b=0}else{c[(b+19&-16)+ -4>>2]=b;b=b+19&-16}Df();Df();Cf(b,352,352);i=a;return b|0}function Cf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;c[a>>2]=488;f=a+4|0;do{f=f+16|0}while((f|0)!=(a+52|0));c[a+4>>2]=c[b+0>>2];c[a+8>>2]=c[b+4>>2];c[a+12>>2]=c[b+8>>2];c[a+16>>2]=c[b+12>>2];c[a+20>>2]=c[b+16>>2];c[a+24>>2]=c[b+20>>2];c[a+28>>2]=c[b+24>>2];c[a+32>>2]=c[b+28>>2];c[a+36>>2]=c[b+32>>2];c[a+40>>2]=c[b+36>>2];c[a+44>>2]=c[b+40>>2];c[a+48>>2]=c[b+44>>2];c[a+52>>2]=c[b+48>>2];c[a+56>>2]=c[b+52>>2];c[a+60>>2]=c[b+56>>2];c[a+64>>2]=c[b+60>>2];f=a+68|0;do{f=f+16|0}while((f|0)!=(a+116|0));c[a+68>>2]=c[d+0>>2];c[a+72>>2]=c[d+4>>2];c[a+76>>2]=c[d+8>>2];c[a+80>>2]=c[d+12>>2];c[a+84>>2]=c[d+16>>2];c[a+88>>2]=c[d+20>>2];c[a+92>>2]=c[d+24>>2];c[a+96>>2]=c[d+28>>2];c[a+100>>2]=c[d+32>>2];c[a+104>>2]=c[d+36>>2];c[a+108>>2]=c[d+40>>2];c[a+112>>2]=c[d+44>>2];c[a+116>>2]=c[d+48>>2];c[a+120>>2]=c[d+52>>2];c[a+124>>2]=c[d+56>>2];c[a+128>>2]=c[d+60>>2];d=a+132|0;do{d=d+16|0}while((d|0)!=(a+180|0));c[a+132>>2]=c[b+0>>2];c[a+136>>2]=c[b+4>>2];c[a+140>>2]=c[b+8>>2];c[a+144>>2]=c[b+12>>2];c[a+148>>2]=c[b+16>>2];c[a+152>>2]=c[b+20>>2];c[a+156>>2]=c[b+24>>2];c[a+160>>2]=c[b+28>>2];c[a+164>>2]=c[b+32>>2];c[a+168>>2]=c[b+36>>2];c[a+172>>2]=c[b+40>>2];c[a+176>>2]=c[b+44>>2];c[a+180>>2]=c[b+48>>2];c[a+184>>2]=c[b+52>>2];c[a+188>>2]=c[b+56>>2];c[a+192>>2]=c[b+60>>2];c[a+196>>2]=0;i=e;return}function Df(){var b=0,d=0;b=i;i=i+48|0;if((a[416]|0)!=0){i=b;return}if((Ya(416)|0)==0){i=b;return}if((a[472]|0)==0?(Ya(472)|0)!=0:0){g[b+32>>2]=1.0;g[b+28>>2]=0.0;g[b+24>>2]=0.0;g[b+20>>2]=0.0;g[b+16>>2]=1.0;g[b+12>>2]=0.0;g[b+8>>2]=0.0;g[b+4>>2]=0.0;g[b>>2]=1.0;sj(424,b+32|0,b+28|0,b+24|0,b+20|0,b+16|0,b+12|0,b+8|0,b+4|0,b);cb(472);d=352}else{d=352}do{d=d+16|0}while((d|0)!=(400|0));c[352>>2]=c[424>>2];c[356>>2]=c[428>>2];c[360>>2]=c[432>>2];c[364>>2]=c[436>>2];c[368>>2]=c[440>>2];c[372>>2]=c[444>>2];c[376>>2]=c[448>>2];c[380>>2]=c[452>>2];c[384>>2]=c[456>>2];c[388>>2]=c[460>>2];c[392>>2]=c[464>>2];c[396>>2]=c[468>>2];c[400>>2]=0;c[404>>2]=0;c[408>>2]=0;c[412>>2]=0;cb(416);i=b;return}function Ef(a){a=a|0;var b=0,d=0;b=i;c[4546]=(c[4546]|0)+1;d=Zx(219)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}Df();Cf(d,a,352);i=b;return d|0}function Ff(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(219)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}Cf(e,a,b);i=d;return e|0}function Gf(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+8>>2]&127](a,b);i=d;return}function Hf(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+12>>2]&127](a,b);i=d;return}function If(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Jf(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function Kf(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function Lf(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Mf(a){a=a|0;var b=0;b=i;a=Rb[c[(c[a>>2]|0)+36>>2]&127](a)|0;i=b;return a|0}function Nf(a,b){a=a|0;b=b|0;var d=0;d=i;a=hc[c[(c[a>>2]|0)+40>>2]&31](a,b)|0;i=d;return a|0}function Of(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Pf(a,d){a=a|0;d=d|0;var e=0,f=0,h=0;e=i;f=Zx(84)|0;a:do{if((f|0)==0){while(1){f=c[4700]|0;c[4700]=f+0;if((f|0)==0){break}tc[f&3]();f=Zx(84)|0;if((f|0)!=0){break a}}f=Cb(4)|0;c[f>>2]=18640;Ab(f|0,18688,235)}}while(0);g[f+4>>2]=1.0;c[f+8>>2]=0;b[f+12>>1]=1;b[f+14>>1]=-1;c[f+16>>2]=0;c[f>>2]=224;h=f+20|0;c[h+0>>2]=c[a+0>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];a=f+36|0;c[a+0>>2]=c[d+0>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];i=e;return f|0}function Qf(a){a=a|0;return(c[a+8>>2]|0)!=0|0}function Rf(a){a=a|0;return a+20|0}function Sf(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+20>>2]=c[b+0>>2];c[a+24>>2]=c[b+4>>2];c[a+28>>2]=c[b+8>>2];c[a+32>>2]=c[b+12>>2];i=d;return}function Tf(a){a=a|0;return a+36|0}function Uf(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+36>>2]=c[b+0>>2];c[a+40>>2]=c[b+4>>2];c[a+44>>2]=c[b+8>>2];c[a+48>>2]=c[b+12>>2];i=d;return}function Vf(a){a=a|0;return a+52|0}function Wf(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+52>>2]=c[b+0>>2];c[a+56>>2]=c[b+4>>2];c[a+60>>2]=c[b+8>>2];c[a+64>>2]=c[b+12>>2];i=d;return}function Xf(a){a=a|0;return a+68|0}function Yf(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+68>>2]=c[b+0>>2];c[a+72>>2]=c[b+4>>2];c[a+76>>2]=c[b+8>>2];c[a+80>>2]=c[b+12>>2];i=d;return}function Zf(a){a=a|0;return c[a+8>>2]|0}function _f(a,b){a=a|0;b=b|0;c[a+8>>2]=b;return}function $f(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function ag(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+64>>2]&127](a,b);i=d;return}function bg(a){a=a|0;return c[a+24>>2]|0}function cg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;wc[c[(c[a>>2]|0)+32>>2]&63](a,b,d,e);i=f;return}function dg(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function eg(a,b){a=+a;b=+b;var d=0,e=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(75)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}c[e+8>>2]=0;g[e+12>>2]=1.0;g[e+16>>2]=1.0;g[e+20>>2]=1.0;g[e+24>>2]=0.0;g[e+44>>2]=.03999999910593033;c[e+4>>2]=10;c[e>>2]=5624;c[e+52>>2]=0;g[e+28>>2]=b*.5;g[e+32>>2]=a;g[e+36>>2]=a;g[e+40>>2]=0.0;i=d;return e|0}function fg(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function gg(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function hg(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function ig(a,b,d,e){a=+a;b=+b;d=+d;e=+e;var f=0,h=0;f=i;h=Zx(16)|0;a:do{if((h|0)==0){while(1){h=c[4700]|0;c[4700]=h+0;if((h|0)==0){break}tc[h&3]();h=Zx(16)|0;if((h|0)!=0){break a}}h=Cb(4)|0;c[h>>2]=18640;Ab(h|0,18688,235)}}while(0);g[h>>2]=a;g[h+4>>2]=b;g[h+8>>2]=d;g[h+12>>2]=e;i=f;return h|0}function jg(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;g[a>>2]=b;g[a+4>>2]=c;g[a+8>>2]=d;g[a+12>>2]=e;return}function kg(a){a=a|0;return+(+g[a>>2])}function lg(a){a=a|0;return+(+g[a+4>>2])}function mg(a){a=a|0;return+(+g[a+8>>2])}function ng(a){a=a|0;return+(+g[a+12>>2])}function og(a,b){a=a|0;b=+b;g[a>>2]=b;return}function pg(a,b){a=a|0;b=+b;g[a+4>>2]=b;return}function qg(a,b){a=a|0;b=+b;g[a+8>>2]=b;return}function rg(a,b){a=a|0;b=+b;g[a+12>>2]=b;return}function sg(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function tg(a,b){a=+a;b=+b;var d=0,e=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(75)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}c[e+8>>2]=0;g[e+12>>2]=1.0;g[e+16>>2]=1.0;g[e+20>>2]=1.0;g[e+24>>2]=0.0;g[e+44>>2]=.03999999910593033;c[e+4>>2]=10;c[e>>2]=5728;c[e+52>>2]=2;g[e+28>>2]=a;g[e+32>>2]=a;g[e+36>>2]=b*.5;g[e+40>>2]=0.0;i=d;return e|0}function ug(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function vg(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function wg(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function xg(a){a=a|0;var b=0,d=0;b=i;d=Zx(8)|0;a:do{if((d|0)==0){while(1){d=c[4700]|0;c[4700]=d+0;if((d|0)==0){break}tc[d&3]();d=Zx(8)|0;if((d|0)!=0){break a}}d=Cb(4)|0;c[d>>2]=18640;Ab(d|0,18688,235)}}while(0);c[d>>2]=3136;c[d+4>>2]=a;i=b;return d|0}function yg(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function zg(a){a=a|0;return(c[a+8>>2]|0)!=0|0}function Ag(a){a=a|0;return c[a+8>>2]|0}function Bg(a,b){a=a|0;b=b|0;c[a+8>>2]=b;return}function Cg(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Dg(a){a=a|0;return+(+g[a+216>>2])}function Eg(a,b){a=a|0;b=+b;g[a+216>>2]=b;return}function Fg(a){a=a|0;return+(+g[a+224>>2])}function Gg(a,b){a=a|0;b=+b;g[a+224>>2]=b;return}function Hg(a){a=a|0;return+(+g[a+220>>2])}function Ig(a,b){a=a|0;b=+b;g[a+220>>2]=b;return}function Jg(a){a=a|0;return+(+g[a+228>>2])}function Kg(a,b){a=a|0;b=+b;g[a+228>>2]=b;return}function Lg(a){a=a|0;return+(+g[a+244>>2])}function Mg(a,b){a=a|0;b=+b;g[a+244>>2]=b;return}function Ng(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Og(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function Pg(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function Qg(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Rg(){var a=0,b=0;a=i;c[4546]=(c[4546]|0)+1;b=Zx(35)|0;if((b|0)==0){b=0;i=a;return b|0}c[(b+19&-16)+ -4>>2]=b;b=b+19&-16;i=a;return b|0}function Sg(a,b,d,e){a=+a;b=+b;d=+d;e=+e;var f=0,h=0;f=i;c[4546]=(c[4546]|0)+1;h=Zx(35)|0;if((h|0)==0){h=0}else{c[(h+19&-16)+ -4>>2]=h;h=h+19&-16}g[h>>2]=a;g[h+4>>2]=b;g[h+8>>2]=d;g[h+12>>2]=e;i=f;return h|0}function Tg(a){a=a|0;return+(+g[a+12>>2])}function Ug(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;g[a>>2]=b;g[a+4>>2]=c;g[a+8>>2]=d;g[a+12>>2]=e;return}function Vg(a){a=a|0;var b=0.0,c=0.0,d=0.0;d=+g[a>>2];c=+g[a+4>>2];b=+g[a+8>>2];b=+Q(+(d*d+c*c+b*b));return+b}function Wg(a){a=a|0;return+(+g[a>>2])}function Xg(a){a=a|0;return+(+g[a+4>>2])}function Yg(a){a=a|0;return+(+g[a+8>>2])}function Zg(a,b){a=a|0;b=+b;g[a>>2]=b;return}function _g(a,b){a=a|0;b=+b;g[a+4>>2]=b;return}function $g(a,b){a=a|0;b=+b;g[a+8>>2]=b;return}function ah(a,b){a=a|0;b=+b;g[a>>2]=+g[a>>2]*b;g[a+4>>2]=+g[a+4>>2]*b;g[a+8>>2]=+g[a+8>>2]*b;return a|0}function bh(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function ch(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function dh(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function eh(){var a=0,b=0;a=i;c[4546]=(c[4546]|0)+1;b=Zx(35)|0;if((b|0)==0){b=0;i=a;return b|0}c[(b+19&-16)+ -4>>2]=b;b=b+19&-16;i=a;return b|0}function fh(a,b,d){a=+a;b=+b;d=+d;var e=0,f=0;e=i;c[4546]=(c[4546]|0)+1;f=Zx(35)|0;if((f|0)==0){f=0}else{c[(f+19&-16)+ -4>>2]=f;f=f+19&-16}g[f>>2]=a;g[f+4>>2]=b;g[f+8>>2]=d;g[f+12>>2]=0.0;i=e;return f|0}function gh(a){a=a|0;var b=0.0,c=0.0,d=0.0;d=+g[a>>2];c=+g[a+4>>2];b=+g[a+8>>2];b=+Q(+(d*d+c*c+b*b));return+b}function hh(a){a=a|0;return+(+g[a>>2])}function ih(a){a=a|0;return+(+g[a+4>>2])}function jh(a){a=a|0;return+(+g[a+8>>2])}function kh(a,b){a=a|0;b=+b;g[a>>2]=b;return}function lh(a,b){a=a|0;b=+b;g[a+4>>2]=b;return}function mh(a,b){a=a|0;b=+b;g[a+8>>2]=b;return}function nh(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;g[a>>2]=b;g[a+4>>2]=c;g[a+8>>2]=d;g[a+12>>2]=0.0;return}function oh(a,b){a=a|0;b=+b;g[a>>2]=+g[a>>2]*b;g[a+4>>2]=+g[a+4>>2]*b;g[a+8>>2]=+g[a+8>>2]*b;return a|0}function ph(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function qh(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function rh(a){a=+a;var b=0,d=0;b=i;c[4546]=(c[4546]|0)+1;d=Zx(71)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}c[d+8>>2]=0;g[d+12>>2]=1.0;g[d+16>>2]=1.0;g[d+20>>2]=1.0;g[d+24>>2]=0.0;c[d>>2]=15008;c[d+4>>2]=8;g[d+28>>2]=a;g[d+44>>2]=a;i=b;return d|0}function sh(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function th(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function uh(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function vh(){var a=0,b=0;a=i;b=Zx(24)|0;a:do{if((b|0)==0){while(1){b=c[4700]|0;c[4700]=b+0;if((b|0)==0){break}tc[b&3]();b=Zx(24)|0;if((b|0)!=0){break a}}b=Cb(4)|0;c[b>>2]=18640;Ab(b|0,18688,235)}}while(0);c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=4096;c[b+12>>2]=4096;c[b+16>>2]=0;c[b+20>>2]=1;i=a;return b|0}function wh(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function xh(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function yh(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function zh(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Ah(){var a=0,b=0;a=i;b=Zx(12)|0;a:do{if((b|0)==0){while(1){b=c[4700]|0;c[4700]=b+0;if((b|0)==0){break}tc[b&3]();b=Zx(12)|0;if((b|0)!=0){break a}}b=Cb(4)|0;c[b>>2]=18640;Ab(b|0,18688,235)}}while(0);g[b>>2]=.30000001192092896;g[b+4>>2]=1.0;g[b+8>>2]=0.0;i=a;return b|0}function Bh(a){a=a|0;return+(+g[a>>2])}function Ch(a,b){a=a|0;b=+b;g[a>>2]=b;return}function Dh(a){a=a|0;return+(+g[a+4>>2])}function Eh(a,b){a=a|0;b=+b;g[a+4>>2]=b;return}function Fh(a){a=a|0;return+(+g[a+8>>2])}function Gh(a,b){a=a|0;b=+b;g[a+8>>2]=b;return}function Hh(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Ih(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Jh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;b=i;f=Zx(152)|0;a:do{if((f|0)==0){while(1){f=c[4700]|0;c[4700]=f+0;if((f|0)==0){break}tc[f&3]();f=Zx(152)|0;if((f|0)!=0){break a}}f=Cb(4)|0;c[f>>2]=18640;Ab(f|0,18688,235)}}while(0);c[f>>2]=3024;a[f+20>>0]=1;c[f+16>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;a[f+40>>0]=1;c[f+36>>2]=0;c[f+28>>2]=0;c[f+32>>2]=0;a[f+60>>0]=1;c[f+56>>2]=0;c[f+48>>2]=0;c[f+52>>2]=0;a[f+80>>0]=1;c[f+76>>2]=0;c[f+68>>2]=0;c[f+72>>2]=0;c[f+100>>2]=e;g[f+104>>2]=0.0;a[f+148>>0]=1;c[f+144>>2]=0;c[f+136>>2]=0;c[f+140>>2]=0;c[f+116>>2]=d;c[f+120>>2]=0;c[f+124>>2]=2;c[f+128>>2]=1;g[f+112>>2]=0.0;g[f+108>>2]=0.0;i=b;return f|0}function Kh(a,b,d){a=a|0;b=+b;d=d|0;g[(c[a+144>>2]|0)+(d*284|0)+252>>2]=b;return}function Lh(a,b,d){a=a|0;b=+b;d=d|0;g[(c[a+144>>2]|0)+(d*284|0)+232>>2]=b;return}function Mh(a,b){a=a|0;b=b|0;return(c[a+144>>2]|0)+(b*284|0)+92|0}function Nh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;ol(c[a+116>>2]|0,c[a+144>>2]|0,b,d);i=e;return}function Oh(b,d,e,f,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=+j;k=k|0;l=l|0;var m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0,v=0,w=0;m=i;i=i+288|0;c[m+144>>2]=c[d+0>>2];c[m+148>>2]=c[d+4>>2];c[m+152>>2]=c[d+8>>2];c[m+156>>2]=c[d+12>>2];w=m+160|0;c[w+0>>2]=c[e+0>>2];c[w+4>>2]=c[e+4>>2];c[w+8>>2]=c[e+8>>2];c[w+12>>2]=c[e+12>>2];u=m+176|0;c[u+0>>2]=c[f+0>>2];c[u+4>>2]=c[f+4>>2];c[u+8>>2]=c[f+8>>2];c[u+12>>2]=c[f+12>>2];o=+g[k>>2];p=+g[k+4>>2];q=+g[k+8>>2];r=+g[k+16>>2];n=+g[k+12>>2];t=+g[k+20>>2];c[m+0>>2]=c[m+144>>2];c[m+4>>2]=c[m+148>>2];c[m+8>>2]=c[m+152>>2];c[m+12>>2]=c[m+156>>2];c[m+16>>2]=c[w+0>>2];c[m+20>>2]=c[w+4>>2];c[m+24>>2]=c[w+8>>2];c[m+28>>2]=c[w+12>>2];c[m+32>>2]=c[u+0>>2];c[m+36>>2]=c[u+4>>2];c[m+40>>2]=c[u+8>>2];c[m+44>>2]=c[u+12>>2];u=c[b+136>>2]|0;if((u|0)==(c[b+140>>2]|0)?(s=(u|0)==0?1:u<<1,(u|0)<(s|0)):0){if((s|0)==0){d=0}else{c[4546]=(c[4546]|0)+1;k=Zx((s*284|3)+16|0)|0;if((k|0)==0){d=0}else{c[(k+19&-16)+ -4>>2]=k;d=k+19&-16}u=c[b+136>>2]|0}if((u|0)>0){w=0;do{k=d+(w*284|0)|0;if((k|0)!=0){v=c[b+144>>2]|0;e=k+0|0;k=v+(w*284|0)+0|0;f=e+92|0;do{c[e>>2]=c[k>>2];e=e+4|0;k=k+4|0}while((e|0)<(f|0));e=d+(w*284|0)+92|0;k=v+(w*284|0)+92|0;c[e+0>>2]=c[k+0>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];e=d+(w*284|0)+108|0;k=v+(w*284|0)+108|0;c[e+0>>2]=c[k+0>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];e=d+(w*284|0)+124|0;k=v+(w*284|0)+124|0;c[e+0>>2]=c[k+0>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];e=d+(w*284|0)+140|0;k=v+(w*284|0)+140|0;c[e+0>>2]=c[k+0>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];e=d+(w*284|0)+156|0;k=v+(w*284|0)+156|0;f=e+128|0;do{c[e>>2]=c[k>>2];e=e+4|0;k=k+4|0}while((e|0)<(f|0))}w=w+1|0}while((w|0)!=(u|0))}k=c[b+144>>2]|0;if((k|0)!=0){if((a[b+148>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[b+144>>2]=0}a[b+148>>0]=1;c[b+144>>2]=d;c[b+140>>2]=s;u=c[b+136>>2]|0}s=c[b+144>>2]|0;k=s+(u*284|0)|0;if((k|0)==0){w=u;d=s;v=w+1|0;c[b+136>>2]=v;w=d+(w*284|0)|0;d=b+116|0;v=c[d>>2]|0;nl(v,w,0);v=c[b+136>>2]|0;v=v+ -1|0;d=c[d>>2]|0;u=c[b+144>>2]|0;ol(d,u,v,0);i=m;return w|0}e=k+0|0;k=m+48|0;f=e+92|0;do{c[e>>2]=c[k>>2];e=e+4|0;k=k+4|0}while((e|0)<(f|0));e=s+(u*284|0)+92|0;c[e+0>>2]=c[m+240>>2];c[e+4>>2]=c[m+244>>2];c[e+8>>2]=c[m+248>>2];c[e+12>>2]=c[m+252>>2];e=s+(u*284|0)+108|0;c[e+0>>2]=c[m+224>>2];c[e+4>>2]=c[m+228>>2];c[e+8>>2]=c[m+232>>2];c[e+12>>2]=c[m+236>>2];e=s+(u*284|0)+124|0;c[e+0>>2]=c[m+208>>2];c[e+4>>2]=c[m+212>>2];c[e+8>>2]=c[m+216>>2];c[e+12>>2]=c[m+220>>2];e=s+(u*284|0)+140|0;c[e+0>>2]=c[m+192>>2];c[e+4>>2]=c[m+196>>2];c[e+8>>2]=c[m+200>>2];c[e+12>>2]=c[m+204>>2];s=s+(u*284|0)+156|0;e=s+0|0;k=m+0|0;f=e+48|0;do{c[e>>2]=c[k>>2];e=e+4|0;k=k+4|0}while((e|0)<(f|0));g[s+48>>2]=h;g[s+52>>2]=n;g[s+56>>2]=j;g[s+60>>2]=o;g[s+64>>2]=p;g[s+68>>2]=q;g[s+72>>2]=r;g[s+76>>2]=0.0;g[s+80>>2]=0.0;g[s+84>>2]=0.0;g[s+88>>2]=.10000000149011612;g[s+92>>2]=t;g[s+96>>2]=0.0;g[s+100>>2]=0.0;a[s+104>>0]=l&1;e=s+105|0;k=m+256|0;f=e+23|0;do{a[e>>0]=a[k>>0]|0;e=e+1|0;k=k+1|0}while((e|0)<(f|0));w=c[b+136>>2]|0;d=c[b+144>>2]|0;v=w+1|0;c[b+136>>2]=v;w=d+(w*284|0)|0;d=b+116|0;v=c[d>>2]|0;nl(v,w,0);v=c[b+136>>2]|0;v=v+ -1|0;d=c[d>>2]|0;u=c[b+144>>2]|0;ol(d,u,v,0);i=m;return w|0}function Ph(a){a=a|0;return c[a+136>>2]|0}function Qh(a){a=a|0;return c[a+116>>2]|0}function Rh(a,b){a=a|0;b=b|0;return(c[a+144>>2]|0)+(b*284|0)|0}function Sh(a,b,d){a=a|0;b=+b;d=d|0;g[(c[a+144>>2]|0)+(d*284|0)+256>>2]=b;return}function Th(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;wc[c[(c[a>>2]|0)+24>>2]&63](a,b,d,e);i=f;return}function Uh(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Vh(b){b=b|0;var d=0,e=0,f=0,h=0;d=i;c[4546]=(c[4546]|0)+1;e=Zx(635)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}g[e+164>>2]=1.0;g[e+168>>2]=1.0;g[e+172>>2]=1.0;g[e+176>>2]=0.0;c[e+180>>2]=0;g[e+184>>2]=999999984306749400.0;f=e+188|0;h=e+204|0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[h>>2]=1;c[e+208>>2]=-1;c[e+212>>2]=-1;c[e+216>>2]=1;g[e+220>>2]=0.0;g[e+224>>2]=.5;g[e+228>>2]=0.0;g[e+232>>2]=0.0;c[e+236>>2]=1;c[e+240>>2]=0;g[e+244>>2]=1.0;h=e+248|0;f=e+4|0;c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;g[f>>2]=1.0;f=e+8|0;h=e+24|0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[h>>2]=1.0;h=e+28|0;f=e+44|0;c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;g[f>>2]=1.0;f=e+48|0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[e>>2]=3216;a[e+500>>0]=1;c[e+496>>2]=0;c[e+488>>2]=0;c[e+492>>2]=0;zl(e,b);i=d;return e|0}function Wh(a){a=a|0;return a+4|0}function Xh(a,b){a=a|0;b=b|0;var c=0;c=i;Cl(a,b);i=c;return}function Yh(a,b,c){a=a|0;b=+b;c=+c;g[a+472>>2]=b;g[a+476>>2]=c;return}function Zh(a,b,c){a=a|0;b=+b;c=+c;if(b<0.0){b=0.0}else{b=b>1.0?1.0:b}g[a+444>>2]=b;if(c<0.0){c=0.0}else{c=c>1.0?1.0:c}g[a+448>>2]=c;return}function _h(a,b,c){a=a|0;b=+b;c=c|0;var d=0;d=i;Bl(a,b,c);i=d;return}function $h(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0;d=i;c[a+348>>2]=c[b+0>>2];c[a+352>>2]=c[b+4>>2];c[a+356>>2]=c[b+8>>2];c[a+360>>2]=c[b+12>>2];h=+g[a+344>>2];f=+g[a+352>>2]*h;e=+g[a+356>>2]*h;g[a+560>>2]=+g[a+348>>2]*h;g[a+564>>2]=f;g[a+568>>2]=e;g[a+572>>2]=0.0;i=d;return}function ai(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+g[b+4>>2]*+g[a+548>>2];c=+g[b+8>>2]*+g[a+552>>2];g[a+428>>2]=+g[a+428>>2]+ +g[b>>2]*+g[a+544>>2];g[a+432>>2]=+g[a+432>>2]+d;g[a+436>>2]=+g[a+436>>2]+c;return}function bi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0;d=+g[a+348>>2];f=+g[a+352>>2];h=+g[b+4>>2]*f;i=+g[a+356>>2];j=+g[b+8>>2]*i;g[a+412>>2]=+g[a+412>>2]+ +g[b>>2]*d;g[a+416>>2]=+g[a+416>>2]+h;g[a+420>>2]=+g[a+420>>2]+j;d=+g[b>>2]*d;f=+g[b+4>>2]*f;i=+g[b+8>>2]*i;j=+g[c+4>>2];h=+g[c+8>>2];k=+g[c>>2];e=(h*d-k*i)*+g[a+548>>2];d=(k*f-j*d)*+g[a+552>>2];g[a+428>>2]=+g[a+428>>2]+(j*i-h*f)*+g[a+544>>2];g[a+432>>2]=+g[a+432>>2]+e;g[a+436>>2]=+g[a+436>>2]+d;return}function ci(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0,h=0.0;h=+g[b>>2];f=+g[b+4>>2];e=+g[b+8>>2];d=(+g[a+280>>2]*h+ +g[a+284>>2]*f+ +g[a+288>>2]*e)*+g[a+548>>2];c=(+g[a+296>>2]*h+ +g[a+300>>2]*f+ +g[a+304>>2]*e)*+g[a+552>>2];g[a+328>>2]=+g[a+328>>2]+(+g[a+264>>2]*h+ +g[a+268>>2]*f+ +g[a+272>>2]*e)*+g[a+544>>2];g[a+332>>2]=+g[a+332>>2]+d;g[a+336>>2]=+g[a+336>>2]+c;return}function di(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;ei(a,b,c);i=d;return}function ei(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;d=i;e=+g[a+344>>2];if(!(e!=0.0)){i=d;return}h=+g[a+348>>2];k=+g[a+352>>2];m=+g[a+356>>2];n=+g[b+4>>2]*k*e;j=+g[b+8>>2]*m*e;g[a+312>>2]=+g[a+312>>2]+ +g[b>>2]*h*e;g[a+316>>2]=+g[a+316>>2]+n;g[a+320>>2]=+g[a+320>>2]+j;h=+g[b>>2]*h;k=+g[b+4>>2]*k;m=+g[b+8>>2]*m;j=+g[c+4>>2];n=+g[c+8>>2];l=+g[c>>2];f=(+g[a+280>>2]*(j*m-n*k)+ +g[a+284>>2]*(n*h-l*m)+ +g[a+288>>2]*(l*k-j*h))*+g[a+548>>2];e=(+g[a+296>>2]*(j*m-n*k)+ +g[a+300>>2]*(n*h-l*m)+ +g[a+304>>2]*(l*k-j*h))*+g[a+552>>2];g[a+328>>2]=+g[a+328>>2]+(+g[a+264>>2]*(j*m-n*k)+ +g[a+268>>2]*(n*h-l*m)+ +g[a+272>>2]*(l*k-j*h))*+g[a+544>>2];g[a+332>>2]=+g[a+332>>2]+f;g[a+336>>2]=+g[a+336>>2]+e;i=d;return}function fi(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;n=+g[a+4>>2];h=+g[a+396>>2];m=+g[a+8>>2];e=+g[a+400>>2];l=+g[a+12>>2];c=+g[a+404>>2];k=+g[a+20>>2];j=+g[a+24>>2];i=+g[a+28>>2];f=+g[a+36>>2];d=+g[a+40>>2];b=+g[a+44>>2];g[a+264>>2]=n*n*h+m*m*e+l*l*c;g[a+268>>2]=n*h*k+m*e*j+l*c*i;g[a+272>>2]=n*h*f+m*e*d+l*c*b;g[a+276>>2]=0.0;g[a+280>>2]=n*h*k+m*e*j+l*c*i;g[a+284>>2]=k*h*k+j*e*j+i*c*i;g[a+288>>2]=h*k*f+e*j*d+c*i*b;g[a+292>>2]=0.0;g[a+296>>2]=n*h*f+m*e*d+l*c*b;g[a+300>>2]=k*h*f+j*e*d+i*c*b;g[a+304>>2]=f*h*f+d*e*d+b*c*b;g[a+308>>2]=0.0;return}function gi(a){a=a|0;return a+312|0}function hi(a){a=a|0;return a+328|0}function ii(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+260>>2]=(c[a+260>>2]|0)+1;c[a+312>>2]=c[b+0>>2];c[a+316>>2]=c[b+4>>2];c[a+320>>2]=c[b+8>>2];c[a+324>>2]=c[b+12>>2];i=d;return}function ji(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+260>>2]=(c[a+260>>2]|0)+1;c[a+328>>2]=c[b+0>>2];c[a+332>>2]=c[b+4>>2];c[a+336>>2]=c[b+8>>2];c[a+340>>2]=c[b+12>>2];i=d;return}function ki(a){a=a|0;return c[a+480>>2]|0}function li(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+260>>2]=(c[a+260>>2]|0)+1;c[a+544>>2]=c[b+0>>2];c[a+548>>2]=c[b+4>>2];c[a+552>>2]=c[b+8>>2];c[a+556>>2]=c[b+12>>2];i=d;return}function mi(a,b){a=a|0;b=b|0;if((c[b+236>>2]&2|0)==0){b=0}return b|0}function ni(a){a=a|0;return c[a+192>>2]|0}function oi(a,b){a=a|0;b=+b;g[a+184>>2]=b;return}function pi(a,b){a=a|0;b=b|0;var d=0;d=i;if(((c[a+216>>2]|0)+ -4|0)>>>0<2){i=d;return}c[a+216>>2]=b;i=d;return}function qi(a,b){a=a|0;b=b|0;c[a+216>>2]=b;return}function ri(a){a=a|0;var b=0;b=i;if((c[a+204>>2]&3|0)!=0){i=b;return}if(!(((c[a+216>>2]|0)+ -4|0)>>>0<2)){c[a+216>>2]=1}g[a+220>>2]=0.0;i=b;return}function si(a,b){a=a|0;b=b|0;var d=0;d=i;if(!b?(c[a+204>>2]&3|0)!=0:0){i=d;return}if(!(((c[a+216>>2]|0)+ -4|0)>>>0<2)){c[a+216>>2]=1}g[a+220>>2]=0.0;i=d;return}function ti(a){a=a|0;a=c[a+216>>2]|0;return((a|0)==2?0:(a|0)!=5)|0}function ui(a,b){a=a|0;b=+b;c[a+260>>2]=(c[a+260>>2]|0)+1;g[a+228>>2]=b;return}function vi(a,b){a=a|0;b=+b;c[a+260>>2]=(c[a+260>>2]|0)+1;g[a+224>>2]=b;return}function wi(a){a=a|0;return a+4|0}function xi(a){a=a|0;return c[a+204>>2]|0}function yi(a,b){a=a|0;b=b|0;c[a+204>>2]=b;return}function zi(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+8>>2]&255](a);i=b;return}function Ai(a){a=a|0;var b=0,d=0;b=i;c[4546]=(c[4546]|0)+1;d=Zx(75)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}Lq(d,a);c[d>>2]=9696;c[d+52>>2]=0;i=b;return d|0}function Bi(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function Ci(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function Di(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Ei(a){a=a|0;var b=0,d=0;b=i;c[4546]=(c[4546]|0)+1;d=Zx(75)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}Lq(d,a);c[d>>2]=9800;c[d+52>>2]=2;i=b;return d|0}function Fi(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function Gi(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function Hi(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Ii(){var a=0,b=0,d=0,e=0;a=i;e=Zx(64)|0;a:do{if((e|0)==0){while(1){b=c[4700]|0;c[4700]=b+0;if((b|0)==0){break}tc[b&3]();e=Zx(64)|0;if((e|0)!=0){break a}}e=Cb(4)|0;c[e>>2]=18640;Ab(e|0,18688,235)}}while(0);b=e+48|0;d=e;do{d=d+16|0}while((d|0)!=(b|0));i=a;return e|0}function Ji(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;e=Zx(64)|0;a:do{if((e|0)==0){while(1){e=c[4700]|0;c[4700]=e+0;if((e|0)==0){break}tc[e&3]();e=Zx(64)|0;if((e|0)!=0){break a}}g=Cb(4)|0;c[g>>2]=18640;Ab(g|0,18688,235)}}while(0);f=e+48|0;g=e;do{g=g+16|0}while((g|0)!=(f|0));nj(e,a);c[f+0>>2]=c[b+0>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];i=d;return e|0}function Ki(a){a=a|0;var b=0;b=i;Li(a);i=b;return}function Li(a){a=a|0;var b=0;b=i;g[a>>2]=1.0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;g[a+20>>2]=1.0;c[a+24>>2]=0;c[a+28>>2]=0;c[a+32>>2]=0;c[a+36>>2]=0;g[a+40>>2]=1.0;g[a+44>>2]=0.0;c[a+48>>2]=0;c[a+52>>2]=0;c[a+56>>2]=0;c[a+60>>2]=0;i=b;return}function Mi(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+48>>2]=c[b+0>>2];c[a+52>>2]=c[b+4>>2];c[a+56>>2]=c[b+8>>2];c[a+60>>2]=c[b+12>>2];i=d;return}function Ni(a,b){a=a|0;b=b|0;var c=0;c=i;nj(a,b);i=c;return}function Oi(a){a=a|0;return a+48|0}function Pi(b){b=b|0;var d=0;d=i;i=i+16|0;if((a[48]|0)==0?(Ya(48)|0)!=0:0){cb(48)}mj(b,d);c[32>>2]=c[d+0>>2];c[36>>2]=c[d+4>>2];c[40>>2]=c[d+8>>2];c[44>>2]=c[d+12>>2];i=d;return 32}function Qi(a){a=a|0;return a|0}function Ri(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Si(a){a=a|0;return c[a+24>>2]|0}function Ti(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;wc[c[(c[a>>2]|0)+32>>2]&63](a,b,d,e);i=f;return}function Ui(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function Vi(a){a=a|0;return+(+g[a>>2])}function Wi(a){a=a|0;return+(+g[a+4>>2])}function Xi(a){a=a|0;return+(+g[a+8>>2])}function Yi(a){a=a|0;return+(+g[a+12>>2])}function Zi(a,b){a=a|0;b=+b;g[a>>2]=b;return}function _i(a,b){a=a|0;b=+b;g[a+4>>2]=b;return}function $i(a,b){a=a|0;b=+b;g[a+8>>2]=b;return}function aj(a,b){a=a|0;b=+b;g[a+12>>2]=b;return}function bj(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function cj(a){a=a|0;var b=0,d=0;b=i;c[4546]=(c[4546]|0)+1;d=Zx(75)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}Lq(d,a);i=b;return d|0}function dj(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+24>>2]&127](a,b);i=d;return}function ej(a,b,d){a=a|0;b=+b;d=d|0;var e=0;e=i;Wb[c[(c[a>>2]|0)+32>>2]&15](a,b,d);i=e;return}function fj(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function gj(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}Nb[c[(c[a>>2]|0)+4>>2]&255](a);i=b;return}function hj(a){a=a|0;return}function ij(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function jj(a){a=a|0;return}function kj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return}function lj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return}function mj(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0,f=0.0,h=0,j=0.0,k=0,l=0;c=i;i=i+16|0;f=+g[a>>2];e=+g[a+20>>2];d=+g[a+40>>2];if(f+e+d>0.0){f=+Q(+(f+e+d+1.0));g[c+12>>2]=f*.5;j=(+g[a+36>>2]- +g[a+24>>2])*(.5/f);g[c>>2]=j;d=(+g[a+8>>2]- +g[a+32>>2])*(.5/f);g[c+4>>2]=d;e=(+g[a+16>>2]- +g[a+4>>2])*(.5/f);g[c+8>>2]=e;f=f*.5;g[b>>2]=j;h=b+4|0;g[h>>2]=d;h=b+8|0;g[h>>2]=e;h=b+12|0;g[h>>2]=f;i=c;return}if(f>>0)%3|0;k=((h+2|0)>>>0)%3|0;d=+Q(+(+g[a+(h<<4)+(h<<2)>>2]- +g[a+(l<<4)+(l<<2)>>2]- +g[a+(k<<4)+(k<<2)>>2]+1.0));g[c+(h<<2)>>2]=d*.5;g[c+12>>2]=(+g[a+(k<<4)+(l<<2)>>2]- +g[a+(l<<4)+(k<<2)>>2])*(.5/d);g[c+(l<<2)>>2]=(+g[a+(l<<4)+(h<<2)>>2]+ +g[a+(h<<4)+(l<<2)>>2])*(.5/d);g[c+(k<<2)>>2]=(+g[a+(k<<4)+(h<<2)>>2]+ +g[a+(h<<4)+(k<<2)>>2])*(.5/d);d=+g[c>>2];e=+g[c+4>>2];f=+g[c+8>>2];j=+g[c+12>>2];g[b>>2]=d;h=b+4|0;g[h>>2]=e;h=b+8|0;g[h>>2]=f;h=b+12|0;g[h>>2]=j;i=c;return}function nj(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;f=+g[b>>2];d=+g[b+4>>2];j=+g[b+8>>2];h=+g[b+12>>2];e=f*(2.0/(f*f+d*d+j*j+h*h));c=d*(2.0/(f*f+d*d+j*j+h*h));i=j*(2.0/(f*f+d*d+j*j+h*h));g[a>>2]=1.0-(d*c+j*i);g[a+4>>2]=f*c-h*i;g[a+8>>2]=f*i+h*c;g[a+12>>2]=0.0;g[a+16>>2]=f*c+h*i;g[a+20>>2]=1.0-(f*e+j*i);g[a+24>>2]=d*i-h*e;g[a+28>>2]=0.0;g[a+32>>2]=f*i-h*c;g[a+36>>2]=d*i+h*e;g[a+40>>2]=1.0-(f*e+d*c);g[a+44>>2]=0.0;return}function oj(a){a=a|0;return}function pj(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function qj(a,c){a=a|0;c=c|0;var d=0;d=i;if((b[c+4>>1]&b[a+14>>1])<<16>>16==0){c=0;i=d;return c|0}c=(b[a+12>>1]&b[c+6>>1])<<16>>16!=0;i=d;return c|0}function rj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0;g[a+4>>2]=+g[b+24>>2];e=c[b>>2]|0;c[a+8>>2]=e;if(d){c[a+52>>2]=c[b+8>>2];c[a+56>>2]=c[b+12>>2];c[a+60>>2]=c[b+16>>2];c[a+64>>2]=c[b+20>>2]}else{k=+g[b+8>>2];j=+g[b+12>>2];i=+g[b+16>>2];h=+g[e+20>>2]*k+ +g[e+24>>2]*j+ +g[e+28>>2]*i;f=+g[e+36>>2]*k+ +g[e+40>>2]*j+ +g[e+44>>2]*i;g[a+52>>2]=+g[e+4>>2]*k+ +g[e+8>>2]*j+ +g[e+12>>2]*i;g[a+56>>2]=h;g[a+60>>2]=f;g[a+64>>2]=0.0}k=+g[b+24>>2];g[a+68>>2]=(1.0-k)*+g[a+20>>2]+ +g[a+36>>2]*k;g[a+72>>2]=(1.0-k)*+g[a+24>>2]+k*+g[a+40>>2];g[a+76>>2]=(1.0-k)*+g[a+28>>2]+k*+g[a+44>>2];return+(+g[b+24>>2])}function sj(a,b,c,d,e,f,h,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0;n=i;m=a;do{m=m+16|0}while((m|0)!=(a+48|0));g[a>>2]=+g[b>>2];g[a+4>>2]=+g[c>>2];g[a+8>>2]=+g[d>>2];g[a+12>>2]=0.0;g[a+16>>2]=+g[e>>2];g[a+20>>2]=+g[f>>2];g[a+24>>2]=+g[h>>2];g[a+28>>2]=0.0;g[a+32>>2]=+g[j>>2];g[a+36>>2]=+g[k>>2];g[a+40>>2]=+g[l>>2];g[a+44>>2]=0.0;i=n;return}function tj(a){a=a|0;return}function uj(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function vj(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,j=0,k=0.0,l=0.0;d=i;i=i+176|0;sj(d+128|0,a+68|0,a+84|0,a+100|0,a+72|0,a+88|0,a+104|0,a+76|0,a+92|0,a+108|0);l=-+g[a+116>>2];k=-+g[a+120>>2];h=-+g[a+124>>2];e=+g[d+128>>2]*l+ +g[d+132>>2]*k+ +g[d+136>>2]*h;f=+g[d+144>>2]*l+ +g[d+148>>2]*k+ +g[d+152>>2]*h;h=+g[d+160>>2]*l+ +g[d+164>>2]*k+ +g[d+168>>2]*h;j=d;do{j=j+16|0}while((j|0)!=(d+48|0));c[d+0>>2]=c[d+128>>2];c[d+4>>2]=c[d+132>>2];c[d+8>>2]=c[d+136>>2];c[d+12>>2]=c[d+140>>2];c[d+16>>2]=c[d+144>>2];c[d+20>>2]=c[d+148>>2];c[d+24>>2]=c[d+152>>2];c[d+28>>2]=c[d+156>>2];c[d+32>>2]=c[d+160>>2];c[d+36>>2]=c[d+164>>2];c[d+40>>2]=c[d+168>>2];c[d+44>>2]=c[d+172>>2];g[d+48>>2]=e;g[d+52>>2]=f;g[d+56>>2]=h;g[d+60>>2]=0.0;xj(d+64|0,d,a+4|0);c[b+0>>2]=c[d+64>>2];c[b+4>>2]=c[d+68>>2];c[b+8>>2]=c[d+72>>2];c[b+12>>2]=c[d+76>>2];c[b+16>>2]=c[d+80>>2];c[b+20>>2]=c[d+84>>2];c[b+24>>2]=c[d+88>>2];c[b+28>>2]=c[d+92>>2];c[b+32>>2]=c[d+96>>2];c[b+36>>2]=c[d+100>>2];c[b+40>>2]=c[d+104>>2];c[b+44>>2]=c[d+108>>2];c[b+48>>2]=c[d+112>>2];c[b+52>>2]=c[d+116>>2];c[b+56>>2]=c[d+120>>2];c[b+60>>2]=c[d+124>>2];i=d;return}function wj(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+64|0;xj(d,b,a+68|0);c[a+4>>2]=c[d+0>>2];c[a+8>>2]=c[d+4>>2];c[a+12>>2]=c[d+8>>2];c[a+16>>2]=c[d+12>>2];c[a+20>>2]=c[d+16>>2];c[a+24>>2]=c[d+20>>2];c[a+28>>2]=c[d+24>>2];c[a+32>>2]=c[d+28>>2];c[a+36>>2]=c[d+32>>2];c[a+40>>2]=c[d+36>>2];c[a+44>>2]=c[d+40>>2];c[a+48>>2]=c[d+44>>2];c[a+52>>2]=c[d+48>>2];c[a+56>>2]=c[d+52>>2];c[a+60>>2]=c[d+56>>2];c[a+64>>2]=c[d+60>>2];i=d;return}function xj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;e=i;i=i+96|0;s=+g[d>>2];h=+g[b>>2];r=+g[d+16>>2];j=+g[b+4>>2];q=+g[d+32>>2];l=+g[b+8>>2];g[e+80>>2]=s*h+r*j+q*l;p=+g[d+4>>2];o=+g[d+20>>2];n=+g[d+36>>2];g[e+76>>2]=p*h+o*j+n*l;m=+g[d+8>>2];f=+g[d+24>>2];k=+g[d+40>>2];g[e+72>>2]=m*h+f*j+k*l;l=+g[b+16>>2];j=+g[b+20>>2];h=+g[b+24>>2];g[e+68>>2]=s*l+r*j+q*h;g[e+64>>2]=p*l+o*j+n*h;g[e+60>>2]=m*l+f*j+k*h;h=+g[b+32>>2];j=+g[b+36>>2];l=+g[b+40>>2];g[e+56>>2]=s*h+r*j+q*l;g[e+52>>2]=p*h+o*j+n*l;g[e+48>>2]=m*h+f*j+k*l;sj(e,e+80|0,e+76|0,e+72|0,e+68|0,e+64|0,e+60|0,e+56|0,e+52|0,e+48|0);l=+g[d+48>>2];k=+g[d+52>>2];j=+g[d+56>>2];f=l*+g[b>>2]+k*+g[b+4>>2]+j*+g[b+8>>2]+ +g[b+48>>2];h=l*+g[b+16>>2]+k*+g[b+20>>2]+j*+g[b+24>>2]+ +g[b+52>>2];j=l*+g[b+32>>2]+k*+g[b+36>>2]+j*+g[b+40>>2]+ +g[b+56>>2];b=a;do{b=b+16|0}while((b|0)!=(a+48|0));c[a+0>>2]=c[e+0>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];c[a+16>>2]=c[e+16>>2];c[a+20>>2]=c[e+20>>2];c[a+24>>2]=c[e+24>>2];c[a+28>>2]=c[e+28>>2];c[a+32>>2]=c[e+32>>2];c[a+36>>2]=c[e+36>>2];c[a+40>>2]=c[e+40>>2];c[a+44>>2]=c[e+44>>2];g[a+48>>2]=f;g[a+52>>2]=h;g[a+56>>2]=j;g[a+60>>2]=0.0;i=e;return}function yj(a){a=a|0;return}function zj(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Aj(a,c){a=a|0;c=c|0;var d=0;d=i;if((b[c+4>>1]&b[a+6>>1])<<16>>16==0){c=0;i=d;return c|0}c=(b[a+4>>1]&b[c+6>>1])<<16>>16!=0;i=d;return c|0}function Bj(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0.0,k=0;k=i;j=+eb(696,a|0,b|0,c|0,d|0,e|0,f|0,g|0,h|0);i=k;return+j}function Cj(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0.0,k=0,l=0;e=i;if((a[b+527>>0]|0)!=0){c[d>>2]=0;c[d+4>>2]=0;i=e;return}c[d>>2]=3;c[d+4>>2]=3;l=c[b+28>>2]|0;k=c[b+32>>2]|0;Dj(b,l+4|0,k+4|0,l+264|0,k+264|0);if(((a[b+526>>0]|0)!=0?(f=c[d>>2]|0,c[d>>2]=f+1,h=c[d+4>>2]|0,c[d+4>>2]=h+ -1,j=+g[b+456>>2],+g[b+444>>2]>2]>2]=f+2;c[d+4>>2]=h+ -2}if((a[b+525>>0]|0)==0){i=e;return}c[d>>2]=(c[d>>2]|0)+1;c[d+4>>2]=(c[d+4>>2]|0)+ -1;i=e;return}function Dj(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,R=0.0,U=0.0,W=0.0,X=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0;j=i;i=i+272|0;g[b+504>>2]=0.0;g[b+500>>2]=0.0;a[b+525>>0]=0;a[b+526>>0]=0;if((a[b+552>>0]|0)!=0?(a[b+527>>0]|0)==0:0){ia=+g[b+556>>2];ba=+g[b+560>>2];ja=+g[b+564>>2];ca=+g[b+568>>2];ea=ia*(2.0/(ia*ia+ba*ba+ja*ja+ca*ca));la=ba*(2.0/(ia*ia+ba*ba+ja*ja+ca*ca));fa=ja*(2.0/(ia*ia+ba*ba+ja*ja+ca*ca));xj(j+208|0,d,b+300|0);xj(j+144|0,e,b+364|0);H=+g[j+144>>2];J=+g[j+148>>2];m=+g[j+152>>2];W=(1.0-(ba*la+ja*fa))*H+(ia*la+ca*fa)*J+(ia*fa-ca*la)*m;X=(ia*la-ca*fa)*H+(1.0-(ia*ea+ja*fa))*J+(ba*fa+ca*ea)*m;Z=(ia*fa+ca*la)*H+(ba*fa-ca*ea)*J+(1.0-(ia*ea+ba*la))*m;K=+g[j+160>>2];L=+g[j+164>>2];l=+g[j+168>>2];_=(1.0-(ba*la+ja*fa))*K+(ia*la+ca*fa)*L+(ia*fa-ca*la)*l;$=(ia*la-ca*fa)*K+(1.0-(ia*ea+ja*fa))*L+(ba*fa+ca*ea)*l;aa=(ia*fa+ca*la)*K+(ba*fa-ca*ea)*L+(1.0-(ia*ea+ba*la))*l;M=+g[j+176>>2];N=+g[j+180>>2];O=+g[j+184>>2];ha=(1.0-(ba*la+ja*fa))*M+(ia*la+ca*fa)*N+(ia*fa-ca*la)*O;ja=(ia*la-ca*fa)*M+(1.0-(ia*ea+ja*fa))*N+(ba*fa+ca*ea)*O;la=(ia*fa+ca*la)*M+(ba*fa-ca*ea)*N+(1.0-(ia*ea+ba*la))*O;ba=+g[j+208>>2];ea=+g[j+224>>2];ia=+g[j+240>>2];ca=+g[j+212>>2];fa=+g[j+228>>2];ka=+g[j+244>>2];da=+g[j+216>>2];ga=+g[j+232>>2];ma=+g[j+248>>2];R=-+g[j+256>>2];U=-+g[j+260>>2];k=-+g[j+264>>2];m=H*0.0+J*0.0+m*0.0+ +g[j+192>>2]+(Z*(da*R+ga*U+ma*k)+(W*(ba*R+ea*U+ia*k)+X*(ca*R+fa*U+ka*k)));l=K*0.0+L*0.0+l*0.0+ +g[j+196>>2]+(aa*(da*R+ga*U+ma*k)+(_*(ba*R+ea*U+ia*k)+$*(ca*R+fa*U+ka*k)));k=M*0.0+N*0.0+O*0.0+ +g[j+200>>2]+(la*(da*R+ga*U+ma*k)+(ha*(ba*R+ea*U+ia*k)+ja*(ca*R+fa*U+ka*k)));g[j+80>>2]=W*ba+X*ca+Z*da;g[j+84>>2]=W*ea+X*fa+Z*ga;g[j+88>>2]=W*ia+X*ka+Z*ma;g[j+92>>2]=0.0;g[j+96>>2]=_*ba+$*ca+aa*da;g[j+100>>2]=_*ea+$*fa+aa*ga;g[j+104>>2]=_*ia+$*ka+aa*ma;g[j+108>>2]=0.0;g[j+112>>2]=ha*ba+ja*ca+la*da;g[j+116>>2]=ha*ea+ja*fa+la*ga;g[j+120>>2]=ha*ia+ja*ka+la*ma;g[j+124>>2]=0.0;g[j+128>>2]=m;g[j+132>>2]=l;g[j+136>>2]=k;g[j+140>>2]=0.0;mj(j+80|0,j+64|0);k=+g[j+64>>2];l=+g[j+68>>2];m=+g[j+72>>2];if(+P(+(k*k+l*l+m*m))<1.1920928955078125e-7){i=j;return}g[b+472>>2]=0.0;ma=1.0/+Q(+(k*k+l*l+m*m));g[b+460>>2]=k*ma;g[b+464>>2]=l*ma;g[b+468>>2]=m*ma;ma=+g[j+76>>2];ma=ma<-1.0?-1.0:ma;ma=+V(+(ma>1.0?1.0:ma))*2.0;g[b+504>>2]=ma;if(+P(+ma)<1.1920928955078125e-7){i=j;return}a[b+526>>0]=1;i=j;return}mj(d,j+48|0);mj(b+300|0,j+32|0);B=+g[j+60>>2];x=+g[j+32>>2];D=+g[j+48>>2];z=+g[j+44>>2];A=+g[j+52>>2];v=+g[j+40>>2];y=+g[j+56>>2];C=+g[j+36>>2];mj(e,j+16|0);mj(b+364|0,j);p=+g[j+28>>2];l=+g[j>>2];r=+g[j+16>>2];n=+g[j+12>>2];o=+g[j+20>>2];s=+g[j+8>>2];m=+g[j+24>>2];q=+g[j+4>>2];k=-(p*l+r*n+o*s-m*q);w=-(l*m+(n*o+p*q)-r*s);u=-(p*s+n*m+r*q-l*o);O=(B*x+D*z+A*v-y*C)*(p*n-l*r-o*q-s*m)+(B*z-x*D-A*C-v*y)*k+(B*v+z*y+D*C-x*A)*w-(x*y+(z*A+B*C)-D*v)*u;N=(B*x+D*z+A*v-y*C)*u+((x*y+(z*A+B*C)-D*v)*(p*n-l*r-o*q-s*m)+(B*z-x*D-A*C-v*y)*w)-(B*v+z*y+D*C-x*A)*k;H=(x*y+(z*A+B*C)-D*v)*k+((B*v+z*y+D*C-x*A)*(p*n-l*r-o*q-s*m)+(B*z-x*D-A*C-v*y)*u)-(B*x+D*z+A*v-y*C)*w;R=(B*z-x*D-A*C-v*y)*(p*n-l*r-o*q-s*m)-(B*x+D*z+A*v-y*C)*k-(x*y+(z*A+B*C)-D*v)*w-(B*v+z*y+D*C-x*A)*u;E=-O-N*0.0-H*0.0;G=(H+R*0.0-O*0.0)*-H+(R*(R+N*0.0-H*0.0)+E*-O)-(R*0.0+O*0.0-N)*-N;L=(R*0.0+O*0.0-N)*-O+(R*(H+R*0.0-O*0.0)+E*-N)-(R+N*0.0-H*0.0)*-H;E=(R+N*0.0-H*0.0)*-N+(R*(R*0.0+O*0.0-N)+E*-H)-(H+R*0.0-O*0.0)*-O;K=1.0/+Q(+(E*E+(G*G+L*L)));if(K*E*0.0+(K*L*0.0+K*G)<-.9999998807907104){if(+P(0.0)>.7071067690849304){F=0.0;E=t;M=t;G=0.0}else{F=-0.0;E=1.0;M=0.0;G=0.0}}else{ma=+Q(+((K*E*0.0+(K*L*0.0+K*G)+1.0)*2.0));F=(K*E*0.0-K*L*0.0)*(1.0/ma);E=(K*G*0.0-K*E)*(1.0/ma);M=(K*L-K*G*0.0)*(1.0/ma);G=ma*.5}U=1.0/+Q(+(G*G+(M*M+(E*E+F*F))));K=F*U;L=E*U;M=M*U;U=G*U;ma=1.0/+Q(+((R*U-O*-K-N*-L-H*-M)*(R*U-O*-K-N*-L-H*-M)+((N*-K+(H*U+R*-M)-O*-L)*(N*-K+(H*U+R*-M)-O*-L)+((H*-L+(O*U+R*-K)-N*-M)*(H*-L+(O*U+R*-K)-N*-M)+(O*-M+(N*U+R*-L)-H*-K)*(O*-M+(N*U+R*-L)-H*-K)))));G=ma*(H*-L+(O*U+R*-K)-N*-M);F=ma*(O*-M+(N*U+R*-L)-H*-K);E=ma*(N*-K+(H*U+R*-M)-O*-L);H=ma*(R*U-O*-K-N*-L-H*-M);N=+g[b+444>>2];O=+g[b+456>>2];if(N>=O?(J=+g[b+448>>2],J>=O):0){O=U<-1.0?-1.0:U;O=+V(+(O>1.0?1.0:O))*2.0;if(O>1.1920928955078125e-7){U=1.0/+Q(+(M*M+(K*K+L*L)));if(+P(+(L*U))>1.1920928955078125e-7){R=+Q(+((M*U*M*U/(L*U*L*U)+1.0)/(1.0/(J*J)+M*U*M*U/(L*U*L*U)/(N*N))));K=K*U;L=L*U;M=M*U}else{R=N;K=K*U;L=L*U;M=M*U}}else{R=0.0;K=0.0;L=0.0;M=0.0}W=+g[b+428>>2];U=R*W;if(O>U){a[b+526>>0]=1;if(O>2]=R;g[b+504>>2]=O-U;if(+P(+L)>1.1920928955078125e-7){J=+P(+(L*-M/L*(J/N)));if(!(M<-0.0)){J=-J}M=1.0/+Q(+(L*L+K*K+J*J));K=K*M;L=L*M;M=-(J*M)}la=-K;ka=-L;ja=-M;ha=(l*m+(n*o+p*q)-r*s)*ja+(p*n-l*r-o*q-s*m)*la-(p*s+n*m+r*q-l*o)*ka;ma=(p*n-l*r-o*q-s*m)*ka+(p*s+n*m+r*q-l*o)*la-(p*l+r*n+o*s-m*q)*ja;ia=(p*n-l*r-o*q-s*m)*ja+(p*l+r*n+o*s-m*q)*ka-(l*m+(n*o+p*q)-r*s)*la;ja=-((p*l+r*n+o*s-m*q)*la)-(l*m+(n*o+p*q)-r*s)*ka-(p*s+n*m+r*q-l*o)*ja;ka=ma*u+((p*n-l*r-o*q-s*m)*ha+ja*k)-ia*w;la=ia*k+((p*n-l*r-o*q-s*m)*ma+ja*w)-ha*u;ma=ha*w+((p*n-l*r-o*q-s*m)*ia+ja*u)-ma*k;g[b+460>>2]=ka;g[b+464>>2]=la;g[b+468>>2]=ma;g[b+472>>2]=0.0;c[b+536>>2]=0;c[b+540>>2]=0;c[b+544>>2]=0;c[b+548>>2]=0;g[b+492>>2]=1.0/(ka*(+g[f>>2]*ka+ +g[f+16>>2]*la+ +g[f+32>>2]*ma)+la*(ka*+g[f+4>>2]+la*+g[f+20>>2]+ma*+g[f+36>>2])+ma*(ka*+g[f+8>>2]+la*+g[f+24>>2]+ma*+g[f+40>>2])+(ka*(ka*+g[h>>2]+la*+g[h+16>>2]+ma*+g[h+32>>2])+la*(ka*+g[h+4>>2]+la*+g[h+20>>2]+ma*+g[h+36>>2])+ma*(ka*+g[h+8>>2]+la*+g[h+24>>2]+ma*+g[h+40>>2])))}}else{I=23}a:do{if((I|0)==23){J=+g[b+300>>2];R=+g[b+316>>2];N=+g[b+332>>2];X=+g[d>>2];Z=+g[d+4>>2];W=+g[d+8>>2];M=+g[d+16>>2];L=+g[d+20>>2];K=+g[d+24>>2];U=+g[d+32>>2];O=+g[d+36>>2];da=+g[d+40>>2];ga=+g[b+304>>2];fa=+g[b+320>>2];ea=+g[b+336>>2];aa=+g[b+308>>2];$=+g[b+324>>2];_=+g[b+340>>2];la=+g[b+364>>2];ka=+g[b+380>>2];ha=+g[b+396>>2];ba=la*+g[e>>2]+ka*+g[e+4>>2]+ha*+g[e+8>>2];ca=la*+g[e+16>>2]+ka*+g[e+20>>2]+ha*+g[e+24>>2];ha=la*+g[e+32>>2]+ka*+g[e+36>>2]+ha*+g[e+40>>2];ka=(J*X+R*Z+N*W)*ba+(J*M+R*L+N*K)*ca+(J*U+R*O+N*da)*ha;la=(X*ga+Z*fa+W*ea)*ba+(M*ga+L*fa+K*ea)*ca+(U*ga+O*fa+da*ea)*ha;ia=(X*aa+Z*$+W*_)*ba+(M*aa+L*$+K*_)*ca+(U*aa+O*$+da*_)*ha;ja=+g[b+444>>2];ma=+g[b+456>>2];do{if(ja>2];if(ja>0]=1;g[b+460>>2]=-((J*U+R*O+N*da)*ca-(J*M+R*L+N*K)*ha);g[b+464>>2]=-((J*X+R*Z+N*W)*ha-(J*U+R*O+N*da)*ba);g[b+468>>2]=-((J*M+R*L+N*K)*ba-(J*X+R*Z+N*W)*ca);g[b+472>>2]=0.0;break a}if(+P(+ka)<1.1920928955078125e-7?+P(+ia)<1.1920928955078125e-7:0){break}a[b+526>>0]=1;if(ja>=ma){la=+Y(+ia,+ka);if(la>ja){ka=+S(+ja);la=0.0;ia=+T(+ja);break}if(la<-ja){ka=+S(+ja);la=0.0;ia=-+T(+ja)}else{la=0.0}}}else{if(+P(+ka)<1.1920928955078125e-7?+P(+la)<1.1920928955078125e-7:0){break}a[b+526>>0]=1;if(ja>=ma){ia=+Y(+la,+ka);if(ia>ja){ka=+S(+ja);la=+T(+ja);ia=0.0;break}if(ia<-ja){ka=+S(+ja);la=-+T(+ja);ia=0.0}else{ia=0.0}}}}while(0);ja=(X*aa+Z*$+W*_)*ia+((X*ga+Z*fa+W*ea)*la+(J*X+R*Z+N*W)*ka);Z=(M*aa+L*$+K*_)*ia+((M*ga+L*fa+K*ea)*la+(J*M+R*L+N*K)*ka);ka=(U*aa+O*$+da*_)*ia+((U*ga+O*fa+da*ea)*la+(J*U+R*O+N*da)*ka);la=1.0/+Q(+(ka*ka+(ja*ja+Z*Z)));g[b+472>>2]=0.0;ma=+Q(+((ca*la*ka-ha*la*Z)*(ca*la*ka-ha*la*Z)+(ha*la*ja-ba*la*ka)*(ha*la*ja-ba*la*ka)+(ba*la*Z-ca*la*ja)*(ba*la*Z-ca*la*ja)));g[b+504>>2]=ma;g[b+460>>2]=-((ca*la*ka-ha*la*Z)*(1.0/ma));g[b+464>>2]=-((ha*la*ja-ba*la*ka)*(1.0/ma));g[b+468>>2]=-((ba*la*Z-ca*la*ja)*(1.0/ma))}}while(0);J=+g[b+452>>2];if(!(J>=0.0)){g[b+512>>2]=0.0;i=j;return}K=H<-1.0?-1.0:H;K=+V(+(K>1.0?1.0:K))*2.0;if(K>3.1415927410125732){H=H>1.0?-1.0:-H;H=+V(+(H>1.0?1.0:H))*2.0;G=-G;F=-F;E=-E}else{H=K}g[b+512>>2]=H;if(H>1.1920928955078125e-7){ma=1.0/+Q(+(E*E+(F*F+G*G)));G=G*ma;F=F*ma;E=E*ma}L=+g[b+428>>2];if(H>J*L){a[b+525>>0]=1;K=H-J*L;if(H>2]=H;g[b+508>>2]=K;la=-G;ka=-F;ja=-E;ha=(l*m+(n*o+p*q)-r*s)*ja+(p*n-l*r-o*q-s*m)*la-(p*s+n*m+r*q-l*o)*ka;ma=(p*n-l*r-o*q-s*m)*ka+(p*s+n*m+r*q-l*o)*la-(p*l+r*n+o*s-m*q)*ja;ia=(p*n-l*r-o*q-s*m)*ja+(p*l+r*n+o*s-m*q)*ka-(l*m+(n*o+p*q)-r*s)*la;ja=-((p*l+r*n+o*s-m*q)*la)-(l*m+(n*o+p*q)-r*s)*ka-(p*s+n*m+r*q-l*o)*ja;ka=ma*u+((p*n-l*r-o*q-s*m)*ha+ja*k)-ia*w;la=ia*k+((p*n-l*r-o*q-s*m)*ma+ja*w)-ha*u;ma=ha*w+((p*n-l*r-o*q-s*m)*ia+ja*u)-ma*k;g[b+476>>2]=ka;g[b+480>>2]=la;g[b+484>>2]=ma;g[b+488>>2]=0.0;g[b+496>>2]=1.0/(ka*(+g[f>>2]*ka+ +g[f+16>>2]*la+ +g[f+32>>2]*ma)+la*(ka*+g[f+4>>2]+la*+g[f+20>>2]+ma*+g[f+36>>2])+ma*(ka*+g[f+8>>2]+la*+g[f+24>>2]+ma*+g[f+40>>2])+(ka*(ka*+g[h>>2]+la*+g[h+16>>2]+ma*+g[h+32>>2])+la*(ka*+g[h+4>>2]+la*+g[h+20>>2]+ma*+g[h+36>>2])+ma*(ka*+g[h+8>>2]+la*+g[h+24>>2]+ma*+g[h+40>>2])))}if((a[b+526>>0]|0)==0){i=j;return}ha=-G;ma=-F;ja=-E;ga=(x*y+(z*A+B*C)-D*v)*ja+(B*z-x*D-A*C-v*y)*ha-(B*v+z*y+D*C-x*A)*ma;la=(B*z-x*D-A*C-v*y)*ma+(B*v+z*y+D*C-x*A)*ha-(B*x+D*z+A*v-y*C)*ja;ia=(B*z-x*D-A*C-v*y)*ja+(B*x+D*z+A*v-y*C)*ma-(x*y+(z*A+B*C)-D*v)*ha;ja=-((B*x+D*z+A*v-y*C)*ha)-(x*y+(z*A+B*C)-D*v)*ma-(B*v+z*y+D*C-x*A)*ja;ma=-(B*x+D*z+A*v-y*C);ha=-(x*y+(z*A+B*C)-D*v);ka=-(B*v+z*y+D*C-x*A);g[b+536>>2]=la*ka+((B*z-x*D-A*C-v*y)*ga+ja*ma)-ia*ha;g[b+540>>2]=ia*ma+((B*z-x*D-A*C-v*y)*la+ja*ha)-ga*ka;g[b+544>>2]=ga*ha+((B*z-x*D-A*C-v*y)*ia+ja*ka)-la*ma;g[b+548>>2]=0.0;i=j;return}function Ej(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0;e=i;i=i+64|0;k=c[b+28>>2]|0;o=c[b+32>>2]|0;Dj(b,k+4|0,o+4|0,k+264|0,o+264|0);l=c[d+8>>2]|0;g[l>>2]=1.0;m=c[d+24>>2]|0;g[l+(m+1<<2)>>2]=1.0;g[l+((m<<1)+2<<2)>>2]=1.0;q=+g[b+348>>2];w=+g[b+352>>2];t=+g[b+356>>2];u=+g[k+4>>2]*q+ +g[k+8>>2]*w+ +g[k+12>>2]*t;r=q*+g[k+20>>2]+w*+g[k+24>>2]+t*+g[k+28>>2];t=q*+g[k+36>>2]+w*+g[k+40>>2]+t*+g[k+44>>2];l=c[d+12>>2]|0;g[l>>2]=0.0;g[l+4>>2]=t;g[l+8>>2]=-r;g[l+12>>2]=0.0;g[l+(m<<2)>>2]=-t;g[l+(m+1<<2)>>2]=0.0;g[l+(m+2<<2)>>2]=u;g[l+(m+3<<2)>>2]=0.0;g[l+(m<<1<<2)>>2]=r;g[l+((m<<1|1)<<2)>>2]=-u;g[l+((m<<1)+2<<2)>>2]=0.0;g[l+((m<<1)+3<<2)>>2]=0.0;l=c[d+16>>2]|0;g[l>>2]=-1.0;g[l+(m+1<<2)>>2]=-1.0;g[l+((m<<1)+2<<2)>>2]=-1.0;w=+g[b+412>>2];q=+g[b+416>>2];p=+g[b+420>>2];v=+g[o+4>>2]*w+ +g[o+8>>2]*q+ +g[o+12>>2]*p;s=w*+g[o+20>>2]+q*+g[o+24>>2]+p*+g[o+28>>2];p=w*+g[o+36>>2]+q*+g[o+40>>2]+p*+g[o+44>>2];l=c[d+20>>2]|0;g[l>>2]=0.0;g[l+4>>2]=-p;g[l+8>>2]=s;g[l+12>>2]=0.0;g[l+(m<<2)>>2]=p;g[l+(m+1<<2)>>2]=0.0;g[l+(m+2<<2)>>2]=-v;g[l+(m+3<<2)>>2]=0.0;g[l+(m<<1<<2)>>2]=-s;g[l+((m<<1|1)<<2)>>2]=v;g[l+((m<<1)+2<<2)>>2]=0.0;g[l+((m<<1)+3<<2)>>2]=0.0;m=c[b+592>>2]|0;q=+g[((m&2|0)==0?d+4|0:b+600|0)>>2]*+g[d>>2];f=c[d+24>>2]|0;h=c[d+28>>2]|0;n=c[d+36>>2]|0;j=c[d+40>>2]|0;g[h>>2]=q*(v+ +g[o+52>>2]-u- +g[k+52>>2]);g[n>>2]=-3.4028234663852886e+38;g[j>>2]=3.4028234663852886e+38;if((m&1|0)==0){g[h+(f<<2)>>2]=q*(s+ +g[o+56>>2]-r- +g[k+56>>2]);g[n+(f<<2)>>2]=-3.4028234663852886e+38;g[j+(f<<2)>>2]=3.4028234663852886e+38;g[h+(f<<1<<2)>>2]=q*(p+ +g[o+60>>2]-t- +g[k+60>>2]);g[n+(f<<1<<2)>>2]=-3.4028234663852886e+38;g[j+(f<<1<<2)>>2]=3.4028234663852886e+38}else{x=c[d+32>>2]|0;g[x>>2]=+g[b+596>>2];g[h+(f<<2)>>2]=q*(s+ +g[o+56>>2]-r- +g[k+56>>2]);g[n+(f<<2)>>2]=-3.4028234663852886e+38;g[j+(f<<2)>>2]=3.4028234663852886e+38;g[x+(f<<2)>>2]=+g[b+596>>2];g[h+(f<<1<<2)>>2]=q*(p+ +g[o+60>>2]-t- +g[k+60>>2]);g[n+(f<<1<<2)>>2]=-3.4028234663852886e+38;g[j+(f<<1<<2)>>2]=3.4028234663852886e+38;g[x+(f<<1<<2)>>2]=+g[b+596>>2]}do{if((a[b+526>>0]|0)==0){f=f*3|0}else{o=c[d+12>>2]|0;w=+g[b+456>>2];if(+g[b+444>>2]>2]>2];r=+g[e+20>>2];s=+g[e+36>>2];u=+g[e+8>>2];v=+g[e+24>>2];w=+g[e+40>>2];m=c[d+24>>2]|0;x=m+(f*3|0)|0;g[o+(f*3<<2)>>2]=q;g[o+((f*3|0)+1<<2)>>2]=r;g[o+((f*3|0)+2<<2)>>2]=s;g[o+(x<<2)>>2]=u;g[o+(x+1<<2)>>2]=v;g[o+(x+2<<2)>>2]=w;g[l+(f*3<<2)>>2]=-q;g[l+((f*3|0)+1<<2)>>2]=-r;g[l+((f*3|0)+2<<2)>>2]=-s;g[l+(x<<2)>>2]=-u;g[l+(x+1<<2)>>2]=-v;g[l+(x+2<<2)>>2]=-w;t=+g[d>>2]*+g[b+436>>2];h=c[d+28>>2]|0;g[h+(f*3<<2)>>2]=t*(q*+g[b+460>>2]+r*+g[b+464>>2]+s*+g[b+468>>2]);g[h+(x<<2)>>2]=t*(u*+g[b+460>>2]+v*+g[b+464>>2]+w*+g[b+468>>2]);n=c[d+36>>2]|0;g[n+(f*3<<2)>>2]=-3.4028234663852886e+38;j=c[d+40>>2]|0;g[j+(f*3<<2)>>2]=3.4028234663852886e+38;g[n+(x<<2)>>2]=-3.4028234663852886e+38;g[j+(x<<2)>>2]=3.4028234663852886e+38;f=m+x|0;break}w=+g[b+436>>2];u=w*+g[b+460>>2]*w;v=w*w*+g[b+464>>2];w=w*w*+g[b+468>>2];g[o+(f*3<<2)>>2]=u;g[o+((f*3|0)+1<<2)>>2]=v;g[o+((f*3|0)+2<<2)>>2]=w;g[l+(f*3<<2)>>2]=-u;g[l+((f*3|0)+1<<2)>>2]=-v;g[l+((f*3|0)+2<<2)>>2]=-w;g[h+(f*3<<2)>>2]=+g[d>>2]*+g[b+432>>2]*+g[b+504>>2];if((m&4|0)!=0){g[(c[d+32>>2]|0)+(f*3<<2)>>2]=+g[b+604>>2]}g[n+(f*3<<2)>>2]=0.0;g[j+(f*3<<2)>>2]=3.4028234663852886e+38;f=f+(f*3|0)|0}}while(0);if((a[b+525>>0]|0)==0){i=e;return}w=+g[b+436>>2];u=w*+g[b+476>>2]*w;v=w*w*+g[b+480>>2];w=w*w*+g[b+484>>2];l=c[d+12>>2]|0;o=c[d+20>>2]|0;g[l+(f<<2)>>2]=u;m=f+1|0;g[l+(m<<2)>>2]=v;x=f+2|0;g[l+(x<<2)>>2]=w;g[o+(f<<2)>>2]=-u;g[o+(m<<2)>>2]=-v;g[o+(x<<2)>>2]=-w;g[h+(f<<2)>>2]=+g[d>>2]*+g[b+432>>2]*+g[b+508>>2];if((c[b+592>>2]&4|0)!=0){g[(c[d+32>>2]|0)+(f<<2)>>2]=+g[b+604>>2]}if(!(+g[b+452>>2]>0.0)){g[n+(f<<2)>>2]=-3.4028234663852886e+38;g[j+(f<<2)>>2]=3.4028234663852886e+38;i=e;return}d=n+(f<<2)|0;if(+g[b+508>>2]>0.0){g[d>>2]=0.0;g[j+(f<<2)>>2]=3.4028234663852886e+38;i=e;return}else{g[d>>2]=-3.4028234663852886e+38;g[j+(f<<2)>>2]=0.0;i=e;return}}function Fj(b){b=b|0;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0,M=0;d=i;i=i+176|0;if((a[b+527>>0]|0)==0){i=d;return}g[b+36>>2]=0.0;g[b+520>>2]=0.0;g[b+516>>2]=0.0;c[b+576>>2]=0;c[b+580>>2]=0;c[b+584>>2]=0;c[b+588>>2]=0;a:do{if((a[b+524>>0]|0)==0){L=c[b+28>>2]|0;A=+g[b+348>>2];z=+g[b+352>>2];f=+g[b+356>>2];e=A*+g[L+20>>2]+z*+g[L+24>>2]+f*+g[L+28>>2]+ +g[L+56>>2];y=c[b+32>>2]|0;j=+g[b+412>>2];k=+g[y+4>>2];l=+g[b+416>>2];m=+g[y+8>>2];n=+g[b+420>>2];x=+g[y+12>>2];q=+g[y+20>>2];r=+g[y+24>>2];s=+g[y+28>>2];u=+g[y+36>>2];v=+g[y+40>>2];w=+g[y+44>>2];p=+g[y+52>>2];t=+g[y+56>>2];o=+g[y+60>>2];B=j*q+l*r+n*s+t-e;h=A*+g[L+4>>2]+z*+g[L+8>>2]+f*+g[L+12>>2]+ +g[L+52>>2];f=A*+g[L+36>>2]+z*+g[L+40>>2]+f*+g[L+44>>2]+ +g[L+60>>2];z=j*k+l*m+n*x+p-h;A=j*u+l*v+n*w+o-f;if(z*z+B*B+A*A>1.1920928955078125e-7){K=1.0/+Q(+(z*z+B*B+A*A));g[d+128>>2]=z*K;g[d+132>>2]=B*K;g[d+136>>2]=A*K;g[d+140>>2]=0.0;A=A*K;B=B*K;z=z*K}else{g[d+128>>2]=1.0;g[d+132>>2]=0.0;g[d+136>>2]=0.0;g[d+140>>2]=0.0;A=0.0;B=0.0;z=1.0}if(+P(+A)>.7071067690849304){H=A*A+B*B;I=1.0/+Q(+H);g[d+144>>2]=0.0;K=-(I*A);g[d+148>>2]=K;J=I*B;g[d+152>>2]=J;g[d+160>>2]=H*I;g[d+164>>2]=-(z*J);g[d+168>>2]=z*K}else{J=z*z+B*B;K=1.0/+Q(+J);I=-(B*K);g[d+144>>2]=I;H=K*z;g[d+148>>2]=H;g[d+152>>2]=0.0;g[d+160>>2]=-(A*H);g[d+164>>2]=A*I;g[d+168>>2]=J*K}G=k;B=q;C=u;D=m;E=r;J=v;A=x;F=s;K=w;z=p;I=t;H=o;L=0;while(1){M=c[b+28>>2]|0;g[d+80>>2]=+g[M+4>>2];g[d+84>>2]=+g[M+20>>2];g[d+88>>2]=+g[M+36>>2];g[d+92>>2]=0.0;g[d+96>>2]=+g[M+8>>2];g[d+100>>2]=+g[M+24>>2];g[d+104>>2]=+g[M+40>>2];g[d+108>>2]=0.0;g[d+112>>2]=+g[M+12>>2];g[d+116>>2]=+g[M+28>>2];g[d+120>>2]=+g[M+44>>2];g[d+124>>2]=0.0;g[d+32>>2]=G;g[d+36>>2]=B;g[d+40>>2]=C;g[d+44>>2]=0.0;g[d+48>>2]=D;g[d+52>>2]=E;g[d+56>>2]=J;g[d+60>>2]=0.0;g[d+64>>2]=A;g[d+68>>2]=F;g[d+72>>2]=K;g[d+76>>2]=0.0;J=e- +g[M+56>>2];K=f- +g[M+60>>2];g[d+16>>2]=h- +g[M+52>>2];g[d+20>>2]=J;g[d+24>>2]=K;g[d+28>>2]=0.0;g[d>>2]=j*k+l*m+n*x+p-z;g[d+4>>2]=j*q+l*r+n*s+t-I;g[d+8>>2]=j*u+l*v+n*w+o-H;g[d+12>>2]=0.0;Rj(b+(L*84|0)+48|0,d+80|0,d+32|0,d+16|0,d,d+128+(L<<4)|0,M+396|0,+g[M+344>>2],y+396|0,+g[y+344>>2]);L=L+1|0;if((L|0)==3){y=b+32|0;break a}y=c[b+32>>2]|0;G=+g[y+4>>2];B=+g[y+20>>2];C=+g[y+36>>2];D=+g[y+8>>2];E=+g[y+24>>2];J=+g[y+40>>2];A=+g[y+12>>2];F=+g[y+28>>2];K=+g[y+44>>2];z=+g[y+52>>2];I=+g[y+56>>2];H=+g[y+60>>2]}}else{y=b+32|0}}while(0);L=c[b+28>>2]|0;M=c[y>>2]|0;Dj(b,L+4|0,M+4|0,L+264|0,M+264|0);i=d;return} function Ms(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0.0,A=0.0,B=0.0;l=i;i=i+192|0;h=c[b+4>>2]|0;if(+g[h+752>>2]>2]|0;m=(c[b+8>>2]|0)+8|0;k=c[m>>2]|0;q=+g[e>>2];t=+g[d>>2]*f+q;o=+g[e+4>>2];r=+g[d+4>>2]*f+o;p=+g[e+8>>2];s=+g[d+8>>2]*f+p;if((j|0)!=(k|0)){n=c[b+12>>2]|0;y=c[n+8>>2]|0;B=t- +g[y+52>>2];v=r- +g[y+56>>2];u=s- +g[y+60>>2];A=q- +g[k+52>>2];z=o- +g[k+56>>2];w=p- +g[k+60>>2];q=B*+g[y+4>>2]+v*+g[y+20>>2]+u*+g[y+36>>2];o=B*+g[y+8>>2]+v*+g[y+24>>2]+u*+g[y+40>>2];p=B*+g[y+12>>2]+v*+g[y+28>>2]+u*+g[y+44>>2];u=A*+g[k+12>>2]+z*+g[k+28>>2]+w*+g[k+44>>2];v=A*+g[k+8>>2]+z*+g[k+24>>2]+w*+g[k+40>>2];w=A*+g[k+4>>2]+z*+g[k+20>>2]+w*+g[k+36>>2]}else{z=t- +g[j+52>>2];v=r- +g[j+56>>2];u=s- +g[j+60>>2];n=c[b+12>>2]|0;y=c[n+8>>2]|0;A=q- +g[y+52>>2];B=o- +g[y+56>>2];w=p- +g[y+60>>2];q=z*+g[j+4>>2]+v*+g[j+20>>2]+u*+g[j+36>>2];o=z*+g[j+8>>2]+v*+g[j+24>>2]+u*+g[j+40>>2];p=z*+g[j+12>>2]+v*+g[j+28>>2]+u*+g[j+44>>2];u=A*+g[y+12>>2]+B*+g[y+28>>2]+w*+g[y+44>>2];v=A*+g[y+8>>2]+B*+g[y+24>>2]+w*+g[y+40>>2];w=A*+g[y+4>>2]+B*+g[y+20>>2]+w*+g[y+36>>2]}g[l>>2]=q;g[l+4>>2]=o;g[l+8>>2]=p;g[l+12>>2]=0.0;g[l+16>>2]=w;g[l+20>>2]=v;g[l+24>>2]=u;g[l+28>>2]=0.0;c[l+64>>2]=c[d+0>>2];c[l+68>>2]=c[d+4>>2];c[l+72>>2]=c[d+8>>2];c[l+76>>2]=c[d+12>>2];g[l+80>>2]=f;g[l+84>>2]=0.0;g[l+88>>2]=0.0;g[l+92>>2]=0.0;c[l+112>>2]=0;a[l+116>>0]=0;c[l+120>>2]=0;c[l+124>>2]=0;c[l+128>>2]=0;c[l+132>>2]=0;c[l+136>>2]=0;c[l+140>>2]=0;c[l+144>>2]=0;c[l+148>>2]=0;g[l+48>>2]=t;g[l+52>>2]=r;g[l+56>>2]=s;g[l+60>>2]=0.0;c[l+32>>2]=c[e+0>>2];c[l+36>>2]=c[e+4>>2];c[l+40>>2]=c[e+8>>2];c[l+44>>2]=c[e+12>>2];r=+g[h+752>>2];d=c[h+748>>2]|0;if((d|0)>0){e=0;y=-1;f=r*r;while(1){r=+g[h+(e*184|0)+4>>2]-q;s=+g[h+(e*184|0)+8>>2]-o;t=+g[h+(e*184|0)+12>>2]-p;x=r*r+s*s+t*t>2]|0;x=c[n+8>>2]|0;o=+g[d+224>>2]*+g[x+224>>2];o=o<-10.0?-10.0:o;g[l+84>>2]=o>10.0?10.0:o;g[l+92>>2]=+g[d+228>>2]*+g[x+228>>2];o=+g[d+232>>2]*+g[x+232>>2];o=o<-10.0?-10.0:o;g[l+88>>2]=o>10.0?10.0:o;o=+g[l+72>>2];if(+P(+o)>.7071067690849304){z=+g[l+68>>2];B=1.0/+Q(+(o*o+z*z));g[l+152>>2]=0.0;g[l+156>>2]=-(B*o);g[l+160>>2]=B*z;g[l+168>>2]=(o*o+z*z)*B;A=+g[l+64>>2];g[l+172>>2]=-(A*B*z);g[l+176>>2]=A*-(B*o)}else{z=+g[l+64>>2];A=+g[l+68>>2];B=1.0/+Q(+(z*z+A*A));g[l+152>>2]=-(A*B);g[l+156>>2]=B*z;g[l+160>>2]=0.0;g[l+168>>2]=-(o*B*z);g[l+172>>2]=o*-(A*B);g[l+176>>2]=(z*z+A*A)*B}if((j|0)!=(k|0)){c[l+96>>2]=c[b+20>>2];c[l+100>>2]=c[b+16>>2];c[l+104>>2]=c[b+28>>2];c[l+108>>2]=c[b+24>>2]}else{c[l+96>>2]=c[b+16>>2];c[l+100>>2]=c[b+20>>2];c[l+104>>2]=c[b+24>>2];c[l+108>>2]=c[b+28>>2]}if((y|0)>-1){x=h+(y*184|0)+152|0;d=c[x>>2]|0;m=h+(y*184|0)+124|0;z=+g[m>>2];n=h+(y*184|0)+128|0;A=+g[n>>2];e=h+(y*184|0)+132|0;B=+g[e>>2];k=h+(y*184|0)+116|0;j=c[k>>2]|0;ey(h+(y*184|0)+4|0,l|0,184)|0;c[k>>2]=j;g[m>>2]=z;g[n>>2]=A;g[e>>2]=B;c[x>>2]=d;i=l;return}else{Ft(h,l)|0;i=l;return}}function Ns(b,d,e,f,h,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0;b=i;i=i+4256|0;if(((c[e+4>>2]|0)+ -17|0)>>>0<2){r=((c[f+4>>2]|0)+ -17|0)>>>0<2}else{r=0}o=0;do{Os();v=+g[12056+(o<<4)>>2];w=+g[12060+(o<<4)>>2];x=+g[12064+(o<<4)>>2];z=+g[h+4>>2]*-v+ +g[h+20>>2]*-w+ +g[h+36>>2]*-x;y=+g[h+8>>2]*-v+ +g[h+24>>2]*-w+ +g[h+40>>2]*-x;g[b+1280+(o<<4)>>2]=+g[h>>2]*-v+ +g[h+16>>2]*-w+ +g[h+32>>2]*-x;g[b+1280+(o<<4)+4>>2]=z;g[b+1280+(o<<4)+8>>2]=y;g[b+1280+(o<<4)+12>>2]=0.0;y=v*+g[j+4>>2]+w*+g[j+20>>2]+x*+g[j+36>>2];z=v*+g[j+8>>2]+w*+g[j+24>>2]+x*+g[j+40>>2];g[b+288+(o<<4)>>2]=v*+g[j>>2]+w*+g[j+16>>2]+x*+g[j+32>>2];g[b+288+(o<<4)+4>>2]=y;g[b+288+(o<<4)+8>>2]=z;g[b+288+(o<<4)+12>>2]=0.0;o=o+1|0}while((o|0)!=42);o=Rb[c[(c[e>>2]|0)+84>>2]&127](e)|0;if((o|0)>0){A=0;B=42;while(1){sc[c[(c[e>>2]|0)+88>>2]&63](e,A,b+272|0);y=+g[b+272>>2];z=+g[b+276>>2];x=+g[b+280>>2];w=y*+g[h+16>>2]+z*+g[h+20>>2]+x*+g[h+24>>2];v=y*+g[h+32>>2]+z*+g[h+36>>2]+x*+g[h+40>>2];g[b+272>>2]=+g[h>>2]*y+ +g[h+4>>2]*z+ +g[h+8>>2]*x;g[b+276>>2]=w;g[b+280>>2]=v;g[b+284>>2]=0.0;Os();C=12056+(B<<4)|0;c[C+0>>2]=c[b+272>>2];c[C+4>>2]=c[b+276>>2];c[C+8>>2]=c[b+280>>2];c[C+12>>2]=c[b+284>>2];v=+g[b+272>>2];w=+g[b+276>>2];x=+g[b+280>>2];z=+g[h+4>>2]*-v+ +g[h+20>>2]*-w+ +g[h+36>>2]*-x;y=+g[h+8>>2]*-v+ +g[h+24>>2]*-w+ +g[h+40>>2]*-x;g[b+1280+(B<<4)>>2]=+g[h>>2]*-v+ +g[h+16>>2]*-w+ +g[h+32>>2]*-x;g[b+1280+(B<<4)+4>>2]=z;g[b+1280+(B<<4)+8>>2]=y;g[b+1280+(B<<4)+12>>2]=0.0;y=v*+g[j+4>>2]+w*+g[j+20>>2]+x*+g[j+36>>2];z=v*+g[j+8>>2]+w*+g[j+24>>2]+x*+g[j+40>>2];g[b+288+(B<<4)>>2]=+g[j>>2]*v+ +g[j+16>>2]*w+ +g[j+32>>2]*x;g[b+288+(B<<4)+4>>2]=y;g[b+288+(B<<4)+8>>2]=z;g[b+288+(B<<4)+12>>2]=0.0;A=A+1|0;if((A|0)==(o|0)){break}else{B=B+1|0}}o=o+42|0}else{o=42}A=Rb[c[(c[f>>2]|0)+84>>2]&127](f)|0;if((A|0)>0){B=0;C=o;while(1){sc[c[(c[f>>2]|0)+88>>2]&63](f,B,b+256|0);y=+g[b+256>>2];z=+g[b+260>>2];x=+g[b+264>>2];w=y*+g[j+16>>2]+z*+g[j+20>>2]+x*+g[j+24>>2];v=y*+g[j+32>>2]+z*+g[j+36>>2]+x*+g[j+40>>2];g[b+256>>2]=+g[j>>2]*y+ +g[j+4>>2]*z+ +g[j+8>>2]*x;g[b+260>>2]=w;g[b+264>>2]=v;g[b+268>>2]=0.0;Os();D=12056+(C<<4)|0;c[D+0>>2]=c[b+256>>2];c[D+4>>2]=c[b+260>>2];c[D+8>>2]=c[b+264>>2];c[D+12>>2]=c[b+268>>2];v=+g[b+256>>2];w=+g[b+260>>2];x=+g[b+264>>2];z=+g[h+4>>2]*-v+ +g[h+20>>2]*-w+ +g[h+36>>2]*-x;y=+g[h+8>>2]*-v+ +g[h+24>>2]*-w+ +g[h+40>>2]*-x;g[b+1280+(C<<4)>>2]=+g[h>>2]*-v+ +g[h+16>>2]*-w+ +g[h+32>>2]*-x;g[b+1280+(C<<4)+4>>2]=z;g[b+1280+(C<<4)+8>>2]=y;g[b+1280+(C<<4)+12>>2]=0.0;y=v*+g[j+4>>2]+w*+g[j+20>>2]+x*+g[j+36>>2];z=v*+g[j+8>>2]+w*+g[j+24>>2]+x*+g[j+40>>2];g[b+288+(C<<4)>>2]=+g[j>>2]*v+ +g[j+16>>2]*w+ +g[j+32>>2]*x;g[b+288+(C<<4)+4>>2]=y;g[b+288+(C<<4)+8>>2]=z;g[b+288+(C<<4)+12>>2]=0.0;B=B+1|0;if((B|0)==(A|0)){break}else{C=C+1|0}}o=A+o|0}wc[c[(c[e>>2]|0)+76>>2]&63](e,b+1280|0,b+3264|0,o);wc[c[(c[f>>2]|0)+76>>2]&63](f,b+288|0,b+2272|0,o);if((o|0)>0){if(r){r=0;v=999999984306749400.0;x=0.0;p=0.0;w=0.0;while(1){Os();u=+g[12056+(r<<4)>>2];t=+g[12060+(r<<4)>>2];s=+g[12068+(r<<4)>>2];if(u*u+t*t+0.0>.01?(y=+g[b+3264+(r<<4)>>2],z=+g[b+3264+(r<<4)+4>>2],q=+g[b+3264+(r<<4)+8>>2],G=+g[b+2272+(r<<4)>>2],F=+g[b+2272+(r<<4)+4>>2],E=+g[b+2272+(r<<4)+8>>2],q=u*(G*+g[j>>2]+F*+g[j+4>>2]+E*+g[j+8>>2]+ +g[j+48>>2]-(y*+g[h>>2]+z*+g[h+4>>2]+q*+g[h+8>>2]+ +g[h+48>>2]))+t*(G*+g[j+16>>2]+F*+g[j+20>>2]+E*+g[j+24>>2]+ +g[j+52>>2]-(y*+g[h+16>>2]+z*+g[h+20>>2]+q*+g[h+24>>2]+ +g[h+52>>2]))+0.0,q>2];x=+g[12060+(r<<4)>>2];z=+g[12064+(r<<4)>>2];q=+g[12068+(r<<4)>>2];if(y*y+x*x+z*z>.01?(F=+g[b+3264+(r<<4)>>2],G=+g[b+3264+(r<<4)+4>>2],p=+g[b+3264+(r<<4)+8>>2],I=+g[b+2272+(r<<4)>>2],H=+g[b+2272+(r<<4)+4>>2],E=+g[b+2272+(r<<4)+8>>2],p=y*(I*+g[j>>2]+H*+g[j+4>>2]+E*+g[j+8>>2]+ +g[j+48>>2]-(F*+g[h>>2]+G*+g[h+4>>2]+p*+g[h+8>>2]+ +g[h+48>>2]))+x*(I*+g[j+16>>2]+H*+g[j+20>>2]+E*+g[j+24>>2]+ +g[j+52>>2]-(F*+g[h+16>>2]+G*+g[h+20>>2]+p*+g[h+24>>2]+ +g[h+52>>2]))+z*(I*+g[j+32>>2]+H*+g[j+36>>2]+E*+g[j+40>>2]+ +g[j+56>>2]-(F*+g[h+32>>2]+G*+g[h+36>>2]+p*+g[h+40>>2]+ +g[h+56>>2])),p>2]|0){case 4:case 5:case 10:case 11:case 13:case 1:case 0:case 8:{break};default:{+bc[c[(c[e>>2]|0)+48>>2]&15](e)}}switch(c[f+4>>2]|0){case 4:case 5:case 10:case 11:case 13:case 1:case 0:case 8:{break};default:{+bc[c[(c[f>>2]|0)+48>>2]&15](f)}}if(v<0.0){D=0;i=b;return D|0}switch(c[e+4>>2]|0){case 0:{s=+g[e+44>>2];break};case 1:{s=+g[e+44>>2];break};case 13:{s=+g[e+44>>2];break};case 11:{s=+g[e+44>>2];break};case 10:{s=+g[e+44>>2];break};case 4:case 5:{s=+g[e+44>>2];break};case 8:{s=+g[e+28>>2]*+g[e+12>>2];break};default:{s=+bc[c[(c[e>>2]|0)+48>>2]&15](e)}}o=c[f+4>>2]|0;switch(o|0){case 8:{o=8;w=+g[f+28>>2]*+g[f+12>>2];break};case 0:{o=0;w=+g[f+44>>2];break};case 1:{o=1;w=+g[f+44>>2];break};case 13:{o=13;w=+g[f+44>>2];break};case 11:{o=11;w=+g[f+44>>2];break};case 10:{o=10;w=+g[f+44>>2];break};case 4:case 5:{w=+g[f+44>>2];break};default:{w=+bc[c[(c[f>>2]|0)+48>>2]&15](f);o=c[f+4>>2]|0}}s=v+(s+w+.5);c[b+176>>2]=11880;g[b+180>>2]=0.0;g[b+184>>2]=1.0;g[b+188>>2]=0.0;g[b+192>>2]=0.0;c[b+196>>2]=0;c[b+200>>2]=d;c[b+204>>2]=e;c[b+208>>2]=f;c[b+212>>2]=c[e+4>>2];c[b+216>>2]=o;g[b+220>>2]=+bc[c[(c[e>>2]|0)+48>>2]&15](e);g[b+224>>2]=+bc[c[(c[f>>2]|0)+48>>2]&15](f);a[b+228>>0]=0;c[b+236>>2]=-1;c[b+248>>2]=1;c[b+252>>2]=1;G=+g[h+48>>2]+u*s;H=t*s+ +g[h+52>>2];I=p*s+ +g[h+56>>2];c[b+44>>2]=c[h+0>>2];c[b+48>>2]=c[h+4>>2];c[b+52>>2]=c[h+8>>2];c[b+56>>2]=c[h+12>>2];c[b+60>>2]=c[h+16>>2];c[b+64>>2]=c[h+20>>2];c[b+68>>2]=c[h+24>>2];c[b+72>>2]=c[h+28>>2];c[b+76>>2]=c[h+32>>2];c[b+80>>2]=c[h+36>>2];c[b+84>>2]=c[h+40>>2];c[b+88>>2]=c[h+44>>2];g[b+92>>2]=G;g[b+96>>2]=H;g[b+100>>2]=I;g[b+104>>2]=0.0;c[b+108>>2]=c[j+0>>2];c[b+112>>2]=c[j+4>>2];c[b+116>>2]=c[j+8>>2];c[b+120>>2]=c[j+12>>2];c[b+124>>2]=c[j+16>>2];c[b+128>>2]=c[j+20>>2];c[b+132>>2]=c[j+24>>2];c[b+136>>2]=c[j+28>>2];c[b+140>>2]=c[j+32>>2];c[b+144>>2]=c[j+36>>2];c[b+148>>2]=c[j+40>>2];c[b+152>>2]=c[j+44>>2];c[b+156>>2]=c[j+48>>2];c[b+160>>2]=c[j+52>>2];c[b+164>>2]=c[j+56>>2];c[b+168>>2]=c[j+60>>2];g[b+172>>2]=999999984306749400.0;c[b>>2]=13144;a[b+40>>0]=0;g[b+180>>2]=-u;g[b+184>>2]=-t;g[b+188>>2]=-p;g[b+192>>2]=0.0;Js(b+176|0,b+44|0,b,n,0);s=s- +g[b+36>>2];d=a[b+40>>0]|0;if(!(d<<24>>24==0)){H=+g[b+24>>2]-t*s;I=+g[b+28>>2]-p*s;g[l>>2]=+g[b+20>>2]-u*s;g[l+4>>2]=H;g[l+8>>2]=I;g[l+12>>2]=0.0;c[m+0>>2]=c[b+20>>2];c[m+4>>2]=c[b+24>>2];c[m+8>>2]=c[b+28>>2];c[m+12>>2]=c[b+32>>2];g[k>>2]=u;g[k+4>>2]=t;g[k+8>>2]=p;g[k+12>>2]=q}D=d<<24>>24!=0;i=b;return D|0}function Os(){var b=0;b=i;if((a[13048]|0)!=0){i=b;return}if((Ya(13048)|0)==0){i=b;return}g[3014]=0.0;g[12060>>2]=-0.0;g[12064>>2]=-1.0;g[12068>>2]=0.0;g[12072>>2]=.7236080169677734;g[12076>>2]=-.5257250070571899;g[12080>>2]=-.44721901416778564;g[12084>>2]=0.0;g[12088>>2]=-.2763879895210266;g[12092>>2]=-.8506489992141724;g[12096>>2]=-.44721901416778564;g[12100>>2]=0.0;g[12104>>2]=-.8944259881973267;g[12108>>2]=-0.0;g[12112>>2]=-.4472160041332245;g[12116>>2]=0.0;g[12120>>2]=-.2763879895210266;g[12124>>2]=.8506489992141724;g[12128>>2]=-.44721999764442444;g[12132>>2]=0.0;g[12136>>2]=.7236080169677734;g[12140>>2]=.5257250070571899;g[12144>>2]=-.44721901416778564;g[12148>>2]=0.0;g[12152>>2]=.2763879895210266;g[12156>>2]=-.8506489992141724;g[12160>>2]=.44721999764442444;g[12164>>2]=0.0;g[12168>>2]=-.7236080169677734;g[12172>>2]=-.5257250070571899;g[12176>>2]=.44721901416778564;g[12180>>2]=0.0;g[12184>>2]=-.7236080169677734;g[12188>>2]=.5257250070571899;g[12192>>2]=.44721901416778564;g[12196>>2]=0.0;g[12200>>2]=.2763879895210266;g[12204>>2]=.8506489992141724;g[12208>>2]=.44721901416778564;g[12212>>2]=0.0;g[12216>>2]=.8944259881973267;g[12220>>2]=0.0;g[12224>>2]=.4472160041332245;g[12228>>2]=0.0;g[12232>>2]=-0.0;g[12236>>2]=0.0;g[12240>>2]=1.0;g[12244>>2]=0.0;g[12248>>2]=.4253230094909668;g[12252>>2]=-.3090110123157501;g[12256>>2]=-.8506540060043335;g[12260>>2]=0.0;g[12264>>2]=-.16245600581169128;g[12268>>2]=-.49999499320983887;g[12272>>2]=-.8506540060043335;g[12276>>2]=0.0;g[12280>>2]=.2628690004348755;g[12284>>2]=-.8090119957923889;g[12288>>2]=-.525738000869751;g[12292>>2]=0.0;g[12296>>2]=.4253230094909668;g[12300>>2]=.3090110123157501;g[12304>>2]=-.8506540060043335;g[12308>>2]=0.0;g[12312>>2]=.8506479859352112;g[12316>>2]=-0.0;g[12320>>2]=-.5257359743118286;g[12324>>2]=0.0;g[12328>>2]=-.5257300138473511;g[12332>>2]=-0.0;g[12336>>2]=-.8506519794464111;g[12340>>2]=0.0;g[12344>>2]=-.6881899833679199;g[12348>>2]=-.49999698996543884;g[12352>>2]=-.5257359743118286;g[12356>>2]=0.0;g[12360>>2]=-.16245600581169128;g[12364>>2]=.49999499320983887;g[12368>>2]=-.8506540060043335;g[12372>>2]=0.0;g[12376>>2]=-.6881899833679199;g[12380>>2]=.49999698996543884;g[12384>>2]=-.5257359743118286;g[12388>>2]=0.0;g[12392>>2]=.2628690004348755;g[12396>>2]=.8090119957923889;g[12400>>2]=-.525738000869751;g[12404>>2]=0.0;g[12408>>2]=.9510579705238342;g[12412>>2]=.3090130090713501;g[12416>>2]=0.0;g[12420>>2]=0.0;g[12424>>2]=.9510579705238342;g[12428>>2]=-.3090130090713501;g[12432>>2]=0.0;g[12436>>2]=0.0;g[12440>>2]=.5877860188484192;g[12444>>2]=-.80901700258255;g[12448>>2]=0.0;g[12452>>2]=0.0;g[12456>>2]=0.0;g[12460>>2]=-1.0;g[12464>>2]=0.0;g[12468>>2]=0.0;g[12472>>2]=-.5877860188484192;g[12476>>2]=-.80901700258255;g[12480>>2]=0.0;g[12484>>2]=0.0;g[12488>>2]=-.9510579705238342;g[12492>>2]=-.3090130090713501;g[12496>>2]=-0.0;g[12500>>2]=0.0;g[12504>>2]=-.9510579705238342;g[12508>>2]=.3090130090713501;g[12512>>2]=-0.0;g[12516>>2]=0.0;g[12520>>2]=-.5877860188484192;g[12524>>2]=.80901700258255;g[12528>>2]=-0.0;g[12532>>2]=0.0;g[12536>>2]=-0.0;g[12540>>2]=1.0;g[12544>>2]=-0.0;g[12548>>2]=0.0;g[12552>>2]=.5877860188484192;g[12556>>2]=.80901700258255;g[12560>>2]=-0.0;g[12564>>2]=0.0;g[12568>>2]=.6881899833679199;g[12572>>2]=-.49999698996543884;g[12576>>2]=.5257359743118286;g[12580>>2]=0.0;g[12584>>2]=-.2628690004348755;g[12588>>2]=-.8090119957923889;g[12592>>2]=.525738000869751;g[12596>>2]=0.0;g[12600>>2]=-.8506479859352112;g[12604>>2]=0.0;g[12608>>2]=.5257359743118286;g[12612>>2]=0.0;g[12616>>2]=-.2628690004348755;g[12620>>2]=.8090119957923889;g[12624>>2]=.525738000869751;g[12628>>2]=0.0;g[12632>>2]=.6881899833679199;g[12636>>2]=.49999698996543884;g[12640>>2]=.5257359743118286;g[12644>>2]=0.0;g[12648>>2]=.5257300138473511;g[12652>>2]=0.0;g[12656>>2]=.8506519794464111;g[12660>>2]=0.0;g[12664>>2]=.16245600581169128;g[12668>>2]=-.49999499320983887;g[12672>>2]=.8506540060043335;g[12676>>2]=0.0;g[12680>>2]=-.4253230094909668;g[12684>>2]=-.3090110123157501;g[12688>>2]=.8506540060043335;g[12692>>2]=0.0;g[12696>>2]=-.4253230094909668;g[12700>>2]=.3090110123157501;g[12704>>2]=.8506540060043335;g[12708>>2]=0.0;g[12712>>2]=.16245600581169128;g[12716>>2]=.49999499320983887;g[12720>>2]=.8506540060043335;g[12724>>2]=0.0;cb(13048);i=b;return}function Ps(a){a=a|0;return}function Qs(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Rs(a){a=a|0;return}function Ss(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Ts(a,b,c){a=a|0;b=b|0;c=c|0;return}function Us(a,b,c){a=a|0;b=b|0;c=c|0;return}function Vs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0;h=i;c[b+4>>2]=c[d+0>>2];c[b+8>>2]=c[d+4>>2];c[b+12>>2]=c[d+8>>2];c[b+16>>2]=c[d+12>>2];c[b+20>>2]=c[e+0>>2];c[b+24>>2]=c[e+4>>2];c[b+28>>2]=c[e+8>>2];c[b+32>>2]=c[e+12>>2];g[b+36>>2]=f;a[b+40>>0]=1;i=h;return}function Ws(a){a=a|0;var b=0;b=i;Tt(a);if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Xs(a){a=a|0;var b=0;b=i;Tt(a);i=b;return}function Ys(d,e,f,h,j){d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0;k=i;i=i+176|0;a[d+60>>0]=f&1;if(f){t=+g[h>>2]+-1.0;r=+g[h+4>>2]+-1.0;s=+g[h+8>>2]+-1.0;g[d+4>>2]=t;g[d+8>>2]=r;g[d+12>>2]=s;g[d+16>>2]=0.0;p=+g[j>>2]+1.0;n=+g[j+4>>2]+1.0;m=+g[j+8>>2]+1.0;g[d+20>>2]=p;g[d+24>>2]=n;g[d+28>>2]=m;g[d+32>>2]=0.0;g[d+36>>2]=65533.0/(p-t);g[d+40>>2]=65533.0/(n-r);g[d+44>>2]=65533.0/(m-s);g[d+48>>2]=0.0;a[d+60>>0]=1;l=t+ +(~~((t-t)*(65533.0/(p-t)))&65535&65534&65535)/(65533.0/(p-t))+-1.0;o=r+ +(~~((r-r)*(65533.0/(n-r)))&65535&65534&65535)/(65533.0/(n-r))+-1.0;q=s+ +(~~((s-s)*(65533.0/(m-s)))&65535&65534&65535)/(65533.0/(m-s))+-1.0;if(l>2]=l}else{l=t}if(o>2]=o}else{o=r}if(q>2]=q}else{q=s}u=l+ +((~~((p-l)*(65533.0/(p-t))+1.0)&65535|1)&65535)/(65533.0/(p-t))+1.0;t=o+ +((~~((n-o)*(65533.0/(n-r))+1.0)&65535|1)&65535)/(65533.0/(n-r))+1.0;r=q+ +((~~((m-q)*(65533.0/(m-s))+1.0)&65535|1)&65535)/(65533.0/(m-s))+1.0;if(p>2]=u;p=u}if(n>2]=t;n=t}if(m>2]=r;m=r}g[d+36>>2]=65533.0/(p-l);g[d+40>>2]=65533.0/(n-o);g[d+44>>2]=65533.0/(m-q);g[d+48>>2]=0.0;c[k+152>>2]=13584;c[k+156>>2]=d+104;c[k+160>>2]=d;wc[c[(c[e>>2]|0)+8>>2]&63](e,k+152|0,d+4|0,d+20|0);e=c[d+108>>2]|0;c[k+136>>2]=0;c[k+140>>2]=0;c[k+144>>2]=0;c[k+148>>2]=0;j=c[d+128>>2]|0;if((j|0)<(e<<1|0)){if((c[d+132>>2]|0)<(e<<1|0)){if((e|0)==0){h=j;f=0}else{c[4546]=(c[4546]|0)+1;h=Zx(e<<5|19)|0;if((h|0)==0){f=0}else{c[(h+19&-16)+ -4>>2]=h;f=h+19&-16}h=c[d+128>>2]|0}if((h|0)>0){v=0;do{y=f+(v<<4)|0;x=(c[d+136>>2]|0)+(v<<4)|0;c[y+0>>2]=c[x+0>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];v=v+1|0}while((v|0)!=(h|0))}h=c[d+136>>2]|0;if((h|0)!=0){if((a[d+140>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[d+136>>2]=0}a[d+140>>0]=1;c[d+136>>2]=f;c[d+132>>2]=e<<1;h=d+136|0}else{h=d+136|0}do{y=(c[h>>2]|0)+(j<<4)|0;c[y+0>>2]=c[k+136>>2];c[y+4>>2]=c[k+140>>2];c[y+8>>2]=c[k+144>>2];c[y+12>>2]=c[k+148>>2];j=j+1|0}while((j|0)!=(e<<1|0))}c[d+128>>2]=e<<1}else{c[k+128>>2]=13448;c[k+132>>2]=d+64;g[k+112>>2]=-999999984306749400.0;g[k+116>>2]=-999999984306749400.0;g[k+120>>2]=-999999984306749400.0;g[k+124>>2]=0.0;g[k+96>>2]=999999984306749400.0;g[k+100>>2]=999999984306749400.0;g[k+104>>2]=999999984306749400.0;g[k+108>>2]=0.0;wc[c[(c[e>>2]|0)+8>>2]&63](e,k+128|0,k+112|0,k+96|0);e=c[d+68>>2]|0;f=k+32|0;v=f+64|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(v|0));j=c[d+88>>2]|0;if((j|0)<(e<<1|0)){if((c[d+92>>2]|0)<(e<<1|0)){if((e|0)==0){x=j;w=0}else{c[4546]=(c[4546]|0)+1;h=Zx(e<<7|19)|0;if((h|0)==0){w=0}else{c[(h+19&-16)+ -4>>2]=h;w=h+19&-16}x=c[d+88>>2]|0}if((x|0)>0){y=0;do{f=w+(y<<6)+0|0;h=(c[d+96>>2]|0)+(y<<6)+0|0;v=f+64|0;do{c[f>>2]=c[h>>2];f=f+4|0;h=h+4|0}while((f|0)<(v|0));y=y+1|0}while((y|0)!=(x|0))}h=c[d+96>>2]|0;if((h|0)!=0){if((a[d+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[d+96>>2]=0}a[d+100>>0]=1;c[d+96>>2]=w;c[d+92>>2]=e<<1;w=d+96|0}else{w=d+96|0}do{f=(c[w>>2]|0)+(j<<6)+0|0;h=k+32|0;v=f+64|0;do{c[f>>2]=c[h>>2];f=f+4|0;h=h+4|0}while((f|0)<(v|0));j=j+1|0}while((j|0)!=(e<<1|0))}c[d+88>>2]=e<<1}c[d+56>>2]=0;Rt(d,0,e);if((a[d+60>>0]|0)!=0?(c[d+152>>2]|0)==0:0){if((c[d+156>>2]|0)==0){c[4546]=(c[4546]|0)+1;e=Zx(51)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}h=c[d+152>>2]|0;if((h|0)>0){j=0;do{y=e+(j<<5)|0;x=(c[d+160>>2]|0)+(j<<5)|0;c[y+0>>2]=c[x+0>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[y+16>>2]=c[x+16>>2];c[y+20>>2]=c[x+20>>2];c[y+24>>2]=c[x+24>>2];c[y+28>>2]=c[x+28>>2];j=j+1|0}while((j|0)!=(h|0))}j=c[d+160>>2]|0;if((j|0)!=0){if((a[d+164>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0)}c[d+160>>2]=0}a[d+164>>0]=1;c[d+160>>2]=e;c[d+156>>2]=1;j=(c[d+152>>2]|0)+1|0}else{j=1;e=c[d+160>>2]|0}c[d+152>>2]=j;c[e+0>>2]=c[k+0>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];c[e+16>>2]=c[k+16>>2];c[e+20>>2]=c[k+20>>2];c[e+24>>2]=c[k+24>>2];c[e+28>>2]=c[k+28>>2];y=c[d+160>>2]|0;x=c[d+136>>2]|0;b[y>>1]=b[x>>1]|0;b[y+2>>1]=b[x+2>>1]|0;b[y+4>>1]=b[x+4>>1]|0;b[y+6>>1]=b[x+6>>1]|0;b[y+8>>1]=b[x+8>>1]|0;b[y+10>>1]=b[x+10>>1]|0;c[y+12>>2]=0;x=c[x+12>>2]|0;c[y+16>>2]=(x|0)>-1?1:0-x|0}c[d+168>>2]=c[d+152>>2];e=c[d+116>>2]|0;if((e|0)!=0){if((a[d+120>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[d+116>>2]=0}a[d+120>>0]=1;c[d+116>>2]=0;c[d+108>>2]=0;c[d+112>>2]=0;e=c[d+76>>2]|0;if((e|0)==0){a[d+80>>0]=1;c[d+76>>2]=0;c[d+68>>2]=0;y=d+72|0;c[y>>2]=0;i=k;return}if((a[d+80>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[d+76>>2]=0;a[d+80>>0]=1;c[d+76>>2]=0;c[d+68>>2]=0;y=d+72|0;c[y>>2]=0;i=k;return}function Zs(a){a=a|0;return 84}function _s(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=i;Xt(a,b,c,d)|0;i=e;return 1}function $s(a){a=a|0;return}function at(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function bt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0;l=i;i=i+32|0;m=+g[d>>2];h=m<999999984306749400.0?m:999999984306749400.0;n=+g[d+4>>2];j=n<999999984306749400.0?n:999999984306749400.0;o=+g[d+8>>2];k=o<999999984306749400.0?o:999999984306749400.0;p=+g[d+12>>2];r=p<0.0?p:0.0;m=m>-999999984306749400.0?m:-999999984306749400.0;n=n>-999999984306749400.0?n:-999999984306749400.0;o=o>-999999984306749400.0?o:-999999984306749400.0;p=p>0.0?p:0.0;x=+g[d+16>>2];h=x>2];j=y>2];k=z>2];r=A>2];h=A>2];j=z>2];k=y>2];r=x>2]|0;d=c[b+4>>2]|0;if((d|0)==(c[b+8>>2]|0)?(q=(d|0)==0?1:d<<1,(d|0)<(q|0)):0){if((q|0)==0){s=0}else{c[4546]=(c[4546]|0)+1;d=Zx(q<<6|19)|0;if((d|0)==0){s=0}else{c[(d+19&-16)+ -4>>2]=d;s=d+19&-16}d=c[b+4>>2]|0}if((d|0)>0){w=0;do{t=s+(w<<6)+0|0;u=(c[b+12>>2]|0)+(w<<6)+0|0;v=t+64|0;do{c[t>>2]=c[u>>2];t=t+4|0;u=u+4|0}while((t|0)<(v|0));w=w+1|0}while((w|0)!=(d|0))}d=c[b+12>>2]|0;if((d|0)!=0){if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[d+ -4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=s;c[b+8>>2]=q;d=c[b+4>>2]|0}w=c[b+12>>2]|0;g[w+(d<<6)>>2]=h;g[w+(d<<6)+4>>2]=j;g[w+(d<<6)+8>>2]=k;g[w+(d<<6)+12>>2]=r;g[w+(d<<6)+16>>2]=m;g[w+(d<<6)+20>>2]=n;g[w+(d<<6)+24>>2]=o;g[w+(d<<6)+28>>2]=p;c[w+(d<<6)+32>>2]=-1;c[w+(d<<6)+36>>2]=e;c[w+(d<<6)+40>>2]=f;w=w+(d<<6)+44|0;c[w+0>>2]=c[l+0>>2];c[w+4>>2]=c[l+4>>2];c[w+8>>2]=c[l+8>>2];c[w+12>>2]=c[l+12>>2];c[w+16>>2]=c[l+16>>2];c[b+4>>2]=(c[b+4>>2]|0)+1;i=l;return}function ct(a){a=a|0;return}function dt(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function et(d,e,f,h){d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0;j=i;q=+g[e>>2];t=q<999999984306749400.0?q:999999984306749400.0;r=+g[e+4>>2];w=r<999999984306749400.0?r:999999984306749400.0;s=+g[e+8>>2];v=s<999999984306749400.0?s:999999984306749400.0;q=q>-999999984306749400.0?q:-999999984306749400.0;r=r>-999999984306749400.0?r:-999999984306749400.0;s=s>-999999984306749400.0?s:-999999984306749400.0;z=+g[e+16>>2];t=z>2];w=A>2];v=B>2];t=B>2];w=A>2];v=z>2]|0;E=+g[e+4>>2];C=+g[e+8>>2];A=+g[e+12>>2];D=+g[e+36>>2];z=+g[e+40>>2];B=+g[e+44>>2];e=~~((t-E)*D)&65535&65534;l=~~((w-C)*z)&65535&65534;m=~~((v-A)*B)&65535&65534;n=(~~((q-E)*D+1.0)&65535|1)&65535;o=(~~((r-C)*z+1.0)&65535|1)&65535;p=(~~((s-A)*B+1.0)&65535|1)&65535;d=c[d+4>>2]|0;u=c[d+4>>2]|0;if((u|0)==(c[d+8>>2]|0)?(k=(u|0)==0?1:u<<1,(u|0)<(k|0)):0){if((k|0)==0){x=0}else{c[4546]=(c[4546]|0)+1;u=Zx((k<<4|3)+16|0)|0;if((u|0)==0){x=0}else{c[(u+19&-16)+ -4>>2]=u;x=u+19&-16}u=c[d+4>>2]|0}if((u|0)>0){y=0;do{F=x+(y<<4)|0;G=(c[d+12>>2]|0)+(y<<4)|0;c[F+0>>2]=c[G+0>>2];c[F+4>>2]=c[G+4>>2];c[F+8>>2]=c[G+8>>2];c[F+12>>2]=c[G+12>>2];y=y+1|0}while((y|0)!=(u|0))}u=c[d+12>>2]|0;if((u|0)!=0){if((a[d+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[u+ -4>>2]|0)}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=x;c[d+8>>2]=k;u=c[d+4>>2]|0}G=c[d+12>>2]|0;b[G+(u<<4)>>1]=e;b[G+(u<<4)+2>>1]=l;b[G+(u<<4)+4>>1]=m;b[G+(u<<4)+6>>1]=n;b[G+(u<<4)+8>>1]=o;b[G+(u<<4)+10>>1]=p;c[G+(u<<4)+12>>2]=f<<21|h;c[d+4>>2]=(c[d+4>>2]|0)+1;i=j;return}function ft(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;c[b>>2]=13760;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+24>>2]=0;a[b+28>>0]=0;a[b+48>>0]=1;c[b+44>>2]=0;c[b+36>>2]=0;c[b+40>>2]=0;a[b+68>>0]=1;c[b+64>>2]=0;c[b+56>>2]=0;c[b+60>>2]=0;c[b+72>>2]=0;c[4546]=(c[4546]|0)+1;e=Zx(51)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}f=c[b+8>>2]|0;if((f|0)>0){g=0;do{h=c[b+16>>2]|0;c[e+(g<<4)>>2]=c[h+(g<<4)>>2];c[e+(g<<4)+4>>2]=c[h+(g<<4)+4>>2];c[e+(g<<4)+8>>2]=c[h+(g<<4)+8>>2];c[e+(g<<4)+12>>2]=c[h+(g<<4)+12>>2];g=g+1|0}while((g|0)!=(f|0))}f=c[b+16>>2]|0;if((f|0)==0){a[b+20>>0]=1;c[b+16>>2]=e;c[b+12>>2]=2;gt(b);i=d;return}if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=e;c[b+12>>2]=2;gt(b);i=d;return}function gt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;f=c[b+12>>2]|0;d=c[b+36>>2]|0;if((d|0)>=(f|0)){i=e;return}if((d|0)<=(f|0)){if((c[b+40>>2]|0)<(f|0)){if((f|0)==0){h=d;g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((f<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[b+36>>2]|0}if((h|0)>0){j=0;do{k=g+(j<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[b+44>>2]|0)+(j<<2)>>2]}j=j+1|0}while((j|0)!=(h|0))}h=c[b+44>>2]|0;if((h|0)!=0){if((a[b+48>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+44>>2]=0}a[b+48>>0]=1;c[b+44>>2]=g;c[b+40>>2]=f}else{g=c[b+44>>2]|0}h=d;do{j=g+(h<<2)|0;if((j|0)!=0){c[j>>2]=0}h=h+1|0}while((h|0)!=(f|0))}c[b+36>>2]=f;g=c[b+56>>2]|0;if((g|0)<(f|0)){if((c[b+60>>2]|0)<(f|0)){if((f|0)==0){h=g;j=0}else{c[4546]=(c[4546]|0)+1;h=Zx((f<<2|3)+16|0)|0;if((h|0)==0){j=0}else{c[(h+19&-16)+ -4>>2]=h;j=h+19&-16}h=c[b+56>>2]|0}if((h|0)>0){l=0;do{k=j+(l<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[b+64>>2]|0)+(l<<2)>>2]}l=l+1|0}while((l|0)!=(h|0))}h=c[b+64>>2]|0;if((h|0)!=0){if((a[b+68>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+64>>2]=0}a[b+68>>0]=1;c[b+64>>2]=j;c[b+60>>2]=f}else{j=c[b+64>>2]|0}do{h=j+(g<<2)|0;if((h|0)!=0){c[h>>2]=0}g=g+1|0}while((g|0)!=(f|0))}c[b+56>>2]=f;if((f|0)>0){by(c[b+44>>2]|0,-1,f<<2|0)|0;by(c[b+64>>2]|0,-1,f<<2|0)|0}if((d|0)<=0){i=e;return}h=c[b+16>>2]|0;g=c[b+44>>2]|0;f=c[b+64>>2]|0;j=0;do{l=c[(c[h+(j<<4)+4>>2]|0)+12>>2]<<16|c[(c[h+(j<<4)>>2]|0)+12>>2];l=(l+~(l<<15)>>10^l+~(l<<15))*9|0;l=g+((((l>>6^l)+~((l>>6^l)<<11)>>16^(l>>6^l)+~((l>>6^l)<<11))&(c[b+12>>2]|0)+ -1)<<2)|0;c[f+(j<<2)>>2]=c[l>>2];c[l>>2]=j;j=j+1|0}while((j|0)!=(d|0));i=e;return}function ht(a){a=a|0;var b=0;b=i;it(a);if((a|0)==0){i=b;return}_x(a);i=b;return}function it(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=13760;e=c[b+64>>2]|0;if((e|0)!=0){if((a[b+68>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+64>>2]=0}a[b+68>>0]=1;c[b+64>>2]=0;c[b+56>>2]=0;c[b+60>>2]=0;e=c[b+44>>2]|0;if((e|0)!=0){if((a[b+48>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+44>>2]=0}a[b+48>>0]=1;c[b+44>>2]=0;c[b+36>>2]=0;c[b+40>>2]=0;e=c[b+16>>2]|0;if((e|0)==0){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;e=b+12|0;c[e>>2]=0;i=d;return}if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;e=b+12|0;c[e>>2]=0;i=d;return}function jt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=i;e=c[b+8>>2]|0;if((e|0)==0|(d|0)==0){i=a;return}Nb[c[c[e>>2]>>2]&255](e);Pb[c[(c[d>>2]|0)+60>>2]&127](d,c[b+8>>2]|0);c[b+8>>2]=0;i=a;return}function kt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;i=i+16|0;c[e>>2]=14064;c[e+4>>2]=b;c[e+8>>2]=a;c[e+12>>2]=d;sc[c[(c[a>>2]|0)+48>>2]&63](a,e,d);i=e;return}function lt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;i=i+16|0;c[e>>2]=13888;c[e+4>>2]=b;sc[c[(c[a>>2]|0)+48>>2]&63](a,e,d);i=e;return}function mt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;c[3436]=(c[3436]|0)+1;h=(c[b+12>>2]|0)>(c[d+12>>2]|0);g=c[(h?d:b)+12>>2]|0;b=c[(h?b:d)+12>>2]|0;d=((b<<16|g)+~((b<<16|g)<<15)>>10^(b<<16|g)+~((b<<16|g)<<15))*9|0;d=((d>>6^d)+~((d>>6^d)<<11)>>16^(d>>6^d)+~((d>>6^d)<<11))&(c[a+12>>2]|0)+ -1;if((d|0)>=(c[a+36>>2]|0)){h=0;i=f;return h|0}h=c[(c[a+44>>2]|0)+(d<<2)>>2]|0;if((h|0)==-1){h=0;i=f;return h|0}d=c[a+16>>2]|0;while(1){if((c[(c[d+(h<<4)>>2]|0)+12>>2]|0)==(g|0)?(c[(c[d+(h<<4)+4>>2]|0)+12>>2]|0)==(b|0):0){break}h=c[(c[a+64>>2]|0)+(h<<2)>>2]|0;if((h|0)==-1){g=0;e=8;break}}if((e|0)==8){i=f;return g|0}h=d+(h<<4)|0;i=f;return h|0}function nt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;f=i;d=c[b+4>>2]|0;if((d|0)!=(c[b+8>>2]|0)){j=d;j=j+1|0;c[b+4>>2]=j;j=b+12|0;j=c[j>>2]|0;j=j+(d<<4)|0;i=f;return j|0}e=(d|0)==0?1:d<<1;if((d|0)>=(e|0)){j=d;j=j+1|0;c[b+4>>2]=j;j=b+12|0;j=c[j>>2]|0;j=j+(d<<4)|0;i=f;return j|0}if((e|0)==0){h=d;g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((e<<4|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[b+4>>2]|0}if((h|0)>0){j=0;do{k=c[b+12>>2]|0;c[g+(j<<4)>>2]=c[k+(j<<4)>>2];c[g+(j<<4)+4>>2]=c[k+(j<<4)+4>>2];c[g+(j<<4)+8>>2]=c[k+(j<<4)+8>>2];c[g+(j<<4)+12>>2]=c[k+(j<<4)+12>>2];j=j+1|0}while((j|0)!=(h|0))}j=c[b+12>>2]|0;if((j|0)!=0){if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);h=c[b+4>>2]|0}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=g;c[b+8>>2]=e;k=h;k=k+1|0;c[b+4>>2]=k;k=b+12|0;k=c[k>>2]|0;k=k+(d<<4)|0;i=f;return k|0}function ot(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;c[3432]=(c[3432]|0)+1;j=(c[b+12>>2]|0)>(c[d+12>>2]|0);h=j?d:b;j=j?b:d;l=c[h+12>>2]|0;d=c[j+12>>2]|0;k=((d<<16|l)+~((d<<16|l)<<15)>>10^(d<<16|l)+~((d<<16|l)<<15))*9|0;k=((k>>6^k)+~((k>>6^k)<<11)>>16^(k>>6^k)+~((k>>6^k)<<11))&(c[a+12>>2]|0)+ -1;m=c[(c[a+44>>2]|0)+(k<<2)>>2]|0;if((m|0)==-1){o=0;i=g;return o|0}b=c[a+16>>2]|0;while(1){if((c[(c[b+(m<<4)>>2]|0)+12>>2]|0)==(l|0)?(c[(c[b+(m<<4)+4>>2]|0)+12>>2]|0)==(d|0):0){break}m=c[(c[a+64>>2]|0)+(m<<2)>>2]|0;if((m|0)==-1){a=0;f=24;break}}if((f|0)==24){i=g;return a|0}d=b+(m<<4)|0;if((d|0)==0){o=0;i=g;return o|0}sc[c[(c[a>>2]|0)+32>>2]&63](a,d,e);b=c[b+(m<<4)+12>>2]|0;d=d-(c[a+16>>2]|0)>>4;k=(c[a+44>>2]|0)+(k<<2)|0;l=c[k>>2]|0;m=c[a+64>>2]|0;if((l|0)!=(d|0)){while(1){n=m+(l<<2)|0;o=c[n>>2]|0;if((o|0)==(d|0)){break}else{l=o}}m=c[m+(d<<2)>>2]|0;if((l|0)==-1){f=12}else{c[n>>2]=m}}else{m=c[m+(d<<2)>>2]|0;f=12}if((f|0)==12){c[k>>2]=m}k=(c[a+8>>2]|0)+ -1|0;l=c[a+72>>2]|0;if((l|0)!=0){Vb[c[(c[l>>2]|0)+12>>2]&31](l,h,j,e)|0}if((k|0)==(d|0)){c[a+8>>2]=(c[a+8>>2]|0)+ -1;o=b;i=g;return o|0}j=c[a+16>>2]|0;h=c[(c[j+(k<<4)+4>>2]|0)+12>>2]<<16|c[(c[j+(k<<4)>>2]|0)+12>>2];h=(h+~(h<<15)>>10^h+~(h<<15))*9|0;h=((h>>6^h)+~((h>>6^h)<<11)>>16^(h>>6^h)+~((h>>6^h)<<11))&(c[a+12>>2]|0)+ -1;e=(c[a+44>>2]|0)+(h<<2)|0;m=c[e>>2]|0;n=c[a+64>>2]|0;if((m|0)!=(k|0)){while(1){l=n+(m<<2)|0;o=c[l>>2]|0;if((o|0)==(k|0)){break}else{m=o}}n=c[n+(k<<2)>>2]|0;if((m|0)==-1){f=22}else{c[l>>2]=n}}else{n=c[n+(k<<2)>>2]|0;f=22}if((f|0)==22){c[e>>2]=n}c[j+(d<<4)+0>>2]=c[j+(k<<4)+0>>2];c[j+(d<<4)+4>>2]=c[j+(k<<4)+4>>2];c[j+(d<<4)+8>>2]=c[j+(k<<4)+8>>2];c[j+(d<<4)+12>>2]=c[j+(k<<4)+12>>2];o=(c[a+44>>2]|0)+(h<<2)|0;c[(c[a+64>>2]|0)+(d<<2)>>2]=c[o>>2];c[o>>2]=d;c[a+8>>2]=(c[a+8>>2]|0)+ -1;o=b;i=g;return o|0}function pt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;if((c[a+8>>2]|0)<=0){i=e;return}f=0;a:while(1){while(1){h=c[a+16>>2]|0;g=h+(f<<4)|0;if(!(hc[c[(c[b>>2]|0)+8>>2]&31](b,g)|0)){break}Vb[c[(c[a>>2]|0)+12>>2]&31](a,c[g>>2]|0,c[h+(f<<4)+4>>2]|0,d)|0;c[3430]=(c[3430]|0)+ -1;if((f|0)>=(c[a+8>>2]|0)){a=7;break a}}f=f+1|0;if((f|0)>=(c[a+8>>2]|0)){a=7;break}}if((a|0)==7){i=e;return}}function qt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;i=i+32|0;a[e+16>>0]=1;c[e+12>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;n=c[b+8>>2]|0;if((n|0)>0){m=0;l=0;f=0;h=0;while(1){g=c[b+16>>2]|0;if((h|0)==(m|0)){j=(m|0)==0?1:m<<1;if((m|0)<(j|0)){if((j|0)!=0){c[4546]=(c[4546]|0)+1;k=Zx((j<<4|3)+16|0)|0;if((k|0)==0){m=h;l=0}else{c[(k+19&-16)+ -4>>2]=k;m=h;l=k+19&-16}}else{l=0}if((m|0)>0){k=0;do{n=c[e+12>>2]|0;c[l+(k<<4)>>2]=c[n+(k<<4)>>2];c[l+(k<<4)+4>>2]=c[n+(k<<4)+4>>2];c[l+(k<<4)+8>>2]=c[n+(k<<4)+8>>2];c[l+(k<<4)+12>>2]=c[n+(k<<4)+12>>2];k=k+1|0}while((k|0)!=(m|0))}k=c[e+12>>2]|0;if((k|0)==0){h=m}else{c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0);c[e+12>>2]=0}a[e+16>>0]=1;c[e+12>>2]=l;c[e+8>>2]=j;k=h;n=c[b+8>>2]|0}else{k=m;j=m}}else{k=h;j=m}c[l+(k<<4)>>2]=c[g+(f<<4)>>2];c[l+(k<<4)+4>>2]=c[g+(f<<4)+4>>2];c[l+(k<<4)+8>>2]=c[g+(f<<4)+8>>2];c[l+(k<<4)+12>>2]=c[g+(f<<4)+12>>2];h=k+1|0;f=f+1|0;if((f|0)>=(n|0)){break}else{m=j}}c[e+4>>2]=h;if((k|0)>-1){f=0;do{Vb[c[(c[b>>2]|0)+12>>2]&31](b,c[l+(f<<4)>>2]|0,c[l+(f<<4)+4>>2]|0,d)|0;f=f+1|0}while((f|0)<(h|0))}}else{h=0}if((c[b+56>>2]|0)>0){d=c[b+64>>2]|0;f=0;do{c[d+(f<<2)>>2]=-1;f=f+1|0}while((f|0)<(c[b+56>>2]|0))}if((h|0)>1){um(e,0,h+ -1|0);h=c[e+4>>2]|0}if((h|0)>0){d=c[e+12>>2]|0;f=0;do{_b[c[(c[b>>2]|0)+8>>2]&31](b,c[d+(f<<4)>>2]|0,c[d+(f<<4)+4>>2]|0)|0;f=f+1|0}while((f|0)<(h|0))}else{d=c[e+12>>2]|0}if((d|0)==0){i=e;return}if((a[e+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[d+ -4>>2]|0)}c[e+12>>2]=0;i=e;return}function rt(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;c[3434]=(c[3434]|0)+1;g=c[a+24>>2]|0;if((g|0)==0){if((b[e+6>>1]&b[d+4>>1])<<16>>16==0){m=0;i=f;return m|0}if((b[d+6>>1]&b[e+4>>1])<<16>>16==0){m=0;i=f;return m|0}}else{if(!(_b[c[(c[g>>2]|0)+8>>2]&31](g,d,e)|0)){m=0;i=f;return m|0}}j=(c[d+12>>2]|0)>(c[e+12>>2]|0);g=j?e:d;e=j?d:e;j=c[g+12>>2]|0;l=c[e+12>>2]|0;d=((l<<16|j)+~((l<<16|j)<<15)>>10^(l<<16|j)+~((l<<16|j)<<15))*9|0;d=(d>>6^d)+~((d>>6^d)<<11)>>16^(d>>6^d)+~((d>>6^d)<<11);h=c[a+12>>2]|0;m=c[(c[a+44>>2]|0)+((d&h+ -1)<<2)>>2]|0;a:do{if(!((m|0)==-1)){k=c[a+16>>2]|0;while(1){if((c[(c[k+(m<<4)>>2]|0)+12>>2]|0)==(j|0)?(c[(c[k+(m<<4)+4>>2]|0)+12>>2]|0)==(l|0):0){break}m=c[(c[a+64>>2]|0)+(m<<2)>>2]|0;if((m|0)==-1){break a}}j=k+(m<<4)|0;if((j|0)!=0){m=j;i=f;return m|0}}}while(0);k=c[a+8>>2]|0;j=nt(a+4|0)|0;l=c[a+72>>2]|0;if((l|0)!=0){_b[c[(c[l>>2]|0)+8>>2]&31](l,g,e)|0}if((h|0)<(c[a+12>>2]|0)){gt(a);d=(c[a+12>>2]|0)+ -1&d}else{d=d&h+ -1}if((c[g+12>>2]|0)<(c[e+12>>2]|0)){c[j>>2]=g;c[j+4>>2]=e}else{c[j>>2]=e;c[j+4>>2]=g}c[j+8>>2]=0;c[j+12>>2]=0;m=(c[a+44>>2]|0)+(d<<2)|0;c[(c[a+64>>2]|0)+(k<<2)>>2]=c[m>>2];c[m>>2]=k;m=j;i=f;return m|0}function st(a){a=a|0;return c[a+16>>2]|0}function tt(a){a=a|0;return c[a+16>>2]|0}function ut(a){a=a|0;return a+4|0}function vt(a){a=a|0;return c[a+8>>2]|0}function wt(a,b){a=a|0;b=b|0;c[a+24>>2]=b;return}function xt(a){a=a|0;return 0}function yt(a,b){a=a|0;b=b|0;c[a+72>>2]=b;return}function zt(a){a=a|0;return}function At(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Bt(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+4>>2]|0;if((c[b>>2]|0)==(a|0)){a=1;i=d;return a|0}a=(c[b+4>>2]|0)==(a|0);i=d;return a|0}function Ct(a){a=a|0;return}function Dt(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Et(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=c[a+4>>2]|0;if((c[b>>2]|0)!=(e|0)?(c[b+4>>2]|0)!=(e|0):0){i=d;return 0}e=c[a+8>>2]|0;sc[c[(c[e>>2]|0)+32>>2]&63](e,b,c[a+12>>2]|0);i=d;return 0}function Ft(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0;d=i;f=c[a+748>>2]|0;if((f|0)!=4){c[a+748>>2]=f+1;x=f;h=(x|0)<0;x=h?0:x;h=a+(x*184|0)+4|0;ey(h|0,b|0,184)|0;i=d;return x|0}e=+g[b+80>>2];z=+g[a+84>>2];y=z>2];v=w>2];h=+g[a+636>>2]<(u>31;e=+g[b>>2];if((x|0)!=0){s=+g[a+188>>2];m=+g[b+4>>2];t=+g[a+192>>2];q=+g[b+8>>2];l=+g[a+196>>2];w=+g[a+556>>2];p=+g[a+372>>2];y=+g[a+560>>2];u=+g[a+376>>2];o=+g[a+564>>2];v=+g[a+380>>2];r=((e-s)*(y-u)-(m-t)*(w-p))*((e-s)*(y-u)-(m-t)*(w-p))+(((m-t)*(o-v)-(q-l)*(y-u))*((m-t)*(o-v)-(q-l)*(y-u))+((q-l)*(w-p)-(e-s)*(o-v))*((q-l)*(w-p)-(e-s)*(o-v)));if((x|0)==1){k=+g[a+4>>2];j=+g[a+8>>2];n=+g[a+12>>2];z=o;o=0.0;f=7}else{z=o;f=6}}else{s=+g[a+188>>2];t=+g[a+192>>2];l=+g[a+196>>2];m=+g[b+4>>2];q=+g[b+8>>2];p=+g[a+372>>2];w=+g[a+556>>2];u=+g[a+376>>2];y=+g[a+560>>2];v=+g[a+380>>2];z=+g[a+564>>2];r=0.0;f=6}if((f|0)==6){k=+g[a+4>>2];j=+g[a+8>>2];D=m-j;n=+g[a+12>>2];B=q-n;A=w-p;C=y-u;o=z-v;o=((e-k)*C-D*A)*((e-k)*C-D*A)+((D*o-B*C)*(D*o-B*C)+(B*A-(e-k)*o)*(B*A-(e-k)*o));if((x|0)==2){w=0.0;f=8}else{f=7}}if((f|0)==7){D=e-k;E=m-j;B=q-n;C=w-s;A=y-t;w=z-l;w=(D*A-E*C)*(D*A-E*C)+((E*w-B*A)*(E*w-B*A)+(B*C-D*w)*(B*C-D*w));if(h){e=0.0}else{f=8}}if((f|0)==8){E=e-k;A=m-j;C=q-n;D=p-s;B=u-t;e=v-l;e=(E*B-A*D)*(E*B-A*D)+((A*e-C*B)*(A*e-C*B)+(C*D-E*e)*(C*D-E*e))}E=+P(+r);C=+P(+o);A=+P(+w);z=+P(+e);D=E>-999999984306749400.0?E:-999999984306749400.0;B=C>D?C:D;x=z>(A>B?A:B)?3:A>B?2:C>D?1:(E>-999999984306749400.0^1)<<31>>31;h=(x|0)<0;x=h?0:x;h=a+(x*184|0)+4|0;ey(h|0,b|0,184)|0;i=d;return x|0}function Gt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0;f=i;h=c[b+748>>2]|0;if((h|0)<=0){i=f;return}do{h=h+ -1|0;q=+g[b+(h*184|0)+4>>2];r=+g[b+(h*184|0)+8>>2];j=+g[b+(h*184|0)+12>>2];p=q*+g[d>>2]+r*+g[d+4>>2]+j*+g[d+8>>2]+ +g[d+48>>2];n=q*+g[d+16>>2]+r*+g[d+20>>2]+j*+g[d+24>>2]+ +g[d+52>>2];j=q*+g[d+32>>2]+r*+g[d+36>>2]+j*+g[d+40>>2]+ +g[d+56>>2];g[b+(h*184|0)+52>>2]=p;g[b+(h*184|0)+56>>2]=n;g[b+(h*184|0)+60>>2]=j;g[b+(h*184|0)+64>>2]=0.0;r=+g[b+(h*184|0)+20>>2];q=+g[b+(h*184|0)+24>>2];k=+g[b+(h*184|0)+28>>2];o=r*+g[e>>2]+q*+g[e+4>>2]+k*+g[e+8>>2]+ +g[e+48>>2];m=r*+g[e+16>>2]+q*+g[e+20>>2]+k*+g[e+24>>2]+ +g[e+52>>2];k=r*+g[e+32>>2]+q*+g[e+36>>2]+k*+g[e+40>>2]+ +g[e+56>>2];g[b+(h*184|0)+36>>2]=o;g[b+(h*184|0)+40>>2]=m;g[b+(h*184|0)+44>>2]=k;g[b+(h*184|0)+48>>2]=0.0;g[b+(h*184|0)+84>>2]=(p-o)*+g[b+(h*184|0)+68>>2]+(n-m)*+g[b+(h*184|0)+72>>2]+(j-k)*+g[b+(h*184|0)+76>>2];l=b+(h*184|0)+152|0;c[l>>2]=(c[l>>2]|0)+1}while((h|0)>0);d=c[b+748>>2]|0;if((d|0)<=0){i=f;return}e=d;do{d=d+ -1|0;h=b+(d*184|0)+4|0;k=+g[b+(d*184|0)+84>>2];j=+g[b+752>>2];if(k<=j){p=+g[b+(d*184|0)+36>>2]-(+g[b+(d*184|0)+52>>2]- +g[b+(d*184|0)+68>>2]*k);q=+g[b+(d*184|0)+40>>2]-(+g[b+(d*184|0)+56>>2]-k*+g[b+(d*184|0)+72>>2]);r=+g[b+(d*184|0)+44>>2]-(+g[b+(d*184|0)+60>>2]-k*+g[b+(d*184|0)+76>>2]);if(p*p+q*q+r*r>j*j){l=e+ -1|0;if((l|0)!=(d|0)){ey(h|0,b+(l*184|0)+4|0,184)|0;c[b+(l*184|0)+116>>2]=0;g[b+(l*184|0)+124>>2]=0.0;a[b+(l*184|0)+120>>0]=0;g[b+(l*184|0)+128>>2]=0.0;g[b+(l*184|0)+132>>2]=0.0;c[b+(l*184|0)+152>>2]=0;e=c[b+748>>2]|0}e=e+ -1|0;c[b+748>>2]=e}}else{l=e+ -1|0;if((l|0)!=(d|0)){ey(h|0,b+(l*184|0)+4|0,184)|0;c[b+(l*184|0)+116>>2]=0;g[b+(l*184|0)+124>>2]=0.0;a[b+(l*184|0)+120>>0]=0;g[b+(l*184|0)+128>>2]=0.0;g[b+(l*184|0)+132>>2]=0.0;c[b+(l*184|0)+152>>2]=0;e=c[b+748>>2]|0}e=e+ -1|0;c[b+748>>2]=e}}while((d|0)>0);i=f;return}function Ht(a){a=a|0;var b=0,d=0;b=i;c[a>>2]=14224;d=c[a+52>>2]|0;if((d|0)!=0){Nb[c[c[d>>2]>>2]&255](d);d=c[a+52>>2]|0;if((d|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[d+ -4>>2]|0)}if((a|0)==0){i=b;return}}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function It(a){a=a|0;var b=0,d=0;b=i;c[a>>2]=14224;d=c[a+52>>2]|0;if((d|0)==0){i=b;return}Nb[c[c[d>>2]>>2]&255](d);a=c[a+52>>2]|0;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Jt(d,f){d=d|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0,$=0,aa=0,ba=0.0,ca=0.0,da=0,ea=0;h=i;i=i+336|0;m=c[d+52>>2]|0;if((m|0)!=0?(Nb[c[c[m>>2]>>2]&255](m),j=c[d+52>>2]|0,(j|0)!=0):0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0)}c[4546]=(c[4546]|0)+1;j=Zx(151)|0;if((j|0)==0){j=0}else{c[(j+19&-16)+ -4>>2]=j;j=j+19&-16}c[j>>2]=17664;a[j+20>>0]=1;c[j+16>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;a[j+40>>0]=1;c[j+36>>2]=0;c[j+28>>2]=0;c[j+32>>2]=0;a[j+60>>0]=1;c[j+56>>2]=0;c[j+48>>2]=0;c[j+52>>2]=0;c[d+52>>2]=j;s=0;m=0;v=0;j=0;while(1){if((s|0)>=(Rb[c[(c[d>>2]|0)+96>>2]&127](d)|0)){break}if((m|0)==(v|0)){w=(v|0)==0?1:v<<1;if((v|0)<(w|0)){if((w|0)!=0?(c[4546]=(c[4546]|0)+1,p=Zx((w<<4|3)+16|0)|0,(p|0)!=0):0){c[(p+19&-16)+ -4>>2]=p;t=p+19&-16}else{t=0}if((v|0)>0){u=0;do{aa=t+(u<<4)|0;$=j+(u<<4)|0;c[aa+0>>2]=c[$+0>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];u=u+1|0}while((u|0)!=(v|0))}if((j|0)==0){u=v;v=w;j=t}else{c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);u=v;v=w;j=t}}else{u=v}}else{u=m}aa=j+(m<<4)|0;c[aa+0>>2]=c[h+256>>2];c[aa+4>>2]=c[h+260>>2];c[aa+8>>2]=c[h+264>>2];c[aa+12>>2]=c[h+268>>2];sc[c[(c[d>>2]|0)+108>>2]&63](d,s,aa);s=s+1|0;m=u+1|0}a[h+212>>0]=1;c[h+208>>2]=0;c[h+200>>2]=0;c[h+204>>2]=0;a[h+232>>0]=1;c[h+228>>2]=0;c[h+220>>2]=0;c[h+224>>2]=0;a[h+252>>0]=1;c[h+248>>2]=0;c[h+240>>2]=0;c[h+244>>2]=0;if((f|0)!=0){if((m|0)>0){f=0;C=0;E=0;F=0;while(1){t=f;f=f+1|0;if((f|0)<(m|0)){s=j+(t<<4)|0;p=j+(t<<4)+4|0;t=j+(t<<4)+8|0;u=f;do{x=u;u=u+1|0;if((u|0)<(m|0)){v=j+(x<<4)|0;w=j+(x<<4)+4|0;y=j+(x<<4)+8|0;x=u;do{S=+g[s>>2];A=+g[v>>2]-S;T=+g[p>>2];U=+g[w>>2]-T;B=+g[t>>2];R=+g[y>>2]-B;S=+g[j+(x<<4)>>2]-S;T=+g[j+(x<<4)+4>>2]-T;B=+g[j+(x<<4)+8>>2]-B;X=1.0;D=0;while(1){V=(U*B-R*T)*X;W=(R*S-A*B)*X;X=(A*T-U*S)*X;a:do{if(X*X+(V*V+W*W)>9999999747378752.0e-20){Y=1.0/+Q(+(X*X+(V*V+W*W)));if((C|0)>0){G=0;do{if(V*Y*+g[F+(G<<4)>>2]+W*Y*+g[F+(G<<4)+4>>2]+X*Y*+g[F+(G<<4)+8>>2]>.9990000128746033){break a}G=G+1|0}while((G|0)<(C|0))}Z=V*Y*+g[s>>2]+W*Y*+g[p>>2]+X*Y*+g[t>>2];G=0;do{if(V*Y*+g[j+(G<<4)>>2]+W*Y*+g[j+(G<<4)+4>>2]+X*Y*+g[j+(G<<4)+8>>2]-Z+-.009999999776482582>0.0){break a}G=G+1|0}while((G|0)<(m|0));do{if((C|0)==(E|0)){H=(E|0)==0?1:E<<1;if((E|0)<(H|0)){do{if((H|0)==0){G=0}else{c[4546]=(c[4546]|0)+1;G=Zx((H<<4|3)+16|0)|0;if((G|0)==0){G=0;break}c[(G+19&-16)+ -4>>2]=G;G=G+19&-16}}while(0);if((E|0)>0){I=0;do{aa=G+(I<<4)|0;$=F+(I<<4)|0;c[aa+0>>2]=c[$+0>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];I=I+1|0}while((I|0)!=(E|0))}if((F|0)==0){I=E;E=H;F=G;break}c[4548]=(c[4548]|0)+1;_x(c[F+ -4>>2]|0);I=E;E=H;F=G}else{I=E}}else{I=C}}while(0);g[F+(I<<4)>>2]=V*Y;g[F+(I<<4)+4>>2]=W*Y;g[F+(I<<4)+8>>2]=X*Y;g[F+(I<<4)+12>>2]=-Z;C=C+1|0}}while(0);D=D+1|0;if((D|0)==2){break}else{X=-1.0}}x=x+1|0}while((x|0)!=(m|0))}}while((u|0)!=(m|0))}if((f|0)==(m|0)){m=F;break}}if((C|0)>0){p=0;f=0;u=0;v=0;while(1){aa=m+(p<<4)|0;c[h+184>>2]=c[aa+0>>2];c[h+188>>2]=c[aa+4>>2];c[h+192>>2]=c[aa+8>>2];A=+g[m+(p<<4)+12>>2];A=A- +bc[c[(c[d>>2]|0)+48>>2]&15](d);if((f|0)==(u|0)){w=(u|0)==0?1:u<<1;if((u|0)<(w|0)){if((w|0)!=0?(c[4546]=(c[4546]|0)+1,l=Zx((w<<4|3)+16|0)|0,(l|0)!=0):0){c[(l+19&-16)+ -4>>2]=l;t=l+19&-16}else{t=0}if((u|0)>0){s=0;do{aa=t+(s<<4)|0;$=v+(s<<4)|0;c[aa+0>>2]=c[$+0>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];s=s+1|0}while((s|0)!=(u|0))}if((v|0)==0){s=u;u=w}else{c[4548]=(c[4548]|0)+1;_x(c[v+ -4>>2]|0);s=u;u=w}}else{s=u;t=v}}else{s=f;t=v}aa=t+(s<<4)|0;c[aa+0>>2]=c[h+184>>2];c[aa+4>>2]=c[h+188>>2];c[aa+8>>2]=c[h+192>>2];g[t+(s<<4)+12>>2]=A;f=f+1|0;p=p+1|0;if((p|0)>=(C|0)){l=t;break}else{v=t}}if((f|0)>0){p=0;w=0;x=0;y=0;do{s=p;p=p+1|0;if((p|0)<(f|0)){t=p;do{u=t;t=t+1|0;if((t|0)<(f|0)){v=t;do{S=+g[l+(u<<4)+4>>2];Y=+g[l+(v<<4)+8>>2];X=+g[l+(u<<4)+8>>2];T=+g[l+(v<<4)+4>>2];W=+g[l+(v<<4)>>2];U=+g[l+(u<<4)>>2];B=+g[l+(s<<4)+8>>2];R=+g[l+(s<<4)+4>>2];V=+g[l+(s<<4)>>2];b:do{if((((T*U-S*W)*(T*U-S*W)+((S*Y-X*T)*(S*Y-X*T)+(X*W-Y*U)*(X*W-Y*U))>9999999747378752.0e-20?(W*R-T*V)*(W*R-T*V)+((T*B-Y*R)*(T*B-Y*R)+(Y*V-W*B)*(Y*V-W*B))>9999999747378752.0e-20:0)?(S*V-U*R)*(S*V-U*R)+((X*R-S*B)*(X*R-S*B)+(U*B-X*V)*(U*B-X*V))>9999999747378752.0e-20:0)?(z=B*(T*U-S*W)+(R*(X*W-Y*U)+(S*Y-X*T)*V),+P(+z)>9.999999974752427e-7):0){ba=+g[l+(s<<4)+12>>2];Z=+g[l+(u<<4)+12>>2];ca=+g[l+(v<<4)+12>>2];A=-1.0/z*((X*R-S*B)*ca+((S*Y-X*T)*ba+(T*B-Y*R)*Z));B=-1.0/z*((U*B-X*V)*ca+((X*W-Y*U)*ba+(Y*V-W*B)*Z));R=-1.0/z*((S*V-U*R)*ca+((T*U-S*W)*ba+(W*R-T*V)*Z));C=0;do{if(+g[l+(C<<4)+12>>2]+(A*+g[l+(C<<4)>>2]+B*+g[l+(C<<4)+4>>2]+R*+g[l+(C<<4)+8>>2])+-.009999999776482582>0.0){break b}C=C+1|0}while((C|0)<(f|0));do{if((w|0)==(x|0)){D=(x|0)==0?1:x<<1;if((x|0)>=(D|0)){E=x;break}do{if((D|0)==0){C=0}else{c[4546]=(c[4546]|0)+1;C=Zx((D<<4|3)+16|0)|0;if((C|0)==0){C=0;break}c[(C+19&-16)+ -4>>2]=C;C=C+19&-16}}while(0);if((x|0)>0){E=0;do{aa=C+(E<<4)|0;$=y+(E<<4)|0;c[aa+0>>2]=c[$+0>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];E=E+1|0}while((E|0)!=(x|0))}if((y|0)==0){E=x;x=D;y=C;break}c[4548]=(c[4548]|0)+1;_x(c[y+ -4>>2]|0);E=x;x=D;y=C}else{E=w}}while(0);g[y+(E<<4)>>2]=A;g[y+(E<<4)+4>>2]=B;g[y+(E<<4)+8>>2]=R;g[y+(E<<4)+12>>2]=0.0;w=w+1|0}}while(0);v=v+1|0}while((v|0)!=(f|0))}}while((t|0)!=(f|0))}}while((p|0)!=(f|0))}else{w=0;y=0}}else{l=0;w=0;y=0}}else{m=0;l=0;w=0;y=0}rx(h+196|0,y,w);if((y|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[y+ -4>>2]|0)}if((l|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[l+ -4>>2]|0)}if((m|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0)}}else{rx(h+196|0,j,m)}s=c[h+240>>2]|0;if((s|0)>0&((s|0)<0^1)){c[4546]=(c[4546]|0)+1;l=Zx((s<<4|3)+16|0)|0;if((l|0)==0){m=0}else{c[(l+19&-16)+ -4>>2]=l;m=l+19&-16}l=0;do{aa=m+(l<<4)|0;c[aa+0>>2]=c[h+168>>2];c[aa+4>>2]=c[h+172>>2];c[aa+8>>2]=c[h+176>>2];c[aa+12>>2]=c[h+180>>2];l=l+1|0}while((l|0)!=(s|0))}else{m=0}a[h+164>>0]=1;f=h+160|0;c[f>>2]=0;l=h+152|0;c[l>>2]=0;c[h+156>>2]=0;p=h+112|0;t=p+36|0;do{c[p>>2]=0;p=p+4|0}while((p|0)<(t|0));a[h+128>>0]=1;c[h+124>>2]=0;c[h+116>>2]=0;c[h+120>>2]=0;if((s|0)<0){Ib()}if((s|0)>0){Nt(h+148|0,s);p=c[f>>2]|0;t=0;do{u=p+(t*36|0)|0;if((u|0)!=0){Pt(u,h+112|0);c[u+20>>2]=c[h+132>>2];c[u+24>>2]=c[h+136>>2];c[u+28>>2]=c[h+140>>2];c[u+32>>2]=c[h+144>>2]}t=t+1|0}while((t|0)!=(s|0));t=c[h+124>>2]|0;c[l>>2]=s;if((t|0)!=0){if((a[h+128>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[t+ -4>>2]|0)}c[h+124>>2]=0}}else{c[l>>2]=s;p=0}a[h+128>>0]=1;c[h+124>>2]=0;c[h+116>>2]=0;c[h+120>>2]=0;t=c[h+200>>2]|0;u=c[d+52>>2]|0;v=c[u+8>>2]|0;if((v|0)<(t|0)){if((c[u+12>>2]|0)<(t|0)){if((t|0)==0){x=v;w=0}else{c[4546]=(c[4546]|0)+1;w=Zx((t<<4|3)+16|0)|0;if((w|0)==0){w=0}else{c[(w+19&-16)+ -4>>2]=w;w=w+19&-16}x=c[u+8>>2]|0}if((x|0)>0){y=0;do{aa=w+(y<<4)|0;$=(c[u+16>>2]|0)+(y<<4)|0;c[aa+0>>2]=c[$+0>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];y=y+1|0}while((y|0)!=(x|0))}x=c[u+16>>2]|0;if((x|0)!=0){if((a[u+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[x+ -4>>2]|0)}c[u+16>>2]=0}a[u+20>>0]=1;c[u+16>>2]=w;c[u+12>>2]=t;w=u+16|0}else{w=u+16|0}do{aa=(c[w>>2]|0)+(v<<4)|0;c[aa+0>>2]=c[h+96>>2];c[aa+4>>2]=c[h+100>>2];c[aa+8>>2]=c[h+104>>2];c[aa+12>>2]=c[h+108>>2];v=v+1|0}while((v|0)!=(t|0))}c[u+8>>2]=t;if((t|0)>0){u=c[h+208>>2]|0;v=0;do{aa=(c[(c[d+52>>2]|0)+16>>2]|0)+(v<<4)|0;$=u+(v<<4)|0;c[aa+0>>2]=c[$+0>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];v=v+1|0}while((v|0)!=(t|0))}if((s|0)>0){t=0;do{x=(c[h+228>>2]|0)+((c[(c[h+248>>2]|0)+(t<<2)>>2]|0)*12|0)|0;u=p+(t*36|0)+4|0;v=p+(t*36|0)+8|0;w=p+(t*36|0)+12|0;p=p+(t*36|0)+16|0;y=x;D=0;do{C=y+4|0;E=c[y+((c[C>>2]|0)*12|0)+8>>2]|0;F=c[u>>2]|0;if((F|0)==(c[v>>2]|0)?(r=(F|0)==0?1:F<<1,(F|0)<(r|0)):0){if((r|0)==0){G=0}else{c[4546]=(c[4546]|0)+1;F=Zx((r<<2|3)+16|0)|0;if((F|0)==0){G=0}else{c[(F+19&-16)+ -4>>2]=F;G=F+19&-16}F=c[u>>2]|0}if((F|0)>0){I=0;do{H=G+(I<<2)|0;if((H|0)!=0){c[H>>2]=c[(c[w>>2]|0)+(I<<2)>>2]}I=I+1|0}while((I|0)!=(F|0))}F=c[w>>2]|0;if((F|0)!=0){if((a[p>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[F+ -4>>2]|0)}c[w>>2]=0}a[p>>0]=1;c[w>>2]=G;c[v>>2]=r;F=c[u>>2]|0}G=(c[w>>2]|0)+(F<<2)|0;if((G|0)!=0){c[G>>2]=E;F=c[u>>2]|0}c[u>>2]=F+1;$=c[y+8>>2]|0;aa=c[h+208>>2]|0;z=+g[aa+($<<4)>>2]- +g[aa+(E<<4)>>2];A=+g[aa+($<<4)+4>>2]- +g[aa+(E<<4)+4>>2];B=+g[aa+($<<4)+8>>2]- +g[aa+(E<<4)+8>>2];R=1.0/+Q(+(z*z+A*A+B*B));if((D|0)<2){g[h+288+(D<<4)>>2]=z*R;g[h+288+(D<<4)+4>>2]=A*R;g[h+288+(D<<4)+8>>2]=B*R;g[h+288+(D<<4)+12>>2]=0.0;D=D+1|0}aa=c[C>>2]|0;y=y+(((c[y+(aa*12|0)>>2]|0)+aa|0)*12|0)|0}while((y|0)!=(x|0));w=m+(t<<4)|0;if((D|0)==2){X=+g[h+292>>2];Y=+g[h+312>>2];Z=+g[h+296>>2];ba=+g[h+308>>2];W=+g[h+304>>2];V=+g[h+288>>2];$=m+(t<<4)+4|0;aa=m+(t<<4)+8|0;g[m+(t<<4)+12>>2]=0.0;ca=1.0/+Q(+((X*Y-Z*ba)*(X*Y-Z*ba)+(Z*W-Y*V)*(Z*W-Y*V)+(ba*V-X*W)*(ba*V-X*W)));g[w>>2]=(X*Y-Z*ba)*ca;g[$>>2]=(Z*W-Y*V)*ca;g[aa>>2]=(ba*V-X*W)*ca;p=c[f>>2]|0;g[p+(t*36|0)+20>>2]=(X*Y-Z*ba)*ca;g[p+(t*36|0)+24>>2]=+g[$>>2];g[p+(t*36|0)+28>>2]=+g[aa>>2];g[p+(t*36|0)+32>>2]=1.0000000150474662e+30}else{c[w+0>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;p=c[f>>2]|0}v=c[p+(t*36|0)+4>>2]|0;if((v|0)>0){u=c[(c[d+52>>2]|0)+16>>2]|0;B=+g[w>>2];A=+g[m+(t<<4)+4>>2];z=+g[m+(t<<4)+8>>2];x=c[p+(t*36|0)+12>>2]|0;R=1.0000000150474662e+30;w=0;do{aa=c[x+(w<<2)>>2]|0;ca=+g[u+(aa<<4)>>2]*B+ +g[u+(aa<<4)+4>>2]*A+ +g[u+(aa<<4)+8>>2]*z;R=R>ca?ca:R;w=w+1|0}while((w|0)<(v|0))}else{R=1.0000000150474662e+30}g[p+(t*36|0)+32>>2]=-R;t=t+1|0}while((t|0)<(s|0));s=c[l>>2]|0;if((s|0)>0){t=0;r=0;w=0;do{if((w|0)==(t|0)){t=(w|0)==0?1:w<<1;if((w|0)<(t|0)){if((t|0)!=0?(c[4546]=(c[4546]|0)+1,q=Zx((t<<2|3)+16|0)|0,(q|0)!=0):0){c[(q+19&-16)+ -4>>2]=q;u=q+19&-16}else{u=0}if((w|0)>0){v=0;do{x=u+(v<<2)|0;if((x|0)!=0){c[x>>2]=c[r+(v<<2)>>2]}v=v+1|0}while((v|0)!=(w|0))}if((r|0)==0){r=u}else{c[4548]=(c[4548]|0)+1;_x(c[r+ -4>>2]|0);r=u}}else{t=w}}u=r+(w<<2)|0;if((u|0)!=0){c[u>>2]=w;s=c[l>>2]|0}w=w+1|0}while((w|0)<(s|0));if((w|0)==0){o=r}else{q=h+88|0;u=h+84|0;t=h+76|0;s=h+32|0;v=h+308|0;B=0.0;A=0.0;z=0.0;while(1){C=w+ -1|0;w=c[r+(C<<2)>>2]|0;c[4546]=(c[4546]|0)+1;y=Zx(23)|0;if((y|0)!=0){c[(y+19&-16)+ -4>>2]=y;x=y+19&-16;if((y+19&-16|0)!=0){c[x>>2]=w}}else{x=0}R=+g[p+(w*36|0)+20>>2];S=+g[p+(w*36|0)+24>>2];T=+g[p+(w*36|0)+28>>2];w=C;F=1;y=1;D=C;c:while(1){C=(w|0)>0;d:while(1){do{aa=D;D=D+ -1|0;if((aa|0)<=0){break c}E=c[r+(D<<2)>>2]|0}while(!(R*+g[p+(E*36|0)+20>>2]+S*+g[p+(E*36|0)+24>>2]+T*+g[p+(E*36|0)+28>>2]>.9990000128746033));do{if((y|0)==(F|0)?(o=(F|0)==0?1:F<<1,(F|0)<(o|0)):0){do{if((o|0)==0){G=0}else{c[4546]=(c[4546]|0)+1;G=Zx((o<<2|3)+16|0)|0;if((G|0)==0){G=0;break}c[(G+19&-16)+ -4>>2]=G;G=G+19&-16}}while(0);if((F|0)>0){I=0;do{H=G+(I<<2)|0;if((H|0)!=0){c[H>>2]=c[x+(I<<2)>>2]}I=I+1|0}while((I|0)!=(F|0))}if((x|0)==0){x=G;F=o;break}c[4548]=(c[4548]|0)+1;_x(c[x+ -4>>2]|0);x=G;F=o}}while(0);G=x+(y<<2)|0;if((G|0)!=0){c[G>>2]=E}y=y+1|0;if(C){I=0}else{continue}while(1){G=r+(I<<2)|0;H=I+1|0;if((c[G>>2]|0)==(E|0)){break}if((H|0)<(w|0)){I=H}else{continue d}}if((I|0)<(w|0)){break}}aa=w+ -1|0;$=r+(aa<<2)|0;c[G>>2]=c[$>>2];c[$>>2]=E;w=aa}if((y|0)>1){a[q>>0]=1;c[u>>2]=0;c[t>>2]=0;c[h+80>>2]=0;B=0.0;A=0.0;z=0.0;G=0;C=0;do{E=c[x+(C<<2)>>2]|0;B=+g[p+(E*36|0)+20>>2]+B;A=+g[p+(E*36|0)+24>>2]+A;z=+g[p+(E*36|0)+28>>2]+z;D=p+(E*36|0)+4|0;H=c[D>>2]|0;if((H|0)>0){E=p+(E*36|0)+12|0;I=G;F=0;while(1){G=c[(c[E>>2]|0)+(F<<2)>>2]|0;aa=(c[(c[d+52>>2]|0)+16>>2]|0)+(G<<4)|0;c[h+56>>2]=c[aa+0>>2];c[h+60>>2]=c[aa+4>>2];c[h+64>>2]=c[aa+8>>2];c[h+68>>2]=c[aa+12>>2];e:do{if((I|0)>0){J=c[u>>2]|0;K=0;while(1){if((c[J+(K*24|0)+20>>2]|0)==(G|0)){G=I;break e}K=K+1|0;if((K|0)>=(I|0)){n=207;break}}}else{n=207}}while(0);if((n|0)==207){n=0;c[h+0>>2]=c[h+56>>2];c[h+4>>2]=c[h+60>>2];c[h+8>>2]=c[h+64>>2];c[h+12>>2]=c[h+68>>2];do{if((I|0)==(c[h+80>>2]|0)){H=(I|0)==0?1:I<<1;if((I|0)>=(H|0)){break}if((H|0)==0){J=0}else{c[4546]=(c[4546]|0)+1;I=Zx((H*24|3)+16|0)|0;if((I|0)==0){J=0}else{c[(I+19&-16)+ -4>>2]=I;J=I+19&-16}I=c[t>>2]|0}K=c[u>>2]|0;if((I|0)<=0){if((K|0)!=0){n=216}}else{n=0;do{aa=J+(n*24|0)|0;$=K+(n*24|0)|0;c[aa+0>>2]=c[$+0>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];c[aa+16>>2]=c[$+16>>2];c[aa+20>>2]=c[$+20>>2];n=n+1|0}while((n|0)!=(I|0));n=216}if((n|0)==216){n=0;if(!((a[q>>0]|0)==0|(K|0)==0)){c[4548]=(c[4548]|0)+1;_x(c[K+ -4>>2]|0);I=c[t>>2]|0}c[u>>2]=0}a[q>>0]=1;c[u>>2]=J;c[h+80>>2]=H}}while(0);H=c[u>>2]|0;aa=H+(I*24|0)|0;c[aa+0>>2]=c[h+0>>2];c[aa+4>>2]=c[h+4>>2];c[aa+8>>2]=c[h+8>>2];c[aa+12>>2]=c[h+12>>2];c[aa+16>>2]=c[h+16>>2];c[H+(I*24|0)+20>>2]=G;G=(c[t>>2]|0)+1|0;c[t>>2]=G;H=c[D>>2]|0}F=F+1|0;if((F|0)>=(H|0)){break}else{I=G}}}C=C+1|0}while((C|0)<(y|0));a[h+36>>0]=1;c[s>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;aa=p+((c[x>>2]|0)*9<<2)+20|0;c[h+40>>2]=c[aa+0>>2];c[h+44>>2]=c[aa+4>>2];c[h+48>>2]=c[aa+8>>2];c[h+52>>2]=c[aa+12>>2];ca=1.0/+Q(+(B*B+A*A+z*z));B=B*ca;A=A*ca;z=z*ca;if(+P(+z)>.7071067690849304){S=1.0/+Q(+(z*z+A*A));R=0.0;T=-(z*S);S=A*S}else{T=1.0/+Q(+(B*B+A*A));R=-(A*T);T=B*T;S=0.0}f:do{if((G|0)<2){if((G|0)>0){C=0;I=0;D=0;n=1;while(1){E=c[u>>2]|0;do{if((C|0)==(I|0)){F=(I|0)==0?1:I<<1;if((I|0)>=(F|0)){H=I;F=I;break}do{if((F|0)==0){G=I;I=0}else{c[4546]=(c[4546]|0)+1;H=Zx((F*24|3)+16|0)|0;if((H|0)==0){G=C;I=0;break}c[(H+19&-16)+ -4>>2]=H;G=C;I=H+19&-16}}while(0);if((G|0)>0){H=0;do{aa=I+(H*24|0)|0;$=D+(H*24|0)|0;c[aa+0>>2]=c[$+0>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];c[aa+16>>2]=c[$+16>>2];c[aa+20>>2]=c[$+20>>2];H=H+1|0}while((H|0)!=(G|0))}if((D|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0)}H=C;G=c[t>>2]|0;D=I}else{H=C;F=I}}while(0);aa=D+(H*24|0)|0;c[aa+0>>2]=c[E+0>>2];c[aa+4>>2]=c[E+4>>2];c[aa+8>>2]=c[E+8>>2];c[aa+12>>2]=c[E+12>>2];c[aa+16>>2]=c[E+16>>2];c[aa+20>>2]=c[E+20>>2];C=C+1|0;if((n|0)>=(G|0)){n=272;break f}I=F;n=n+1|0}}else{D=0;n=307}}else{n=c[u>>2]|0;C=G;D=0;do{if(R*+g[n+(D*24|0)>>2]+T*+g[n+(D*24|0)+4>>2]+S*+g[n+(D*24|0)+8>>2]>2]+T*+g[n+4>>2]+S*+g[n+8>>2]){c[h+288>>2]=c[n+0>>2];c[h+292>>2]=c[n+4>>2];c[h+296>>2]=c[n+8>>2];c[h+300>>2]=c[n+12>>2];c[h+304>>2]=c[n+16>>2];c[h+308>>2]=c[n+20>>2];C=n+(D*24|0)|0;c[n+0>>2]=c[C+0>>2];c[n+4>>2]=c[C+4>>2];c[n+8>>2]=c[C+8>>2];c[n+12>>2]=c[C+12>>2];c[n+16>>2]=c[C+16>>2];c[n+20>>2]=c[C+20>>2];C=n+(D*24|0)|0;c[C+0>>2]=c[h+288>>2];c[C+4>>2]=c[h+292>>2];c[C+8>>2]=c[h+296>>2];c[C+12>>2]=c[h+300>>2];c[C+16>>2]=c[h+304>>2];c[C+20>>2]=c[h+308>>2];C=G}D=D+1|0}while((D|0)<(C|0));g[n+16>>2]=-1.0000000150474662e+30;if((C|0)>1){U=+g[n+4>>2];D=1;do{Z=+g[n+(D*24|0)>>2]- +g[n>>2];ba=+g[n+(D*24|0)+4>>2]-U;ca=+g[n+(D*24|0)+8>>2]- +g[n+8>>2];g[n+(D*24|0)+16>>2]=((R*ba-T*Z)*z+(B*(T*ca-S*ba)+A*(S*Z-R*ca)))/+Q(+(Z*Z+ba*ba+ca*ca));D=D+1|0}while((D|0)<(C|0))}c[h+272>>2]=c[n+0>>2];c[h+276>>2]=c[n+4>>2];c[h+280>>2]=c[n+8>>2];c[h+284>>2]=c[n+12>>2];Qt(h+72|0,h+272|0,1,C+ -1|0);D=c[u>>2]|0;c[4546]=(c[4546]|0)+1;n=Zx(43)|0;if((n|0)==0){n=0}else{c[(n+19&-16)+ -4>>2]=n;n=n+19&-16}C=c[u>>2]|0;c[n+0>>2]=c[D+0>>2];c[n+4>>2]=c[D+4>>2];c[n+8>>2]=c[D+8>>2];c[n+12>>2]=c[D+12>>2];c[n+16>>2]=c[D+16>>2];c[n+20>>2]=c[D+20>>2];c[4546]=(c[4546]|0)+1;D=Zx(67)|0;if((D|0)==0){D=0}else{c[(D+19&-16)+ -4>>2]=D;D=D+19&-16}E=0;while(1){aa=D+(E*24|0)|0;$=n+(E*24|0)|0;c[aa+0>>2]=c[$+0>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];c[aa+16>>2]=c[$+16>>2];c[aa+20>>2]=c[$+20>>2];if((E|0)==0){break}else{E=E+1|0}}if((n|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[n+ -4>>2]|0)}G=D+24|0;c[G+0>>2]=c[C+24>>2];c[G+4>>2]=c[C+28>>2];c[G+8>>2]=c[C+32>>2];c[G+12>>2]=c[C+36>>2];c[G+16>>2]=c[C+40>>2];c[G+20>>2]=c[C+44>>2];G=c[t>>2]|0;if((G|0)==2){C=2;n=273;break}else{H=2;C=2;F=2;n=2}while(1){g:do{if((H|0)>1){aa=c[u>>2]|0;E=aa+(n*24|0)|0;T=+g[E>>2];R=+g[aa+(n*24|0)+4>>2];S=+g[aa+(n*24|0)+8>>2];while(1){aa=H+ -2|0;I=H+ -1|0;Z=+g[D+(aa*24|0)>>2];ba=Z- +g[D+(I*24|0)>>2];X=+g[D+(aa*24|0)+4>>2];W=X- +g[D+(I*24|0)+4>>2];ca=+g[D+(aa*24|0)+8>>2];Y=ca- +g[D+(I*24|0)+8>>2];if((ba*(X-R)-W*(Z-T))*z+(B*(W*(ca-S)-Y*(X-R))+A*(Y*(Z-T)-ba*(ca-S)))>0.0){break}if((I|0)>1){H=I;C=I}else{H=I;C=I;break g}}do{if((H|0)==(F|0)){I=(F|0)==0?1:F<<1;if((F|0)>=(I|0)){H=F;break}do{if((I|0)==0){J=0}else{c[4546]=(c[4546]|0)+1;G=Zx((I*24|3)+16|0)|0;if((G|0)==0){F=C;J=0;break}c[(G+19&-16)+ -4>>2]=G;F=C;J=G+19&-16}}while(0);if((F|0)>0){G=0;do{aa=J+(G*24|0)|0;$=D+(G*24|0)|0;c[aa+0>>2]=c[$+0>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];c[aa+16>>2]=c[$+16>>2];c[aa+20>>2]=c[$+20>>2];G=G+1|0}while((G|0)!=(F|0))}if((D|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0)}G=c[t>>2]|0;H=C;F=I;D=J}}while(0);H=D+(H*24|0)|0;c[H+0>>2]=c[E+0>>2];c[H+4>>2]=c[E+4>>2];c[H+8>>2]=c[E+8>>2];c[H+12>>2]=c[E+12>>2];c[H+16>>2]=c[E+16>>2];c[H+20>>2]=c[E+20>>2];C=C+1|0;H=C}}while(0);n=n+1|0;if((n|0)==(G|0)){n=272;break}}}}while(0);if((n|0)==272){if((C|0)>0){n=273}else{n=295}}if((n|0)==273){H=0;G=0;F=0;n=0;do{E=D+(n*24|0)+20|0;do{if((H|0)==(G|0)){I=(G|0)==0?1:G<<1;if((G|0)>=(I|0)){H=G;break}do{if((I|0)==0){K=0}else{c[4546]=(c[4546]|0)+1;H=Zx((I<<2|3)+16|0)|0;if((H|0)==0){K=0;break}c[(H+19&-16)+ -4>>2]=H;K=H+19&-16}}while(0);if((G|0)>0){H=0;do{J=K+(H<<2)|0;if((J|0)!=0){c[J>>2]=c[F+(H<<2)>>2]}H=H+1|0}while((H|0)!=(G|0))}if((F|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[F+ -4>>2]|0);c[s>>2]=0}a[h+36>>0]=1;c[s>>2]=K;c[h+28>>2]=I;F=K;H=G;G=I}}while(0);I=F+(H<<2)|0;if((I|0)!=0){c[I>>2]=c[E>>2];H=c[h+24>>2]|0}H=H+1|0;c[h+24>>2]=H;J=c[t>>2]|0;h:do{if((J|0)>0){I=c[u>>2]|0;L=c[E>>2]|0;K=0;while(1){E=I+(K*24|0)+20|0;K=K+1|0;if((c[E>>2]|0)==(L|0)){break}if((K|0)>=(J|0)){break h}}c[E>>2]=-1}}while(0);n=n+1|0}while((n|0)<(C|0));G=c[t>>2]|0;n=295}i:do{if((n|0)==295){n=0;if((G|0)>0){H=c[u>>2]|0;I=c[l>>2]|0;F=0;while(1){E=c[H+(F*24|0)+20>>2]|0;if(!((E|0)==-1|(I|0)<1)){C=0;do{J=0;while(1){if((c[x+(J<<2)>>2]|0)==(C|0)){break}J=J+1|0;if((J|0)>=(y|0)){n=303;break}}do{if((n|0)==303){n=0;L=c[p+(C*36|0)+4>>2]|0;if((L|0)<=0){break}K=c[p+(C*36|0)+12>>2]|0;J=0;do{if((c[K+(J<<2)>>2]|0)==(E|0)){C=1;break i}J=J+1|0}while((J|0)<(L|0))}}while(0);C=C+1|0}while((C|0)<(I|0))}F=F+1|0;if((F|0)>=(G|0)){n=307;break}}}else{n=307}}}while(0);if((n|0)==307){n=0;C=c[d+52>>2]|0;E=c[C+28>>2]|0;if((E|0)==(c[C+32>>2]|0)){Nt(C+24|0,(E|0)==0?1:E<<1);E=c[C+28>>2]|0}F=(c[C+36>>2]|0)+(E*36|0)|0;if((F|0)!=0){Pt(F,h+20|0);c[F+20>>2]=c[h+40>>2];c[F+24>>2]=c[h+44>>2];c[F+28>>2]=c[h+48>>2];c[F+32>>2]=c[h+52>>2];E=c[C+28>>2]|0}c[C+28>>2]=E+1;C=0}if((D|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0)}D=c[s>>2]|0;if((D|0)!=0){if((a[h+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0)}c[s>>2]=0}D=c[u>>2]|0;if((D|0)!=0){if((a[q>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0)}c[u>>2]=0}a[q>>0]=1;c[u>>2]=0;c[t>>2]=0;c[h+80>>2]=0;if(C&(y|0)>0){n=324}}else{if((y|0)>0){n=324}}if((n|0)==324){n=0;C=0;do{D=c[x+(C<<2)>>2]|0;Pt(h+288|0,p+(D*36|0)|0);D=p+(D*36|0)+20|0;c[v+0>>2]=c[D+0>>2];c[v+4>>2]=c[D+4>>2];c[v+8>>2]=c[D+8>>2];c[v+12>>2]=c[D+12>>2];D=c[d+52>>2]|0;E=c[D+28>>2]|0;if((E|0)==(c[D+32>>2]|0)){Nt(D+24|0,(E|0)==0?1:E<<1);E=c[D+28>>2]|0}F=(c[D+36>>2]|0)+(E*36|0)|0;if((F|0)!=0){Pt(F,h+288|0);c[F+20>>2]=c[v+0>>2];c[F+24>>2]=c[v+4>>2];c[F+28>>2]=c[v+8>>2];c[F+32>>2]=c[v+12>>2];E=c[D+28>>2]|0}c[D+28>>2]=E+1;D=c[h+300>>2]|0;if((D|0)!=0){if((a[h+304>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0)}c[h+300>>2]=0}C=C+1|0}while((C|0)<(y|0))}if((x|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[x+ -4>>2]|0)}if((w|0)==0){o=r;break}}}}else{o=0}}else{o=0}d=c[d+52>>2]|0;c[d+64>>2]=0;c[d+68>>2]=0;c[d+72>>2]=0;c[d+76>>2]=0;r=c[d+28>>2]|0;if((r|0)>0){s=r;w=0;u=0;G=0;L=0;H=0;K=0;J=0;I=0;F=0;y=0;E=0;x=0;q=0;while(1){C=c[d+36>>2]|0;r=c[C+(q*36|0)+4>>2]|0;if((r|0)>0){t=q&65535;s=q|-65536;D=0;while(1){v=D+1|0;M=c[C+(q*36|0)+12>>2]|0;O=c[M+(D<<2)>>2]&65535;M=c[M+(((v|0)==(r|0)?0:v)<<2)>>2]&65535;D=O<<16>>16>16?O:M;C=O<<16>>16>16?M:O;_=O<<16>>16>16?O:M;O=O<<16>>16>16?M:O;M=G+ -1|0;j:do{if((((_&65535)<<16)+(O<<16>>16)&M)>>>0>>0?(k=c[F+((((_&65535)<<16)+(O<<16>>16)&M)<<2)>>2]|0,!((k|0)==-1)):0){N=k;while(1){if(O<<16>>16==(b[J+(N<<2)>>1]|0)?_<<16>>16==(b[J+(N<<2)+2>>1]|0):0){break}N=c[x+(N<<2)>>2]|0;if((N|0)==-1){N=0;break j}}if(!((N|0)==-1)){N=L+(N<<2)|0}else{N=0}}else{N=0}}while(0);aa=c[d+16>>2]|0;A=+g[aa+(_<<16>>16<<4)>>2]- +g[aa+(O<<16>>16<<4)>>2];z=+g[aa+(_<<16>>16<<4)+4>>2]- +g[aa+(O<<16>>16<<4)+4>>2];B=+g[aa+(_<<16>>16<<4)+8>>2]- +g[aa+(O<<16>>16<<4)+8>>2];R=1.0/+Q(+(A*A+z*z+B*B));_=c[d+48>>2]|0;k:do{if((_|0)>0){O=c[d+56>>2]|0;$=0;while(1){S=+g[O+($<<4)>>2];T=+g[O+($<<4)+8>>2];do{if(!(+P(+(S-A*R))>1.0e-6)){if(+P(+(+g[O+($<<4)+4>>2]-z*R))>1.0e-6){break}if(!(+P(+(T-B*R))>1.0e-6)){break k}}}while(0);do{if(!(+P(+(A*R+S))>1.0e-6)){if(+P(+(z*R+ +g[O+($<<4)+4>>2]))>1.0e-6){break}if(!(+P(+(B*R+T))>1.0e-6)){break k}}}while(0);$=$+1|0;if(($|0)>=(_|0)){n=359;break}}}else{n=359}}while(0);if((n|0)==359){n=0;do{if((_|0)==(c[d+52>>2]|0)){O=(_|0)==0?1:_<<1;if((_|0)>=(O|0)){break}if((O|0)==0){$=0}else{c[4546]=(c[4546]|0)+1;_=Zx((O<<4|3)+16|0)|0;if((_|0)==0){$=0}else{c[(_+19&-16)+ -4>>2]=_;$=_+19&-16}_=c[d+48>>2]|0}if((_|0)>0){aa=0;do{da=$+(aa<<4)|0;ea=(c[d+56>>2]|0)+(aa<<4)|0;c[da+0>>2]=c[ea+0>>2];c[da+4>>2]=c[ea+4>>2];c[da+8>>2]=c[ea+8>>2];c[da+12>>2]=c[ea+12>>2];aa=aa+1|0}while((aa|0)!=(_|0))}_=c[d+56>>2]|0;if((_|0)!=0){if((a[d+60>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[_+ -4>>2]|0)}c[d+56>>2]=0}a[d+60>>0]=1;c[d+56>>2]=$;c[d+52>>2]=O;_=c[d+48>>2]|0}}while(0);ea=c[d+56>>2]|0;g[ea+(_<<4)>>2]=A*R;g[ea+(_<<4)+4>>2]=z*R;g[ea+(_<<4)+8>>2]=B*R;g[ea+(_<<4)+12>>2]=0.0;c[d+48>>2]=(c[d+48>>2]|0)+1}l:do{if((N|0)==0){O=((D&65535)<<16)+(C<<16>>16)&M;m:do{if(O>>>0>>0){M=c[F+(O<<2)>>2]|0;if((M|0)==-1){break}while(1){if(C<<16>>16==(b[J+(M<<2)>>1]|0)?D<<16>>16==(b[J+(M<<2)+2>>1]|0):0){break}M=c[x+(M<<2)>>2]|0;if((M|0)==-1){break m}}if((M|0)==-1){break}ea=L+(M<<2)|0;b[ea>>1]=s;b[ea+2>>1]=s>>>16;break l}}while(0);do{if((u|0)==(G|0)){M=(G|0)==0?1:G<<1;if((G|0)>=(M|0)){_=G;M=G;break}do{if((M|0)==0){N=0}else{c[4546]=(c[4546]|0)+1;N=Zx((M<<2|3)+16|0)|0;if((N|0)==0){N=0;break}c[(N+19&-16)+ -4>>2]=N;N=N+19&-16}}while(0);if((G|0)>0){_=0;do{$=N+(_<<2)|0;if(($|0)!=0){ea=L+(_<<2)|0;ea=e[ea>>1]|e[ea+2>>1]<<16;b[$>>1]=ea;b[$+2>>1]=ea>>>16}_=_+1|0}while((_|0)!=(G|0))}if((L|0)==0){_=G;L=N;break}c[4548]=(c[4548]|0)+1;_x(c[L+ -4>>2]|0);_=G;L=N}else{_=u;M=G}}while(0);N=L+(_<<2)|0;if((N|0)!=0){b[N>>1]=s;b[N+2>>1]=s>>>16;_=u}N=_+1|0;do{if((H|0)==(K|0)){K=(H|0)==0?1:H<<1;if((H|0)>=(K|0)){K=H;break}do{if((K|0)==0){_=0}else{c[4546]=(c[4546]|0)+1;_=Zx((K<<2|3)+16|0)|0;if((_|0)==0){_=0;break}c[(_+19&-16)+ -4>>2]=_;_=_+19&-16}}while(0);if((H|0)>0){aa=0;do{$=_+(aa<<2)|0;if(($|0)!=0){ea=J+(aa<<2)|0;ea=e[ea>>1]|e[ea+2>>1]<<16;b[$>>1]=ea;b[$+2>>1]=ea>>>16}aa=aa+1|0}while((aa|0)!=(H|0))}if((J|0)==0){J=_;break}c[4548]=(c[4548]|0)+1;_x(c[J+ -4>>2]|0);J=_}}while(0);_=J+(H<<2)|0;if((_|0)!=0){b[_>>1]=(D&65535)<<16|C&65535;b[_+2>>1]=((D&65535)<<16|C&65535)>>>16}H=H+1|0;if((G|0)<(M|0)){do{if((w|0)<(M|0)){if((w|0)<=(M|0)){do{if((I|0)<(M|0)){do{if((M|0)==0){G=0}else{c[4546]=(c[4546]|0)+1;G=Zx((M<<2|3)+16|0)|0;if((G|0)==0){G=0;break}c[(G+19&-16)+ -4>>2]=G;G=G+19&-16}}while(0);if((w|0)>0){O=0;do{I=G+(O<<2)|0;if((I|0)!=0){c[I>>2]=c[F+(O<<2)>>2]}O=O+1|0}while((O|0)!=(w|0))}if((F|0)==0){I=M;F=G;break}c[4548]=(c[4548]|0)+1;_x(c[F+ -4>>2]|0);I=M;F=G}}while(0);O=w;do{G=F+(O<<2)|0;if((G|0)!=0){c[G>>2]=0}O=O+1|0}while((O|0)!=(M|0))}if((y|0)<(M|0)){do{if((E|0)<(M|0)){do{if((M|0)==0){G=0}else{c[4546]=(c[4546]|0)+1;E=Zx((M<<2|3)+16|0)|0;if((E|0)==0){G=0;break}c[(E+19&-16)+ -4>>2]=E;G=E+19&-16}}while(0);if((y|0)>0){E=0;do{O=G+(E<<2)|0;if((O|0)!=0){c[O>>2]=c[x+(E<<2)>>2]}E=E+1|0}while((E|0)!=(y|0))}if((x|0)==0){E=M;x=G;break}c[4548]=(c[4548]|0)+1;_x(c[x+ -4>>2]|0);E=M;x=G}}while(0);do{G=x+(y<<2)|0;if((G|0)!=0){c[G>>2]=0}y=y+1|0}while((y|0)!=(M|0))}if((M|0)>0){ea=M<<2;by(F|0,-1,ea|0)|0;by(x|0,-1,ea|0)|0}if((w|0)<=0){w=M;y=M;break}G=M+ -1|0;y=0;do{ea=F+(((e[J+(y<<2)+2>>1]<<16)+(b[J+(y<<2)>>1]|0)&G)<<2)|0;c[x+(y<<2)>>2]=c[ea>>2];c[ea>>2]=y;y=y+1|0}while((y|0)!=(w|0));w=M;y=M}}while(0);O=((D&65535)<<16)+(C<<16>>16)&M+ -1}G=F+(O<<2)|0;c[x+(u<<2)>>2]=c[G>>2];c[G>>2]=u;u=N;G=M}else{b[N+2>>1]=t}}while(0);if((v|0)>=(r|0)){break}C=c[d+36>>2]|0;D=v}r=c[d+28>>2]|0}else{r=s}q=q+1|0;if((q|0)>=(r|0)){break}else{s=r}}if((r|0)>0){q=c[d+36>>2]|0;k=c[d+16>>2]|0;R=0.0;n=0;do{s=c[q+(n*36|0)+4>>2]|0;t=c[q+(n*36|0)+12>>2]|0;u=c[t>>2]|0;if((s+ -2|0)>=1){z=+g[d+64>>2];A=+g[d+68>>2];B=+g[d+72>>2];v=1;do{da=c[t+(v<<2)>>2]|0;v=v+1|0;ea=c[t+(((v|0)%(s|0)|0)<<2)>>2]|0;S=+g[k+(u<<4)>>2];T=+g[k+(da<<4)>>2];V=+g[k+(u<<4)+4>>2];W=+g[k+(da<<4)+4>>2];Y=+g[k+(u<<4)+8>>2];Z=+g[k+(da<<4)+8>>2];U=+g[k+(ea<<4)>>2];X=+g[k+(ea<<4)+4>>2];ba=+g[k+(ea<<4)+8>>2];ca=+Q(+(((S-T)*(V-X)-(V-W)*(S-U))*((S-T)*(V-X)-(V-W)*(S-U))+(((V-W)*(Y-ba)-(Y-Z)*(V-X))*((V-W)*(Y-ba)-(Y-Z)*(V-X))+((Y-Z)*(S-U)-(S-T)*(Y-ba))*((Y-Z)*(S-U)-(S-T)*(Y-ba)))))*.5;z=z+(S+T+U)*.3333333432674408*ca;g[d+64>>2]=z;A=(V+W+X)*.3333333432674408*ca+A;g[d+68>>2]=A;B=ca*(Y+Z+ba)*.3333333432674408+B;g[d+72>>2]=B;R=R+ca}while((v|0)!=(s+ -1|0))}n=n+1|0}while((n|0)<(r|0))}else{R=0.0}}else{R=0.0;L=0;J=0;F=0;x=0}A=1.0/R;R=A*+g[d+64>>2];g[d+64>>2]=R;B=A*+g[d+68>>2];g[d+68>>2]=B;A=A*+g[d+72>>2];g[d+72>>2]=A;g[d+96>>2]=3.4028234663852886e+38;if((r|0)>0){k=c[d+36>>2]|0;S=3.4028234663852886e+38;n=0;while(1){z=+P(+(+g[k+(n*36|0)+32>>2]+(+g[k+(n*36|0)+20>>2]*R+ +g[k+(n*36|0)+24>>2]*B+ +g[k+(n*36|0)+28>>2]*A)));if(z>2]=z}else{z=S}n=n+1|0;if((n|0)>=(r|0)){break}else{S=z}}}else{z=3.4028234663852886e+38}n=c[d+8>>2]|0;if((n|0)>0){k=c[d+16>>2]|0;S=-3.4028234663852886e+38;T=-3.4028234663852886e+38;U=-3.4028234663852886e+38;R=3.4028234663852886e+38;B=3.4028234663852886e+38;A=3.4028234663852886e+38;q=0;do{ca=+g[k+(q<<4)>>2];R=caS?ca:S;ca=+g[k+(q<<4)+4>>2];B=caT?ca:T;ca=+g[k+(q<<4)+8>>2];A=caU?ca:U;q=q+1|0}while((q|0)<(n|0))}else{S=-3.4028234663852886e+38;T=-3.4028234663852886e+38;U=-3.4028234663852886e+38;R=3.4028234663852886e+38;B=3.4028234663852886e+38;A=3.4028234663852886e+38}g[d+100>>2]=S+R;g[d+104>>2]=T+B;g[d+108>>2]=A+U;g[d+112>>2]=0.0;R=S-R;B=T-B;A=U-A;g[d+116>>2]=R;g[d+120>>2]=B;g[d+124>>2]=A;g[d+128>>2]=0.0;z=z/1.7320507764816284;if(R>2]*.5-z)*.0009765625;g[d+88>>2]=z;g[d+84>>2]=z;g[d+80>>2]=z;B=+g[n>>2]*.5;n=d+(k<<2)+80|0;g[n>>2]=B;q=0;while(1){if(Jw(d)|0){n=470;break}B=B-A;g[n>>2]=B;q=q+1|0;if((q|0)>=1024){n=469;break}}n:do{if((n|0)==469){g[d+88>>2]=z;g[d+84>>2]=z;g[d+80>>2]=z}else if((n|0)==470){z=(+g[d+96>>2]-z)*.0009765625;n=1<>2];k=0;while(1){A=+g[d+(n<<2)+80>>2];g[d+(n<<2)+80>>2]=z+A;B=z+ +g[d+((1<>2];g[d+((1<>2]=B;k=k+1|0;if(!(Jw(d)|0)){break}if((k|0)>=1024){break n}else{R=B}}g[d+(n<<2)+80>>2]=A;g[d+((1<>2]=R}}while(0);if((J|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[J+ -4>>2]|0)}if((L|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[L+ -4>>2]|0)}if((x|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[x+ -4>>2]|0)}if((F|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[F+ -4>>2]|0)}if((o|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[o+ -4>>2]|0)}k=c[l>>2]|0;if((k|0)>0){r=0;do{d=p+(r*36|0)+4|0;o=p+(r*36|0)+12|0;n=c[o>>2]|0;q=p+(r*36|0)+16|0;if((n|0)!=0){if((a[q>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[n+ -4>>2]|0)}c[o>>2]=0}a[q>>0]=1;c[o>>2]=0;c[d>>2]=0;c[p+(r*36|0)+8>>2]=0;r=r+1|0}while((r|0)!=(k|0));p=c[f>>2]|0}if((p|0)!=0){if((a[h+164>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[p+ -4>>2]|0)}c[f>>2]=0}a[h+164>>0]=1;c[f>>2]=0;c[l>>2]=0;c[h+156>>2]=0;if((m|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0)}Ot(h+196|0);if((j|0)==0){i=h;return 1}c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);i=h;return 1}function Kt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0;e=i;i=i+2048|0;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;h=+g[d>>2];j=+g[d+4>>2];k=+g[d+8>>2];if(h*h+j*j+k*k<9999999747378752.0e-20){h=1.0;j=0.0;k=0.0}else{p=1.0/+Q(+(h*h+j*j+k*k));h=h*p;j=j*p;k=k*p}if((Rb[c[(c[b>>2]|0)+96>>2]&127](b)|0)<=0){i=e;return}d=0;l=-999999984306749400.0;do{if(((Rb[c[(c[b>>2]|0)+96>>2]&127](b)|0)-d|0)<128){m=(Rb[c[(c[b>>2]|0)+96>>2]&127](b)|0)-d|0;if((m|0)>0){f=7}else{p=-3.4028234663852886e+38;o=-1}}else{m=128;f=7}if((f|0)==7){f=0;n=0;do{sc[c[(c[b>>2]|0)+108>>2]&63](b,n,e+(n<<4)|0);n=n+1|0}while((n|0)!=(m|0));n=0;p=-3.4028234663852886e+38;o=-1;do{q=h*+g[e+(n<<4)>>2]+j*+g[e+(n<<4)+4>>2]+k*+g[e+(n<<4)+8>>2];r=q>p;o=r?n:o;p=r?q:p;n=n+1|0}while((n|0)!=(m|0))}if(p>l){r=e+(o<<4)|0;c[a+0>>2]=c[r+0>>2];c[a+4>>2]=c[r+4>>2];c[a+8>>2]=c[r+8>>2];c[a+12>>2]=c[r+12>>2];l=p}d=d+128|0}while((d|0)<(Rb[c[(c[b>>2]|0)+96>>2]&127](b)|0));i=e;return}function Lt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0;h=i;i=i+2048|0;if((e|0)>0){j=0}else{i=h;return}do{g[d+(j<<4)+12>>2]=-999999984306749400.0;j=j+1|0}while((j|0)!=(e|0));k=0;do{if((Rb[c[(c[a>>2]|0)+96>>2]&127](a)|0)>0){o=b+(k<<4)|0;p=b+(k<<4)+4|0;j=b+(k<<4)+8|0;m=d+(k<<4)+12|0;l=d+(k<<4)|0;n=0;do{if(((Rb[c[(c[a>>2]|0)+96>>2]&127](a)|0)-n|0)<128){q=(Rb[c[(c[a>>2]|0)+96>>2]&127](a)|0)-n|0;if((q|0)>0){f=8}else{w=-3.4028234663852886e+38;s=-1}}else{q=128;f=8}if((f|0)==8){f=0;s=0;do{sc[c[(c[a>>2]|0)+108>>2]&63](a,s,h+(s<<4)|0);s=s+1|0}while((s|0)!=(q|0));t=+g[o>>2];r=+g[p>>2];v=+g[j>>2];u=0;w=-3.4028234663852886e+38;s=-1;do{x=t*+g[h+(u<<4)>>2]+r*+g[h+(u<<4)+4>>2]+v*+g[h+(u<<4)+8>>2];y=x>w;s=y?u:s;w=y?x:w;u=u+1|0}while((u|0)!=(q|0))}if(w>+g[m>>2]){y=h+(s<<4)|0;c[l+0>>2]=c[y+0>>2];c[l+4>>2]=c[y+4>>2];c[l+8>>2]=c[y+8>>2];c[l+12>>2]=c[y+12>>2];g[m>>2]=w}n=n+128|0}while((n|0)<(Rb[c[(c[a>>2]|0)+96>>2]&127](a)|0))}k=k+1|0}while((k|0)!=(e|0));i=h;return}function Mt(a,b,d){a=a|0;b=+b;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0;e=i;i=i+96|0;j=+bc[c[(c[a>>2]|0)+48>>2]&15](a);g[e+32>>2]=1.0;c[e+36>>2]=0;c[e+40>>2]=0;c[e+44>>2]=0;c[e+48>>2]=0;g[e+52>>2]=1.0;c[e+56>>2]=0;c[e+60>>2]=0;c[e+64>>2]=0;c[e+68>>2]=0;g[e+72>>2]=1.0;k=e+76|0;c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;wc[c[(c[a>>2]|0)+8>>2]&63](a,e+32|0,e+16|0,e);h=(j+(+g[e>>2]- +g[e+16>>2])*.5)*2.0;f=(j+(+g[e+4>>2]- +g[e+20>>2])*.5)*2.0;j=(j+(+g[e+8>>2]- +g[e+24>>2])*.5)*2.0;g[d>>2]=b*.0833333283662796*(f*f+j*j);g[d+4>>2]=b*.0833333283662796*(h*h+j*j);g[d+8>>2]=b*.0833333283662796*(h*h+f*f);g[d+12>>2]=0.0;i=e;return}function Nt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;if((c[b+8>>2]|0)>=(d|0)){i=e;return}if((d|0)!=0?(c[4546]=(c[4546]|0)+1,f=Zx((d*36|3)+16|0)|0,(f|0)!=0):0){c[(f+19&-16)+ -4>>2]=f;f=f+19&-16}else{f=0}j=c[b+4>>2]|0;if((j|0)>0){h=0;do{g=f+(h*36|0)|0;if((g|0)!=0){n=c[b+12>>2]|0;Pt(g,n+(h*36|0)|0);n=n+(h*36|0)+20|0;c[g+20>>2]=c[n+0>>2];c[g+24>>2]=c[n+4>>2];c[g+28>>2]=c[n+8>>2];c[g+32>>2]=c[n+12>>2]}h=h+1|0}while((h|0)!=(j|0));n=c[b+4>>2]|0;if((n|0)>0){m=0;do{l=c[b+12>>2]|0;h=l+(m*36|0)+4|0;j=l+(m*36|0)+12|0;g=c[j>>2]|0;k=l+(m*36|0)+16|0;if((g|0)!=0){if((a[k>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[g+ -4>>2]|0)}c[j>>2]=0}a[k>>0]=1;c[j>>2]=0;c[h>>2]=0;c[l+(m*36|0)+8>>2]=0;m=m+1|0}while((m|0)!=(n|0));g=b+12|0}else{g=b+12|0}}else{g=b+12|0}h=c[g>>2]|0;if((h|0)!=0){if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[g>>2]=0}a[b+16>>0]=1;c[g>>2]=f;c[b+8>>2]=d;i=e;return}function Ot(b){b=b|0;var d=0,e=0;d=i;e=c[b+52>>2]|0;if((e|0)!=0){if((a[b+56>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;e=c[b+32>>2]|0;if((e|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;e=c[b+12>>2]|0;if((e|0)==0){a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;e=b+8|0;c[e>>2]=0;i=d;return}if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+12>>2]=0;a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;e=b+8|0;c[e>>2]=0;i=d;return}function Pt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;e=c[d+4>>2]|0;if((e|0)<=0){c[b+4>>2]=e;i=f;return}c[4546]=(c[4546]|0)+1;g=Zx((e<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}j=c[b+4>>2]|0;if((j|0)>0){h=0;do{k=g+(h<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[b+12>>2]|0)+(h<<2)>>2]}h=h+1|0}while((h|0)!=(j|0))}h=c[b+12>>2]|0;if((h|0)!=0){if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=g;c[b+8>>2]=e;h=0;do{j=g+(h<<2)|0;if((j|0)!=0){c[j>>2]=0}h=h+1|0}while((h|0)!=(e|0));c[b+4>>2]=e;b=0;do{h=g+(b<<2)|0;if((h|0)!=0){c[h>>2]=c[(c[d+12>>2]|0)+(b<<2)>>2]}b=b+1|0}while((b|0)!=(e|0));i=f;return}function Qt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0;f=i;i=i+32|0;n=c[a+12>>2]|0;h=+g[n+(((e+d|0)/2|0)*24|0)>>2];j=+g[n+(((e+d|0)/2|0)*24|0)+4>>2];k=+g[n+(((e+d|0)/2|0)*24|0)+8>>2];m=+g[n+(((e+d|0)/2|0)*24|0)+16>>2];l=c[n+(((e+d|0)/2|0)*24|0)+20>>2]|0;o=d;p=e;while(1){a:while(1){q=+g[n+(o*24|0)+16>>2];do{if(q!=m){if(!(q>2];v=+g[n+(o*24|0)>>2]-s;r=+g[b+4>>2];u=+g[n+(o*24|0)+4>>2]-r;q=+g[b+8>>2];t=+g[n+(o*24|0)+8>>2]-q;if(v*v+u*u+t*t!=(h-s)*(h-s)+(j-r)*(j-r)+(k-q)*(k-q)){if(v*v+u*u+t*t<(h-s)*(h-s)+(j-r)*(j-r)+(k-q)*(k-q)){break}else{break a}}else{if((c[n+(o*24|0)+20>>2]|0)<(l|0)){break}else{break a}}}}while(0);o=o+1|0}b:while(1){q=+g[n+(p*24|0)+16>>2];do{if(m!=q){if(!(m>2];t=+g[b+4>>2];q=+g[b+8>>2];s=+g[n+(p*24|0)>>2]-r;u=+g[n+(p*24|0)+4>>2]-t;v=+g[n+(p*24|0)+8>>2]-q;if((h-r)*(h-r)+(j-t)*(j-t)+(k-q)*(k-q)!=s*s+u*u+v*v){if((h-r)*(h-r)+(j-t)*(j-t)+(k-q)*(k-q)>2]|0)){break}else{break b}}}}while(0);p=p+ -1|0}if((o|0)<=(p|0)){w=n+(o*24|0)|0;c[f+0>>2]=c[w+0>>2];c[f+4>>2]=c[w+4>>2];c[f+8>>2]=c[w+8>>2];c[f+12>>2]=c[w+12>>2];c[f+16>>2]=c[w+16>>2];c[f+20>>2]=c[w+20>>2];n=n+(p*24|0)|0;c[w+0>>2]=c[n+0>>2];c[w+4>>2]=c[n+4>>2];c[w+8>>2]=c[n+8>>2];c[w+12>>2]=c[n+12>>2];c[w+16>>2]=c[n+16>>2];c[w+20>>2]=c[n+20>>2];n=(c[a+12>>2]|0)+(p*24|0)|0;c[n+0>>2]=c[f+0>>2];c[n+4>>2]=c[f+4>>2];c[n+8>>2]=c[f+8>>2];c[n+12>>2]=c[f+12>>2];c[n+16>>2]=c[f+16>>2];c[n+20>>2]=c[f+20>>2];o=o+1|0;p=p+ -1|0}if((o|0)>(p|0)){break}n=c[a+12>>2]|0}if((p|0)>(d|0)){Qt(a,b,d,p)}if((o|0)>=(e|0)){i=f;return}Qt(a,b,o,e);i=f;return} function Gj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0;h=i;i=i+448|0;if((a[b+527>>0]|0)==0){i=h;return}O=c[b+28>>2]|0;I=+g[b+348>>2];E=+g[b+352>>2];F=+g[b+356>>2];C=+g[O+52>>2];D=I*+g[O+4>>2]+E*+g[O+8>>2]+F*+g[O+12>>2]+C;z=+g[O+56>>2];B=I*+g[O+20>>2]+E*+g[O+24>>2]+F*+g[O+28>>2]+z;p=+g[O+60>>2];F=I*+g[O+36>>2]+E*+g[O+40>>2]+F*+g[O+44>>2]+p;O=c[b+32>>2]|0;E=+g[b+412>>2];I=+g[b+416>>2];y=+g[b+420>>2];w=+g[O+52>>2];v=E*+g[O+4>>2]+I*+g[O+8>>2]+y*+g[O+12>>2]+w;G=+g[O+56>>2];H=E*+g[O+20>>2]+I*+g[O+24>>2]+y*+g[O+28>>2]+G;u=+g[O+60>>2];y=E*+g[O+36>>2]+I*+g[O+40>>2]+y*+g[O+44>>2]+u;if((a[b+524>>0]|0)==0){s=+g[d+192>>2]+ +g[d+80>>2];t=+g[d+196>>2]+ +g[d+84>>2];r=+g[d+200>>2]+ +g[d+88>>2];I=+g[e+192>>2]+ +g[e+80>>2];E=+g[e+196>>2]+ +g[e+84>>2];A=+g[e+200>>2]+ +g[e+88>>2];x=+g[d+176>>2]+ +g[d+64>>2]+((F-p)*t-(B-z)*r)-(+g[e+176>>2]+ +g[e+64>>2]+((y-u)*E-(H-G)*A));A=+g[d+180>>2]+ +g[d+68>>2]+((D-C)*r-(F-p)*s)-(+g[e+180>>2]+ +g[e+68>>2]+((v-w)*A-(y-u)*I));E=+g[d+184>>2]+ +g[d+72>>2]+((B-z)*s-(D-C)*t)-(+g[e+184>>2]+ +g[e+72>>2]+((H-G)*I-(v-w)*E));n=c[d+240>>2]|0;j=0;do{q=1.0/+g[b+(j*84|0)+128>>2];m=b+(j*84|0)+48|0;s=+g[m>>2];k=b+(j*84|0)+52|0;r=+g[k>>2];l=b+(j*84|0)+56|0;t=+g[l>>2];t=q*(((D-v)*s+(B-H)*r+(F-y)*t)*-.30000001192092896/f)-q*(x*s+A*r+E*t);g[b+36>>2]=+g[b+36>>2]+t;r=+g[l>>2];s=+g[k>>2];q=+g[m>>2];o=c[b+28>>2]|0;I=+g[o+344>>2];if((n|0)!=0){S=((F-p)*q-(D-C)*r)*+g[o+300>>2]+((B-z)*r-(F-p)*s)*+g[o+296>>2]+((D-C)*s-(B-z)*q)*+g[o+304>>2];P=((F-p)*q-(D-C)*r)*+g[o+284>>2]+((B-z)*r-(F-p)*s)*+g[o+280>>2]+((D-C)*s-(B-z)*q)*+g[o+288>>2];R=((F-p)*q-(D-C)*r)*+g[o+268>>2]+((B-z)*r-(F-p)*s)*+g[o+264>>2]+((D-C)*s-(B-z)*q)*+g[o+272>>2];U=t*s*I*+g[d+116>>2];T=t*r*I*+g[d+120>>2];g[d+64>>2]=t*q*I*+g[d+112>>2]+ +g[d+64>>2];g[d+68>>2]=U+ +g[d+68>>2];g[d+72>>2]=T+ +g[d+72>>2];P=P*t*+g[d+100>>2];I=S*t*+g[d+104>>2];g[d+80>>2]=R*t*+g[d+96>>2]+ +g[d+80>>2];g[d+84>>2]=P+ +g[d+84>>2];g[d+88>>2]=I+ +g[d+88>>2]}o=c[b+32>>2]|0;I=+g[o+344>>2];if((c[e+240>>2]|0)!=0){U=((y-u)*q-(v-w)*r)*+g[o+300>>2]+((H-G)*r-(y-u)*s)*+g[o+296>>2]+((v-w)*s-(H-G)*q)*+g[o+304>>2];T=((y-u)*q-(v-w)*r)*+g[o+284>>2]+((H-G)*r-(y-u)*s)*+g[o+280>>2]+((v-w)*s-(H-G)*q)*+g[o+288>>2];S=((y-u)*q-(v-w)*r)*+g[o+268>>2]+((H-G)*r-(y-u)*s)*+g[o+264>>2]+((v-w)*s-(H-G)*q)*+g[o+272>>2];P=I*+g[k>>2]*-t*+g[e+116>>2];R=I*+g[l>>2]*-t*+g[e+120>>2];g[e+64>>2]=+g[e+112>>2]*I*+g[m>>2]*-t+ +g[e+64>>2];g[e+68>>2]=P+ +g[e+68>>2];g[e+72>>2]=R+ +g[e+72>>2];T=T*+g[e+100>>2]*-t;U=U*+g[e+104>>2]*-t;g[e+80>>2]=S*+g[e+96>>2]*-t+ +g[e+80>>2];g[e+84>>2]=T+ +g[e+84>>2];g[e+88>>2]=U+ +g[e+88>>2]}j=j+1|0}while((j|0)!=3)}do{if((a[b+552>>0]|0)==0){q=+g[b+440>>2];if(!(q>1.1920928955078125e-7)){L=e+192|0;O=d+192|0;J=e+200|0;M=d+200|0;j=e+88|0;o=d+88|0;k=e+80|0;n=d+80|0;K=e+196|0;N=d+196|0;l=e+84|0;m=d+84|0;break}A=+g[e+192>>2]+ +g[e+80>>2]-(+g[d+192>>2]+ +g[d+80>>2]);B=+g[e+196>>2]+ +g[e+84>>2]-(+g[d+196>>2]+ +g[d+84>>2]);z=+g[e+200>>2]+ +g[e+88>>2]-(+g[d+200>>2]+ +g[d+88>>2]);if(A*A+B*B+z*z>1.1920928955078125e-7){U=1.0/+Q(+(A*A+B*B+z*z));j=c[b+28>>2]|0;p=+g[j+264>>2];x=+g[j+280>>2];u=+g[j+296>>2];s=+g[j+268>>2];y=+g[j+284>>2];v=+g[j+300>>2];r=+g[j+272>>2];w=+g[j+288>>2];t=+g[j+304>>2];j=c[b+32>>2]|0;U=q*(1.0/(A*U*(A*U*p+B*U*x+z*U*u)+B*U*(A*U*s+B*U*y+z*U*v)+z*U*(A*U*r+B*U*w+z*U*t)+(A*U*(A*U*+g[j+264>>2]+B*U*+g[j+280>>2]+z*U*+g[j+296>>2])+B*U*(A*U*+g[j+268>>2]+B*U*+g[j+284>>2]+z*U*+g[j+300>>2])+z*U*(A*U*+g[j+272>>2]+B*U*+g[j+288>>2]+z*U*+g[j+304>>2]))));q=+Q(+(z*U*z*U+(A*U*A*U+B*U*B*U)));A=1.0/q*A*U;B=1.0/q*B*U;z=1.0/q*z*U;if((c[d+240>>2]|0)!=0){U=q*0.0*+g[d+116>>2];T=q*0.0*+g[d+120>>2];g[d+64>>2]=q*0.0*+g[d+112>>2]+ +g[d+64>>2];g[d+68>>2]=U+ +g[d+68>>2];g[d+72>>2]=T+ +g[d+72>>2];T=(B*y+A*x+z*w)*q*+g[d+100>>2];U=(B*v+A*u+z*t)*q*+g[d+104>>2];g[d+80>>2]=(B*s+A*p+z*r)*q*+g[d+96>>2]+ +g[d+80>>2];g[d+84>>2]=T+ +g[d+84>>2];g[d+88>>2]=U+ +g[d+88>>2];j=c[b+32>>2]|0}if((c[e+240>>2]|0)!=0){U=B*+g[j+300>>2]+A*+g[j+296>>2]+z*+g[j+304>>2];T=B*+g[j+284>>2]+A*+g[j+280>>2]+z*+g[j+288>>2];S=B*+g[j+268>>2]+A*+g[j+264>>2]+z*+g[j+272>>2];P=q*-0.0*+g[e+116>>2];R=q*-0.0*+g[e+120>>2];g[e+64>>2]=q*-0.0*+g[e+112>>2]+ +g[e+64>>2];g[e+68>>2]=P+ +g[e+68>>2];g[e+72>>2]=R+ +g[e+72>>2];T=T*+g[e+100>>2]*-q;U=U*+g[e+104>>2]*-q;g[e+80>>2]=S*+g[e+96>>2]*-q+ +g[e+80>>2];g[e+84>>2]=T+ +g[e+84>>2];g[e+88>>2]=U+ +g[e+88>>2];L=e+192|0;O=d+192|0;J=e+200|0;M=d+200|0;j=e+88|0;o=d+88|0;k=e+80|0;n=d+80|0;K=e+196|0;N=d+196|0;l=e+84|0;m=d+84|0}else{L=e+192|0;O=d+192|0;J=e+200|0;M=d+200|0;j=e+88|0;o=d+88|0;k=e+80|0;n=d+80|0;K=e+196|0;N=d+196|0;l=e+84|0;m=d+84|0}}else{L=e+192|0;O=d+192|0;J=e+200|0;M=d+200|0;j=e+88|0;o=d+88|0;k=e+80|0;n=d+80|0;K=e+196|0;N=d+196|0;l=e+84|0;m=d+84|0}}else{N=c[b+28>>2]|0;c[h+352>>2]=c[N+4>>2];c[h+356>>2]=c[N+8>>2];c[h+360>>2]=c[N+12>>2];c[h+364>>2]=c[N+16>>2];c[h+368>>2]=c[N+20>>2];c[h+372>>2]=c[N+24>>2];c[h+376>>2]=c[N+28>>2];c[h+380>>2]=c[N+32>>2];c[h+384>>2]=c[N+36>>2];c[h+388>>2]=c[N+40>>2];c[h+392>>2]=c[N+44>>2];c[h+396>>2]=c[N+48>>2];c[h+400>>2]=c[N+52>>2];c[h+404>>2]=c[N+56>>2];c[h+408>>2]=c[N+60>>2];c[h+412>>2]=c[N+64>>2];N=c[b+32>>2]|0;c[h+288>>2]=c[N+4>>2];c[h+292>>2]=c[N+8>>2];c[h+296>>2]=c[N+12>>2];c[h+300>>2]=c[N+16>>2];c[h+304>>2]=c[N+20>>2];c[h+308>>2]=c[N+24>>2];c[h+312>>2]=c[N+28>>2];c[h+316>>2]=c[N+32>>2];c[h+320>>2]=c[N+36>>2];c[h+324>>2]=c[N+40>>2];c[h+328>>2]=c[N+44>>2];c[h+332>>2]=c[N+48>>2];c[h+336>>2]=c[N+52>>2];c[h+340>>2]=c[N+56>>2];c[h+344>>2]=c[N+60>>2];c[h+348>>2]=c[N+64>>2];S=+g[d+196>>2]+ +g[d+84>>2];C=+g[d+200>>2]+ +g[d+88>>2];g[h+272>>2]=+g[d+192>>2]+ +g[d+80>>2];g[h+276>>2]=S;g[h+280>>2]=C;g[h+284>>2]=0.0;C=+g[e+196>>2]+ +g[e+84>>2];S=+g[e+200>>2]+ +g[e+88>>2];g[h+256>>2]=+g[e+192>>2]+ +g[e+80>>2];g[h+260>>2]=C;g[h+264>>2]=S;g[h+268>>2]=0.0;g[h+192>>2]=1.0;N=h+196|0;c[N+0>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;c[N+12>>2]=0;g[h+212>>2]=1.0;O=h+216|0;c[O+0>>2]=0;c[O+4>>2]=0;c[O+8>>2]=0;c[O+12>>2]=0;g[h+232>>2]=1.0;L=h+236|0;c[L+0>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;c[L+16>>2]=0;Hj(h+352|0,0.0,0.0,0.0,h+272|0,f,h+192|0);g[h+128>>2]=1.0;L=h+132|0;c[L+0>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;g[h+148>>2]=1.0;M=h+152|0;c[M+0>>2]=0;c[M+4>>2]=0;c[M+8>>2]=0;c[M+12>>2]=0;g[h+168>>2]=1.0;K=h+172|0;c[K+0>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;c[K+12>>2]=0;c[K+16>>2]=0;Hj(h+288|0,0.0,0.0,0.0,h+256|0,f,h+128|0);S=+g[b+556>>2];C=+g[b+560>>2];T=+g[b+564>>2];D=+g[b+568>>2];G=S*(2.0/(S*S+C*C+T*T+D*D));r=C*(2.0/(S*S+C*C+T*T+D*D));H=T*(2.0/(S*S+C*C+T*T+D*D));W=+g[b+364>>2];V=+g[b+368>>2];Z=+g[b+372>>2];w=(S*H-D*r)*Z+(V*(S*r+D*H)+W*(1.0-(C*r+T*H)));x=Z*(C*H+D*G)+(W*(S*r-D*H)+V*(1.0-(S*G+T*H)));y=W*(S*H+D*r)+V*(C*H-D*G)+Z*(1.0-(S*G+C*r));v=+g[b+380>>2];F=+g[b+384>>2];p=+g[b+388>>2];z=(1.0-(C*r+T*H))*v+(S*r+D*H)*F+(S*H-D*r)*p;A=(S*r-D*H)*v+(1.0-(S*G+T*H))*F+(C*H+D*G)*p;B=(S*H+D*r)*v+(C*H-D*G)*F+(1.0-(S*G+C*r))*p;P=+g[b+396>>2];q=+g[b+400>>2];s=+g[b+404>>2];R=(1.0-(C*r+T*H))*P+(S*r+D*H)*q+(S*H-D*r)*s;T=(S*r-D*H)*P+(1.0-(S*G+T*H))*q+(C*H+D*G)*s;r=(S*H+D*r)*P+(C*H-D*G)*q+(1.0-(S*G+C*r))*s;C=+g[b+300>>2];G=+g[b+316>>2];S=+g[b+332>>2];D=+g[b+304>>2];H=+g[b+320>>2];U=+g[b+336>>2];E=+g[b+308>>2];I=+g[b+324>>2];t=+g[b+340>>2];u=-+g[b+348>>2];aa=-+g[b+352>>2];Y=-+g[b+356>>2];Z=W*0.0+V*0.0+Z*0.0+ +g[b+412>>2]+(y*(E*u+I*aa+t*Y)+(w*(C*u+G*aa+S*Y)+x*(D*u+H*aa+U*Y)));p=v*0.0+F*0.0+p*0.0+ +g[b+416>>2]+(B*(E*u+I*aa+t*Y)+(z*(C*u+G*aa+S*Y)+A*(D*u+H*aa+U*Y)));Y=P*0.0+q*0.0+s*0.0+ +g[b+420>>2]+(r*(E*u+I*aa+t*Y)+(R*(C*u+G*aa+S*Y)+T*(D*u+H*aa+U*Y)));aa=+g[h+128>>2];u=+g[L>>2];s=+g[h+136>>2];q=+g[h+144>>2];P=+g[h+148>>2];F=+g[M>>2];v=+g[h+160>>2];V=+g[h+164>>2];W=+g[h+168>>2];X=s*Y+(aa*Z+u*p)+ +g[h+176>>2];_=Y*F+(q*Z+P*p)+ +g[h+180>>2];$=Z*v+p*V+Y*W+ +g[h+184>>2];g[h+64>>2]=(w*C+x*D+y*E)*aa+(z*C+A*D+B*E)*u+(R*C+T*D+r*E)*s;g[h+68>>2]=(w*G+x*H+y*I)*aa+(z*G+A*H+B*I)*u+(R*G+T*H+r*I)*s;g[h+72>>2]=(w*S+x*U+y*t)*aa+(z*S+A*U+B*t)*u+(R*S+T*U+r*t)*s;g[h+76>>2]=0.0;g[h+80>>2]=(w*C+x*D+y*E)*q+(z*C+A*D+B*E)*P+(R*C+T*D+r*E)*F;g[h+84>>2]=(w*G+x*H+y*I)*q+(z*G+A*H+B*I)*P+(R*G+T*H+r*I)*F;g[h+88>>2]=(w*S+x*U+y*t)*q+(z*S+A*U+B*t)*P+(R*S+T*U+r*t)*F;g[h+92>>2]=0.0;g[h+96>>2]=(w*C+x*D+y*E)*v+(z*C+A*D+B*E)*V+(R*C+T*D+r*E)*W;g[h+100>>2]=(w*G+x*H+y*I)*v+(z*G+A*H+B*I)*V+(R*G+T*H+r*I)*W;g[h+104>>2]=(w*S+x*U+y*t)*v+(z*S+A*U+B*t)*V+(R*S+T*U+r*t)*W;g[h+108>>2]=0.0;g[h+112>>2]=X;g[h+116>>2]=_;g[h+120>>2]=$;g[h+124>>2]=0.0;$=(R*C+T*D+r*E)*-Y+((w*C+x*D+y*E)*-Z+(z*C+A*D+B*E)*-p);_=(R*G+T*H+r*I)*-Y+((w*G+x*H+y*I)*-Z+(z*G+A*H+B*I)*-p);p=(R*S+T*U+r*t)*-Y+((w*S+x*U+y*t)*-Z+(z*S+A*U+B*t)*-p);Z=+g[h+192>>2];Y=+g[N>>2];X=+g[h+200>>2];W=+g[h+208>>2];V=+g[h+212>>2];v=+g[O>>2];F=+g[h+224>>2];P=+g[h+228>>2];q=+g[h+232>>2];s=$*Z+_*Y+p*X+ +g[h+240>>2];u=$*W+_*V+p*v+ +g[h+244>>2];p=$*F+_*P+p*q+ +g[h+248>>2];g[h>>2]=(w*C+x*D+y*E)*Z+(w*G+x*H+y*I)*Y+(w*S+x*U+y*t)*X;g[h+4>>2]=(z*C+A*D+B*E)*Z+(z*G+A*H+B*I)*Y+(z*S+A*U+B*t)*X;g[h+8>>2]=(R*C+T*D+r*E)*Z+(R*G+T*H+r*I)*Y+(R*S+T*U+r*t)*X;g[h+12>>2]=0.0;g[h+16>>2]=(w*C+x*D+y*E)*W+(w*G+x*H+y*I)*V+(w*S+x*U+y*t)*v;g[h+20>>2]=(z*C+A*D+B*E)*W+(z*G+A*H+B*I)*V+(z*S+A*U+B*t)*v;g[h+24>>2]=(R*C+T*D+r*E)*W+(R*G+T*H+r*I)*V+(R*S+T*U+r*t)*v;g[h+28>>2]=0.0;g[h+32>>2]=(w*C+x*D+y*E)*F+(w*G+x*H+y*I)*P+(w*S+x*U+y*t)*q;g[h+36>>2]=(z*C+A*D+B*E)*F+(z*G+A*H+B*I)*P+(z*S+A*U+B*t)*q;g[h+40>>2]=(R*C+T*D+r*E)*F+(R*G+T*H+r*I)*P+(R*S+T*U+r*t)*q;g[h+44>>2]=0.0;g[h+48>>2]=s;g[h+52>>2]=u;g[h+56>>2]=p;g[h+60>>2]=0.0;Qj(h+352|0,h+64|0,h+424|0,h+416|0);p=+g[h+416>>2];u=1.0/f*+g[h+424>>2]*p;s=1.0/f*p*+g[h+428>>2];p=1.0/f*p*+g[h+432>>2];Qj(h+288|0,h,h+424|0,h+416|0);q=+g[h+416>>2];u=u- +g[h+272>>2];s=s- +g[h+276>>2];p=p- +g[h+280>>2];t=1.0/f*+g[h+424>>2]*q- +g[h+256>>2];r=1.0/f*q*+g[h+428>>2]- +g[h+260>>2];q=1.0/f*q*+g[h+432>>2]- +g[h+264>>2];if(u*u+s*s+p*p>1.1920928955078125e-7){y=1.0/+Q(+(u*u+s*s+p*p));O=c[b+28>>2]|0;A=u*y*(u*y*+g[O+264>>2]+s*y*+g[O+280>>2]+p*y*+g[O+296>>2])+s*y*(u*y*+g[O+268>>2]+s*y*+g[O+284>>2]+p*y*+g[O+300>>2])+p*y*(u*y*+g[O+272>>2]+s*y*+g[O+288>>2]+p*y*+g[O+304>>2]);C=u*y;z=s*y;y=p*y}else{A=0.0;C=0.0;z=0.0;y=0.0}if(t*t+r*r+q*q>1.1920928955078125e-7){x=1.0/+Q(+(t*t+r*r+q*q));O=c[b+32>>2]|0;w=t*x*(t*x*+g[O+264>>2]+r*x*+g[O+280>>2]+q*x*+g[O+296>>2])+r*x*(t*x*+g[O+268>>2]+r*x*+g[O+284>>2]+q*x*+g[O+300>>2])+q*x*(t*x*+g[O+272>>2]+r*x*+g[O+288>>2]+q*x*+g[O+304>>2]);v=t*x;B=r*x;x=q*x}else{w=0.0;v=0.0;B=0.0;x=0.0}v=C*A+v*w;z=z*A+B*w;x=y*A+x*w;if(x*x+(v*v+z*z)>1.1920928955078125e-7){aa=1.0/+Q(+(x*x+(v*v+z*z)));k=c[b+28>>2]|0;w=v*aa*(v*aa*+g[k+264>>2]+z*aa*+g[k+280>>2]+x*aa*+g[k+296>>2])+z*aa*(v*aa*+g[k+268>>2]+z*aa*+g[k+284>>2]+x*aa*+g[k+300>>2])+x*aa*(v*aa*+g[k+272>>2]+z*aa*+g[k+288>>2]+x*aa*+g[k+304>>2]);j=c[b+32>>2]|0;v=v*aa*(v*aa*+g[j+264>>2]+z*aa*+g[j+280>>2]+x*aa*+g[j+296>>2])+z*aa*(v*aa*+g[j+268>>2]+z*aa*+g[j+284>>2]+x*aa*+g[j+300>>2])+x*aa*(v*aa*+g[j+272>>2]+z*aa*+g[j+288>>2]+x*aa*+g[j+304>>2]);t=1.0/((w+v)*(w+v))*(u*w-t*v);r=1.0/((w+v)*(w+v))*(s*w-r*v);p=1.0/((w+v)*(w+v))*(p*w-q*v);v=+g[b+572>>2];if(v>=0.0){if((a[b+553>>0]|0)!=0){v=v/w}q=+g[b+576>>2];s=+g[b+580>>2];u=+g[b+584>>2];w=+Q(+((t+q)*(t+q)+(r+s)*(r+s)+(p+u)*(p+u)));if(w>v){t=v*(t+q)*(1.0/w)-q;p=v*(p+u)*(1.0/w)-u;r=v*(r+s)*(1.0/w)-s}g[b+576>>2]=t+q;g[b+580>>2]=r+s;g[b+584>>2]=p+u}q=+Q(+(p*p+(r*r+t*t)));s=t*(1.0/q);r=r*(1.0/q);p=p*(1.0/q);if((c[d+240>>2]|0)!=0){aa=r*+g[k+300>>2]+s*+g[k+296>>2]+p*+g[k+304>>2];$=r*+g[k+284>>2]+s*+g[k+280>>2]+p*+g[k+288>>2];_=r*+g[k+268>>2]+s*+g[k+264>>2]+p*+g[k+272>>2];Y=q*0.0*+g[d+116>>2];Z=q*0.0*+g[d+120>>2];g[d+64>>2]=q*0.0*+g[d+112>>2]+ +g[d+64>>2];g[d+68>>2]=Y+ +g[d+68>>2];g[d+72>>2]=Z+ +g[d+72>>2];$=$*q*+g[d+100>>2];aa=aa*q*+g[d+104>>2];g[d+80>>2]=_*q*+g[d+96>>2]+ +g[d+80>>2];g[d+84>>2]=$+ +g[d+84>>2];g[d+88>>2]=aa+ +g[d+88>>2];j=c[b+32>>2]|0}if((c[e+240>>2]|0)!=0){aa=r*+g[j+300>>2]+s*+g[j+296>>2]+p*+g[j+304>>2];$=r*+g[j+284>>2]+s*+g[j+280>>2]+p*+g[j+288>>2];_=r*+g[j+268>>2]+s*+g[j+264>>2]+p*+g[j+272>>2];Y=q*-0.0*+g[e+116>>2];Z=q*-0.0*+g[e+120>>2];g[e+64>>2]=q*-0.0*+g[e+112>>2]+ +g[e+64>>2];g[e+68>>2]=Y+ +g[e+68>>2];g[e+72>>2]=Z+ +g[e+72>>2];$=$*+g[e+100>>2]*-q;aa=aa*+g[e+104>>2]*-q;g[e+80>>2]=_*+g[e+96>>2]*-q+ +g[e+80>>2];g[e+84>>2]=$+ +g[e+84>>2];g[e+88>>2]=aa+ +g[e+88>>2];L=e+192|0;O=d+192|0;J=e+200|0;M=d+200|0;j=e+88|0;o=d+88|0;k=e+80|0;n=d+80|0;K=e+196|0;N=d+196|0;l=e+84|0;m=d+84|0}else{L=e+192|0;O=d+192|0;J=e+200|0;M=d+200|0;j=e+88|0;o=d+88|0;k=e+80|0;n=d+80|0;K=e+196|0;N=d+196|0;l=e+84|0;m=d+84|0}}else{L=e+192|0;O=d+192|0;J=e+200|0;M=d+200|0;j=e+88|0;o=d+88|0;k=e+80|0;n=d+80|0;K=e+196|0;N=d+196|0;l=e+84|0;m=d+84|0}}}while(0);p=+g[O>>2]+ +g[n>>2];q=+g[N>>2]+ +g[m>>2];r=+g[M>>2]+ +g[o>>2];s=+g[L>>2]+ +g[k>>2];t=+g[K>>2]+ +g[l>>2];u=+g[J>>2]+ +g[j>>2];if((a[b+526>>0]|0)!=0){w=+g[b+528>>2];z=w*+g[b+504>>2]*+g[b+432>>2]/f;x=+g[b+460>>2];y=+g[b+464>>2];v=+g[b+468>>2];if((s-p)*x+(t-q)*y+(u-r)*v>0.0){z=z+w*((s-p)*x+(t-q)*y+(u-r)*v)*+g[b+436>>2]}_=+g[b+516>>2];Z=_+z*+g[b+492>>2];Z=Z>0.0?Z:0.0;g[b+516>>2]=Z;X=+g[b+536>>2];Y=+g[b+540>>2];$=+g[b+544>>2];aa=X*x*(Z-_)+y*(Z-_)*Y+v*(Z-_)*$;w=+Q(+((v*(Z-_)-$*aa)*(v*(Z-_)-$*aa)+((x*(Z-_)-X*aa)*(x*(Z-_)-X*aa)+(y*(Z-_)-Y*aa)*(y*(Z-_)-Y*aa))));x=1.0/w*(x*(Z-_)-X*aa);y=1.0/w*(y*(Z-_)-Y*aa);v=1.0/w*(v*(Z-_)-$*aa);J=c[b+28>>2]|0;if((c[d+240>>2]|0)!=0){aa=y*+g[J+300>>2]+x*+g[J+296>>2]+v*+g[J+304>>2];$=y*+g[J+284>>2]+x*+g[J+280>>2]+v*+g[J+288>>2];_=y*+g[J+268>>2]+x*+g[J+264>>2]+v*+g[J+272>>2];Y=w*0.0*+g[d+116>>2];Z=w*0.0*+g[d+120>>2];g[d+64>>2]=w*0.0*+g[d+112>>2]+ +g[d+64>>2];g[d+68>>2]=Y+ +g[d+68>>2];g[d+72>>2]=Z+ +g[d+72>>2];$=$*w*+g[d+100>>2];aa=aa*w*+g[d+104>>2];g[n>>2]=_*w*+g[d+96>>2]+ +g[n>>2];g[m>>2]=$+ +g[m>>2];g[o>>2]=aa+ +g[o>>2]}J=c[b+32>>2]|0;if((c[e+240>>2]|0)!=0){aa=y*+g[J+300>>2]+x*+g[J+296>>2]+v*+g[J+304>>2];$=y*+g[J+284>>2]+x*+g[J+280>>2]+v*+g[J+288>>2];_=y*+g[J+268>>2]+x*+g[J+264>>2]+v*+g[J+272>>2];Y=w*-0.0*+g[e+116>>2];Z=w*-0.0*+g[e+120>>2];g[e+64>>2]=w*-0.0*+g[e+112>>2]+ +g[e+64>>2];g[e+68>>2]=Y+ +g[e+68>>2];g[e+72>>2]=Z+ +g[e+72>>2];$=$*+g[e+100>>2]*-w;aa=aa*+g[e+104>>2]*-w;g[k>>2]=_*+g[e+96>>2]*-w+ +g[k>>2];g[l>>2]=$+ +g[l>>2];g[j>>2]=aa+ +g[j>>2]}}if((a[b+525>>0]|0)==0){i=h;return}x=+g[b+532>>2];y=x*+g[b+508>>2]*+g[b+432>>2]/f;v=+g[b+476>>2];w=+g[b+480>>2];f=+g[b+484>>2];if((s-p)*v+(t-q)*w+(u-r)*f>0.0){y=y+x*((s-p)*v+(t-q)*w+(u-r)*f)*+g[b+436>>2]}p=+g[b+520>>2];q=p+y*+g[b+496>>2];q=q>0.0?q:0.0;g[b+520>>2]=q;J=c[b+28>>2]|0;if((c[d+240>>2]|0)!=0){aa=w*+g[J+300>>2]+v*+g[J+296>>2]+f*+g[J+304>>2];$=w*+g[J+284>>2]+v*+g[J+280>>2]+f*+g[J+288>>2];f=w*+g[J+268>>2]+v*+g[J+264>>2]+f*+g[J+272>>2];w=(q-p)*0.0*+g[d+116>>2];v=(q-p)*0.0*+g[d+120>>2];g[d+64>>2]=(q-p)*0.0*+g[d+112>>2]+ +g[d+64>>2];g[d+68>>2]=w+ +g[d+68>>2];g[d+72>>2]=v+ +g[d+72>>2];v=$*(q-p)*+g[d+100>>2];w=aa*(q-p)*+g[d+104>>2];g[n>>2]=f*(q-p)*+g[d+96>>2]+ +g[n>>2];g[m>>2]=v+ +g[m>>2];g[o>>2]=w+ +g[o>>2];w=+g[b+480>>2];v=+g[b+476>>2];f=+g[b+484>>2]}b=c[b+32>>2]|0;if((c[e+240>>2]|0)==0){i=h;return}aa=w*+g[b+300>>2]+v*+g[b+296>>2]+f*+g[b+304>>2];$=w*+g[b+284>>2]+v*+g[b+280>>2]+f*+g[b+288>>2];_=w*+g[b+268>>2]+v*+g[b+264>>2]+f*+g[b+272>>2];Y=(q-p)*-0.0*+g[e+116>>2];Z=(q-p)*-0.0*+g[e+120>>2];g[e+64>>2]=(q-p)*-0.0*+g[e+112>>2]+ +g[e+64>>2];g[e+68>>2]=Y+ +g[e+68>>2];g[e+72>>2]=Z+ +g[e+72>>2];$=$*+g[e+100>>2]*-(q-p);aa=aa*+g[e+104>>2]*-(q-p);g[k>>2]=_*+g[e+96>>2]*-(q-p)+ +g[k>>2];g[l>>2]=$+ +g[l>>2];g[j>>2]=aa+ +g[j>>2];i=h;return}function Hj(a,b,c,d,e,f,h){a=a|0;b=+b;c=+c;d=+d;e=e|0;f=+f;h=h|0;var j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0;j=i;i=i+16|0;c=c*f+ +g[a+52>>2];d=d*f+ +g[a+56>>2];g[h+48>>2]=b*f+ +g[a+48>>2];g[h+52>>2]=c;g[h+56>>2]=d;g[h+60>>2]=0.0;d=+g[e>>2];b=+g[e+4>>2];c=+g[e+8>>2];k=+Q(+(d*d+b*b+c*c));if(k*f>.7853981852531433){k=.7853981852531433/f}if(k<.0010000000474974513){l=f*.5-k*f*f*f*.02083333395421505*k}else{l=+T(+(k*.5*f))/k}o=l*d;b=l*b;c=l*c;q=+S(+(k*f*.5));mj(a,j);n=+g[j>>2];p=+g[j+12>>2];f=+g[j+8>>2];l=+g[j+4>>2];r=1.0/+Q(+((q*p-o*n-b*l-c*f)*(q*p-o*n-b*l-c*f)+((c*p+q*f+o*l-b*n)*(c*p+q*f+o*l-b*n)+((q*n+o*p+b*f-c*l)*(q*n+o*p+b*f-c*l)+(c*n+(b*p+q*l)-o*f)*(c*n+(b*p+q*l)-o*f)))));d=(q*n+o*p+b*f-c*l)*r;k=r*(c*n+(b*p+q*l)-o*f);m=r*(c*p+q*f+o*l-b*n);f=r*(q*p-o*n-b*l-c*f);c=d*(2.0/(f*f+(m*m+(d*d+k*k))));l=2.0/(f*f+(m*m+(d*d+k*k)))*k;b=2.0/(f*f+(m*m+(d*d+k*k)))*m;g[h>>2]=1.0-(m*b+k*l);g[h+4>>2]=d*l-f*b;g[h+8>>2]=d*b+f*l;g[h+12>>2]=0.0;g[h+16>>2]=f*b+d*l;g[h+20>>2]=1.0-(d*c+m*b);g[h+24>>2]=k*b-f*c;g[h+28>>2]=0.0;g[h+32>>2]=d*b-f*l;g[h+36>>2]=f*c+k*b;g[h+40>>2]=1.0-(d*c+k*l);g[h+44>>2]=0.0;i=j;return}function Ij(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;e=+S(+c);c=+T(+c);f=+g[b+444>>2];if(+P(+e)>1.1920928955078125e-7){j=+g[b+448>>2];h=c*c;i=e*e;f=+Q(+((c*c/(e*e)+1.0)/(1.0/(j*j)+c*c/(e*e)/(f*f))))}else{h=c*c;i=e*e}k=f*.5;j=+T(+k)/+Q(+(i+0.0+h));k=+S(+k);l=k*d+e*j*0.0-c*j*-0.0;i=k*0.0-c*j*d-j*0.0*0.0;f=k*0.0+j*0.0*0.0-e*j*d;h=-(j*0.0*d)-e*j*0.0-c*j*-0.0;g[a>>2]=c*j*i+(k*l+h*-(j*0.0))-f*-(e*j);g[a+4>>2]=f*-(j*0.0)+(k*i+h*-(e*j))-c*j*l;g[a+8>>2]=l*-(e*j)+(k*f+c*j*h)-i*-(j*0.0);g[a+12>>2]=0.0;return}function Jj(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0;f=i;if((b|0)==2|(b|0)==1){if(e>>>0<3){g[a+600>>2]=d;c[a+592>>2]=c[a+592>>2]|2;i=f;return}else{g[a+432>>2]=d;i=f;return}}else if((b|0)==4|(b|0)==3){if(e>>>0<3){g[a+596>>2]=d;c[a+592>>2]=c[a+592>>2]|1;i=f;return}else{g[a+604>>2]=d;c[a+592>>2]=c[a+592>>2]|4;i=f;return}}else{i=f;return}}function Kj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0;d=i;do{if((b|0)==4|(b|0)==3){if(c>>>0<3){e=+g[a+596>>2];break}if((c+ -3|0)>>>0<3){e=+g[a+604>>2]}else{e=0.0}}else if((b|0)==2|(b|0)==1){if(c>>>0<3){e=+g[a+600>>2];break}if((c+ -3|0)>>>0<3){e=+g[a+432>>2]}else{e=0.0}}else{e=0.0}}while(0);i=d;return+e}function Lj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[a+300>>2]=c[b+0>>2];c[a+304>>2]=c[b+4>>2];c[a+308>>2]=c[b+8>>2];c[a+312>>2]=c[b+12>>2];c[a+316>>2]=c[b+16>>2];c[a+320>>2]=c[b+20>>2];c[a+324>>2]=c[b+24>>2];c[a+328>>2]=c[b+28>>2];c[a+332>>2]=c[b+32>>2];c[a+336>>2]=c[b+36>>2];c[a+340>>2]=c[b+40>>2];c[a+344>>2]=c[b+44>>2];c[a+348>>2]=c[b+48>>2];c[a+352>>2]=c[b+52>>2];c[a+356>>2]=c[b+56>>2];c[a+360>>2]=c[b+60>>2];c[a+364>>2]=c[d+0>>2];c[a+368>>2]=c[d+4>>2];c[a+372>>2]=c[d+8>>2];c[a+376>>2]=c[d+12>>2];c[a+380>>2]=c[d+16>>2];c[a+384>>2]=c[d+20>>2];c[a+388>>2]=c[d+24>>2];c[a+392>>2]=c[d+28>>2];c[a+396>>2]=c[d+32>>2];c[a+400>>2]=c[d+36>>2];c[a+404>>2]=c[d+40>>2];c[a+408>>2]=c[d+44>>2];c[a+412>>2]=c[d+48>>2];c[a+416>>2]=c[d+52>>2];c[a+420>>2]=c[d+56>>2];c[a+424>>2]=c[d+60>>2];Nb[c[(c[a>>2]|0)+8>>2]&255](a);i=e;return}function Mj(a){a=a|0;return}function Nj(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Oj(a){a=a|0;return 212}function Pj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;dm(a,b,c)|0;g[b+52>>2]=+g[a+300>>2];g[b+56>>2]=+g[a+304>>2];g[b+60>>2]=+g[a+308>>2];g[b+64>>2]=+g[a+312>>2];g[b+68>>2]=+g[a+316>>2];g[b+72>>2]=+g[a+320>>2];g[b+76>>2]=+g[a+324>>2];g[b+80>>2]=+g[a+328>>2];g[b+84>>2]=+g[a+332>>2];g[b+88>>2]=+g[a+336>>2];g[b+92>>2]=+g[a+340>>2];g[b+96>>2]=+g[a+344>>2];g[b+100>>2]=+g[a+348>>2];g[b+104>>2]=+g[a+352>>2];g[b+108>>2]=+g[a+356>>2];g[b+112>>2]=+g[a+360>>2];g[b+116>>2]=+g[a+364>>2];g[b+120>>2]=+g[a+368>>2];g[b+124>>2]=+g[a+372>>2];g[b+128>>2]=+g[a+376>>2];g[b+132>>2]=+g[a+380>>2];g[b+136>>2]=+g[a+384>>2];g[b+140>>2]=+g[a+388>>2];g[b+144>>2]=+g[a+392>>2];g[b+148>>2]=+g[a+396>>2];g[b+152>>2]=+g[a+400>>2];g[b+156>>2]=+g[a+404>>2];g[b+160>>2]=+g[a+408>>2];g[b+164>>2]=+g[a+412>>2];g[b+168>>2]=+g[a+416>>2];g[b+172>>2]=+g[a+420>>2];g[b+176>>2]=+g[a+424>>2];g[b+180>>2]=+g[a+444>>2];g[b+184>>2]=+g[a+448>>2];g[b+188>>2]=+g[a+452>>2];g[b+192>>2]=+g[a+428>>2];g[b+196>>2]=+g[a+432>>2];g[b+200>>2]=+g[a+436>>2];g[b+204>>2]=+g[a+440>>2];i=d;return 1088}function Qj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;e=i;i=i+64|0;f=+g[a+20>>2];t=+g[a+40>>2];o=+g[a+24>>2];r=+g[a+36>>2];s=+g[a+32>>2];h=+g[a+16>>2];l=+g[a>>2];j=+g[a+4>>2];p=+g[a+8>>2];m=1.0/((f*t-o*r)*l+j*(o*s-t*h)+(r*h-f*s)*p);z=+g[b>>2];y=+g[b+4>>2];x=+g[b+8>>2];w=+g[b+16>>2];v=+g[b+20>>2];u=+g[b+24>>2];q=+g[b+32>>2];n=+g[b+36>>2];k=+g[b+40>>2];g[e+16>>2]=(f*t-o*r)*m*z+(o*s-t*h)*m*y+(r*h-f*s)*m*x;g[e+20>>2]=z*m*(r*p-t*j)+y*m*(t*l-s*p)+m*(s*j-r*l)*x;g[e+24>>2]=z*m*(o*j-f*p)+y*m*(h*p-o*l)+m*(f*l-h*j)*x;g[e+28>>2]=0.0;g[e+32>>2]=(f*t-o*r)*m*w+(o*s-t*h)*m*v+(r*h-f*s)*m*u;g[e+36>>2]=m*(r*p-t*j)*w+m*(t*l-s*p)*v+m*(s*j-r*l)*u;g[e+40>>2]=m*(o*j-f*p)*w+m*(h*p-o*l)*v+m*(f*l-h*j)*u;g[e+44>>2]=0.0;g[e+48>>2]=(f*t-o*r)*m*q+(o*s-t*h)*m*n+(r*h-f*s)*m*k;g[e+52>>2]=m*(r*p-t*j)*q+m*(t*l-s*p)*n+m*(s*j-r*l)*k;g[e+56>>2]=m*(o*j-f*p)*q+m*(h*p-o*l)*n+m*(f*l-h*j)*k;g[e+60>>2]=0.0;mj(e+16|0,e);k=+g[e>>2];j=+g[e+4>>2];h=+g[e+8>>2];l=+g[e+12>>2];f=1.0/+Q(+(k*k+j*j+h*h+l*l));g[e>>2]=k*f;g[e+4>>2]=j*f;g[e+8>>2]=h*f;g[e+12>>2]=l*f;l=l*f<-1.0?-1.0:l*f;g[d>>2]=+V(+(l>1.0?1.0:l))*2.0;g[c>>2]=k*f;g[c+4>>2]=j*f;g[c+8>>2]=h*f;g[c+12>>2]=0.0;if(k*f*k*f+j*f*j*f+h*f*h*f<1.4210854715202004e-14){g[c>>2]=1.0;g[c+4>>2]=0.0;g[c+8>>2]=0.0;g[c+12>>2]=0.0;i=e;return}else{z=1.0/+Q(+(k*f*k*f+j*f*j*f+h*f*h*f));g[c>>2]=k*f*z;g[c+4>>2]=z*j*f;g[c+8>>2]=z*h*f;i=e;return}}function Rj(a,b,d,e,f,h,j,k,l,m){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=+k;l=l|0;m=+m;var n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;n=i;c[a+0>>2]=c[h+0>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];u=+g[e+4>>2];t=+g[a+8>>2];r=+g[e+8>>2];x=+g[a+4>>2];o=+g[a>>2];z=+g[e>>2];y=(u*t-r*x)*+g[b>>2]+ +g[b+4>>2]*(r*o-t*z)+(x*z-u*o)*+g[b+8>>2];w=(u*t-r*x)*+g[b+16>>2]+(r*o-t*z)*+g[b+20>>2]+(x*z-u*o)*+g[b+24>>2];u=(u*t-r*x)*+g[b+32>>2]+(r*o-t*z)*+g[b+36>>2]+(x*z-u*o)*+g[b+40>>2];g[a+16>>2]=y;g[a+20>>2]=w;g[a+24>>2]=u;g[a+28>>2]=0.0;z=+g[f+4>>2];r=+g[f+8>>2];v=+g[f>>2];s=+g[d>>2]*(z*-t-r*-x)+ +g[d+4>>2]*(r*-o-v*-t)+(v*-x-z*-o)*+g[d+8>>2];q=(z*-t-r*-x)*+g[d+16>>2]+(r*-o-v*-t)*+g[d+20>>2]+(v*-x-z*-o)*+g[d+24>>2];o=(z*-t-r*-x)*+g[d+32>>2]+(r*-o-v*-t)*+g[d+36>>2]+(v*-x-z*-o)*+g[d+40>>2];g[a+32>>2]=s;g[a+36>>2]=q;g[a+40>>2]=o;g[a+44>>2]=0.0;z=+g[j>>2]*y;x=+g[j+4>>2]*w;v=+g[j+8>>2]*u;g[a+48>>2]=z;g[a+52>>2]=x;g[a+56>>2]=v;g[a+60>>2]=0.0;t=+g[l>>2]*s;r=+g[l+4>>2]*q;p=+g[l+8>>2]*o;g[a+64>>2]=t;g[a+68>>2]=r;g[a+72>>2]=p;g[a+76>>2]=0.0;g[a+80>>2]=z*y+x*w+v*u+k+m+(t*s+r*q+p*o);i=n;return}function Sj(a){a=a|0;var b=0;b=i;Tj(a);if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Tj(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;c[b>>2]=1128;if((a[b+272>>0]|0)!=0?(g=c[b+204>>2]|0,Nb[c[c[g>>2]>>2]&255](g),g=c[b+204>>2]|0,(g|0)!=0):0){c[4548]=(c[4548]|0)+1;_x(c[g+ -4>>2]|0)}g=c[b+196>>2]|0;if((g|0)!=0?(Nb[c[c[g>>2]>>2]&255](g),f=c[b+196>>2]|0,(f|0)!=0):0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}if((a[b+273>>0]|0)!=0?(e=c[b+200>>2]|0,Nb[c[c[e>>2]>>2]&255](e),e=c[b+200>>2]|0,(e|0)!=0):0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+316>>2]|0;if((e|0)!=0){if((a[b+320>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+316>>2]=0}a[b+320>>0]=1;c[b+316>>2]=0;c[b+308>>2]=0;c[b+312>>2]=0;e=c[b+288>>2]|0;if((e|0)!=0){if((a[b+292>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+288>>2]=0}a[b+292>>0]=1;c[b+288>>2]=0;c[b+280>>2]=0;c[b+284>>2]=0;e=c[b+240>>2]|0;if((e|0)!=0){if((a[b+244>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+240>>2]=0}a[b+244>>0]=1;c[b+240>>2]=0;c[b+232>>2]=0;c[b+236>>2]=0;e=c[b+220>>2]|0;if((e|0)!=0){if((a[b+224>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+220>>2]=0}a[b+224>>0]=1;c[b+220>>2]=0;c[b+212>>2]=0;c[b+216>>2]=0;e=c[b+188>>2]|0;if((e|0)==0){a[b+192>>0]=1;c[b+188>>2]=0;c[b+180>>2]=0;g=b+184|0;c[g>>2]=0;Fo(b);i=d;return}if((a[b+192>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+188>>2]=0;a[b+192>>0]=1;c[b+188>>2]=0;c[b+180>>2]=0;g=b+184|0;c[g>>2]=0;Fo(b);i=d;return}function Uj(a,b){a=a|0;b=+b;var d=0,e=0,f=0,h=0,j=0.0,k=0.0,l=0.0;d=i;i=i+32|0;h=c[a+8>>2]|0;if((h|0)<=0){i=d;return}e=0;do{f=c[(c[a+16>>2]|0)+(e<<2)>>2]|0;if((!((f|0)==0?1:(c[f+236>>2]&2|0)==0)?(c[f+216>>2]|0)!=2:0)?!((c[f+204>>2]&2|0)==0|b!=0.0^1):0){h=c[f+480>>2]|0;if((h|0)==0){h=f+4|0}else{Pb[c[(c[h>>2]|0)+8>>2]&127](h,f+4|0);h=f+4|0}k=(+g[f+56>>2]- +g[f+120>>2])*(1.0/b);l=1.0/b*(+g[f+60>>2]- +g[f+124>>2]);g[f+312>>2]=(+g[f+52>>2]- +g[f+116>>2])*(1.0/b);g[f+316>>2]=k;g[f+320>>2]=l;g[f+324>>2]=0.0;Qj(f+68|0,h,d+8|0,d);l=+g[d>>2];k=1.0/b*l*+g[d+12>>2];j=1.0/b*l*+g[d+16>>2];g[f+328>>2]=1.0/b*+g[d+8>>2]*l;g[f+332>>2]=k;g[f+336>>2]=j;g[f+340>>2]=0.0;c[f+132>>2]=c[f+312>>2];c[f+136>>2]=c[f+316>>2];c[f+140>>2]=c[f+320>>2];c[f+144>>2]=c[f+324>>2];c[f+148>>2]=c[f+328>>2];c[f+152>>2]=c[f+332>>2];c[f+156>>2]=c[f+336>>2];c[f+160>>2]=c[f+340>>2];c[f+68>>2]=c[h+0>>2];c[f+72>>2]=c[h+4>>2];c[f+76>>2]=c[h+8>>2];c[f+80>>2]=c[h+12>>2];c[f+84>>2]=c[f+20>>2];c[f+88>>2]=c[f+24>>2];c[f+92>>2]=c[f+28>>2];c[f+96>>2]=c[f+32>>2];c[f+100>>2]=c[f+36>>2];c[f+104>>2]=c[f+40>>2];c[f+108>>2]=c[f+44>>2];c[f+112>>2]=c[f+48>>2];c[f+116>>2]=c[f+52>>2];c[f+120>>2]=c[f+56>>2];c[f+124>>2]=c[f+60>>2];c[f+128>>2]=c[f+64>>2];h=c[a+8>>2]|0}e=e+1|0}while((e|0)<(h|0));i=d;return}function Vj(b){b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,U=0.0,V=0.0,W=0;d=i;i=i+1024|0;vx(1312);Wo(b);a:do{if((Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0)!=0?(I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0,((Rb[c[(c[I>>2]|0)+48>>2]&127](I)|0)&6144|0)!=0):0){e=d+988|0;u=d+896|0;t=d+832|0;w=d+912|0;v=d+848|0;y=d+928|0;x=d+864|0;o=d+720|0;n=d+656|0;q=d+736|0;p=d+672|0;s=d+752|0;r=d+688|0;k=d+336|0;l=d+352|0;m=d+368|0;f=d+112|0;h=d+128|0;j=d+144|0;B=Rb[c[(c[b>>2]|0)+104>>2]&127](b)|0;b:while(1){z=B+ -1|0;if((B|0)<=0){break a}B=hc[c[(c[b>>2]|0)+108>>2]&31](b,z)|0;I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;I=(Rb[c[(c[I>>2]|0)+48>>2]&127](I)|0)>>>11;C=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;C=(Rb[c[(c[C>>2]|0)+48>>2]&127](C)|0)>>>12;A=+g[B+40>>2];if(A<=0.0){B=z;continue}switch(c[B+4>>2]|0){case 5:{xj(d+704|0,(c[B+28>>2]|0)+4|0,B+300|0);if((I&1|0)==0){xj(d+640|0,(c[B+32>>2]|0)+4|0,B+364|0);c[d+704>>2]=c[d+640>>2];c[d+708>>2]=c[d+644>>2];c[d+712>>2]=c[d+648>>2];c[d+716>>2]=c[d+652>>2];c[o+0>>2]=c[n+0>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];c[q+0>>2]=c[p+0>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];c[s+0>>2]=c[r+0>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2]}else{I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;uc[c[(c[I>>2]|0)+56>>2]&3](I,d+704|0,A);xj(d+640|0,(c[B+32>>2]|0)+4|0,B+364|0);c[d+704>>2]=c[d+640>>2];c[d+708>>2]=c[d+644>>2];c[d+712>>2]=c[d+648>>2];c[d+716>>2]=c[d+652>>2];c[o+0>>2]=c[n+0>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];c[q+0>>2]=c[p+0>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];c[s+0>>2]=c[r+0>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;uc[c[(c[I>>2]|0)+56>>2]&3](I,d+704|0,A)}if((C&1|0)==0){B=z;continue b}Ij(d+624|0,B,6.0868353843688965,A);L=+g[d+624>>2];K=+g[d+628>>2];J=+g[d+632>>2];G=L*+g[d+720>>2]+K*+g[d+724>>2]+J*+g[d+728>>2]+ +g[d+756>>2];H=L*+g[d+736>>2]+K*+g[d+740>>2]+J*+g[d+744>>2]+ +g[d+760>>2];g[d+624>>2]=L*+g[d+704>>2]+K*+g[d+708>>2]+J*+g[d+712>>2]+ +g[d+752>>2];g[d+628>>2]=G;g[d+632>>2]=H;g[d+636>>2]=0.0;C=0;do{Ij(d+608|0,B,+(C|0)*6.283185005187988*.03125,A);G=+g[d+608>>2];H=+g[d+612>>2];J=+g[d+616>>2];K=G*+g[d+720>>2]+H*+g[d+724>>2]+J*+g[d+728>>2]+ +g[d+756>>2];L=G*+g[d+736>>2]+H*+g[d+740>>2]+J*+g[d+744>>2]+ +g[d+760>>2];g[d+608>>2]=G*+g[d+704>>2]+H*+g[d+708>>2]+J*+g[d+712>>2]+ +g[d+752>>2];g[d+612>>2]=K;g[d+616>>2]=L;g[d+620>>2]=0.0;I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;F=c[(c[I>>2]|0)+8>>2]|0;c[d+592>>2]=0;c[d+596>>2]=0;c[d+600>>2]=0;c[d+604>>2]=0;wc[F&63](I,d+624|0,d+608|0,d+592|0);if((C&3|0)==0){I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;F=c[(c[I>>2]|0)+8>>2]|0;c[d+576>>2]=0;c[d+580>>2]=0;c[d+584>>2]=0;c[d+588>>2]=0;wc[F&63](I,s,d+608|0,d+576|0)}c[d+624>>2]=c[d+608>>2];c[d+628>>2]=c[d+612>>2];c[d+632>>2]=c[d+616>>2];c[d+636>>2]=c[d+620>>2];C=C+1|0}while((C|0)!=32);H=+g[B+452>>2];G=+g[B+512>>2];C=c[B+32>>2]|0;if(+g[C+344>>2]>0.0){xj(d+512|0,C+4|0,B+364|0);c[d+704>>2]=c[d+512>>2];c[d+708>>2]=c[d+516>>2];c[d+712>>2]=c[d+520>>2];c[d+716>>2]=c[d+524>>2];c[o+0>>2]=c[d+528>>2];c[o+4>>2]=c[d+532>>2];c[o+8>>2]=c[d+536>>2];c[o+12>>2]=c[d+540>>2];c[q+0>>2]=c[d+544>>2];c[q+4>>2]=c[d+548>>2];c[q+8>>2]=c[d+552>>2];c[q+12>>2]=c[d+556>>2];c[s+0>>2]=c[d+560>>2];c[s+4>>2]=c[d+564>>2];c[s+8>>2]=c[d+568>>2];c[s+12>>2]=c[d+572>>2]}else{xj(d+448|0,(c[B+28>>2]|0)+4|0,B+300|0);c[d+704>>2]=c[d+448>>2];c[d+708>>2]=c[d+452>>2];c[d+712>>2]=c[d+456>>2];c[d+716>>2]=c[d+460>>2];c[o+0>>2]=c[d+464>>2];c[o+4>>2]=c[d+468>>2];c[o+8>>2]=c[d+472>>2];c[o+12>>2]=c[d+476>>2];c[q+0>>2]=c[d+480>>2];c[q+4>>2]=c[d+484>>2];c[q+8>>2]=c[d+488>>2];c[q+12>>2]=c[d+492>>2];c[s+0>>2]=c[d+496>>2];c[s+4>>2]=c[d+500>>2];c[s+8>>2]=c[d+504>>2];c[s+12>>2]=c[d+508>>2]}c[d+432>>2]=c[s+0>>2];c[d+436>>2]=c[s+4>>2];c[d+440>>2]=c[s+8>>2];c[d+444>>2]=c[s+12>>2];g[d+416>>2]=+g[d+704>>2];g[d+420>>2]=+g[d+720>>2];g[d+424>>2]=+g[d+736>>2];g[d+428>>2]=0.0;g[d+400>>2]=+g[d+708>>2];g[d+404>>2]=+g[d+724>>2];g[d+408>>2]=+g[d+740>>2];g[d+412>>2]=0.0;B=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;I=c[(c[B>>2]|0)+60>>2]|0;c[d+384>>2]=0;c[d+388>>2]=0;c[d+392>>2]=0;c[d+396>>2]=0;Yb[I&0](B,d+432|0,d+416|0,d+400|0,A,A,-G-H,H-G,d+384|0,1,10.0);B=z;continue b};case 3:{g[d+944>>2]=1.0;c[d+948>>2]=0;c[d+952>>2]=0;c[d+956>>2]=0;c[d+960>>2]=0;g[d+964>>2]=1.0;c[d+968>>2]=0;c[d+972>>2]=0;c[d+976>>2]=0;c[d+980>>2]=0;g[d+984>>2]=1.0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;L=+g[B+300>>2];K=+g[B+304>>2];J=+g[B+308>>2];F=c[B+28>>2]|0;H=L*+g[F+20>>2]+K*+g[F+24>>2]+J*+g[F+28>>2]+ +g[F+56>>2];G=L*+g[F+36>>2]+K*+g[F+40>>2]+J*+g[F+44>>2]+ +g[F+60>>2];g[d+992>>2]=L*+g[F+4>>2]+K*+g[F+8>>2]+J*+g[F+12>>2]+ +g[F+52>>2];g[d+996>>2]=H;g[d+1e3>>2]=G;g[d+1004>>2]=0.0;F=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;uc[c[(c[F>>2]|0)+56>>2]&3](F,d+944|0,A);G=+g[B+316>>2];H=+g[B+320>>2];J=+g[B+324>>2];F=c[B+32>>2]|0;K=G*+g[F+20>>2]+H*+g[F+24>>2]+J*+g[F+28>>2]+ +g[F+56>>2];L=G*+g[F+36>>2]+H*+g[F+40>>2]+J*+g[F+44>>2]+ +g[F+60>>2];g[d+992>>2]=G*+g[F+4>>2]+H*+g[F+8>>2]+J*+g[F+12>>2]+ +g[F+52>>2];g[d+996>>2]=K;g[d+1e3>>2]=L;g[d+1004>>2]=0.0;if((I&1|0)==0){B=z;continue b}B=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;uc[c[(c[B>>2]|0)+56>>2]&3](B,d+944|0,A);B=z;continue b};case 7:{c[d+96>>2]=c[B+824>>2];c[d+100>>2]=c[B+828>>2];c[d+104>>2]=c[B+832>>2];c[d+108>>2]=c[B+836>>2];c[f+0>>2]=c[B+840>>2];c[f+4>>2]=c[B+844>>2];c[f+8>>2]=c[B+848>>2];c[f+12>>2]=c[B+852>>2];c[h+0>>2]=c[B+856>>2];c[h+4>>2]=c[B+860>>2];c[h+8>>2]=c[B+864>>2];c[h+12>>2]=c[B+868>>2];c[j+0>>2]=c[B+872>>2];c[j+4>>2]=c[B+876>>2];c[j+8>>2]=c[B+880>>2];c[j+12>>2]=c[B+884>>2];if((I&1|0)==0){c[d+96>>2]=c[B+888>>2];c[d+100>>2]=c[B+892>>2];c[d+104>>2]=c[B+896>>2];c[d+108>>2]=c[B+900>>2];c[f+0>>2]=c[B+904>>2];c[f+4>>2]=c[B+908>>2];c[f+8>>2]=c[B+912>>2];c[f+12>>2]=c[B+916>>2];c[h+0>>2]=c[B+920>>2];c[h+4>>2]=c[B+924>>2];c[h+8>>2]=c[B+928>>2];c[h+12>>2]=c[B+932>>2];c[j+0>>2]=c[B+936>>2];c[j+4>>2]=c[B+940>>2];c[j+8>>2]=c[B+944>>2];c[j+12>>2]=c[B+948>>2]}else{I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;uc[c[(c[I>>2]|0)+56>>2]&3](I,d+96|0,A);c[d+96>>2]=c[B+888>>2];c[d+100>>2]=c[B+892>>2];c[d+104>>2]=c[B+896>>2];c[d+108>>2]=c[B+900>>2];c[f+0>>2]=c[B+904>>2];c[f+4>>2]=c[B+908>>2];c[f+8>>2]=c[B+912>>2];c[f+12>>2]=c[B+916>>2];c[h+0>>2]=c[B+920>>2];c[h+4>>2]=c[B+924>>2];c[h+8>>2]=c[B+928>>2];c[h+12>>2]=c[B+932>>2];c[j+0>>2]=c[B+936>>2];c[j+4>>2]=c[B+940>>2];c[j+8>>2]=c[B+944>>2];c[j+12>>2]=c[B+948>>2];I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;uc[c[(c[I>>2]|0)+56>>2]&3](I,d+96|0,A)}if((C&1|0)==0){B=z;continue b}I=(a[B+180>>0]|0)!=0?B+824|0:B+888|0;M=+g[I>>2];J=+g[I+4>>2];G=+g[I+16>>2];L=+g[I+20>>2];H=+g[I+32>>2];K=+g[I+36>>2];V=+g[I+48>>2];R=+g[I+52>>2];P=+g[I+56>>2];N=+g[B+184>>2];U=+g[I+8>>2]*0.0;Q=+g[I+24>>2]*0.0;O=+g[I+40>>2]*0.0;g[d+80>>2]=V+(U+(J*0.0+M*N));g[d+84>>2]=R+(Q+(L*0.0+G*N));g[d+88>>2]=P+(O+(K*0.0+H*N));g[d+92>>2]=0.0;N=+g[B+188>>2];g[d+64>>2]=V+(U+(J*0.0+M*N));g[d+68>>2]=R+(Q+(L*0.0+G*N));g[d+72>>2]=P+(O+(K*0.0+H*N));g[d+76>>2]=0.0;I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;F=c[(c[I>>2]|0)+8>>2]|0;c[d+48>>2]=0;c[d+52>>2]=0;c[d+56>>2]=0;c[d+60>>2]=0;wc[F&63](I,d+80|0,d+64|0,d+48|0);g[d+32>>2]=M;g[d+36>>2]=G;g[d+40>>2]=H;g[d+44>>2]=0.0;g[d+16>>2]=J;g[d+20>>2]=L;g[d+24>>2]=K;g[d+28>>2]=0.0;K=+g[B+192>>2];L=+g[B+196>>2];I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;F=c[(c[I>>2]|0)+60>>2]|0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;Yb[F&0](I,B+936|0,d+32|0,d+16|0,A,A,K,L,d,1,10.0);B=z;continue b};case 4:{xj(d+880|0,(c[B+28>>2]|0)+4|0,B+552|0);if((I&1|0)==0){xj(d+816|0,(c[B+32>>2]|0)+4|0,B+616|0);c[d+880>>2]=c[d+816>>2];c[d+884>>2]=c[d+820>>2];c[d+888>>2]=c[d+824>>2];c[d+892>>2]=c[d+828>>2];c[u+0>>2]=c[t+0>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[w+0>>2]=c[v+0>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];c[y+0>>2]=c[x+0>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2]}else{I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;uc[c[(c[I>>2]|0)+56>>2]&3](I,d+880|0,A);xj(d+816|0,(c[B+32>>2]|0)+4|0,B+616|0);c[d+880>>2]=c[d+816>>2];c[d+884>>2]=c[d+820>>2];c[d+888>>2]=c[d+824>>2];c[d+892>>2]=c[d+828>>2];c[u+0>>2]=c[t+0>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[w+0>>2]=c[v+0>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];c[y+0>>2]=c[x+0>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;uc[c[(c[I>>2]|0)+56>>2]&3](I,d+880|0,A)}G=+nb(+(+g[B+688>>2]- +g[B+692>>2]),6.2831854820251465);if(!(G<-3.1415927410125732)){if(G>3.1415927410125732){G=G+-6.2831854820251465}}else{G=G+6.2831854820251465}H=+nb(+(+g[B+688>>2]+ +g[B+692>>2]),6.2831854820251465);if(!(H<-3.1415927410125732)){if(H>3.1415927410125732){H=H+-6.2831854820251465}}else{H=H+6.2831854820251465}if(G==H){B=z;continue b}B=G>H;if((C&1|0)==0){B=z;continue b}g[d+800>>2]=+g[d+888>>2];g[d+804>>2]=+g[d+904>>2];g[d+808>>2]=+g[d+920>>2];g[d+812>>2]=0.0;g[d+784>>2]=+g[d+880>>2];g[d+788>>2]=+g[d+896>>2];g[d+792>>2]=+g[d+912>>2];g[d+796>>2]=0.0;I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;V=B?6.2831854820251465:H;U=B?0.0:G;F=c[(c[I>>2]|0)+60>>2]|0;c[d+768>>2]=0;c[d+772>>2]=0;c[d+776>>2]=0;c[d+780>>2]=0;Yb[F&0](I,y,d+800|0,d+784|0,A,A,U,V,d+768|0,B^1,10.0);B=z;continue b};case 6:case 9:{c[d+320>>2]=c[B+1064>>2];c[d+324>>2]=c[B+1068>>2];c[d+328>>2]=c[B+1072>>2];c[d+332>>2]=c[B+1076>>2];E=B+1080|0;c[k+0>>2]=c[E+0>>2];c[k+4>>2]=c[E+4>>2];c[k+8>>2]=c[E+8>>2];c[k+12>>2]=c[E+12>>2];F=B+1096|0;c[l+0>>2]=c[F+0>>2];c[l+4>>2]=c[F+4>>2];c[l+8>>2]=c[F+8>>2];c[l+12>>2]=c[F+12>>2];D=B+1112|0;c[m+0>>2]=c[D+0>>2];c[m+4>>2]=c[D+4>>2];c[m+8>>2]=c[D+8>>2];c[m+12>>2]=c[D+12>>2];if((I&1|0)==0){c[d+320>>2]=c[B+1128>>2];c[d+324>>2]=c[B+1132>>2];c[d+328>>2]=c[B+1136>>2];c[d+332>>2]=c[B+1140>>2];c[k+0>>2]=c[B+1144>>2];c[k+4>>2]=c[B+1148>>2];c[k+8>>2]=c[B+1152>>2];c[k+12>>2]=c[B+1156>>2];c[l+0>>2]=c[B+1160>>2];c[l+4>>2]=c[B+1164>>2];c[l+8>>2]=c[B+1168>>2];c[l+12>>2]=c[B+1172>>2];c[m+0>>2]=c[B+1176>>2];c[m+4>>2]=c[B+1180>>2];c[m+8>>2]=c[B+1184>>2];c[m+12>>2]=c[B+1188>>2]}else{I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;uc[c[(c[I>>2]|0)+56>>2]&3](I,d+320|0,A);c[d+320>>2]=c[B+1128>>2];c[d+324>>2]=c[B+1132>>2];c[d+328>>2]=c[B+1136>>2];c[d+332>>2]=c[B+1140>>2];c[k+0>>2]=c[B+1144>>2];c[k+4>>2]=c[B+1148>>2];c[k+8>>2]=c[B+1152>>2];c[k+12>>2]=c[B+1156>>2];c[l+0>>2]=c[B+1160>>2];c[l+4>>2]=c[B+1164>>2];c[l+8>>2]=c[B+1168>>2];c[l+12>>2]=c[B+1172>>2];c[m+0>>2]=c[B+1176>>2];c[m+4>>2]=c[B+1180>>2];c[m+8>>2]=c[B+1184>>2];c[m+12>>2]=c[B+1188>>2];I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;uc[c[(c[I>>2]|0)+56>>2]&3](I,d+320|0,A)}if((C&1|0)==0){B=z;continue b}c[d+320>>2]=c[B+1064>>2];c[d+324>>2]=c[B+1068>>2];c[d+328>>2]=c[B+1072>>2];c[d+332>>2]=c[B+1076>>2];c[k+0>>2]=c[E+0>>2];c[k+4>>2]=c[E+4>>2];c[k+8>>2]=c[E+8>>2];c[k+12>>2]=c[E+12>>2];c[l+0>>2]=c[F+0>>2];c[l+4>>2]=c[F+4>>2];c[l+8>>2]=c[F+8>>2];c[l+12>>2]=c[F+12>>2];c[m+0>>2]=c[D+0>>2];c[m+4>>2]=c[D+4>>2];c[m+8>>2]=c[D+8>>2];c[m+12>>2]=c[D+12>>2];C=B+1176|0;g[d+304>>2]=+g[d+328>>2];g[d+308>>2]=+g[d+344>>2];g[d+312>>2]=+g[d+360>>2];g[d+316>>2]=0.0;g[d+288>>2]=+g[d+320>>2];g[d+292>>2]=+g[d+336>>2];g[d+296>>2]=+g[d+352>>2];g[d+300>>2]=0.0;R=+g[B+932>>2];H=+g[B+936>>2];V=+g[B+996>>2];Q=+g[B+1e3>>2];I=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;W=c[(c[I>>2]|0)+64>>2]|0;c[d+272>>2]=0;c[d+276>>2]=0;c[d+280>>2]=0;c[d+284>>2]=0;nc[W&0](I,C,d+304|0,d+288|0,A*.8999999761581421,R,H,V,Q,d+272|0,10.0,1);Q=+g[d+324>>2];V=+g[d+340>>2];H=+g[d+356>>2];g[d+288>>2]=Q;g[d+292>>2]=V;g[d+296>>2]=H;g[d+300>>2]=0.0;R=+g[B+1196>>2];U=+g[B+1200>>2];G=+S(+R);R=+T(+R);P=+S(+U);U=+T(+U);g[d+256>>2]=G*P*Q+G*U*V-R*H;g[d+260>>2]=P*V-U*Q;g[d+264>>2]=R*P*Q+R*U*V+G*H;c[d+320>>2]=c[B+1128>>2];c[d+324>>2]=c[B+1132>>2];c[d+328>>2]=c[B+1136>>2];c[d+332>>2]=c[B+1140>>2];c[k+0>>2]=c[B+1144>>2];c[k+4>>2]=c[B+1148>>2];c[k+8>>2]=c[B+1152>>2];c[k+12>>2]=c[B+1156>>2];c[l+0>>2]=c[B+1160>>2];c[l+4>>2]=c[B+1164>>2];c[l+8>>2]=c[B+1168>>2];c[l+12>>2]=c[B+1172>>2];c[m+0>>2]=c[C+0>>2];c[m+4>>2]=c[C+4>>2];c[m+8>>2]=c[C+8>>2];c[m+12>>2]=c[C+12>>2];H=-+g[d+336>>2];G=-+g[d+352>>2];g[d+240>>2]=-+g[d+320>>2];g[d+244>>2]=H;g[d+248>>2]=G;g[d+252>>2]=0.0;G=+g[B+868>>2];H=+g[B+872>>2];if(!(G>H)){if(G>2]|0)+20>>2]&127](b)|0;I=c[(c[W>>2]|0)+60>>2]|0;c[d+208>>2]=0;c[d+212>>2]=0;c[d+216>>2]=0;c[d+220>>2]=0;Yb[I&0](W,C,d+240|0,d+256|0,A,A,G,H,d+208|0,1,10.0)}}else{W=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;I=c[(c[W>>2]|0)+60>>2]|0;c[d+224>>2]=0;c[d+228>>2]=0;c[d+232>>2]=0;c[d+236>>2]=0;Yb[I&0](W,C,d+240|0,d+256|0,A,A,-3.1415927410125732,3.1415927410125732,d+224|0,0,10.0)}c[d+320>>2]=c[B+1064>>2];c[d+324>>2]=c[B+1068>>2];c[d+328>>2]=c[B+1072>>2];c[d+332>>2]=c[B+1076>>2];c[k+0>>2]=c[E+0>>2];c[k+4>>2]=c[E+4>>2];c[k+8>>2]=c[E+8>>2];c[k+12>>2]=c[E+12>>2];c[l+0>>2]=c[F+0>>2];c[l+4>>2]=c[F+4>>2];c[l+8>>2]=c[F+8>>2];c[l+12>>2]=c[F+12>>2];c[m+0>>2]=c[D+0>>2];c[m+4>>2]=c[D+4>>2];c[m+8>>2]=c[D+8>>2];c[m+12>>2]=c[D+12>>2];c[d+192>>2]=c[B+680>>2];c[d+196>>2]=c[B+684>>2];c[d+200>>2]=c[B+688>>2];c[d+204>>2]=c[B+692>>2];c[d+176>>2]=c[B+696>>2];c[d+180>>2]=c[B+700>>2];c[d+184>>2]=c[B+704>>2];c[d+188>>2]=c[B+708>>2];B=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;W=c[(c[B>>2]|0)+72>>2]|0;c[d+160>>2]=0;c[d+164>>2]=0;c[d+168>>2]=0;c[d+172>>2]=0;Lb[W&31](B,d+192|0,d+176|0,d+320|0,d+160|0);B=z;continue b};default:{B=z;continue b}}}}}while(0);if(((((Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0)!=0?(W=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0,((Rb[c[(c[W>>2]|0)+48>>2]&127](W)|0)&16387|0)!=0):0)?(Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0)!=0:0)?(W=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0,(Rb[c[(c[W>>2]|0)+48>>2]&127](W)|0)!=0):0)?(c[b+280>>2]|0)>0:0){e=0;do{W=c[(c[b+288>>2]|0)+(e<<2)>>2]|0;Pb[c[(c[W>>2]|0)+12>>2]&127](W,c[b+72>>2]|0);e=e+1|0}while((e|0)<(c[b+280>>2]|0))}b=c[4564]|0;W=(c[b+16>>2]|0)+ -1|0;c[b+16>>2]=W;if((W|0)!=0){i=d;return}do{if((c[b+4>>2]|0)!=0){Gb(d+1008|0,0)|0;W=c[4550]|0;g[b+8>>2]=+(((c[d+1012>>2]|0)-(c[W+4>>2]|0)+(((c[d+1008>>2]|0)-(c[W>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3+ +g[b+8>>2];if((c[b+16>>2]|0)==0){b=c[4564]|0;break}else{i=d;return}}}while(0);c[4564]=c[b+20>>2];i=d;return}function Wj(a){a=a|0;var b=0,d=0,e=0;b=i;if((c[a+232>>2]|0)<=0){i=b;return}d=0;do{e=(c[(c[a+240>>2]|0)+(d<<2)>>2]|0)+412|0;c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;d=d+1|0}while((d|0)<(c[a+232>>2]|0));i=b;return}function Xj(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0.0,k=0.0;b=i;d=c[a+232>>2]|0;if((d|0)<=0){i=b;return}a=c[a+240>>2]|0;e=0;do{f=c[a+(e<<2)>>2]|0;h=c[f+216>>2]|0;if(!((h|0)==2|(h|0)==5)?(c[f+204>>2]&3|0)==0:0){k=+g[f+368>>2]*+g[f+352>>2];j=+g[f+372>>2]*+g[f+356>>2];g[f+412>>2]=+g[f+364>>2]*+g[f+348>>2]+ +g[f+412>>2];g[f+416>>2]=k+ +g[f+416>>2];g[f+420>>2]=j+ +g[f+420>>2]}e=e+1|0}while((e|0)<(d|0));i=b;return}function Yj(b){b=b|0;var d=0,e=0.0,f=0.0,h=0,j=0,k=0,l=0;d=i;i=i+144|0;vx(1328);if((a[b+274>>0]|0)==0){k=c[b+232>>2]|0;if((k|0)>0){h=0;do{j=c[(c[b+240>>2]|0)+(h<<2)>>2]|0;l=c[j+216>>2]|0;if((!((l|0)==2|(l|0)==5)?(c[j+480>>2]|0)!=0:0)?(c[j+204>>2]&3|0)==0:0){if((a[b+300>>0]|0)!=0?(e=+g[b+268>>2],e!=0.0):0){f=+g[b+264>>2]-e}else{f=+g[b+264>>2]*+g[j+244>>2]}Hj(j+68|0,+g[j+132>>2],+g[j+136>>2],+g[j+140>>2],j+148|0,f,d);k=c[j+480>>2]|0;Pb[c[(c[k>>2]|0)+12>>2]&127](k,d);k=c[b+232>>2]|0}h=h+1|0}while((h|0)<(k|0))}}else{k=c[b+8>>2]|0;if((k|0)>0){h=0;do{j=c[(c[b+16>>2]|0)+(h<<2)>>2]|0;if((!((j|0)==0?1:(c[j+236>>2]&2|0)==0)?(c[j+480>>2]|0)!=0:0)?(c[j+204>>2]&3|0)==0:0){if((a[b+300>>0]|0)!=0?(f=+g[b+268>>2],f!=0.0):0){e=+g[b+264>>2]-f}else{e=+g[b+264>>2]*+g[j+244>>2]}Hj(j+68|0,+g[j+132>>2],+g[j+136>>2],+g[j+140>>2],j+148|0,e,d+64|0);k=c[j+480>>2]|0;Pb[c[(c[k>>2]|0)+12>>2]&127](k,d+64|0);k=c[b+8>>2]|0}h=h+1|0}while((h|0)<(k|0))}}b=c[4564]|0;l=(c[b+16>>2]|0)+ -1|0;c[b+16>>2]=l;if((l|0)!=0){i=d;return}do{if((c[b+4>>2]|0)!=0){Gb(d+128|0,0)|0;l=c[4550]|0;g[b+8>>2]=+(((c[d+132>>2]|0)-(c[l+4>>2]|0)+(((c[d+128>>2]|0)-(c[l>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3+ +g[b+8>>2];if((c[b+16>>2]|0)==0){b=c[4564]|0;break}else{i=d;return}}}while(0);c[4564]=c[b+20>>2];i=d;return}function Zj(b,d,e,f){b=b|0;d=+d;e=e|0;f=+f;var h=0,j=0.0,k=0,l=0;h=i;i=i+16|0;Gb(c[4550]|0,0)|0;ux(18208);c[18212>>2]=(c[18212>>2]|0)+1;l=c[18224>>2]|0;c[18224>>2]=l+1;if((l|0)==0){Gb(h|0,0)|0;l=c[4550]|0;c[18220>>2]=(c[h+4>>2]|0)-(c[l+4>>2]|0)+(((c[h>>2]|0)-(c[l>>2]|0)|0)*1e6|0)}c[4566]=0;Gb(h|0,0)|0;vx(1352);if((e|0)!=0){g[b+268>>2]=f;j=+g[b+264>>2]+d;g[b+264>>2]=j;if(!(j>=f)){d=f;k=e;e=0}else{g[b+264>>2]=j- +(~~(j/f)|0)*f;d=f;k=e;e=~~(j/f)}}else{g[b+264>>2]=(a[b+300>>0]|0)!=0?0.0:d;g[b+268>>2]=0.0;e=!(+P(+d)<1.1920928955078125e-7)&1;k=e}if((Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0)!=0){l=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;a[3200]=(Rb[c[(c[l>>2]|0)+48>>2]&127](l)|0)>>>4&1}if((e|0)!=0){k=(e|0)>(k|0)?k:e;Mb[c[(c[b>>2]|0)+164>>2]&31](b,d*+(k|0));Nb[c[(c[b>>2]|0)+168>>2]&255](b);if((k|0)>0){l=0;do{Mb[c[(c[b>>2]|0)+160>>2]&31](b,d);Nb[c[(c[b>>2]|0)+80>>2]&255](b);l=l+1|0}while((l|0)<(k|0))}}else{Nb[c[(c[b>>2]|0)+80>>2]&255](b)}Nb[c[(c[b>>2]|0)+120>>2]&255](b);c[4566]=(c[4566]|0)+1;b=c[4564]|0;l=(c[b+16>>2]|0)+ -1|0;c[b+16>>2]=l;if((l|0)!=0){i=h;return e|0}do{if((c[b+4>>2]|0)!=0){Gb(h|0,0)|0;l=c[4550]|0;g[b+8>>2]=+(((c[h+4>>2]|0)-(c[l+4>>2]|0)+(((c[h>>2]|0)-(c[l>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3+ +g[b+8>>2];if((c[b+16>>2]|0)==0){b=c[4564]|0;break}else{i=h;return e|0}}}while(0);c[4564]=c[b+20>>2];i=h;return e|0}function _j(d,e){d=d|0;e=+e;var f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0;f=i;i=i+464|0;vx(1368);p=c[d+84>>2]|0;if((p|0)!=0){Mb[p&31](d,e)}Mb[c[(c[d>>2]|0)+140>>2]&31](d,e);g[d+28>>2]=e;c[d+32>>2]=0;c[d+48>>2]=Rb[c[(c[d>>2]|0)+20>>2]&127](d)|0;vx(1504);vx(1536);q=c[d+316>>2]|0;if((c[d+308>>2]|0)>0){p=0;do{C=c[d+24>>2]|0;Pb[c[(c[C>>2]|0)+16>>2]&127](C,c[q+(p<<2)>>2]|0);p=p+1|0;q=c[d+316>>2]|0}while((p|0)<(c[d+308>>2]|0))}if((q|0)!=0){if((a[d+320>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[q+ -4>>2]|0)}c[d+316>>2]=0}a[d+320>>0]=1;c[d+316>>2]=0;c[d+308>>2]=0;c[d+312>>2]=0;p=c[4564]|0;C=(c[p+16>>2]|0)+ -1|0;c[p+16>>2]=C;do{if((C|0)==0){if((c[p+4>>2]|0)!=0){Gb(f+280|0,0)|0;C=c[4550]|0;g[p+8>>2]=+(((c[f+284>>2]|0)-(c[C+4>>2]|0)+(((c[f+280>>2]|0)-(c[C>>2]|0)|0)*1e6|0)-(c[p+12>>2]|0)|0)>>>0)/1.0e3+ +g[p+8>>2];if((c[p+16>>2]|0)!=0){break}p=c[4564]|0}c[4564]=c[p+20>>2]}}while(0);if((c[d+232>>2]|0)>0){p=f+264|0;s=f+164|0;r=f+400|0;q=0;do{t=c[(c[d+240>>2]|0)+(q<<2)>>2]|0;g[t+244>>2]=1.0;C=c[t+216>>2]|0;do{if(((!((C|0)==2|(C|0)==5)?(c[t+204>>2]&3|0)==0:0)?(Hj(t+4|0,+g[t+312>>2],+g[t+316>>2],+g[t+320>>2],t+328|0,e,f+216|0),l=+g[p>>2],h=l- +g[t+52>>2],m=+g[f+268>>2],j=m- +g[t+56>>2],n=+g[f+272>>2],k=n- +g[t+60>>2],(a[d+44>>0]|0)!=0):0)?(y=+g[t+252>>2],y*y!=0.0?y*y>2]|0)+4>>2]|0)<20){c[374]=(c[374]|0)+1;B=c[d+68>>2]|0;B=Rb[c[(c[B>>2]|0)+36>>2]&127](B)|0;C=c[d+24>>2]|0;g[f+124>>2]=1.0;b[f+128>>1]=1;b[f+130>>1]=-1;c[f+120>>2]=2104;c[f+132>>2]=c[t+52>>2];c[f+136>>2]=c[t+56>>2];c[f+140>>2]=c[t+60>>2];c[f+144>>2]=c[t+64>>2];c[f+148>>2]=c[p+0>>2];c[f+152>>2]=c[p+4>>2];c[f+156>>2]=c[p+8>>2];c[f+160>>2]=c[p+12>>2];c[f+196>>2]=0;c[f+120>>2]=1896;c[f+200>>2]=t;g[f+204>>2]=0.0;c[f+208>>2]=B;c[f+212>>2]=C;w=+g[t+248>>2];c[f+72>>2]=0;g[f+76>>2]=1.0;g[f+80>>2]=1.0;g[f+84>>2]=1.0;g[f+88>>2]=0.0;c[f+64>>2]=15008;c[f+68>>2]=8;g[f+92>>2]=w;g[f+108>>2]=w;g[f+204>>2]=+g[d+56>>2];C=c[t+188>>2]|0;b[f+128>>1]=b[C+4>>1]|0;b[f+130>>1]=b[C+6>>1]|0;c[f+48>>2]=c[p+0>>2];c[f+52>>2]=c[p+4>>2];c[f+56>>2]=c[p+8>>2];c[f+60>>2]=c[p+12>>2];c[f+0>>2]=c[t+4>>2];c[f+4>>2]=c[t+8>>2];c[f+8>>2]=c[t+12>>2];c[f+12>>2]=c[t+16>>2];c[f+16>>2]=c[t+20>>2];c[f+20>>2]=c[t+24>>2];c[f+24>>2]=c[t+28>>2];c[f+28>>2]=c[t+32>>2];c[f+32>>2]=c[t+36>>2];c[f+36>>2]=c[t+40>>2];c[f+40>>2]=c[t+44>>2];c[f+44>>2]=c[t+48>>2];So(d,f+64|0,t+4|0,f,f+120|0);w=+g[f+124>>2];if(w<1.0){v=w*(l- +g[t+52>>2]);u=w*(m- +g[t+56>>2]);w=w*(n- +g[t+60>>2]);y=-(u*+g[f+168>>2])-v*+g[s>>2]-w*+g[f+172>>2];x=c[d+24>>2]|0;x=_b[c[(c[x>>2]|0)+12>>2]&31](x,t,c[f+196>>2]|0)|0;A=c[d+308>>2]|0;if((A|0)==(c[d+312>>2]|0)?(o=(A|0)==0?1:A<<1,(A|0)<(o|0)):0){if((o|0)==0){z=0}else{c[4546]=(c[4546]|0)+1;z=Zx((o<<2|3)+16|0)|0;if((z|0)==0){z=0}else{c[(z+19&-16)+ -4>>2]=z;z=z+19&-16}A=c[d+308>>2]|0}if((A|0)>0){B=0;do{C=z+(B<<2)|0;if((C|0)!=0){c[C>>2]=c[(c[d+316>>2]|0)+(B<<2)>>2]}B=B+1|0}while((B|0)!=(A|0))}B=c[d+316>>2]|0;if((B|0)!=0){if((a[d+320>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[B+ -4>>2]|0);A=c[d+308>>2]|0}c[d+316>>2]=0}a[d+320>>0]=1;c[d+316>>2]=z;c[d+312>>2]=o}z=(c[d+316>>2]|0)+(A<<2)|0;if((z|0)!=0){c[z>>2]=x}c[d+308>>2]=A+1;D=v+ +g[t+52>>2];v=u+ +g[t+56>>2];w=w+ +g[t+60>>2];C=c[f+196>>2]|0;O=+g[C+4>>2];N=+g[C+20>>2];M=+g[C+36>>2];L=+g[C+8>>2];K=+g[C+24>>2];J=+g[C+40>>2];I=+g[C+12>>2];G=+g[C+28>>2];E=+g[C+44>>2];H=-+g[C+52>>2];F=-+g[C+56>>2];u=-+g[C+60>>2];c[f+280>>2]=0;c[f+284>>2]=0;c[f+288>>2]=0;c[f+292>>2]=0;g[f+296>>2]=D*O+v*N+w*M+(O*H+N*F+M*u);g[f+300>>2]=D*L+v*K+w*J+(L*H+K*F+J*u);g[f+304>>2]=D*I+v*G+w*E+(I*H+G*F+E*u);g[f+308>>2]=0.0;c[f+344>>2]=c[s+0>>2];c[f+348>>2]=c[s+4>>2];c[f+352>>2]=c[s+8>>2];c[f+356>>2]=c[s+12>>2];g[f+360>>2]=y;g[f+364>>2]=0.0;g[f+368>>2]=0.0;g[f+372>>2]=0.0;c[f+392>>2]=0;a[f+396>>0]=0;c[r+0>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=0;c[r+24>>2]=0;c[r+28>>2]=0;C=Ft(x,f+280|0)|0;g[x+(C*184|0)+96>>2]=0.0;y=+g[t+224>>2]*+g[(c[f+196>>2]|0)+224>>2];y=y<-10.0?-10.0:y;g[x+(C*184|0)+88>>2]=y>10.0?10.0:y;c[x+(C*184|0)+52>>2]=c[t+52>>2];c[x+(C*184|0)+56>>2]=c[t+56>>2];c[x+(C*184|0)+60>>2]=c[t+60>>2];c[x+(C*184|0)+64>>2]=c[t+64>>2];g[x+(C*184|0)+36>>2]=D;g[x+(C*184|0)+40>>2]=v;g[x+(C*184|0)+44>>2]=w;g[x+(C*184|0)+48>>2]=0.0}}t=c[4564]|0;C=(c[t+16>>2]|0)+ -1|0;c[t+16>>2]=C;if((C|0)==0){if((c[t+4>>2]|0)!=0){Gb(f+280|0,0)|0;C=c[4550]|0;g[t+8>>2]=+(((c[f+284>>2]|0)-(c[C+4>>2]|0)+(((c[f+280>>2]|0)-(c[C>>2]|0)|0)*1e6|0)-(c[t+12>>2]|0)|0)>>>0)/1.0e3+ +g[t+8>>2];if((c[t+16>>2]|0)!=0){break}t=c[4564]|0}c[4564]=c[t+20>>2]}}}while(0);q=q+1|0}while((q|0)<(c[d+232>>2]|0))}o=c[4564]|0;C=(c[o+16>>2]|0)+ -1|0;c[o+16>>2]=C;do{if((C|0)==0){if((c[o+4>>2]|0)!=0){Gb(f+280|0,0)|0;C=c[4550]|0;g[o+8>>2]=+(((c[f+284>>2]|0)-(c[C+4>>2]|0)+(((c[f+280>>2]|0)-(c[C>>2]|0)|0)*1e6|0)-(c[o+12>>2]|0)|0)>>>0)/1.0e3+ +g[o+8>>2];if((c[o+16>>2]|0)!=0){break}o=c[4564]|0}c[4564]=c[o+20>>2]}}while(0);Nb[c[(c[d>>2]|0)+44>>2]&255](d);Nb[c[(c[d>>2]|0)+148>>2]&255](d);g[d+104>>2]=e;Pb[c[(c[d>>2]|0)+152>>2]&127](d,d+92|0);Mb[c[(c[d>>2]|0)+144>>2]&31](d,e);vx(1400);if((c[d+280>>2]|0)>0){o=0;do{C=c[(c[d+288>>2]|0)+(o<<2)>>2]|0;uc[c[(c[C>>2]|0)+8>>2]&3](C,d,e);o=o+1|0}while((o|0)<(c[d+280>>2]|0))}o=c[4564]|0;C=(c[o+16>>2]|0)+ -1|0;c[o+16>>2]=C;do{if((C|0)==0){if((c[o+4>>2]|0)!=0){Gb(f+280|0,0)|0;C=c[4550]|0;g[o+8>>2]=+(((c[f+284>>2]|0)-(c[C+4>>2]|0)+(((c[f+280>>2]|0)-(c[C>>2]|0)|0)*1e6|0)-(c[o+12>>2]|0)|0)>>>0)/1.0e3+ +g[o+8>>2];if((c[o+16>>2]|0)!=0){break}o=c[4564]|0}c[4564]=c[o+20>>2]}}while(0);Mb[c[(c[d>>2]|0)+156>>2]&31](d,e);o=c[d+80>>2]|0;if((o|0)!=0){Mb[o&31](d,e)}d=c[4564]|0;C=(c[d+16>>2]|0)+ -1|0;c[d+16>>2]=C;if((C|0)!=0){i=f;return}do{if((c[d+4>>2]|0)!=0){Gb(f+280|0,0)|0;C=c[4550]|0;g[d+8>>2]=+(((c[f+284>>2]|0)-(c[C+4>>2]|0)+(((c[f+280>>2]|0)-(c[C>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3+ +g[d+8>>2];if((c[d+16>>2]|0)==0){d=c[4564]|0;break}else{i=f;return}}}while(0);c[4564]=c[d+20>>2];i=f;return}function $j(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0.0,k=0,l=0.0,m=0.0;d=i;c[a+248>>2]=c[b+0>>2];c[a+252>>2]=c[b+4>>2];c[a+256>>2]=c[b+8>>2];c[a+260>>2]=c[b+12>>2];h=c[a+232>>2]|0;if((h|0)<=0){i=d;return}e=0;do{f=c[(c[a+240>>2]|0)+(e<<2)>>2]|0;k=c[f+216>>2]|0;if(!((k|0)==2|(k|0)==5)?(c[f+504>>2]&1|0)==0:0){j=+g[f+344>>2];if(j!=0.0){m=1.0/j*+g[b+4>>2];l=1.0/j*+g[b+8>>2];g[f+364>>2]=1.0/j*+g[b>>2];g[f+368>>2]=m;g[f+372>>2]=l;g[f+376>>2]=0.0}c[f+380>>2]=c[b+0>>2];c[f+384>>2]=c[b+4>>2];c[f+388>>2]=c[b+8>>2];c[f+392>>2]=c[b+12>>2];h=c[a+232>>2]|0}e=e+1|0}while((e|0)<(h|0));i=d;return}function ak(a,b){a=a|0;b=b|0;var d=0;d=i;c[a+0>>2]=c[b+248>>2];c[a+4>>2]=c[b+252>>2];c[a+8>>2]=c[b+256>>2];c[a+12>>2]=c[b+260>>2];i=d;return}function bk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=i;Go(a,b,c,d);i=e;return}function ck(a,b){a=a|0;b=b|0;var d=0;d=i;if((b|0)==0?1:(c[b+236>>2]&2|0)==0){Ko(a,b);i=d;return}else{Pb[c[(c[a>>2]|0)+92>>2]&127](a,b);i=d;return}}function dk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;e=i;d=c[a+232>>2]|0;a:do{if((d|0)>0){f=c[a+240>>2]|0;g=0;while(1){h=f+(g<<2)|0;j=g+1|0;if((c[h>>2]|0)==(b|0)){break}if((j|0)<(d|0)){g=j}else{break a}}if((g|0)<(d|0)){c[h>>2]=c[f+(d+ -1<<2)>>2];c[(c[a+240>>2]|0)+(d+ -1<<2)>>2]=b;c[a+232>>2]=d+ -1}}}while(0);Ko(a,b);i=e;return}function ek(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0;e=i;h=c[d+204>>2]|0;if((h&3|0)==0?(c[d+504>>2]&1|0)==0:0){m=+g[d+344>>2];if(m!=0.0){o=1.0/m*+g[b+252>>2];n=1.0/m*+g[b+256>>2];g[d+364>>2]=1.0/m*+g[b+248>>2];g[d+368>>2]=o;g[d+372>>2]=n;g[d+376>>2]=0.0}c[d+380>>2]=c[b+248>>2];c[d+384>>2]=c[b+252>>2];c[d+388>>2]=c[b+256>>2];c[d+392>>2]=c[b+260>>2]}if((c[d+192>>2]|0)==0){i=e;return}if((h&1|0)!=0){if(!(((c[d+216>>2]|0)+ -4|0)>>>0<2)){c[d+216>>2]=2}}else{j=c[b+232>>2]|0;if((j|0)==(c[b+236>>2]|0)?(f=(j|0)==0?1:j<<1,(j|0)<(f|0)):0){if((f|0)==0){h=0}else{c[4546]=(c[4546]|0)+1;h=Zx((f<<2|3)+16|0)|0;if((h|0)==0){h=0}else{c[(h+19&-16)+ -4>>2]=h;h=h+19&-16}j=c[b+232>>2]|0}if((j|0)>0){k=0;do{l=h+(k<<2)|0;if((l|0)!=0){c[l>>2]=c[(c[b+240>>2]|0)+(k<<2)>>2]}k=k+1|0}while((k|0)!=(j|0))}k=c[b+240>>2]|0;if((k|0)!=0){if((a[b+244>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0);j=c[b+232>>2]|0}c[b+240>>2]=0}a[b+244>>0]=1;c[b+240>>2]=h;c[b+236>>2]=f}f=(c[b+240>>2]|0)+(j<<2)|0;if((f|0)!=0){c[f>>2]=d}c[b+232>>2]=j+1;h=c[d+204>>2]|0}if((h&1|0)==0){f=(h&2|0)==0}else{f=0}wc[c[(c[b>>2]|0)+36>>2]&63](b,d,f?1:2,f?-1:-3);i=e;return}function fk(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0;h=i;k=c[d+204>>2]|0;if((k&3|0)==0?(c[d+504>>2]&1|0)==0:0){o=+g[d+344>>2];if(o!=0.0){q=1.0/o*+g[b+252>>2];p=1.0/o*+g[b+256>>2];g[d+364>>2]=1.0/o*+g[b+248>>2];g[d+368>>2]=q;g[d+372>>2]=p;g[d+376>>2]=0.0}c[d+380>>2]=c[b+248>>2];c[d+384>>2]=c[b+252>>2];c[d+388>>2]=c[b+256>>2];c[d+392>>2]=c[b+260>>2]}if((c[d+192>>2]|0)==0){i=h;return}if((k&1|0)!=0){if(!(((c[d+216>>2]|0)+ -4|0)>>>0<2)){c[d+216>>2]=2}}else{l=c[b+232>>2]|0;if((l|0)==(c[b+236>>2]|0)?(j=(l|0)==0?1:l<<1,(l|0)<(j|0)):0){if((j|0)==0){k=0}else{c[4546]=(c[4546]|0)+1;k=Zx((j<<2|3)+16|0)|0;if((k|0)==0){k=0}else{c[(k+19&-16)+ -4>>2]=k;k=k+19&-16}l=c[b+232>>2]|0}if((l|0)>0){m=0;do{n=k+(m<<2)|0;if((n|0)!=0){c[n>>2]=c[(c[b+240>>2]|0)+(m<<2)>>2]}m=m+1|0}while((m|0)!=(l|0))}m=c[b+240>>2]|0;if((m|0)!=0){if((a[b+244>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0);l=c[b+232>>2]|0}c[b+240>>2]=0}a[b+244>>0]=1;c[b+240>>2]=k;c[b+236>>2]=j}j=(c[b+240>>2]|0)+(l<<2)|0;if((j|0)!=0){c[j>>2]=d}c[b+232>>2]=l+1}wc[c[(c[b>>2]|0)+36>>2]&63](b,d,e,f);i=h;return}function gk(b,d){b=b|0;d=+d;var e=0,f=0,h=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0;e=i;i=i+16|0;vx(1416);if((c[b+232>>2]|0)>0){f=(a[3200]|0)==0;h=0;do{k=c[(c[b+240>>2]|0)+(h<<2)>>2]|0;a:do{if((k|0)!=0){l=c[k+216>>2]|0;do{if(!((l|0)==4|(l|0)==2)){p=+g[k+312>>2];o=+g[k+316>>2];n=+g[k+320>>2];m=+g[k+472>>2];if(p*p+o*o+n*n>2],n=+g[k+332>>2],o=+g[k+336>>2],p=+g[k+476>>2],m*m+n*n+o*o>2]=+g[k+220>>2]+d;j=10;break}g[k+220>>2]=0.0;if(!((l+ -4|0)>>>0<2)){c[k+216>>2]=0;l=0}else{j=10}}else{j=10}}while(0);if((j|0)==10){j=0;if((l|0)==4){break}}do{if(f){if(!((l+ -2|0)>>>0<2)?!(+g[k+220>>2]>2.0):0){break}if((c[k+204>>2]&3|0)!=0){if((l+ -4|0)>>>0<2){break a}c[k+216>>2]=2;break a}if((l|0)==1){c[k+216>>2]=3;break a}if((l|0)!=2){break a}l=(c[k+260>>2]|0)+2|0;c[k+328>>2]=0;c[k+332>>2]=0;c[k+336>>2]=0;c[k+340>>2]=0;c[k+260>>2]=l;c[k+312>>2]=0;c[k+316>>2]=0;c[k+320>>2]=0;c[k+324>>2]=0;break a}}while(0);if(!((l+ -4|0)>>>0<2)){c[k+216>>2]=1}}}while(0);h=h+1|0}while((h|0)<(c[b+232>>2]|0))}b=c[4564]|0;l=(c[b+16>>2]|0)+ -1|0;c[b+16>>2]=l;if((l|0)!=0){i=e;return}do{if((c[b+4>>2]|0)!=0){Gb(e|0,0)|0;l=c[4550]|0;g[b+8>>2]=+(((c[e+4>>2]|0)-(c[l+4>>2]|0)+(((c[e>>2]|0)-(c[l>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3+ +g[b+8>>2];if((c[b+16>>2]|0)==0){b=c[4564]|0;break}else{i=e;return}}}while(0);c[4564]=c[b+20>>2];i=e;return}function hk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;j=c[b+212>>2]|0;if((j|0)==(c[b+216>>2]|0)?(g=(j|0)==0?1:j<<1,(j|0)<(g|0)):0){if((g|0)==0){h=0}else{c[4546]=(c[4546]|0)+1;h=Zx((g<<2|3)+16|0)|0;if((h|0)==0){h=0}else{c[(h+19&-16)+ -4>>2]=h;h=h+19&-16}j=c[b+212>>2]|0}if((j|0)>0){l=0;do{k=h+(l<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[b+220>>2]|0)+(l<<2)>>2]}l=l+1|0}while((l|0)!=(j|0))}k=c[b+220>>2]|0;if((k|0)!=0){if((a[b+224>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0);j=c[b+212>>2]|0}c[b+220>>2]=0}a[b+224>>0]=1;c[b+220>>2]=h;c[b+216>>2]=g}g=(c[b+220>>2]|0)+(j<<2)|0;if((g|0)!=0){c[g>>2]=d}c[b+212>>2]=j+1;if(!e){i=f;return}El(c[d+28>>2]|0,d);El(c[d+32>>2]|0,d);i=f;return}function ik(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;k=c[a+212>>2]|0;a:do{if((k|0)>0){f=c[a+220>>2]|0;g=0;while(1){h=f+(g<<2)|0;j=g+1|0;if((c[h>>2]|0)==(b|0)){break}if((j|0)<(k|0)){g=j}else{break a}}if((g|0)<(k|0)){c[h>>2]=c[f+(k+ -1<<2)>>2];c[(c[a+220>>2]|0)+(k+ -1<<2)>>2]=b;c[a+212>>2]=k+ -1}}}while(0);a=c[b+28>>2]|0;g=c[a+488>>2]|0;b:do{if((g|0)>0){f=c[a+496>>2]|0;h=0;while(1){j=f+(h<<2)|0;k=h+1|0;if((c[j>>2]|0)==(b|0)){break}if((k|0)<(g|0)){h=k}else{break b}}if((h|0)<(g|0)){c[j>>2]=c[f+(g+ -1<<2)>>2];c[(c[a+496>>2]|0)+(g+ -1<<2)>>2]=b;c[a+488>>2]=g+ -1;g=g+ -1|0}}}while(0);c[a+256>>2]=(g|0)>0&1;a=c[b+32>>2]|0;f=c[a+488>>2]|0;if((f|0)<=0){j=f;j=(j|0)>0;j=j&1;k=a+256|0;c[k>>2]=j;i=d;return}h=c[a+496>>2]|0;j=0;while(1){k=h+(j<<2)|0;g=j+1|0;if((c[k>>2]|0)==(b|0)){break}if((g|0)<(f|0)){j=g}else{e=19;break}}if((e|0)==19){j=(f|0)>0;j=j&1;k=a+256|0;c[k>>2]=j;i=d;return}if((j|0)>=(f|0)){j=f;j=(j|0)>0;j=j&1;k=a+256|0;c[k>>2]=j;i=d;return}c[k>>2]=c[h+(f+ -1<<2)>>2];c[(c[a+496>>2]|0)+(f+ -1<<2)>>2]=b;c[a+488>>2]=f+ -1;j=f+ -1|0;j=(j|0)>0;j=j&1;k=a+256|0;c[k>>2]=j;i=d;return}function jk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;h=c[b+280>>2]|0;if((h|0)==(c[b+284>>2]|0)?(f=(h|0)==0?1:h<<1,(h|0)<(f|0)):0){if((f|0)==0){g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((f<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[b+280>>2]|0}if((h|0)>0){j=0;do{k=g+(j<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[b+288>>2]|0)+(j<<2)>>2]}j=j+1|0}while((j|0)!=(h|0))}j=c[b+288>>2]|0;if((j|0)!=0){if((a[b+292>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);h=c[b+280>>2]|0}c[b+288>>2]=0}a[b+292>>0]=1;c[b+288>>2]=g;c[b+284>>2]=f}f=(c[b+288>>2]|0)+(h<<2)|0;if((f|0)==0){k=h+1|0;c[b+280>>2]=k;i=e;return}c[f>>2]=d;k=h+1|0;c[b+280>>2]=k;i=e;return}function kk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;e=i;f=c[a+280>>2]|0;if((f|0)<=0){i=e;return}g=c[a+288>>2]|0;h=0;while(1){j=g+(h<<2)|0;k=h+1|0;if((c[j>>2]|0)==(b|0)){break}if((k|0)<(f|0)){h=k}else{d=7;break}}if((d|0)==7){i=e;return}if((h|0)>=(f|0)){i=e;return}c[j>>2]=c[g+(f+ -1<<2)>>2];c[(c[a+288>>2]|0)+(f+ -1<<2)>>2]=b;c[a+280>>2]=f+ -1;i=e;return}function lk(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+64>>2]&127](a,b);i=d;return}function mk(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+68>>2]&127](a,b);i=d;return}function nk(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+64>>2]&127](a,b);i=d;return}function ok(a,b){a=a|0;b=b|0;var d=0;d=i;Pb[c[(c[a>>2]|0)+68>>2]&127](a,b);i=d;return}function pk(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=i;i=i+16|0;vx(1440);f=c[b+212>>2]|0;h=c[b+180>>2]|0;if((h|0)<(f|0)){if((c[b+184>>2]|0)<(f|0)){if((f|0)==0){k=h;l=0}else{c[4546]=(c[4546]|0)+1;k=Zx((f<<2|3)+16|0)|0;if((k|0)==0){l=0}else{c[(k+19&-16)+ -4>>2]=k;l=k+19&-16}k=c[b+180>>2]|0}if((k|0)>0){n=0;do{m=l+(n<<2)|0;if((m|0)!=0){c[m>>2]=c[(c[b+188>>2]|0)+(n<<2)>>2]}n=n+1|0}while((n|0)!=(k|0))}k=c[b+188>>2]|0;if((k|0)!=0){if((a[b+192>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[b+188>>2]=0}a[b+192>>0]=1;c[b+188>>2]=l;c[b+184>>2]=f;k=b+188|0}else{k=b+188|0}do{l=(c[k>>2]|0)+(h<<2)|0;if((l|0)!=0){c[l>>2]=0}h=h+1|0}while((h|0)!=(f|0))}c[b+180>>2]=f;f=0;while(1){if((f|0)>=(Rb[c[(c[b>>2]|0)+104>>2]&127](b)|0)){break}c[(c[b+188>>2]|0)+(f<<2)>>2]=c[(c[b+220>>2]|0)+(f<<2)>>2];f=f+1|0}f=c[b+180>>2]|0;if((f|0)>1){Hk(b+176|0,0,f+ -1|0)}if((Rb[c[(c[b>>2]|0)+104>>2]&127](b)|0)==0){h=0}else{h=c[b+188>>2]|0}f=c[b+196>>2]|0;u=c[b+180>>2]|0;v=Rb[c[(c[b>>2]|0)+20>>2]&127](b)|0;c[f+4>>2]=d;c[f+12>>2]=h;c[f+16>>2]=u;c[f+20>>2]=v;h=c[f+32>>2]|0;if((h|0)<0){if((c[f+36>>2]|0)<0){k=c[f+40>>2]|0;if((k|0)!=0){if((a[f+44>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[f+40>>2]=0}a[f+44>>0]=1;c[f+40>>2]=0;c[f+36>>2]=0}do{k=(c[f+40>>2]|0)+(h<<2)|0;if((k|0)!=0){c[k>>2]=0}h=h+1|0}while((h|0)!=0)}c[f+32>>2]=0;k=c[f+52>>2]|0;if((k|0)<0){if((c[f+56>>2]|0)<0){h=c[f+60>>2]|0;if((h|0)!=0){if((a[f+64>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[f+60>>2]=0}a[f+64>>0]=1;c[f+60>>2]=0;c[f+56>>2]=0;h=k}else{h=k}do{k=(c[f+60>>2]|0)+(h<<2)|0;if((k|0)!=0){c[k>>2]=0}h=h+1|0}while((h|0)!=0)}c[f+52>>2]=0;h=c[f+72>>2]|0;if((h|0)<0){if((c[f+76>>2]|0)<0){k=c[f+80>>2]|0;if((k|0)!=0){if((a[f+84>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[f+80>>2]=0}a[f+84>>0]=1;c[f+80>>2]=0;c[f+76>>2]=0}do{k=(c[f+80>>2]|0)+(h<<2)|0;if((k|0)!=0){c[k>>2]=0}h=h+1|0}while((h|0)!=0)}c[f+72>>2]=0;f=c[b+200>>2]|0;l=c[(c[f>>2]|0)+8>>2]|0;k=c[b+8>>2]|0;h=c[b+24>>2]|0;h=Rb[c[(c[h>>2]|0)+36>>2]&127](h)|0;sc[l&63](f,k,h);h=c[b+204>>2]|0;k=c[b+24>>2]|0;f=c[b+196>>2]|0;vx(14912);l=c[h+28>>2]|0;if((l|0)<0){if((c[h+32>>2]|0)<0){m=c[h+36>>2]|0;if((m|0)!=0){if((a[h+40>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0)}c[h+36>>2]=0}a[h+40>>0]=1;c[h+36>>2]=0;c[h+32>>2]=0}do{m=(c[h+36>>2]|0)+(l<<2)|0;if((m|0)!=0){c[m>>2]=0}l=l+1|0}while((l|0)!=0)}c[h+28>>2]=0;o=c[h+8>>2]|0;if((o|0)>0){l=c[h+16>>2]|0;n=0;do{m=l+(n<<3)|0;q=c[m>>2]|0;if((q|0)==(n|0)){p=n}else{r=m;do{p=l+(q<<3)|0;c[r>>2]=c[p>>2];p=c[p>>2]|0;r=l+(p<<3)|0;q=c[r>>2]|0}while((p|0)!=(q|0))}c[m>>2]=p;n=n+1|0}while((n|0)!=(o|0));o=c[h+8>>2]|0;if((o|0)>1){qv(h+4|0,0,o+ -1|0);o=c[h+8>>2]|0}if((o|0)>0){p=c[h+16>>2]|0;r=0;while(1){l=c[p+(r<<3)>>2]|0;n=r;do{n=n+1|0;m=(n|0)<(o|0);if(!m){break}}while((c[p+(n<<3)>>2]|0)==(l|0));if((r|0)<(n|0)){q=c[b+16>>2]|0;t=1;s=r;do{u=c[q+(c[p+(s<<3)+4>>2]<<2)>>2]|0;if((c[u+208>>2]|0)==(l|0)){v=c[u+216>>2]|0;t=t&(v|0)!=1&(v|0)!=4}s=s+1|0}while((s|0)!=(n|0));if(t){do{s=c[q+(c[p+(r<<3)+4>>2]<<2)>>2]|0;if((c[s+208>>2]|0)==(l|0)?!(((c[s+216>>2]|0)+ -4|0)>>>0<2):0){c[s+216>>2]=2}r=r+1|0}while((r|0)<(n|0))}else{do{s=c[q+(c[p+(r<<3)+4>>2]<<2)>>2]|0;if((c[s+208>>2]|0)==(l|0)?(c[s+216>>2]|0)==2:0){c[s+216>>2]=3;g[s+220>>2]=0.0}r=r+1|0}while((r|0)<(n|0))}}if(m){r=n}else{break}}}}l=Rb[c[(c[k>>2]|0)+36>>2]&127](k)|0;if((l|0)>0){n=0;do{m=hc[c[(c[k>>2]|0)+40>>2]&31](k,n)|0;o=c[m+740>>2]|0;p=c[m+744>>2]|0;if((o|0)!=0?(c[o+216>>2]|0)!=2:0){q=101}else{q=99}if(((q|0)==99?(q=0,(p|0)!=0):0)?(c[p+216>>2]|0)!=2:0){q=101}if((q|0)==101){v=c[o+204>>2]|0;if((((v&2|0)!=0?(c[o+216>>2]|0)!=2:0)?(v&4|0)==0:0)?(c[p+204>>2]&3|0)==0:0){if(!(((c[p+216>>2]|0)+ -4|0)>>>0<2)){c[p+216>>2]=1}g[p+220>>2]=0.0}v=c[p+204>>2]|0;if((((v&2|0)!=0?(c[p+216>>2]|0)!=2:0)?(v&4|0)==0:0)?(c[o+204>>2]&3|0)==0:0){if(!(((c[o+216>>2]|0)+ -4|0)>>>0<2)){c[o+216>>2]=1}g[o+220>>2]=0.0}if((a[h+64>>0]|0)!=0?_b[c[(c[k>>2]|0)+28>>2]&31](k,o,p)|0:0){p=c[h+28>>2]|0;if((p|0)==(c[h+32>>2]|0)?(j=(p|0)==0?1:p<<1,(p|0)<(j|0)):0){if((j|0)==0){o=0}else{c[4546]=(c[4546]|0)+1;o=Zx((j<<2|3)+16|0)|0;if((o|0)==0){o=0}else{c[(o+19&-16)+ -4>>2]=o;o=o+19&-16}p=c[h+28>>2]|0}if((p|0)>0){q=0;do{r=o+(q<<2)|0;if((r|0)!=0){c[r>>2]=c[(c[h+36>>2]|0)+(q<<2)>>2]}q=q+1|0}while((q|0)!=(p|0))}q=c[h+36>>2]|0;if((q|0)!=0){if((a[h+40>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[q+ -4>>2]|0);p=c[h+28>>2]|0}c[h+36>>2]=0}a[h+40>>0]=1;c[h+36>>2]=o;c[h+32>>2]=j}o=(c[h+36>>2]|0)+(p<<2)|0;if((o|0)!=0){c[o>>2]=m}c[h+28>>2]=p+1}}n=n+1|0}while((n|0)<(l|0))}j=c[4564]|0;v=(c[j+16>>2]|0)+ -1|0;c[j+16>>2]=v;do{if((v|0)==0){if((c[j+4>>2]|0)!=0){Gb(e|0,0)|0;v=c[4550]|0;g[j+8>>2]=+(((c[e+4>>2]|0)-(c[v+4>>2]|0)+(((c[e>>2]|0)-(c[v>>2]|0)|0)*1e6|0)-(c[j+12>>2]|0)|0)>>>0)/1.0e3+ +g[j+8>>2];if((c[j+16>>2]|0)!=0){break}j=c[4564]|0}c[4564]=c[j+20>>2]}}while(0);j=c[h+8>>2]|0;vx(14944);if((a[h+64>>0]|0)!=0){k=c[h+28>>2]|0;if((k|0)>1){yu(h+24|0,0,k+ -1|0)}if((j|0)>0){n=1;o=0;l=0;do{r=c[h+16>>2]|0;m=c[r+(o<<3)>>2]|0;a:do{if((o|0)<(j|0)){q=m;p=1;while(1){if((q|0)!=(m|0)){break a}q=c[(c[b+16>>2]|0)+(c[r+(o<<3)+4>>2]<<2)>>2]|0;t=c[h+48>>2]|0;do{if((t|0)==(c[h+52>>2]|0)){r=(t|0)==0?1:t<<1;if((t|0)>=(r|0)){break}if((r|0)==0){s=0}else{c[4546]=(c[4546]|0)+1;s=Zx((r<<2|3)+16|0)|0;if((s|0)==0){s=0}else{c[(s+19&-16)+ -4>>2]=s;s=s+19&-16}t=c[h+48>>2]|0}if((t|0)>0){u=0;do{v=s+(u<<2)|0;if((v|0)!=0){c[v>>2]=c[(c[h+56>>2]|0)+(u<<2)>>2]}u=u+1|0}while((u|0)!=(t|0))}u=c[h+56>>2]|0;if((u|0)!=0){if((a[h+60>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[u+ -4>>2]|0);t=c[h+48>>2]|0}c[h+56>>2]=0}a[h+60>>0]=1;c[h+56>>2]=s;c[h+52>>2]=r}}while(0);r=(c[h+56>>2]|0)+(t<<2)|0;if((r|0)!=0){c[r>>2]=q}c[h+48>>2]=t+1;v=c[q+216>>2]|0;p=p&((v|0)==2|(v|0)==5);o=o+1|0;if((o|0)>=(j|0)){break a}r=c[h+16>>2]|0;q=c[r+(o<<3)>>2]|0}}else{p=1}}while(0);if((l|0)<(k|0)){r=c[h+36>>2]|0;q=r+(l<<2)|0;t=c[q>>2]|0;s=c[(c[t+740>>2]|0)+208>>2]|0;if(!((s|0)>-1)){s=c[(c[t+744>>2]|0)+208>>2]|0}if((s|0)==(m|0)){s=l;do{s=s+1|0;if((s|0)>=(k|0)){break}n=c[r+(s<<2)>>2]|0;t=c[(c[n+740>>2]|0)+208>>2]|0;if(!((t|0)>-1)){t=c[(c[n+744>>2]|0)+208>>2]|0}}while((m|0)==(t|0));n=s;r=s-l|0}else{r=0;q=0}}else{r=0;q=0}if(!p){$b[c[(c[f>>2]|0)+8>>2]&7](f,c[h+56>>2]|0,c[h+48>>2]|0,q,r,m)}l=(r|0)==0?l:n;m=c[h+48>>2]|0;if((m|0)<0){if((c[h+52>>2]|0)<0){p=c[h+56>>2]|0;if((p|0)!=0){if((a[h+60>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[p+ -4>>2]|0)}c[h+56>>2]=0}a[h+60>>0]=1;c[h+56>>2]=0;c[h+52>>2]=0;p=m}else{p=m}do{m=(c[h+56>>2]|0)+(p<<2)|0;if((m|0)!=0){c[m>>2]=0}p=p+1|0}while((p|0)!=0)}c[h+48>>2]=0}while((o|0)<(j|0))}}else{u=Rb[c[(c[k>>2]|0)+44>>2]&127](k)|0;v=Rb[c[(c[k>>2]|0)+36>>2]&127](k)|0;$b[c[(c[f>>2]|0)+8>>2]&7](f,c[b+16>>2]|0,c[b+8>>2]|0,u,v,-1)}f=c[4564]|0;v=(c[f+16>>2]|0)+ -1|0;c[f+16>>2]=v;do{if((v|0)==0){if((c[f+4>>2]|0)!=0){Gb(e|0,0)|0;v=c[4550]|0;g[f+8>>2]=+(((c[e+4>>2]|0)-(c[v+4>>2]|0)+(((c[e>>2]|0)-(c[v>>2]|0)|0)*1e6|0)-(c[f+12>>2]|0)|0)>>>0)/1.0e3+ +g[f+8>>2];if((c[f+16>>2]|0)!=0){break}f=c[4564]|0}c[4564]=c[f+20>>2]}}while(0);qk(c[b+196>>2]|0);v=c[b+200>>2]|0;sc[c[(c[v>>2]|0)+16>>2]&63](v,d,c[b+72>>2]|0);b=c[4564]|0;v=(c[b+16>>2]|0)+ -1|0;c[b+16>>2]=v;if((v|0)!=0){i=e;return}do{if((c[b+4>>2]|0)!=0){Gb(e|0,0)|0;v=c[4550]|0;g[b+8>>2]=+(((c[e+4>>2]|0)-(c[v+4>>2]|0)+(((c[e>>2]|0)-(c[v>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3+ +g[b+8>>2];if((c[b+16>>2]|0)==0){b=c[4564]|0;break}else{i=e;return}}}while(0);c[4564]=c[b+20>>2];i=e;return}function qk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=c[b+32>>2]|0;if((e|0)==0){f=0}else{f=c[b+40>>2]|0}g=c[b+52>>2]|0;if((g|0)==0){h=0}else{h=c[b+60>>2]|0}j=c[b+72>>2]|0;if((j|0)==0){k=0}else{k=c[b+80>>2]|0}l=c[b+8>>2]|0;+jc[c[(c[l>>2]|0)+12>>2]&3](l,f,e,h,g,k,j,c[b+4>>2]|0,c[b+20>>2]|0,c[b+24>>2]|0);e=c[b+32>>2]|0;if((e|0)<0){if((c[b+36>>2]|0)<0){f=c[b+40>>2]|0;if((f|0)!=0){if((a[b+44>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[b+40>>2]=0}a[b+44>>0]=1;c[b+40>>2]=0;c[b+36>>2]=0}do{f=(c[b+40>>2]|0)+(e<<2)|0;if((f|0)!=0){c[f>>2]=0}e=e+1|0}while((e|0)!=0)}c[b+32>>2]=0;e=c[b+52>>2]|0;if((e|0)<0){if((c[b+56>>2]|0)<0){f=c[b+60>>2]|0;if((f|0)!=0){if((a[b+64>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=0;c[b+56>>2]=0}do{f=(c[b+60>>2]|0)+(e<<2)|0;if((f|0)!=0){c[f>>2]=0}e=e+1|0}while((e|0)!=0)}c[b+52>>2]=0;e=c[b+72>>2]|0;if((e|0)>=0){c[b+72>>2]=0;i=d;return}if((c[b+76>>2]|0)<0){f=c[b+80>>2]|0;if((f|0)!=0){if((a[b+84>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[b+80>>2]=0}a[b+84>>0]=1;c[b+80>>2]=0;c[b+76>>2]=0;f=e}else{f=e}do{e=(c[b+80>>2]|0)+(f<<2)|0;if((e|0)!=0){c[e>>2]=0}f=f+1|0}while((f|0)!=0);c[b+72>>2]=0;i=d;return}function rk(b){b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=i;i=i+16|0;vx(1464);p=c[b+204>>2]|0;sc[c[(c[p>>2]|0)+8>>2]&63](p,b,c[b+24>>2]|0);if((c[b+308>>2]|0)>0){h=c[b+316>>2]|0;j=0;do{k=c[h+(j<<2)>>2]|0;l=c[k+740>>2]|0;k=c[k+744>>2]|0;if(((l|0)!=0?!((k|0)==0?1:(c[l+204>>2]&3|0)!=0):0)?(c[k+204>>2]&3|0)==0:0){m=c[l+208>>2]|0;l=c[k+208>>2]|0;k=c[(c[b+204>>2]|0)+16>>2]|0;n=c[k+(m<<3)>>2]|0;if((n|0)!=(m|0)){o=k+(m<<3)|0;do{m=k+(n<<3)|0;c[o>>2]=c[m>>2];m=c[m>>2]|0;o=k+(m<<3)|0;n=c[o>>2]|0}while((m|0)!=(n|0))}n=c[k+(l<<3)>>2]|0;if((n|0)!=(l|0)){o=k+(l<<3)|0;do{l=k+(n<<3)|0;c[o>>2]=c[l>>2];l=c[l>>2]|0;o=k+(l<<3)|0;n=c[o>>2]|0}while((l|0)!=(n|0))}if((m|0)!=(l|0)){c[k+(m<<3)>>2]=l;p=k+(l<<3)+4|0;c[p>>2]=(c[p>>2]|0)+(c[k+(m<<3)+4>>2]|0)}}j=j+1|0}while((j|0)<(c[b+308>>2]|0))}h=c[b+212>>2]|0;if((h|0)>0){k=c[b+220>>2]|0;j=0;do{l=c[k+(j<<2)>>2]|0;if((((a[l+20>>0]|0)!=0?(e=c[l+28>>2]|0,f=c[l+32>>2]|0,(e|0)!=0):0)?!((f|0)==0?1:(c[e+204>>2]&3|0)!=0):0)?(c[f+204>>2]&3|0)==0:0){n=c[e+208>>2]|0;m=c[f+208>>2]|0;l=c[(c[b+204>>2]|0)+16>>2]|0;o=c[l+(n<<3)>>2]|0;if((o|0)!=(n|0)){p=l+(n<<3)|0;do{n=l+(o<<3)|0;c[p>>2]=c[n>>2];n=c[n>>2]|0;p=l+(n<<3)|0;o=c[p>>2]|0}while((n|0)!=(o|0))}o=c[l+(m<<3)>>2]|0;if((o|0)!=(m|0)){p=l+(m<<3)|0;do{m=l+(o<<3)|0;c[p>>2]=c[m>>2];m=c[m>>2]|0;p=l+(m<<3)|0;o=c[p>>2]|0}while((m|0)!=(o|0))}if((n|0)!=(m|0)){c[l+(n<<3)>>2]=m;p=l+(m<<3)+4|0;c[p>>2]=(c[p>>2]|0)+(c[l+(n<<3)+4>>2]|0)}}j=j+1|0}while((j|0)!=(h|0))}p=c[b+204>>2]|0;Pb[c[(c[p>>2]|0)+12>>2]&127](p,b);b=c[4564]|0;p=(c[b+16>>2]|0)+ -1|0;c[b+16>>2]=p;if((p|0)!=0){i=d;return}do{if((c[b+4>>2]|0)!=0){Gb(d|0,0)|0;p=c[4550]|0;g[b+8>>2]=+(((c[d+4>>2]|0)-(c[p+4>>2]|0)+(((c[d>>2]|0)-(c[p>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3+ +g[b+8>>2];if((c[b+16>>2]|0)==0){b=c[4564]|0;break}else{i=d;return}}}while(0);c[4564]=c[b+20>>2];i=d;return}function sk(a){a=a|0;return}function tk(a){a=a|0;return}function uk(d,e){d=d|0;e=+e;var f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0.0;f=i;i=i+352|0;vx(1608);if((c[d+232>>2]|0)>0){q=f+232|0;n=0;do{o=c[(c[d+240>>2]|0)+(n<<2)>>2]|0;g[o+244>>2]=1.0;A=c[o+216>>2]|0;do{if(!((A|0)==2|(A|0)==5)?(c[o+204>>2]&3|0)==0:0){Hj(o+4|0,+g[o+312>>2],+g[o+316>>2],+g[o+320>>2],o+328|0,e,f+184|0);D=+g[q>>2]- +g[o+52>>2];C=+g[f+236>>2]- +g[o+56>>2];B=+g[f+240>>2]- +g[o+60>>2];if((a[d+44>>0]|0)!=0?(E=+g[o+252>>2],E*E!=0.0?E*E>2]|0)+4>>2]|0)<20){c[374]=(c[374]|0)+1;z=c[d+68>>2]|0;z=Rb[c[(c[z>>2]|0)+36>>2]&127](z)|0;A=c[d+24>>2]|0;g[f+252>>2]=1.0;b[f+256>>1]=1;b[f+258>>1]=-1;c[f+248>>2]=2104;c[f+260>>2]=c[o+52>>2];c[f+264>>2]=c[o+56>>2];c[f+268>>2]=c[o+60>>2];c[f+272>>2]=c[o+64>>2];c[f+276>>2]=c[q+0>>2];c[f+280>>2]=c[q+4>>2];c[f+284>>2]=c[q+8>>2];c[f+288>>2]=c[q+12>>2];c[f+324>>2]=0;c[f+248>>2]=1896;c[f+328>>2]=o;g[f+332>>2]=0.0;c[f+336>>2]=z;c[f+340>>2]=A;B=+g[o+248>>2];c[f+136>>2]=0;g[f+140>>2]=1.0;g[f+144>>2]=1.0;g[f+148>>2]=1.0;g[f+152>>2]=0.0;c[f+128>>2]=15008;c[f+132>>2]=8;g[f+156>>2]=B;g[f+172>>2]=B;g[f+332>>2]=+g[d+56>>2];A=c[o+188>>2]|0;b[f+256>>1]=b[A+4>>1]|0;b[f+258>>1]=b[A+6>>1]|0;c[f+112>>2]=c[q+0>>2];c[f+116>>2]=c[q+4>>2];c[f+120>>2]=c[q+8>>2];c[f+124>>2]=c[q+12>>2];c[f+64>>2]=c[o+4>>2];c[f+68>>2]=c[o+8>>2];c[f+72>>2]=c[o+12>>2];c[f+76>>2]=c[o+16>>2];c[f+80>>2]=c[o+20>>2];c[f+84>>2]=c[o+24>>2];c[f+88>>2]=c[o+28>>2];c[f+92>>2]=c[o+32>>2];c[f+96>>2]=c[o+36>>2];c[f+100>>2]=c[o+40>>2];c[f+104>>2]=c[o+44>>2];c[f+108>>2]=c[o+48>>2];So(d,f+128|0,o+4|0,f+64|0,f+248|0);B=+g[f+252>>2];if(B<1.0){g[o+244>>2]=B;Hj(o+4|0,+g[o+312>>2],+g[o+316>>2],+g[o+320>>2],o+328|0,B*e,f+184|0);g[o+244>>2]=0.0;Cl(o,f+184|0);r=4}else{r=0}if((r|0)==0){p=11}}else{p=11}if((p|0)==11){p=0;r=0}s=c[4564]|0;A=(c[s+16>>2]|0)+ -1|0;c[s+16>>2]=A;do{if((A|0)==0){if((c[s+4>>2]|0)!=0){Gb(f+248|0,0)|0;A=c[4550]|0;g[s+8>>2]=+(((c[f+252>>2]|0)-(c[A+4>>2]|0)+(((c[f+248>>2]|0)-(c[A>>2]|0)|0)*1e6|0)-(c[s+12>>2]|0)|0)>>>0)/1.0e3+ +g[s+8>>2];if((c[s+16>>2]|0)!=0){break}s=c[4564]|0}c[4564]=c[s+20>>2]}}while(0);if((r|0)==4){break}}Cl(o,f+184|0)}}while(0);n=n+1|0}while((n|0)<(c[d+232>>2]|0))}do{if((a[d+275>>0]|0)!=0){vx(1656);q=c[d+308>>2]|0;if((q|0)>0){n=0;do{o=c[(c[d+316>>2]|0)+(n<<2)>>2]|0;x=c[o+740>>2]|0;if((c[x+236>>2]&2|0)==0){x=0}p=c[o+744>>2]|0;if((c[p+236>>2]&2|0)==0){p=0}z=c[o+748>>2]|0;if((z|0)>0){s=x+52|0;r=x+56|0;q=x+60|0;v=p+52|0;t=p+56|0;u=p+60|0;w=(p|0)==0;if((x|0)==0){x=p+228|0;y=0;do{e=+g[57]*+g[x>>2];if((e>0.0?(h=+g[o+(y*184|0)+124>>2],h!=0.0):0)?(j=e*h*+g[o+(y*184|0)+68>>2],k=e*h*+g[o+(y*184|0)+72>>2],l=e*h*+g[o+(y*184|0)+76>>2],g[f+48>>2]=-j,g[f+52>>2]=-k,g[f+56>>2]=-l,g[f+60>>2]=0.0,E=+g[o+(y*184|0)+56>>2]- +g[r>>2],D=+g[o+(y*184|0)+60>>2]- +g[q>>2],g[f+32>>2]=+g[o+(y*184|0)+52>>2]- +g[s>>2],g[f+36>>2]=E,g[f+40>>2]=D,g[f+44>>2]=0.0,D=+g[o+(y*184|0)+40>>2]- +g[t>>2],E=+g[o+(y*184|0)+44>>2]- +g[u>>2],g[f+16>>2]=+g[o+(y*184|0)+36>>2]- +g[v>>2],g[f+20>>2]=D,g[f+24>>2]=E,g[f+28>>2]=0.0,!w):0){g[f>>2]=j;g[f+4>>2]=k;g[f+8>>2]=l;g[f+12>>2]=0.0;ei(p,f,f+16|0);z=c[o+748>>2]|0}y=y+1|0}while((y|0)<(z|0))}else{z=x+228|0;A=p+228|0;y=0;do{e=+g[z>>2]*+g[A>>2];if((e>0.0?(m=+g[o+(y*184|0)+124>>2],m!=0.0):0)?(D=-(e*m*+g[o+(y*184|0)+72>>2]),E=-(e*m*+g[o+(y*184|0)+76>>2]),g[f+48>>2]=-(e*m*+g[o+(y*184|0)+68>>2]),g[f+52>>2]=D,g[f+56>>2]=E,g[f+60>>2]=0.0,E=+g[o+(y*184|0)+56>>2]- +g[r>>2],D=+g[o+(y*184|0)+60>>2]- +g[q>>2],g[f+32>>2]=+g[o+(y*184|0)+52>>2]- +g[s>>2],g[f+36>>2]=E,g[f+40>>2]=D,g[f+44>>2]=0.0,D=+g[o+(y*184|0)+40>>2]- +g[t>>2],E=+g[o+(y*184|0)+44>>2]- +g[u>>2],g[f+16>>2]=+g[o+(y*184|0)+36>>2]- +g[v>>2],g[f+20>>2]=D,g[f+24>>2]=E,g[f+28>>2]=0.0,ei(x,f+48|0,f+32|0),!w):0){D=-+g[f+52>>2];E=-+g[f+56>>2];g[f>>2]=-+g[f+48>>2];g[f+4>>2]=D;g[f+8>>2]=E;g[f+12>>2]=0.0;ei(p,f,f+16|0)}y=y+1|0}while((y|0)<(c[o+748>>2]|0))}q=c[d+308>>2]|0}n=n+1|0}while((n|0)<(q|0))}d=c[4564]|0;A=(c[d+16>>2]|0)+ -1|0;c[d+16>>2]=A;if((A|0)==0){if((c[d+4>>2]|0)!=0){Gb(f+248|0,0)|0;A=c[4550]|0;g[d+8>>2]=+(((c[f+252>>2]|0)-(c[A+4>>2]|0)+(((c[f+248>>2]|0)-(c[A>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3+ +g[d+8>>2];if((c[d+16>>2]|0)!=0){break}d=c[4564]|0}c[4564]=c[d+20>>2]}}}while(0);d=c[4564]|0;A=(c[d+16>>2]|0)+ -1|0;c[d+16>>2]=A;if((A|0)!=0){i=f;return}do{if((c[d+4>>2]|0)!=0){Gb(f+248|0,0)|0;A=c[4550]|0;g[d+8>>2]=+(((c[f+252>>2]|0)-(c[A+4>>2]|0)+(((c[f+248>>2]|0)-(c[A>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3+ +g[d+8>>2];if((c[d+16>>2]|0)==0){d=c[4564]|0;break}else{i=f;return}}}while(0);c[4564]=c[d+20>>2];i=f;return} function $w(b,d,e,f,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;h=+h;j=+j;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0.0,H=0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0.0,Q=0.0,R=0,S=0.0,T=0.0,U=0.0,V=0.0,W=0,X=0,Y=0.0,Z=0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0,da=0;l=i;i=i+64|0;a[l+48>>0]=1;c[l+44>>2]=0;c[l+36>>2]=0;c[l+40>>2]=0;m=c[f+4>>2]|0;if((m|0)>0){c[4546]=(c[4546]|0)+1;n=Zx((m<<4|3)+16|0)|0;if((n|0)==0){v=0}else{c[(n+19&-16)+ -4>>2]=n;v=n+19&-16}a[l+48>>0]=1;c[l+44>>2]=v;c[l+40>>2]=m}else{v=0}u=c[d+28>>2]|0;if((u|0)>0){n=c[d+36>>2]|0;G=+g[e>>2];I=+g[e+4>>2];O=+g[e+8>>2];P=+g[e+16>>2];D=+g[e+20>>2];C=+g[e+24>>2];B=+g[e+32>>2];A=+g[e+36>>2];z=+g[e+40>>2];V=+g[b>>2];Q=+g[b+4>>2];T=+g[b+8>>2];m=-1;U=3.4028234663852886e+38;t=0;while(1){S=+g[n+(t*36|0)+20>>2];E=+g[n+(t*36|0)+24>>2];Y=+g[n+(t*36|0)+28>>2];r=(S*G+E*I+Y*O)*V+(S*P+E*D+Y*C)*Q+(S*B+E*A+Y*z)*T=(u|0)){break}else{U=r?(S*G+E*I+Y*O)*V+(S*P+E*D+Y*C)*Q+(S*B+E*A+Y*z)*T:U}}if((m|0)>=0){v=c[n+(m*36|0)+4>>2]|0;if((v|0)>0){w=n+(m*36|0)+12|0;u=n+(m*36|0)+20|0;t=n+(m*36|0)+24|0;r=n+(m*36|0)+28|0;Q=D;S=C;T=B;U=A;V=z;x=0;y=f;f=l+32|0;while(1){F=c[w>>2]|0;Z=c[F+(x<<2)>>2]|0;H=c[d+16>>2]|0;x=x+1|0;F=c[F+(((x|0)==(v|0)?0:x)<<2)>>2]|0;$=+g[H+(Z<<4)>>2];aa=$- +g[H+(F<<4)>>2];_=+g[H+(Z<<4)+4>>2];ba=_- +g[H+(F<<4)+4>>2];Y=+g[H+(Z<<4)+8>>2];C=Y- +g[H+(F<<4)+8>>2];B=aa*G+ba*I+C*O;A=aa*P+ba*Q+C*S;C=aa*T+ba*U+C*V;ba=+g[u>>2];aa=+g[t>>2];z=+g[r>>2];E=G*ba+I*aa+O*z;D=P*ba+Q*aa+S*z;z=T*ba+U*aa+V*z;I=($*G+_*I+Y*O+ +g[e+48>>2])*-(A*z-C*D)+($*P+_*Q+Y*S+ +g[e+52>>2])*-(C*E-B*z)+($*T+_*U+Y*V+ +g[e+56>>2])*-(B*D-A*E);F=y+4|0;H=c[F>>2]|0;if((H|0)>=2){N=y+12|0;W=c[N>>2]|0;T=+g[W+(H+ -1<<4)>>2];U=+g[W+(H+ -1<<4)+4>>2];V=+g[W+(H+ -1<<4)+8>>2];K=f+4|0;M=f+8|0;J=f+12|0;L=f+16|0;Y=T*-(A*z-C*D)+U*-(C*E-B*z)+V*-(B*D-A*E)-I;R=0;while(1){G=+g[W+(R<<4)>>2];P=+g[W+(R<<4)+4>>2];Q=+g[W+(R<<4)+8>>2];S=+g[W+(R<<4)+12>>2];O=G*-(A*z-C*D)+P*-(C*E-B*z)+Q*-(B*D-A*E)-I;do{if(Y<0.0){if(O<0.0){W=c[K>>2]|0;if((W|0)==(c[M>>2]|0)?(s=(W|0)==0?1:W<<1,(W|0)<(s|0)):0){if((s|0)==0){X=0}else{c[4546]=(c[4546]|0)+1;W=Zx((s<<4|3)+16|0)|0;if((W|0)==0){X=0}else{c[(W+19&-16)+ -4>>2]=W;X=W+19&-16}W=c[K>>2]|0}if((W|0)>0){Z=0;do{ca=X+(Z<<4)|0;da=(c[J>>2]|0)+(Z<<4)|0;c[ca+0>>2]=c[da+0>>2];c[ca+4>>2]=c[da+4>>2];c[ca+8>>2]=c[da+8>>2];c[ca+12>>2]=c[da+12>>2];Z=Z+1|0}while((Z|0)!=(W|0))}W=c[J>>2]|0;if((W|0)!=0){if((a[L>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[W+ -4>>2]|0)}c[J>>2]=0}a[L>>0]=1;c[J>>2]=X;c[M>>2]=s;W=c[K>>2]|0}da=c[J>>2]|0;g[da+(W<<4)>>2]=G;g[da+(W<<4)+4>>2]=P;g[da+(W<<4)+8>>2]=Q;g[da+(W<<4)+12>>2]=S;c[K>>2]=(c[K>>2]|0)+1;break}else{ba=Y/(Y-O);S=T+(G-T)*ba;T=U+(P-U)*ba;U=V+(Q-V)*ba;X=c[K>>2]|0;if((X|0)==(c[M>>2]|0)?(p=(X|0)==0?1:X<<1,(X|0)<(p|0)):0){if((p|0)==0){W=0}else{c[4546]=(c[4546]|0)+1;W=Zx((p<<4|3)+16|0)|0;if((W|0)==0){W=0}else{c[(W+19&-16)+ -4>>2]=W;W=W+19&-16}X=c[K>>2]|0}if((X|0)>0){Z=0;do{da=W+(Z<<4)|0;ca=(c[J>>2]|0)+(Z<<4)|0;c[da+0>>2]=c[ca+0>>2];c[da+4>>2]=c[ca+4>>2];c[da+8>>2]=c[ca+8>>2];c[da+12>>2]=c[ca+12>>2];Z=Z+1|0}while((Z|0)!=(X|0))}X=c[J>>2]|0;if((X|0)!=0){if((a[L>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[X+ -4>>2]|0)}c[J>>2]=0}a[L>>0]=1;c[J>>2]=W;c[M>>2]=p;X=c[K>>2]|0}da=c[J>>2]|0;g[da+(X<<4)>>2]=S;g[da+(X<<4)+4>>2]=T;g[da+(X<<4)+8>>2]=U;g[da+(X<<4)+12>>2]=0.0;c[K>>2]=(c[K>>2]|0)+1;break}}else{if(O<0.0){ba=Y/(Y-O);T=T+(G-T)*ba;U=U+(P-U)*ba;V=V+(Q-V)*ba;W=c[K>>2]|0;if((W|0)==(c[M>>2]|0)?(o=(W|0)==0?1:W<<1,(W|0)<(o|0)):0){if((o|0)==0){X=0}else{c[4546]=(c[4546]|0)+1;W=Zx((o<<4|3)+16|0)|0;if((W|0)==0){X=0}else{c[(W+19&-16)+ -4>>2]=W;X=W+19&-16}W=c[K>>2]|0}if((W|0)>0){Z=0;do{da=X+(Z<<4)|0;ca=(c[J>>2]|0)+(Z<<4)|0;c[da+0>>2]=c[ca+0>>2];c[da+4>>2]=c[ca+4>>2];c[da+8>>2]=c[ca+8>>2];c[da+12>>2]=c[ca+12>>2];Z=Z+1|0}while((Z|0)!=(W|0))}W=c[J>>2]|0;if((W|0)!=0){if((a[L>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[W+ -4>>2]|0)}c[J>>2]=0}a[L>>0]=1;c[J>>2]=X;c[M>>2]=o;W=c[K>>2]|0}X=c[J>>2]|0;g[X+(W<<4)>>2]=T;g[X+(W<<4)+4>>2]=U;g[X+(W<<4)+8>>2]=V;g[X+(W<<4)+12>>2]=0.0;X=(c[K>>2]|0)+1|0;c[K>>2]=X;if((X|0)==(c[M>>2]|0)?(q=(X|0)==0?1:X<<1,(X|0)<(q|0)):0){if((q|0)==0){W=0}else{c[4546]=(c[4546]|0)+1;W=Zx((q<<4|3)+16|0)|0;if((W|0)==0){W=0}else{c[(W+19&-16)+ -4>>2]=W;W=W+19&-16}X=c[K>>2]|0}if((X|0)>0){Z=0;do{da=W+(Z<<4)|0;ca=(c[J>>2]|0)+(Z<<4)|0;c[da+0>>2]=c[ca+0>>2];c[da+4>>2]=c[ca+4>>2];c[da+8>>2]=c[ca+8>>2];c[da+12>>2]=c[ca+12>>2];Z=Z+1|0}while((Z|0)!=(X|0))}X=c[J>>2]|0;if((X|0)!=0){if((a[L>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[X+ -4>>2]|0)}c[J>>2]=0}a[L>>0]=1;c[J>>2]=W;c[M>>2]=q;X=c[K>>2]|0}da=c[J>>2]|0;g[da+(X<<4)>>2]=G;g[da+(X<<4)+4>>2]=P;g[da+(X<<4)+8>>2]=Q;g[da+(X<<4)+12>>2]=S;c[K>>2]=(c[K>>2]|0)+1}}}while(0);R=R+1|0;if((R|0)==(H|0)){break}W=c[N>>2]|0;Y=O;T=G;U=P;V=Q}H=c[F>>2]|0}if((H|0)<0){M=y+8|0;J=y+12|0;if((c[M>>2]|0)<0){K=c[J>>2]|0;L=y+16|0;if((K|0)!=0){if((a[L>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[K+ -4>>2]|0)}c[J>>2]=0}a[L>>0]=1;c[J>>2]=0;c[M>>2]=0}do{da=(c[J>>2]|0)+(H<<4)|0;c[da+0>>2]=c[l+16>>2];c[da+4>>2]=c[l+20>>2];c[da+8>>2]=c[l+24>>2];c[da+12>>2]=c[l+28>>2];H=H+1|0}while((H|0)!=0)}c[F>>2]=0;G=+g[e>>2];I=+g[e+4>>2];O=+g[e+8>>2];P=+g[e+16>>2];D=+g[e+20>>2];C=+g[e+24>>2];B=+g[e+32>>2];A=+g[e+36>>2];z=+g[e+40>>2];if((x|0)>=(v|0)){d=e+56|0;o=e+48|0;e=e+52|0;break}else{da=f;Q=D;S=C;T=B;U=A;V=z;f=y;y=da}}}else{d=e+56|0;o=e+48|0;e=e+52|0;u=n+(m*36|0)+20|0;t=n+(m*36|0)+24|0;r=n+(m*36|0)+28|0}$=+g[u>>2];aa=+g[t>>2];ba=+g[r>>2];E=$*G+aa*I+ba*O;C=$*P+aa*D+ba*C;z=$*B+aa*A+ba*z;A=+g[n+(m*36|0)+32>>2]-(E*+g[o>>2]+C*+g[e>>2]+z*+g[d>>2]);m=f+4|0;o=c[m>>2]|0;if((o|0)>0){n=f+12|0;e=0;do{da=c[n>>2]|0;d=da+(e<<4)|0;B=A+(E*+g[d>>2]+C*+g[da+(e<<4)+4>>2]+z*+g[da+(e<<4)+8>>2]);B=!(B<=h)?B:h;if(B<=j){c[l+0>>2]=c[d+0>>2];c[l+4>>2]=c[d+4>>2];c[l+8>>2]=c[d+8>>2];c[l+12>>2]=c[d+12>>2];rc[c[(c[k>>2]|0)+16>>2]&15](k,b,l,B);o=c[m>>2]|0}e=e+1|0}while((e|0)<(o|0))}v=c[l+44>>2]|0}}if((v|0)==0){i=l;return}if((a[l+48>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[v+ -4>>2]|0)}c[l+44>>2]=0;i=l;return}function ax(a,b,f,j){a=a|0;b=b|0;f=f|0;j=j|0;var k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0;n=i;i=i+80|0;f=Rb[c[(c[a>>2]|0)+28>>2]&127](a)|0;m=+g[a+4>>2];k=+g[a+8>>2];l=+g[a+12>>2];if((f|0)<=0){i=n;return}j=0;do{gc[c[(c[a>>2]|0)+16>>2]&3](a,n+76|0,n+52|0,n+64|0,n+56|0,n+72|0,n+68|0,n+48|0,n+60|0,j);o=c[n+64>>2]|0;do{if((o|0)==0){o=c[n+60>>2]|0;if((o|0)==5){if((c[n+48>>2]|0)>0){o=0}else{break}do{u=c[n+72>>2]|0;t=aa(c[n+68>>2]|0,o)|0;s=c[n+76>>2]|0;r=c[n+56>>2]|0;v=aa(d[u+t>>0]|0,r)|0;q=k*+g[s+(v+4)>>2];p=l*+g[s+(v+8)>>2];g[n>>2]=m*+g[s+v>>2];g[n+4>>2]=q;g[n+8>>2]=p;g[n+12>>2]=0.0;v=aa(d[u+(t+1)>>0]|0,r)|0;p=k*+g[s+(v+4)>>2];q=l*+g[s+(v+8)>>2];g[n+16>>2]=m*+g[s+v>>2];g[n+20>>2]=p;g[n+24>>2]=q;g[n+28>>2]=0.0;r=aa(d[u+(t+2)>>0]|0,r)|0;q=k*+g[s+(r+4)>>2];p=l*+g[s+(r+8)>>2];g[n+32>>2]=m*+g[s+r>>2];g[n+36>>2]=q;g[n+40>>2]=p;g[n+44>>2]=0.0;wc[c[(c[b>>2]|0)+8>>2]&63](b,n,j,o);o=o+1|0}while((o|0)<(c[n+48>>2]|0))}else if((o|0)==2){if((c[n+48>>2]|0)>0){o=0}else{break}do{t=c[n+72>>2]|0;v=aa(c[n+68>>2]|0,o)|0;u=c[n+76>>2]|0;s=c[n+56>>2]|0;r=aa(s,c[t+v>>2]|0)|0;p=k*+g[u+(r+4)>>2];q=l*+g[u+(r+8)>>2];g[n>>2]=m*+g[u+r>>2];g[n+4>>2]=p;g[n+8>>2]=q;g[n+12>>2]=0.0;r=aa(s,c[t+(v+4)>>2]|0)|0;q=k*+g[u+(r+4)>>2];p=l*+g[u+(r+8)>>2];g[n+16>>2]=m*+g[u+r>>2];g[n+20>>2]=q;g[n+24>>2]=p;g[n+28>>2]=0.0;v=aa(s,c[t+(v+8)>>2]|0)|0;p=k*+g[u+(v+4)>>2];q=l*+g[u+(v+8)>>2];g[n+32>>2]=m*+g[u+v>>2];g[n+36>>2]=p;g[n+40>>2]=q;g[n+44>>2]=0.0;wc[c[(c[b>>2]|0)+8>>2]&63](b,n,j,o);o=o+1|0}while((o|0)<(c[n+48>>2]|0))}else if((o|0)==3){if((c[n+48>>2]|0)>0){o=0}else{break}do{s=c[n+72>>2]|0;t=aa(c[n+68>>2]|0,o)|0;u=c[n+76>>2]|0;v=c[n+56>>2]|0;r=aa(e[s+t>>1]|0,v)|0;p=k*+g[u+(r+4)>>2];q=l*+g[u+(r+8)>>2];g[n>>2]=m*+g[u+r>>2];g[n+4>>2]=p;g[n+8>>2]=q;g[n+12>>2]=0.0;r=aa(e[s+(t+2)>>1]|0,v)|0;q=k*+g[u+(r+4)>>2];p=l*+g[u+(r+8)>>2];g[n+16>>2]=m*+g[u+r>>2];g[n+20>>2]=q;g[n+24>>2]=p;g[n+28>>2]=0.0;v=aa(e[s+(t+4)>>1]|0,v)|0;p=k*+g[u+(v+4)>>2];q=l*+g[u+(v+8)>>2];g[n+32>>2]=m*+g[u+v>>2];g[n+36>>2]=p;g[n+40>>2]=q;g[n+44>>2]=0.0;wc[c[(c[b>>2]|0)+8>>2]&63](b,n,j,o);o=o+1|0}while((o|0)<(c[n+48>>2]|0))}else{break}}else if((o|0)==1){o=c[n+60>>2]|0;if((o|0)==5){if((c[n+48>>2]|0)>0){o=0}else{break}do{s=c[n+72>>2]|0;t=aa(c[n+68>>2]|0,o)|0;u=c[n+76>>2]|0;v=c[n+56>>2]|0;r=aa(d[s+t>>0]|0,v)|0;p=k*+h[u+(r+8)>>3];q=l*+h[u+(r+16)>>3];g[n>>2]=m*+h[u+r>>3];g[n+4>>2]=p;g[n+8>>2]=q;g[n+12>>2]=0.0;r=aa(d[s+(t+1)>>0]|0,v)|0;q=k*+h[u+(r+8)>>3];p=l*+h[u+(r+16)>>3];g[n+16>>2]=m*+h[u+r>>3];g[n+20>>2]=q;g[n+24>>2]=p;g[n+28>>2]=0.0;v=aa(d[s+(t+2)>>0]|0,v)|0;p=k*+h[u+(v+8)>>3];q=l*+h[u+(v+16)>>3];g[n+32>>2]=m*+h[u+v>>3];g[n+36>>2]=p;g[n+40>>2]=q;g[n+44>>2]=0.0;wc[c[(c[b>>2]|0)+8>>2]&63](b,n,j,o);o=o+1|0}while((o|0)<(c[n+48>>2]|0))}else if((o|0)==3){if((c[n+48>>2]|0)>0){o=0}else{break}do{s=c[n+72>>2]|0;t=aa(c[n+68>>2]|0,o)|0;u=c[n+76>>2]|0;v=c[n+56>>2]|0;r=aa(e[s+t>>1]|0,v)|0;p=k*+h[u+(r+8)>>3];q=l*+h[u+(r+16)>>3];g[n>>2]=m*+h[u+r>>3];g[n+4>>2]=p;g[n+8>>2]=q;g[n+12>>2]=0.0;r=aa(e[s+(t+2)>>1]|0,v)|0;q=k*+h[u+(r+8)>>3];p=l*+h[u+(r+16)>>3];g[n+16>>2]=m*+h[u+r>>3];g[n+20>>2]=q;g[n+24>>2]=p;g[n+28>>2]=0.0;v=aa(e[s+(t+4)>>1]|0,v)|0;p=k*+h[u+(v+8)>>3];q=l*+h[u+(v+16)>>3];g[n+32>>2]=m*+h[u+v>>3];g[n+36>>2]=p;g[n+40>>2]=q;g[n+44>>2]=0.0;wc[c[(c[b>>2]|0)+8>>2]&63](b,n,j,o);o=o+1|0}while((o|0)<(c[n+48>>2]|0))}else if((o|0)==2){if((c[n+48>>2]|0)>0){o=0}else{break}do{t=c[n+72>>2]|0;v=aa(c[n+68>>2]|0,o)|0;u=c[n+76>>2]|0;s=c[n+56>>2]|0;r=aa(s,c[t+v>>2]|0)|0;p=k*+h[u+(r+8)>>3];q=l*+h[u+(r+16)>>3];g[n>>2]=m*+h[u+r>>3];g[n+4>>2]=p;g[n+8>>2]=q;g[n+12>>2]=0.0;r=aa(s,c[t+(v+4)>>2]|0)|0;q=k*+h[u+(r+8)>>3];p=l*+h[u+(r+16)>>3];g[n+16>>2]=m*+h[u+r>>3];g[n+20>>2]=q;g[n+24>>2]=p;g[n+28>>2]=0.0;v=aa(s,c[t+(v+8)>>2]|0)|0;p=k*+h[u+(v+8)>>3];q=l*+h[u+(v+16)>>3];g[n+32>>2]=m*+h[u+v>>3];g[n+36>>2]=p;g[n+40>>2]=q;g[n+44>>2]=0.0;wc[c[(c[b>>2]|0)+8>>2]&63](b,n,j,o);o=o+1|0}while((o|0)<(c[n+48>>2]|0))}else{break}}}while(0);Pb[c[(c[a>>2]|0)+24>>2]&127](a,j);j=j+1|0}while((j|0)!=(f|0));i=n;return}function bx(d,e,f){d=d|0;e=e|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0;j=i;i=i+32|0;m=Rb[c[(c[d>>2]|0)+28>>2]&127](d)|0;c[e+20>>2]=m;c[e>>2]=0;if((m|0)==0){w=e+4|0;v=d+4|0;x=+g[v>>2];g[w>>2]=x;w=d+8|0;x=+g[w>>2];w=e+8|0;g[w>>2]=x;w=d+12|0;x=+g[w>>2];w=e+12|0;g[w>>2]=x;w=d+16|0;x=+g[w>>2];w=e+16|0;g[w>>2]=x;i=j;return 17992}m=_b[c[(c[f>>2]|0)+16>>2]&31](f,32,m)|0;p=c[m+8>>2]|0;c[e>>2]=hc[c[(c[f>>2]|0)+28>>2]&31](f,p)|0;n=Rb[c[(c[d>>2]|0)+28>>2]&127](d)|0;if((n|0)>0){o=0;while(1){gc[c[(c[d>>2]|0)+16>>2]&3](d,j+28|0,j+4|0,j+16|0,j+8|0,j+24|0,j+20|0,j,j+12|0,o);c[p+24>>2]=c[j>>2];c[p+28>>2]=c[j+4>>2];s=p+8|0;t=p+12|0;r=p+16|0;q=p+4|0;c[p+0>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[p+20>>2]=0;u=c[j+12>>2]|0;if((u|0)==2){r=c[j>>2]|0;if((r|0)!=0){r=_b[c[(c[f>>2]|0)+16>>2]&31](f,4,r*3|0)|0;t=c[r+8>>2]|0;c[s>>2]=hc[c[(c[f>>2]|0)+28>>2]&31](f,t)|0;if((c[j>>2]|0)>0){u=c[j+24>>2]|0;s=0;do{v=aa(c[j+20>>2]|0,s)|0;w=s*3|0;c[t+(w<<2)>>2]=c[u+v>>2];c[t+(w+1<<2)>>2]=c[u+(v+4)>>2];c[t+(w+2<<2)>>2]=c[u+(v+8)>>2];s=s+1|0}while((s|0)<(c[j>>2]|0))}Lb[c[(c[f>>2]|0)+20>>2]&31](f,r,17856,1497453121,c[r+8>>2]|0)}}else if((u|0)==5){s=c[j>>2]|0;if((s|0)!=0){t=_b[c[(c[f>>2]|0)+16>>2]&31](f,4,s)|0;s=c[t+8>>2]|0;c[r>>2]=hc[c[(c[f>>2]|0)+28>>2]&31](f,s)|0;if((c[j>>2]|0)>0){r=0;do{v=c[j+24>>2]|0;w=aa(c[j+20>>2]|0,r)|0;a[s+(r<<2)>>0]=a[v+w>>0]|0;a[s+(r<<2)+1>>0]=a[v+(w+1)>>0]|0;a[s+(r<<2)+2>>0]=a[v+(w+2)>>0]|0;r=r+1|0}while((r|0)<(c[j>>2]|0))}Lb[c[(c[f>>2]|0)+20>>2]&31](f,t,17904,1497453121,c[t+8>>2]|0)}}else if((u|0)==3?(k=c[j>>2]|0,(k|0)!=0):0){s=_b[c[(c[f>>2]|0)+16>>2]&31](f,8,k)|0;r=c[s+8>>2]|0;c[t>>2]=hc[c[(c[f>>2]|0)+28>>2]&31](f,r)|0;t=c[j>>2]|0;if((t|0)>0){v=c[j+24>>2]|0;u=c[j+20>>2]|0;w=0;do{y=aa(u,w)|0;b[r+(w<<3)>>1]=b[v+y>>1]|0;b[r+(w<<3)+2>>1]=b[v+(y+2)>>1]|0;b[r+(w<<3)+4>>1]=b[v+(y+4)>>1]|0;w=w+1|0}while((w|0)<(t|0))}Lb[c[(c[f>>2]|0)+20>>2]&31](f,s,17872,1497453121,c[s+8>>2]|0)}r=c[j+16>>2]|0;if((r|0)==0){q=c[j+4>>2]|0;if((q|0)!=0){u=_b[c[(c[f>>2]|0)+16>>2]&31](f,16,q)|0;t=c[u+8>>2]|0;c[p>>2]=hc[c[(c[f>>2]|0)+28>>2]&31](f,t)|0;s=c[j+4>>2]|0;if((s|0)>0){q=c[j+28>>2]|0;r=c[j+8>>2]|0;v=0;do{y=aa(r,v)|0;g[t+(v<<4)>>2]=+g[q+y>>2];g[t+(v<<4)+4>>2]=+g[q+(y+4)>>2];g[t+(v<<4)+8>>2]=+g[q+(y+8)>>2];v=v+1|0}while((v|0)<(s|0))}Lb[c[(c[f>>2]|0)+20>>2]&31](f,u,17928,1497453121,c[u+8>>2]|0)}}else if((r|0)==1?(l=c[j+4>>2]|0,(l|0)!=0):0){r=_b[c[(c[f>>2]|0)+16>>2]&31](f,32,l)|0;s=c[r+8>>2]|0;c[q>>2]=hc[c[(c[f>>2]|0)+28>>2]&31](f,s)|0;t=c[j+4>>2]|0;if((t|0)>0){q=c[j+28>>2]|0;u=c[j+8>>2]|0;v=0;do{y=aa(u,v)|0;h[s+(v<<5)>>3]=+h[q+y>>3];h[s+(v<<5)+8>>3]=+h[q+(y+8)>>3];h[s+(v<<5)+16>>3]=+h[q+(y+16)>>3];v=v+1|0}while((v|0)<(t|0))}Lb[c[(c[f>>2]|0)+20>>2]&31](f,r,17952,1497453121,c[r+8>>2]|0)}Pb[c[(c[d>>2]|0)+24>>2]&127](d,o);o=o+1|0;if((o|0)==(n|0)){k=f;break}else{p=p+32|0}}}else{k=f}Lb[c[(c[k>>2]|0)+20>>2]&31](f,m,17976,1497453121,c[m+8>>2]|0);y=e+4|0;w=d+4|0;x=+g[w>>2];g[y>>2]=x;y=d+8|0;x=+g[y>>2];y=e+8|0;g[y>>2]=x;y=d+12|0;x=+g[y>>2];y=e+12|0;g[y>>2]=x;y=d+16|0;x=+g[y>>2];y=e+16|0;g[y>>2]=x;i=j;return 17992}function cx(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=18072;e=c[b+32>>2]|0;if((e|0)==0){a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0}else{if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0}c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);i=d;return}function dx(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=18072;e=c[b+32>>2]|0;if((e|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;i=d;return}function ex(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;a=c[a+32>>2]|0;c[d>>2]=c[a+(k<<5)+12>>2];c[b>>2]=c[a+(k<<5)+16>>2];c[e>>2]=c[a+(k<<5)+28>>2];c[f>>2]=c[a+(k<<5)+20>>2];c[i>>2]=c[a+(k<<5)>>2];c[g>>2]=c[a+(k<<5)+4>>2];c[h>>2]=c[a+(k<<5)+8>>2];c[j>>2]=c[a+(k<<5)+24>>2];return}function fx(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;a=c[a+32>>2]|0;c[d>>2]=c[a+(k<<5)+12>>2];c[b>>2]=c[a+(k<<5)+16>>2];c[e>>2]=c[a+(k<<5)+28>>2];c[f>>2]=c[a+(k<<5)+20>>2];c[i>>2]=c[a+(k<<5)>>2];c[g>>2]=c[a+(k<<5)+4>>2];c[h>>2]=c[a+(k<<5)+8>>2];c[j>>2]=c[a+(k<<5)+24>>2];return}function gx(a){a=a|0;return(c[a+48>>2]|0)==1|0}function hx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[a+52>>2]=c[b+0>>2];c[a+56>>2]=c[b+4>>2];c[a+60>>2]=c[b+8>>2];c[a+64>>2]=c[b+12>>2];c[a+68>>2]=c[d+0>>2];c[a+72>>2]=c[d+4>>2];c[a+76>>2]=c[d+8>>2];c[a+80>>2]=c[d+12>>2];c[a+48>>2]=1;i=e;return}function ix(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[b+0>>2]=c[a+52>>2];c[b+4>>2]=c[a+56>>2];c[b+8>>2]=c[a+60>>2];c[b+12>>2]=c[a+64>>2];c[d+0>>2]=c[a+68>>2];c[d+4>>2]=c[a+72>>2];c[d+8>>2]=c[a+76>>2];c[d+12>>2]=c[a+80>>2];i=e;return}function jx(a,b){a=a|0;b=b|0;return}function kx(a,b){a=a|0;b=b|0;return}function lx(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;j=c[g+16>>2]|0;if((j|0)!=(f|0)){l=f-j|0;i=h;return l|0}if((f|0)==0){l=0;i=h;return l|0}l=c[g+8>>2]|0;n=c[g+12>>2]|0;k=py(l|0,0,a|0,0)|0;j=E;p=py(n|0,0,a|0,0)|0;m=E;l=py(l|0,0,b|0,0)|0;a=E;n=py(n|0,0,b|0,0)|0;o=E;b=dy(p|0,0,l|0,0)|0;l=E;o=dy(m|0,0,n|0,o|0)|0;a=dy(o|0,E|0,a|0,0)|0;l=dy(a|0,E|0,l|0,0)|0;a=E;j=dy(0,b|0,k|0,j|0)|0;k=E;b=dy(l|0,a|0,(k>>>0>>0|(k|0)==(b|0)&j>>>0<0)&1|0,0)|0;a=E;l=c[g>>2]|0;o=c[g+4>>2]|0;n=py(l|0,0,d|0,0)|0;g=E;m=py(o|0,0,d|0,0)|0;p=E;l=py(l|0,0,e|0,0)|0;d=E;o=py(o|0,0,e|0,0)|0;e=E;l=dy(m|0,0,l|0,0)|0;m=E;e=dy(p|0,0,o|0,e|0)|0;e=dy(e|0,E|0,d|0,0)|0;m=dy(e|0,E|0,m|0,0)|0;e=E;g=dy(0,l|0,n|0,g|0)|0;d=E;l=dy(m|0,e|0,(d>>>0>>0|(d|0)==(l|0)&g>>>0<0)&1|0,0)|0;e=E;if(!(a>>>0>>0|(a|0)==(e|0)&b>>>0>>0)){if(!(a>>>0>e>>>0|(a|0)==(e|0)&b>>>0>l>>>0)){if(k>>>0>>0|(k|0)==(d|0)&j>>>0>>0){a=-1}else{a=(k>>>0>d>>>0|(k|0)==(d|0)&j>>>0>g>>>0)&1}}else{a=1}}else{a=-1}p=aa(a,f)|0;i=h;return p|0}function mx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;e=c[a+8>>2]|0;if((e|0)==0){g=c[a+4>>2]|0;if((g|0)==0){c[4546]=(c[4546]|0)+1;e=Zx(31)|0;if((e|0)!=0?(d=e+19&-16,c[d+ -4>>2]=e,(e+19&-16|0)!=0):0){g=c[a+12>>2]|0;c[d+4>>2]=g;c[d+8>>2]=0;c[4546]=(c[4546]|0)+1;d=Zx((g*24|3)+16|0)|0;if((d|0)==0){d=0}else{c[(d+19&-16)+ -4>>2]=d;d=d+19&-16}c[(e+19&-16)>>2]=d;g=e+19&-16}else{g=0}c[g+8>>2]=c[a>>2];c[a>>2]=g}else{c[a+4>>2]=c[g+8>>2]}f=c[g+4>>2]|0;if((f|0)>0){d=0;e=c[g>>2]|0;do{d=d+1|0;h=e;e=e+24|0;c[h>>2]=(d|0)<(f|0)?e:0}while((d|0)!=(f|0))}e=c[g>>2]|0;c[a+8>>2]=c[e>>2];if((e|0)==0){h=0;i=b;return h|0}}else{c[a+8>>2]=c[e>>2]}c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h=e;i=b;return h|0}function nx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0;f=i;i=i+144|0;do{if((d-b|0)==2){g=c[(c[a+92>>2]|0)+(b<<2)>>2]|0;h=c[g+88>>2]|0;k=c[g+200>>2]|0;l=c[g+92>>2]|0;n=c[g+204>>2]|0;if((h|0)==(k|0)){if((l|0)==(n|0)){if((c[g+96>>2]|0)==(c[g+208>>2]|0)){break}else{m=l}}else{m=n}if((l|0)==(m|0)){J=(c[g+96>>2]|0)>(c[g+208>>2]|0);h=J?g+112|0:g;c[h>>2]=h;c[h+4>>2]=h;c[e>>2]=h;c[e+4>>2]=h;c[e+8>>2]=h;c[e+12>>2]=h;g=J?g:g+112|0}else{n=0;j=9}}else{m=n;n=(l|0)==(n|0);j=9}do{if((j|0)==9){j=l-m|0;c[g>>2]=g+112;c[g+4>>2]=g+112;c[g+112>>2]=g;c[g+116>>2]=g;if((h-k|0)>=0?!((h|0)==(k|0)&(j|0)<0):0){c[e>>2]=g+112;c[e+4>>2]=g}else{c[e>>2]=g;c[e+4>>2]=g+112}if((j|0)<0|n&(h-k|0)<0){c[e+8>>2]=g;c[e+12>>2]=g+112;h=g;g=g+112|0;break}else{c[e+8>>2]=g+112;c[e+12>>2]=g;h=g;g=g+112|0;break}}}while(0);j=mx(a+48|0)|0;k=mx(a+48|0)|0;c[j+8>>2]=k;c[k+8>>2]=j;c[j+20>>2]=c[a+100>>2];c[k+20>>2]=c[a+100>>2];c[j+12>>2]=g;c[k+12>>2]=h;c[j+16>>2]=0;c[k+16>>2]=0;k=c[a+116>>2]|0;c[a+116>>2]=k+1;if((k|0)>=(c[a+120>>2]|0)){c[a+120>>2]=k+1}c[j>>2]=j;c[j+4>>2]=j;c[h+8>>2]=j;J=c[j+8>>2]|0;c[J>>2]=J;c[J+4>>2]=J;c[g+8>>2]=J;i=f;return}else if((d-b|0)==0){c[e+0>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;i=f;return}else if((d-b|0)==1){g=c[(c[a+92>>2]|0)+(b<<2)>>2]|0}else{k=((d-b|0)/2|0)+b|0;t=c[a+92>>2]|0;x=c[t+(k+ -1<<2)>>2]|0;z=c[x+88>>2]|0;u=c[x+92>>2]|0;x=c[x+96>>2]|0;a:do{if((k|0)<(d|0)){w=k;while(1){v=c[t+(w<<2)>>2]|0;if((c[v+88>>2]|0)!=(z|0)){break a}if((c[v+92>>2]|0)!=(u|0)){break a}y=w+1|0;if((c[v+96>>2]|0)!=(x|0)){break a}if((y|0)<(d|0)){w=y}else{w=y;break}}}else{w=k}}while(0);nx(a,b,k,e);c[f+96>>2]=0;c[f+100>>2]=0;c[f+104>>2]=0;c[f+108>>2]=0;nx(a,w,d,f+96|0);b=f+100|0;v=c[b>>2]|0;if((v|0)==0){i=f;return}if((c[e+4>>2]|0)==0){c[e+0>>2]=c[f+96>>2];c[e+4>>2]=c[f+100>>2];c[e+8>>2]=c[f+104>>2];c[e+12>>2]=c[f+108>>2];i=f;return}c[a+100>>2]=(c[a+100>>2]|0)+ -1;k=c[e+12>>2]|0;d=c[f+104>>2]|0;u=c[k+88>>2]|0;b:do{if((u|0)==(c[d+88>>2]|0)?(c[k+92>>2]|0)==(c[d+92>>2]|0):0){t=c[d+4>>2]|0;if((t|0)==(d|0)){e=c[d+8>>2]|0;if((e|0)!=0){d=c[e+12>>2]|0;u=c[d+88>>2]|0}e=d;x=u+1|0;w=c[d+96>>2]|0;break}j=c[d>>2]|0;c[t>>2]=j;c[j+4>>2]=t;c:do{if((d|0)==(c[f+96>>2]|0)){u=c[j+88>>2]|0;k=c[t+88>>2]|0;do{if((u|0)>=(k|0)){if((u|0)==(k|0)?(c[j+92>>2]|0)<(c[t+92>>2]|0):0){break}c[f+96>>2]=t;break c}}while(0);c[f+96>>2]=j}}while(0);v=c[b>>2]|0;if((d|0)==(v|0)){d=c[j+88>>2]|0;k=c[t+88>>2]|0;do{if((d|0)<=(k|0)){if((d|0)==(k|0)?(c[j+92>>2]|0)>(c[t+92>>2]|0):0){break}c[b>>2]=t;v=t;j=45;break b}}while(0);c[b>>2]=j;v=j;j=45}else{j=45}}else{j=45}}while(0);if((j|0)==45){d=c[f+96>>2]|0;u=0;t=1;w=e+4|0;k=0;j=0;d:while(1){z=c[w>>2]|0;while(1){w=c[z+88>>2]|0;y=aa((c[v+88>>2]|0)-w|0,t)|0;e:do{if((y|0)<=0){if((y|0)>=0){A=c[z+92>>2]|0;x=(u|0)!=0;f:do{if(x){y=z;B=A;while(1){A=c[y>>2]|0;if((A|0)==(z|0)){z=y;break f}if((c[A+88>>2]|0)!=(w|0)){z=y;break f}J=B;B=c[A+92>>2]|0;if((B|0)>(J|0)){z=y;break}else{y=A}}}else{y=z;while(1){B=c[y+4>>2]|0;if((B|0)==(z|0)){z=y;break f}if((c[B+88>>2]|0)!=(w|0)){z=y;break f}J=A;A=c[B+92>>2]|0;if((A|0)>(J|0)){z=y;break}else{y=B}}}}while(0);y=c[v+92>>2]|0;if(x){x=v;while(1){A=c[x+4>>2]|0;if((A|0)==(v|0)){break e}if((c[A+88>>2]|0)!=(w|0)){break e}J=y;y=c[A+92>>2]|0;if((y|0)<(J|0)){break e}else{x=A}}}else{x=v;while(1){A=c[x>>2]|0;if((A|0)==(v|0)){break e}if((c[A+88>>2]|0)!=(w|0)){break e}J=y;y=c[A+92>>2]|0;if((y|0)<(J|0)){break e}else{x=A}}}}w=c[v+92>>2]|0;C=c[z+92>>2]|0;if((u|0)==0){while(1){B=c[v>>2]|0;x=(B|0)==(v|0);A=v+88|0;while(1){G=z+88|0;D=w-C|0;if(!x?(r=c[B+88>>2]|0,p=aa(r-(c[A>>2]|0)|0,t)|0,q=c[B+92>>2]|0,l=q-w|0,(l|0)>-1):0){if((p|0)==0){break}if((p|0)<0?(aa(l,y)|0)<=(aa(p,D)|0):0){break}}F=c[z>>2]|0;if((F|0)==(z|0)){x=v;break e}J=c[F+88>>2]|0;H=aa(J-(c[G>>2]|0)|0,t)|0;G=c[F+92>>2]|0;C=G-C|0;I=y;y=aa((c[A>>2]|0)-J|0,t)|0;if(!((y|0)<0&(C|0)>0)){x=v;break e}if((H|0)==0){C=G;z=F;continue}if((H|0)>=0){x=v;break e}if((aa(C,I)|0)>=(aa(H,D)|0)){x=v;break e}else{C=G;z=F}}w=q;y=aa(r-(c[G>>2]|0)|0,t)|0;v=B}}else{while(1){x=c[v+4>>2]|0;B=(x|0)==(v|0);A=v+88|0;F=C;while(1){G=z+88|0;D=w-F|0;if(!B?(o=c[x+88>>2]|0,s=aa(o-(c[A>>2]|0)|0,t)|0,n=c[x+92>>2]|0,m=n-w|0,(m|0)>-1):0){if((s|0)==0){break}if((s|0)<0?(aa(m,y)|0)<=(aa(s,D)|0):0){break}}C=c[z+4>>2]|0;if((C|0)==(z|0)){x=v;break e}J=c[C+88>>2]|0;G=aa(J-(c[G>>2]|0)|0,t)|0;H=c[C+92>>2]|0;I=H-F|0;F=y;y=aa((c[A>>2]|0)-J|0,t)|0;if(!((y|0)<0&(I|0)>0)){x=v;break e}if((G|0)==0){F=H;z=C;continue}if((G|0)>=0){x=v;break e}if((aa(I,F)|0)>=(aa(G,D)|0)){x=v;break e}else{F=H;z=C}}C=F;w=n;y=aa(o-(c[G>>2]|0)|0,t)|0;v=x}}}else{x=(u|0)!=0;w=c[v+92>>2]|0;C=z;while(1){z=v+88|0;F=C+88|0;B=c[C+92>>2]|0;G=w-B|0;A=c[(x?C:C+4|0)>>2]|0;g:do{if((A|0)==(C|0)){B=y;A=C}else{D=y;while(1){H=c[A+88>>2]|0;J=aa(H-(c[F>>2]|0)|0,t)|0;I=B;B=c[A+92>>2]|0;I=B-I|0;if((I|0)>=1){B=D;A=C;break g}if((J|0)!=0){if((J|0)>=0){B=D;A=C;break g}if((aa(I,D)|0)>(aa(J,G)|0)){B=D;A=C;break g}}D=aa((c[z>>2]|0)-H|0,t)|0;F=A+88|0;G=w-B|0;C=c[(x?A:A+4|0)>>2]|0;if((C|0)==(A|0)){B=D;break}else{J=A;A=C;C=J}}}}while(0);D=c[(x?v:v+4|0)>>2]|0;if((D|0)==(v|0)){z=A;x=v;break e}y=c[D+88>>2]|0;C=aa(y-(c[z>>2]|0)|0,t)|0;z=w;w=c[D+92>>2]|0;z=w-z|0;y=aa(y-(c[F>>2]|0)|0,t)|0;if(!((y|0)>0&(z|0)<0)){z=A;x=v;break e}if((C|0)==0){C=A;v=D;continue}if((C|0)>=0){z=A;x=v;break e}if((aa(z,B)|0)>=(aa(C,G)|0)){z=A;x=v;break}else{C=A;v=D}}}}while(0);if((u|0)==0){u=1;t=-1;w=e;k=z;v=d;j=x;continue d}u=u+1|0;if((u|0)==2){break d}else{v=x}}}c[z+4>>2]=x;c[x>>2]=z;c[k>>2]=j;c[j+4>>2]=k;l=c[f+96>>2]|0;if((c[l+88>>2]|0)<(c[(c[e>>2]|0)+88>>2]|0)){c[e>>2]=l}l=c[b>>2]|0;if((c[l+88>>2]|0)>=(c[(c[e+4>>2]|0)+88>>2]|0)){c[e+4>>2]=l}c[e+12>>2]=c[f+108>>2];s=c[j+88>>2]|0;x=c[k+88>>2]|0;o=c[j+92>>2]|0;l=c[k+92>>2]|0;e=c[j+96>>2]|0;w=c[k+96>>2]|0;m=((o-l|0)<0)<<31>>31;q=0-(s-x)|0;b=ay(0,0,q|0,((q|0)<0)<<31>>31|0)|0;b=py(e-w|0,((e-w|0)<0)<<31>>31|0,b|0,E|0)|0;t=E;n=py(e-w|0,((e-w|0)<0)<<31>>31|0,o-l|0,m|0)|0;p=E;y=py(s-x|0,((s-x|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0;d=E;r=py(o-l|0,m|0,o-l|0,m|0)|0;r=ay(y|0,d|0,r|0,E|0)|0;d=E;y=c[k+8>>2]|0;c[f+140>>2]=0;if((y|0)==0){A=0}else{v=ay(0,0,o-l|0,m|0)|0;u=E;A=0;z=y;do{B=c[z+12>>2]|0;D=c[B+88>>2]|0;F=c[B+92>>2]|0;B=c[B+96>>2]|0;H=py(F-l|0,((F-l|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0;J=E;I=py(D-x|0,((D-x|0)<0)<<31>>31|0,v|0,u|0)|0;do{if((H|0)==(I|0)&(J|0)==(E|0)?(I=py(D-x|0,((D-x|0)<0)<<31>>31|0,b|0,t|0)|0,H=E,J=py(F-l|0,((F-l|0)<0)<<31>>31|0,n|0,p|0)|0,H=dy(J|0,E|0,I|0,H|0)|0,I=E,J=py(B-w|0,((B-w|0)<0)<<31>>31|0,r|0,d|0)|0,J=dy(H|0,I|0,J|0,E|0)|0,I=E,(I|0)>0|(I|0)==0&J>>>0>0):0){if((A|0)!=0){C=(c[A+4>>2]|0)==(z|0);if((c[A>>2]|0)==(z|0)){if(!C){break}H=c[A+12>>2]|0;G=c[(c[z+8>>2]|0)+12>>2]|0;J=c[G+88>>2]|0;I=c[G+92>>2]|0;G=c[G+96>>2]|0;C=(c[H+96>>2]|0)-G|0;I=(aa(B-G|0,(c[H+92>>2]|0)-I|0)|0)-(aa(C,F-I|0)|0)|0;B=(aa(C,D-J|0)|0)-(aa(B-G|0,(c[H+88>>2]|0)-J|0)|0)|0;I=py(I|0,((I|0)<0)<<31>>31|0,o-l|0,m|0)|0;J=E;B=py(B|0,((B|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0;B=dy(I|0,J|0,B|0,E|0)|0;J=E;B=(J|0)>0|(J|0)==0&B>>>0>0?2:1}else{B=C&1}if((B|0)!=1){break}}c[f+140>>2]=z;A=z}}while(0);z=c[z>>2]|0}while((z|0)!=(y|0))}w=c[j+8>>2]|0;c[f+136>>2]=0;if((w|0)==0){C=0}else{u=ay(0,0,o-l|0,m|0)|0;x=E;C=0;v=w;do{B=c[v+12>>2]|0;z=c[B+88>>2]|0;y=c[B+92>>2]|0;B=c[B+96>>2]|0;H=py(y-o|0,((y-o|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0;J=E;I=py(z-s|0,((z-s|0)<0)<<31>>31|0,u|0,x|0)|0;do{if((H|0)==(I|0)&(J|0)==(E|0)?(I=py(z-s|0,((z-s|0)<0)<<31>>31|0,b|0,t|0)|0,H=E,J=py(y-o|0,((y-o|0)<0)<<31>>31|0,n|0,p|0)|0,H=dy(J|0,E|0,I|0,H|0)|0,I=E,J=py(B-e|0,((B-e|0)<0)<<31>>31|0,r|0,d|0)|0,J=dy(H|0,I|0,J|0,E|0)|0,I=E,(I|0)>0|(I|0)==0&J>>>0>0):0){if((C|0)!=0){if((c[C>>2]|0)!=(v|0)){break}if((c[C+4>>2]|0)==(v|0)?(I=c[C+12>>2]|0,G=c[(c[v+8>>2]|0)+12>>2]|0,J=c[G+88>>2]|0,H=c[G+92>>2]|0,G=c[G+96>>2]|0,F=(c[I+96>>2]|0)-G|0,H=(aa(B-G|0,(c[I+92>>2]|0)-H|0)|0)-(aa(F,y-H|0)|0)|0,J=(aa(F,z-J|0)|0)-(aa(B-G|0,(c[I+88>>2]|0)-J|0)|0)|0,H=py(H|0,((H|0)<0)<<31>>31|0,o-l|0,m|0)|0,I=E,J=py(J|0,((J|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0,J=dy(H|0,I|0,J|0,E|0)|0,I=E,!((I|0)>0|(I|0)==0&J>>>0>0)):0){break}}c[f+136>>2]=v;C=v}}while(0);v=c[v>>2]|0}while((v|0)!=(w|0))}if(!((A|0)==0&(C|0)==0)){px(a,k,j,f+140|0,f+136|0);e=c[f+140>>2]|0;if((e|0)!=0){k=c[e+12>>2]|0}e=c[f+136>>2]|0;if((e|0)!=0){j=c[e+12>>2]|0}}e=j;x=c[j+88>>2]|0;w=(c[j+96>>2]|0)+1|0}u=c[e+92>>2]|0;j=u;l=k;p=e;m=0;b=0;z=1;s=0;d=0;r=0;t=0;n=0;q=0;while(1){y=l+88|0;G=(c[p+88>>2]|0)-(c[y>>2]|0)|0;J=l+92|0;o=j-(c[J>>2]|0)|0;F=l+96|0;C=(c[p+96>>2]|0)-(c[F>>2]|0)|0;c[f+120>>2]=G;c[f+124>>2]=o;c[f+128>>2]=C;c[f+132>>2]=-1;y=x-(c[y>>2]|0)|0;J=u-(c[J>>2]|0)|0;F=w-(c[F>>2]|0)|0;D=(aa(C,J)|0)-(aa(o,F)|0)|0;F=(aa(G,F)|0)-(aa(C,y)|0)|0;J=(aa(o,y)|0)-(aa(G,J)|0)|0;c[f+72>>2]=D;c[f+76>>2]=((D|0)<0)<<31>>31;c[f+80>>2]=F;c[f+84>>2]=((F|0)<0)<<31>>31;c[f+88>>2]=J;c[f+92>>2]=((J|0)<0)<<31>>31;y=py(J|0,((J|0)<0)<<31>>31|0,o|0,((o|0)<0)<<31>>31|0)|0;I=E;H=py(C|0,((C|0)<0)<<31>>31|0,F|0,((F|0)<0)<<31>>31|0)|0;H=ay(y|0,I|0,H|0,E|0)|0;I=E;C=py(D|0,((D|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0;y=E;J=py(G|0,((G|0)<0)<<31>>31|0,J|0,((J|0)<0)<<31>>31|0)|0;J=ay(C|0,y|0,J|0,E|0)|0;y=E;F=py(G|0,((G|0)<0)<<31>>31|0,F|0,((F|0)<0)<<31>>31|0)|0;G=E;o=py(D|0,((D|0)<0)<<31>>31|0,o|0,((o|0)<0)<<31>>31|0)|0;o=ay(F|0,G|0,o|0,E|0)|0;c[f+48>>2]=H;c[f+52>>2]=I;c[f+56>>2]=J;c[f+60>>2]=y;c[f+64>>2]=o;c[f+68>>2]=E;c[f+24>>2]=0;c[f+28>>2]=0;c[f+32>>2]=0;c[f+36>>2]=0;c[f+40>>2]=0;o=ox(a,0,l,f+120|0,f+72|0,f+48|0,f+24|0)|0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;y=ox(a,1,p,f+120|0,f+72|0,f+48|0,f)|0;if((y|0)==0&((o|0)!=0^1)){j=138;break}if((y|0)==0|(o|0)!=0^1){v=(o|0)!=0?-1:1}else{v=lx(c[f+24>>2]|0,c[f+28>>2]|0,c[f+32>>2]|0,c[f+36>>2]|0,c[f+40>>2]|0,f)|0}do{if(!z){if((v|0)>-1){if((c[f+16>>2]|0)>=0){j=150;break}if((c[f+8>>2]|0)==0&(c[f+12>>2]|0)==0){j=157;break}else{j=150;break}}if((c[f+40>>2]|0)<0?(c[f+32>>2]|0)==0&(c[f+36>>2]|0)==0:0){c[f+116>>2]=o;c[f+112>>2]=y;v=o;j=179}else{j=150}}else{j=150}}while(0);if((j|0)==150){j=mx(a+48|0)|0;z=mx(a+48|0)|0;c[j+8>>2]=z;c[z+8>>2]=j;c[j+20>>2]=c[a+100>>2];c[z+20>>2]=c[a+100>>2];c[j+12>>2]=p;c[z+12>>2]=l;c[j+16>>2]=0;c[z+16>>2]=0;z=c[a+116>>2]|0;c[a+116>>2]=z+1;if((z|0)>=(c[a+120>>2]|0)){c[a+120>>2]=z+1}if((r|0)==0){s=j}else{c[r+4>>2]=j}c[j>>2]=r;z=c[j+8>>2]|0;if((t|0)==0){d=z}else{c[t>>2]=z}c[z+4>>2]=t;r=j;t=z;j=157}do{if((j|0)==157){j=0;c[f+116>>2]=o;c[f+112>>2]=y;if((v|0)!=0){if((v|0)>-1){z=y}else{v=o;j=179;break}}else{px(a,l,p,f+116|0,f+112|0);z=c[f+112>>2]|0}if((z|0)==0){z=p}else{u=(q|0)!=0;if(u?(g=c[q>>2]|0,(g|0)!=(y|0)):0){w=g;do{x=w;w=c[w>>2]|0;A=c[x+8>>2]|0;if((w|0)==(x|0)){c[(c[A+12>>2]|0)+8>>2]=0}else{c[w+4>>2]=c[x+4>>2];c[c[x+4>>2]>>2]=w;c[(c[A+12>>2]|0)+8>>2]=w}B=c[A>>2]|0;if((B|0)==(A|0)){c[(c[x+12>>2]|0)+8>>2]=0}else{c[B+4>>2]=c[A+4>>2];c[c[A+4>>2]>>2]=B;c[(c[x+12>>2]|0)+8>>2]=B}c[x+0>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;c[x>>2]=c[a+56>>2];c[a+56>>2]=x;c[A+0>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[A+16>>2]=0;c[A>>2]=c[a+56>>2];c[a+56>>2]=A;c[a+116>>2]=(c[a+116>>2]|0)+ -1}while((w|0)!=(y|0))}if((t|0)==0){q=z;b=u?b:y}else{if(u){c[q>>2]=d;c[d+4>>2]=q;q=y+4|0}else{b=c[y+4>>2]|0;c[b>>2]=d;c[d+4>>2]=b;b=d;q=y+4|0}c[t>>2]=y;c[q>>2]=t;q=c[f+112>>2]|0;d=0}z=c[q+12>>2]|0;t=0;x=c[p+88>>2]|0;u=c[p+92>>2]|0;w=c[p+96>>2]|0;q=c[q+8>>2]|0}if((v|0)<1){v=c[f+116>>2]|0;p=z;j=179}else{y=l;p=z;o=b}}}while(0);if((j|0)==179){j=0;if((v|0)==0){y=l;o=b}else{u=(n|0)!=0;if(u?(h=c[n+4>>2]|0,(h|0)!=(o|0)):0){x=h;do{z=x+4|0;w=x;x=c[z>>2]|0;A=c[w>>2]|0;y=c[w+8>>2]|0;if((A|0)==(w|0)){c[(c[y+12>>2]|0)+8>>2]=0}else{c[A+4>>2]=x;c[c[z>>2]>>2]=A;c[(c[y+12>>2]|0)+8>>2]=A}z=c[y>>2]|0;if((z|0)==(y|0)){c[(c[w+12>>2]|0)+8>>2]=0}else{c[z+4>>2]=c[y+4>>2];c[c[y+4>>2]>>2]=z;c[(c[w+12>>2]|0)+8>>2]=z}c[w+0>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[w+16>>2]=0;c[w>>2]=c[a+56>>2];c[a+56>>2]=w;c[y+0>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;c[y+16>>2]=0;c[y>>2]=c[a+56>>2];c[a+56>>2]=y;c[a+116>>2]=(c[a+116>>2]|0)+ -1}while((x|0)!=(o|0))}if((r|0)==0){m=u?m:o}else{if(u){c[s>>2]=n;c[n+4>>2]=s;n=o}else{m=c[o>>2]|0;c[s>>2]=m;c[m+4>>2]=s;m=s;n=o}c[n>>2]=r;c[r+4>>2]=o;v=c[f+116>>2]|0;s=0}y=c[v+12>>2]|0;o=b;r=0;x=c[l+88>>2]|0;u=c[l+92>>2]|0;w=c[l+96>>2]|0;n=c[v+8>>2]|0}}if((y|0)==(k|0)&(p|0)==(e|0)){break}j=c[p+92>>2]|0;l=y;b=o;z=0}if((j|0)==138){h=mx(a+48|0)|0;g=mx(a+48|0)|0;c[h+8>>2]=g;c[g+8>>2]=h;c[h+20>>2]=c[a+100>>2];c[g+20>>2]=c[a+100>>2];c[h+12>>2]=p;c[g+12>>2]=l;c[h+16>>2]=0;c[g+16>>2]=0;g=c[a+116>>2]|0;c[a+116>>2]=g+1;if((g|0)>=(c[a+120>>2]|0)){c[a+120>>2]=g+1}c[h>>2]=h;c[h+4>>2]=h;c[l+8>>2]=h;J=c[h+8>>2]|0;c[J>>2]=J;c[J+4>>2]=J;c[p+8>>2]=J;i=f;return}if((n|0)!=0){g=n+4|0;j=c[g>>2]|0;if((j|0)!=(m|0)){do{p=j+4|0;h=j;j=c[p>>2]|0;l=c[h>>2]|0;k=c[h+8>>2]|0;if((l|0)==(h|0)){c[(c[k+12>>2]|0)+8>>2]=0}else{c[l+4>>2]=j;c[c[p>>2]>>2]=l;c[(c[k+12>>2]|0)+8>>2]=l}l=c[k>>2]|0;if((l|0)==(k|0)){c[(c[h+12>>2]|0)+8>>2]=0}else{c[l+4>>2]=c[k+4>>2];c[c[k+4>>2]>>2]=l;c[(c[h+12>>2]|0)+8>>2]=l}c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h>>2]=c[a+56>>2];c[a+56>>2]=h;c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k>>2]=c[a+56>>2];c[a+56>>2]=k;c[a+116>>2]=(c[a+116>>2]|0)+ -1}while((j|0)!=(m|0))}if((r|0)!=0){c[s>>2]=n;c[g>>2]=s;c[m>>2]=r;c[r+4>>2]=m}}else{c[s>>2]=r;c[r+4>>2]=s;c[k+8>>2]=r}if((q|0)==0){c[t>>2]=d;c[d+4>>2]=t;c[e+8>>2]=t;i=f;return}k=c[q>>2]|0;if((k|0)!=(o|0)){do{j=k;k=c[k>>2]|0;h=c[j+8>>2]|0;if((k|0)==(j|0)){c[(c[h+12>>2]|0)+8>>2]=0}else{c[k+4>>2]=c[j+4>>2];c[c[j+4>>2]>>2]=k;c[(c[h+12>>2]|0)+8>>2]=k}g=c[h>>2]|0;if((g|0)==(h|0)){c[(c[j+12>>2]|0)+8>>2]=0}else{c[g+4>>2]=c[h+4>>2];c[c[h+4>>2]>>2]=g;c[(c[j+12>>2]|0)+8>>2]=g}c[j+0>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j>>2]=c[a+56>>2];c[a+56>>2]=j;c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h>>2]=c[a+56>>2];c[a+56>>2]=h;c[a+116>>2]=(c[a+116>>2]|0)+ -1}while((k|0)!=(o|0))}if((t|0)==0){i=f;return}c[q>>2]=d;c[d+4>>2]=q;c[t>>2]=o;c[o+4>>2]=t;i=f;return}}while(0);c[g+8>>2]=0;c[g>>2]=g;c[g+4>>2]=g;c[e>>2]=g;c[e+4>>2]=g;c[e+8>>2]=g;c[e+12>>2]=g;i=f;return}function ox(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;j=i;k=c[d+8>>2]|0;if((k|0)==0){z=0;i=j;return z|0}l=0;do{do{if((c[k+20>>2]|0)>(c[a+100>>2]|0)){p=c[k+12>>2]|0;r=c[p+88>>2]|0;o=r-(c[d+88>>2]|0)|0;q=c[p+92>>2]|0;m=q-(c[d+92>>2]|0)|0;p=c[p+96>>2]|0;n=p-(c[d+96>>2]|0)|0;v=py(o|0,((o|0)<0)<<31>>31|0,c[g>>2]|0,c[g+4>>2]|0)|0;u=E;t=py(m|0,((m|0)<0)<<31>>31|0,c[g+8>>2]|0,c[g+12>>2]|0)|0;u=dy(t|0,E|0,v|0,u|0)|0;v=E;t=py(n|0,((n|0)<0)<<31>>31|0,c[g+16>>2]|0,c[g+20>>2]|0)|0;t=dy(u|0,v|0,t|0,E|0)|0;v=E;u=py(c[f>>2]|0,c[f+4>>2]|0,o|0,((o|0)<0)<<31>>31|0)|0;z=E;y=py(c[f+8>>2]|0,c[f+12>>2]|0,m|0,((m|0)<0)<<31>>31|0)|0;z=dy(y|0,E|0,u|0,z|0)|0;u=E;y=py(c[f+16>>2]|0,c[f+20>>2]|0,n|0,((n|0)<0)<<31>>31|0)|0;y=dy(z|0,u|0,y|0,E|0)|0;u=E;if((v|0)>0|(v|0)==0&t>>>0>0){s=v;z=1;w=1}else{t=ay(0,0,t|0,v|0)|0;s=(v|0)<0?E:0;z=(v|0)<0?-1:0;t=(v|0)<0?t:0;w=(v|0)<0?-1:0}if(!((u|0)>0|(u|0)==0&y>>>0>0)){if((u|0)<0){w=0-z|0;x=ay(0,0,y|0,u|0)|0;v=E;z=w;u=(y|0)==0&(u|0)==0}else{x=0;v=0;u=1}if((z|0)==0&u){break}else{u=v}}else{x=y}if((l|0)==0){c[h>>2]=t;c[h+4>>2]=s;c[h+8>>2]=x;c[h+12>>2]=u;c[h+16>>2]=w;l=k;break}v=lx(t,s,x,u,w,h)|0;if((v|0)<0){c[h>>2]=t;c[h+4>>2]=s;c[h+8>>2]=x;c[h+12>>2]=u;c[h+16>>2]=w;l=k;break}if((v|0)==0){s=(c[l+4>>2]|0)==(k|0);if((c[l>>2]|0)==(k|0)){if(s){z=c[e+8>>2]|0;w=aa(z,m)|0;u=c[e+4>>2]|0;w=w-(aa(u,n)|0)|0;y=c[e>>2]|0;z=(aa(y,n)|0)-(aa(o,z)|0)|0;y=(aa(o,u)|0)-(aa(y,m)|0)|0;o=c[l+12>>2]|0;m=c[(c[k+8>>2]|0)+12>>2]|0;u=c[m+88>>2]|0;t=(c[o+88>>2]|0)-u|0;s=c[m+92>>2]|0;v=(c[o+92>>2]|0)-s|0;m=c[m+96>>2]|0;o=(c[o+96>>2]|0)-m|0;x=(aa(p-m|0,v)|0)-(aa(q-s|0,o)|0)|0;m=(aa(r-u|0,o)|0)-(aa(p-m|0,t)|0)|0;v=(aa(q-s|0,t)|0)-(aa(r-u|0,v)|0)|0;w=py(x|0,((x|0)<0)<<31>>31|0,w|0,((w|0)<0)<<31>>31|0)|0;x=E;z=py(m|0,((m|0)<0)<<31>>31|0,z|0,((z|0)<0)<<31>>31|0)|0;m=E;y=py(v|0,((v|0)<0)<<31>>31|0,y|0,((y|0)<0)<<31>>31|0)|0;y=dy(w|0,x|0,y|0,E|0)|0;m=dy(y|0,E|0,z|0,m|0)|0;z=E;m=(z|0)>0|(z|0)==0&m>>>0>0?2:1}else{m=2}}else{m=s&1}l=(m|0)==2^b?l:k}}}while(0);k=c[k>>2]|0}while((k|0)!=(c[d+8>>2]|0));i=j;return l|0}function px(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;g=i;i=i+96|0;s=c[e>>2]|0;h=c[f>>2]|0;if((s|0)!=0){j=c[s+12>>2]|0}else{j=b}v=c[j+88>>2]|0;w=c[j+92>>2]|0;x=c[j+96>>2]|0;if((h|0)==0){j=d}else{j=c[h+12>>2]|0}y=c[j+88>>2]|0;z=c[j+92>>2]|0;B=c[j+96>>2]|0;o=c[b+88>>2]|0;j=(c[d+88>>2]|0)-o|0;C=c[b+92>>2]|0;k=(c[d+92>>2]|0)-C|0;G=c[b+96>>2]|0;l=(c[d+96>>2]|0)-G|0;n=c[((s|0)!=0?s:h)+12>>2]|0;p=(c[n+88>>2]|0)-o|0;u=(c[n+92>>2]|0)-C|0;n=(c[n+96>>2]|0)-G|0;d=(aa(u,l)|0)-(aa(n,k)|0)|0;n=(aa(n,j)|0)-(aa(p,l)|0)|0;u=(aa(p,k)|0)-(aa(u,j)|0)|0;o=py(d|0,((d|0)<0)<<31>>31|0,o|0,((o|0)<0)<<31>>31|0)|0;p=E;C=py(n|0,((n|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0;D=E;G=py(u|0,((u|0)<0)<<31>>31|0,G|0,((G|0)<0)<<31>>31|0)|0;G=dy(o|0,p|0,G|0,E|0)|0;D=dy(G|0,E|0,C|0,D|0)|0;C=E;G=py(u|0,((u|0)<0)<<31>>31|0,k|0,((k|0)<0)<<31>>31|0)|0;p=E;o=py(n|0,((n|0)<0)<<31>>31|0,l|0,((l|0)<0)<<31>>31|0)|0;o=ay(G|0,p|0,o|0,E|0)|0;p=E;G=py(d|0,((d|0)<0)<<31>>31|0,l|0,((l|0)<0)<<31>>31|0)|0;r=E;m=py(u|0,((u|0)<0)<<31>>31|0,j|0,((j|0)<0)<<31>>31|0)|0;m=ay(G|0,r|0,m|0,E|0)|0;r=E;G=py(n|0,((n|0)<0)<<31>>31|0,j|0,((j|0)<0)<<31>>31|0)|0;q=E;b=py(d|0,((d|0)<0)<<31>>31|0,k|0,((k|0)<0)<<31>>31|0)|0;b=ay(G|0,q|0,b|0,E|0)|0;q=E;G=py(o|0,p|0,v|0,((v|0)<0)<<31>>31|0)|0;Z=E;F=py(m|0,r|0,w|0,((w|0)<0)<<31>>31|0)|0;Z=dy(F|0,E|0,G|0,Z|0)|0;G=E;F=py(b|0,q|0,x|0,((x|0)<0)<<31>>31|0)|0;F=dy(Z|0,G|0,F|0,E|0)|0;G=E;if((s|0)!=0?(c[s+12>>2]|0)!=0:0){A=s;while(1){A=c[(c[A+8>>2]|0)+4>>2]|0;I=A+12|0;H=c[I>>2]|0;K=c[H+88>>2]|0;Y=py(K|0,((K|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;X=E;J=c[H+92>>2]|0;Z=py(J|0,((J|0)<0)<<31>>31|0,n|0,((n|0)<0)<<31>>31|0)|0;X=dy(Z|0,E|0,Y|0,X|0)|0;Y=E;H=c[H+96>>2]|0;Z=py(H|0,((H|0)<0)<<31>>31|0,u|0,((u|0)<0)<<31>>31|0)|0;Z=dy(X|0,Y|0,Z|0,E|0)|0;Y=E;if((Y|0)<(C|0)|(Y|0)==(C|0)&Z>>>0>>0){break}if((c[A+20>>2]|0)==(c[a+100>>2]|0)){break}Z=py(K|0,((K|0)<0)<<31>>31|0,o|0,p|0)|0;Y=E;J=py(J|0,((J|0)<0)<<31>>31|0,m|0,r|0)|0;Y=dy(J|0,E|0,Z|0,Y|0)|0;Z=E;J=py(H|0,((H|0)<0)<<31>>31|0,b|0,q|0)|0;J=dy(Y|0,Z|0,J|0,E|0)|0;H=E;if(!((H|0)>(G|0)|(H|0)==(G|0)&J>>>0>F>>>0)){break}c[e>>2]=A;Z=c[I>>2]|0;v=c[Z+88>>2]|0;w=c[Z+92>>2]|0;x=c[Z+96>>2]|0;if((Z|0)==0){F=J;G=H;break}else{G=H;F=J}}A=c[f>>2]|0}else{A=h}H=py(o|0,p|0,y|0,((y|0)<0)<<31>>31|0)|0;Z=E;I=py(m|0,r|0,z|0,((z|0)<0)<<31>>31|0)|0;Z=dy(I|0,E|0,H|0,Z|0)|0;H=E;I=py(b|0,q|0,B|0,((B|0)<0)<<31>>31|0)|0;I=dy(Z|0,H|0,I|0,E|0)|0;H=E;a:do{if((A|0)!=0){if((c[A+12>>2]|0)==0){C=I}else{while(1){J=c[c[A+8>>2]>>2]|0;M=c[J+12>>2]|0;L=c[M+88>>2]|0;Y=py(L|0,((L|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;X=E;K=c[M+92>>2]|0;Z=py(K|0,((K|0)<0)<<31>>31|0,n|0,((n|0)<0)<<31>>31|0)|0;X=dy(Z|0,E|0,Y|0,X|0)|0;Y=E;M=c[M+96>>2]|0;Z=py(M|0,((M|0)<0)<<31>>31|0,u|0,((u|0)<0)<<31>>31|0)|0;Z=dy(X|0,Y|0,Z|0,E|0)|0;Y=E;if((Y|0)<(C|0)|(Y|0)==(C|0)&Z>>>0>>0){C=I;break a}if((c[J+20>>2]|0)==(c[a+100>>2]|0)){C=I;break a}L=py(L|0,((L|0)<0)<<31>>31|0,o|0,p|0)|0;Z=E;K=py(K|0,((K|0)<0)<<31>>31|0,m|0,r|0)|0;Z=dy(K|0,E|0,L|0,Z|0)|0;K=E;L=py(M|0,((M|0)<0)<<31>>31|0,b|0,q|0)|0;L=dy(Z|0,K|0,L|0,E|0)|0;K=E;if(!((K|0)>(H|0)|(K|0)==(H|0)&L>>>0>I>>>0)){C=I;break a}c[f>>2]=J;Z=c[J+12>>2]|0;y=c[Z+88>>2]|0;z=c[Z+92>>2]|0;B=c[Z+96>>2]|0;if((Z|0)==0){C=L;H=K;A=J;break}else{A=J;H=K;I=L}}}}else{C=I;A=0}}while(0);D=ay(C|0,H|0,F|0,G|0)|0;C=E;if((C|0)>0|(C|0)==0&D>>>0>0){F=ay(0,0,u|0,((u|0)<0)<<31>>31|0)|0;G=E;L=D;K=C;H=v;I=w;J=x;P=y;O=z;N=B;b:while(1){c:while(1){M=(aa(O-I|0,k)|0)+(aa(N-J|0,l)|0)+(aa(P-H|0,j)|0)|0;T=c[e>>2]|0;do{if(((T|0)!=0?(c[T+12>>2]|0)!=0:0)?(t=c[(c[T>>2]|0)+8>>2]|0,(c[t+20>>2]|0)>(c[a+100>>2]|0)):0){R=c[t+12>>2]|0;S=c[R+88>>2]|0;X=S-H|0;Q=c[R+92>>2]|0;V=Q-I|0;R=c[R+96>>2]|0;Y=R-J|0;Z=py(X|0,((X|0)<0)<<31>>31|0,o|0,p|0)|0;U=E;W=py(V|0,((V|0)<0)<<31>>31|0,m|0,r|0)|0;U=dy(W|0,E|0,Z|0,U|0)|0;Z=E;W=py(Y|0,((Y|0)<0)<<31>>31|0,b|0,q|0)|0;W=dy(U|0,Z|0,W|0,E|0)|0;Z=E;Y=(aa(V,k)|0)+(aa(X,j)|0)+(aa(Y,l)|0)|0;if((W|0)==0&(Z|0)==0){if((Y|0)<0){break c}else{break}}if((Z|0)<0){if((Y|0)>0){X=1;U=Y;V=((Y|0)<0)<<31>>31;Y=1}else{U=ay(0,0,Y|0,((Y|0)<0)<<31>>31|0)|0;X=(Y|0)<0?-1:0;U=(Y|0)<0?U:0;V=(Y|0)<0?E:0;Y=(Y|0)<0?-1:0}if(!((Z|0)>0|(Z|0)==0&W>>>0>0)){W=ay(0,0,W|0,Z|0)|0;Z=E;Y=0-X|0}do{if((M|0)<=0){if((M|0)<0){c[g+88>>2]=-1;X=ay(0,0,M|0,((M|0)<0)<<31>>31|0)|0;c[g+72>>2]=X;c[g+76>>2]=E;X=-1;break}else{c[g+88>>2]=0;c[g+72>>2]=0;c[g+76>>2]=0;X=0;break}}else{c[g+88>>2]=1;c[g+72>>2]=M;c[g+76>>2]=((M|0)<0)<<31>>31;X=1}}while(0);do{if(!((K|0)>0|(K|0)==0&L>>>0>0)){if((K|0)<0){c[g+88>>2]=0-X;X=ay(0,0,L|0,K|0)|0;c[g+80>>2]=X;c[g+84>>2]=E;break}else{c[g+80>>2]=0;c[g+84>>2]=0;break}}else{c[g+80>>2]=L;c[g+84>>2]=K}}while(0);if((lx(U,V,W,Z,Y,g+72|0)|0)>-1){break c}}}}while(0);Q=c[f>>2]|0;if((Q|0)==0){s=117;break b}if((c[Q+12>>2]|0)==0){s=117;break b}Q=c[c[Q+8>>2]>>2]|0;if((c[Q+20>>2]|0)<=(c[a+100>>2]|0)){s=117;break b}T=c[Q+12>>2]|0;R=c[T+88>>2]|0;S=R-P|0;P=c[T+92>>2]|0;U=P-O|0;T=c[T+96>>2]|0;V=T-N|0;Z=py(S|0,((S|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;X=E;Y=py(U|0,((U|0)<0)<<31>>31|0,n|0,((n|0)<0)<<31>>31|0)|0;X=dy(Y|0,E|0,Z|0,X|0)|0;Z=E;Y=py(V|0,((V|0)<0)<<31>>31|0,F|0,G|0)|0;if(!((X|0)==(Y|0)&(Z|0)==(E|0))){s=117;break b}N=py(S|0,((S|0)<0)<<31>>31|0,o|0,p|0)|0;Y=E;O=py(U|0,((U|0)<0)<<31>>31|0,m|0,r|0)|0;Y=dy(O|0,E|0,N|0,Y|0)|0;N=E;O=py(V|0,((V|0)<0)<<31>>31|0,b|0,q|0)|0;O=dy(Y|0,N|0,O|0,E|0)|0;N=E;V=(aa(U,k)|0)+(aa(S,j)|0)+(aa(V,l)|0)|0;S=R-H|0;Y=P-I|0;R=T-J|0;S=py(S|0,((S|0)<0)<<31>>31|0,o|0,p|0)|0;Z=E;Y=py(Y|0,((Y|0)<0)<<31>>31|0,m|0,r|0)|0;Z=dy(Y|0,E|0,S|0,Z|0)|0;S=E;R=py(R|0,((R|0)<0)<<31>>31|0,b|0,q|0)|0;R=dy(Z|0,S|0,R|0,E|0)|0;S=E;if(!((S|0)>0|(S|0)==0&R>>>0>0)){s=117;break b}if((O|0)==0&(N|0)==0){if((V|0)>=0){s=117;break b}}else{if((N|0)>=0){s=117;break b}if((V|0)>0){U=1;P=V;T=((V|0)<0)<<31>>31;V=1}else{P=ay(0,0,V|0,((V|0)<0)<<31>>31|0)|0;U=(V|0)<0?-1:0;P=(V|0)<0?P:0;T=(V|0)<0?E:0;V=(V|0)<0?-1:0}if(!((N|0)>0|(N|0)==0&O>>>0>0)){O=ay(0,0,O|0,N|0)|0;N=E;V=0-U|0}do{if((M|0)<=0){if((M|0)<0){c[g+64>>2]=-1;M=ay(0,0,M|0,((M|0)<0)<<31>>31|0)|0;c[g+48>>2]=M;c[g+52>>2]=E;M=-1;break}else{c[g+64>>2]=0;c[g+48>>2]=0;c[g+52>>2]=0;M=0;break}}else{c[g+64>>2]=1;c[g+48>>2]=M;c[g+52>>2]=((M|0)<0)<<31>>31;M=1}}while(0);do{if(!((K|0)>0|(K|0)==0&L>>>0>0)){if((K|0)<0){c[g+64>>2]=0-M;Z=ay(0,0,L|0,K|0)|0;c[g+56>>2]=Z;c[g+60>>2]=E;break}else{c[g+56>>2]=0;c[g+60>>2]=0;break}}else{c[g+56>>2]=L;c[g+60>>2]=K}}while(0);if((lx(P,T,O,N,V,g+48|0)|0)<=0){s=117;break b}}c[f>>2]=Q;N=c[Q+12>>2]|0;K=S;L=R;P=c[N+88>>2]|0;O=c[N+92>>2]|0;N=c[N+96>>2]|0}K=P-S|0;I=O-Q|0;L=N-R|0;K=py(K|0,((K|0)<0)<<31>>31|0,o|0,p|0)|0;H=E;I=py(I|0,((I|0)<0)<<31>>31|0,m|0,r|0)|0;H=dy(I|0,E|0,K|0,H|0)|0;K=E;L=py(L|0,((L|0)<0)<<31>>31|0,b|0,q|0)|0;L=dy(H|0,K|0,L|0,E|0)|0;c[e>>2]=(T|0)==(s|0)?0:t;K=E;H=S;I=Q;J=R}if((s|0)==117){i=g;return}}if((C|0)>=0){i=g;return}s=ay(0,0,u|0,((u|0)<0)<<31>>31|0)|0;t=E;while(1){F=(aa(z-w|0,k)|0)+(aa(B-x|0,l)|0)+(aa(y-v|0,j)|0)|0;d:do{if((A|0)==0){u=F;A=((F|0)<0)<<31>>31}else{u=F;G=((F|0)<0)<<31>>31;while(1){if((c[A+12>>2]|0)==0){A=G;break d}K=c[(c[A+4>>2]|0)+8>>2]|0;if((c[K+20>>2]|0)<=(c[a+100>>2]|0)){A=G;break d}H=c[K+12>>2]|0;J=c[H+88>>2]|0;Z=J-y|0;I=c[H+92>>2]|0;Y=I-z|0;H=c[H+96>>2]|0;Q=H-B|0;P=py(Z|0,((Z|0)<0)<<31>>31|0,o|0,p|0)|0;X=E;O=py(Y|0,((Y|0)<0)<<31>>31|0,m|0,r|0)|0;X=dy(O|0,E|0,P|0,X|0)|0;P=E;O=py(Q|0,((Q|0)<0)<<31>>31|0,b|0,q|0)|0;O=dy(X|0,P|0,O|0,E|0)|0;P=E;Q=(aa(Y,k)|0)+(aa(Z,j)|0)+(aa(Q,l)|0)|0;if((O|0)==0&(P|0)==0){if((Q|0)<=0){A=G;break d}}else{if((P|0)>=0){A=G;break d}if((Q|0)>0){N=1;L=Q;M=((Q|0)<0)<<31>>31;Q=1}else{L=ay(0,0,Q|0,((Q|0)<0)<<31>>31|0)|0;N=(Q|0)<0?-1:0;L=(Q|0)<0?L:0;M=(Q|0)<0?E:0;Q=(Q|0)<0?-1:0}if(!((P|0)>0|(P|0)==0&O>>>0>0)){O=ay(0,0,O|0,P|0)|0;P=E;Q=0-N|0}do{if((F|0)<=0){if((F|0)<0){c[g+40>>2]=-1;N=ay(0,0,u|0,G|0)|0;c[g+24>>2]=N;c[g+28>>2]=E;N=-1;break}else{c[g+40>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;N=0;break}}else{c[g+40>>2]=1;c[g+24>>2]=u;c[g+28>>2]=G;N=1}}while(0);do{if(!((C|0)>0|(C|0)==0&D>>>0>0)){if((C|0)<0){c[g+40>>2]=0-N;Z=ay(0,0,D|0,C|0)|0;c[g+32>>2]=Z;c[g+36>>2]=E;break}else{c[g+32>>2]=0;c[g+36>>2]=0;break}}else{c[g+32>>2]=D;c[g+36>>2]=C}}while(0);if((lx(L,M,O,P,Q,g+24|0)|0)>=1){A=G;break d}}y=J-v|0;Y=I-w|0;Z=H-x|0;C=py(y|0,((y|0)<0)<<31>>31|0,o|0,p|0)|0;X=E;D=py(Y|0,((Y|0)<0)<<31>>31|0,m|0,r|0)|0;X=dy(D|0,E|0,C|0,X|0)|0;C=E;D=py(Z|0,((Z|0)<0)<<31>>31|0,b|0,q|0)|0;D=dy(X|0,C|0,D|0,E|0)|0;C=E;A=(A|0)==(h|0)?0:K;c[f>>2]=A;y=(aa(Y,k)|0)+(aa(Z,l)|0)+(aa(y,j)|0)|0;if((A|0)==0){u=y;A=((y|0)<0)<<31>>31;F=y;y=J;z=I;B=H;break}else{u=y;G=((y|0)<0)<<31>>31;F=y;y=J;z=I;B=H}}}}while(0);G=c[e>>2]|0;if((G|0)==0){s=117;break}if((c[G+12>>2]|0)==0){s=117;break}G=c[(c[G+8>>2]|0)+4>>2]|0;if((c[G+20>>2]|0)<=(c[a+100>>2]|0)){s=117;break}L=c[G+12>>2]|0;H=c[L+88>>2]|0;J=H-v|0;I=c[L+92>>2]|0;K=I-w|0;w=c[L+96>>2]|0;L=w-x|0;Z=py(J|0,((J|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;X=E;Y=py(K|0,((K|0)<0)<<31>>31|0,n|0,((n|0)<0)<<31>>31|0)|0;X=dy(Y|0,E|0,Z|0,X|0)|0;Z=E;Y=py(L|0,((L|0)<0)<<31>>31|0,s|0,t|0)|0;if(!((X|0)==(Y|0)&(Z|0)==(E|0))){s=117;break}v=py(J|0,((J|0)<0)<<31>>31|0,o|0,p|0)|0;Z=E;x=py(K|0,((K|0)<0)<<31>>31|0,m|0,r|0)|0;Z=dy(x|0,E|0,v|0,Z|0)|0;v=E;x=py(L|0,((L|0)<0)<<31>>31|0,b|0,q|0)|0;x=dy(Z|0,v|0,x|0,E|0)|0;v=E;K=(aa(K,k)|0)+(aa(J,j)|0)+(aa(L,l)|0)|0;Z=y-H|0;Y=z-I|0;H=B-w|0;w=py(Z|0,((Z|0)<0)<<31>>31|0,o|0,p|0)|0;Z=E;Y=py(Y|0,((Y|0)<0)<<31>>31|0,m|0,r|0)|0;Z=dy(Y|0,E|0,w|0,Z|0)|0;w=E;H=py(H|0,((H|0)<0)<<31>>31|0,b|0,q|0)|0;H=dy(Z|0,w|0,H|0,E|0)|0;w=E;if((w|0)>=0){s=117;break}if((x|0)==0&(v|0)==0){if((K|0)<=0){s=117;break}}else{if((v|0)>=0){s=117;break}if((K|0)>0){L=1;I=K;J=((K|0)<0)<<31>>31;K=1}else{I=ay(0,0,K|0,((K|0)<0)<<31>>31|0)|0;L=(K|0)<0?-1:0;I=(K|0)<0?I:0;J=(K|0)<0?E:0;K=(K|0)<0?-1:0}if(!((v|0)>0|(v|0)==0&x>>>0>0)){x=ay(0,0,x|0,v|0)|0;v=E;K=0-L|0}do{if((F|0)<=0){if((F|0)<0){c[g+16>>2]=-1;u=ay(0,0,u|0,A|0)|0;c[g>>2]=u;c[g+4>>2]=E;u=-1;break}else{c[g+16>>2]=0;c[g>>2]=0;c[g+4>>2]=0;u=0;break}}else{c[g+16>>2]=1;c[g>>2]=u;c[g+4>>2]=A;u=1}}while(0);do{if(!((C|0)>0|(C|0)==0&D>>>0>0)){if((C|0)<0){c[g+16>>2]=0-u;Z=ay(0,0,D|0,C|0)|0;c[g+8>>2]=Z;c[g+12>>2]=E;break}else{c[g+8>>2]=0;c[g+12>>2]=0;break}}else{c[g+8>>2]=D;c[g+12>>2]=C}}while(0);if((lx(I,J,x,v,K,g)|0)>=0){s=117;break}}c[e>>2]=G;x=c[G+12>>2]|0;A=c[f>>2]|0;D=H;C=w;v=c[x+88>>2]|0;w=c[x+92>>2]|0;x=c[x+96>>2]|0}if((s|0)==117){i=g;return}}function qx(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0,h=0,j=0;b=i;i=i+16|0;e=c[a+8>>2]|0;d=c[a+12>>2]|0;if((d|0)>-1|(d|0)==-1&e>>>0>4294967295){f=(+(e>>>0)+4294967296.0*+(d>>>0))*18446744073709552000.0+(+((c[a>>2]|0)>>>0)+4294967296.0*+((c[a+4>>2]|0)>>>0));i=b;return+f}else{j=c[a>>2]|0;h=c[a+4>>2]|0;g=ay(0,0,j|0,h|0)|0;a=E;e=dy((j|0)==0&(h|0)==0&1|0,0,~e|0,~d|0)|0;c[b>>2]=g;c[b+4>>2]=a;c[b+8>>2]=e;c[b+12>>2]=E;f=-+qx(b);i=b;return+f}return 0.0}function rx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0;f=i;i=i+256|0;if((e|0)<1){e=c[b+12>>2]|0;if((e|0)!=0){if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;e=c[b+32>>2]|0;if((e|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;e=c[b+52>>2]|0;if((e|0)!=0){if((a[b+56>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;i=f;return}c[f+88>>2]=0;c[f+92>>2]=0;k=f+96|0;c[k>>2]=0;c[f+100>>2]=256;c[f+104>>2]=0;c[f+108>>2]=0;c[f+112>>2]=0;c[f+116>>2]=256;c[f+120>>2]=0;c[f+124>>2]=0;c[f+128>>2]=0;c[f+132>>2]=256;a[f+152>>0]=1;j=f+148|0;c[j>>2]=0;c[f+140>>2]=0;c[f+144>>2]=0;m=0;u=-1.0000000150474662e+30;t=-1.0000000150474662e+30;y=-1.0000000150474662e+30;v=1.0000000150474662e+30;w=1.0000000150474662e+30;x=1.0000000150474662e+30;n=d;while(1){q=+g[n>>2];r=+g[n+4>>2];s=+g[n+8>>2];v=q>2]=r>2]=q>2]=n;m=c[p>>2]|0;if((n|0)==(m|0)){n=((n+1|0)>>>0)%3|0;c[f+160>>2]=n;m=c[p>>2]|0}E=3-m-n|0;c[f+164>>2]=E;if(((E+1|0)%3|0|0)==(c[p>>2]|0)){q=q*9788566967472434.0e-20;r=r*9788566967472434.0e-20;s=s*9788566967472434.0e-20}else{q=q*9788566967472434.0e-20*-1.0;r=r*9788566967472434.0e-20*-1.0;s=s*9788566967472434.0e-20*-1.0}g[f+56>>2]=q;g[f+60>>2]=r;g[f+64>>2]=s;g[f+68>>2]=0.0;if(q!=0.0){q=1.0/q}if(r!=0.0){r=1.0/r}if(s!=0.0){s=1.0/s}g[f+72>>2]=(v+u)*.5;g[f+76>>2]=(w+t)*.5;g[f+80>>2]=(x+y)*.5;g[f+84>>2]=0.0;m=f+248|0;a[m>>0]=1;n=f+244|0;c[n>>2]=0;o=f+236|0;c[o>>2]=0;c[f+240>>2]=0;if((e|0)>0){c[4546]=(c[4546]|0)+1;z=Zx((e<<4|3)+16|0)|0;if((z|0)==0){z=0}else{c[(z+19&-16)+ -4>>2]=z;z=z+19&-16}A=c[o>>2]|0;if((A|0)>0){C=0;do{B=z+(C<<4)|0;if((B|0)!=0){E=(c[n>>2]|0)+(C<<4)|0;c[B+0>>2]=c[E+0>>2];c[B+4>>2]=c[E+4>>2];c[B+8>>2]=c[E+8>>2];c[B+12>>2]=c[E+12>>2]}C=C+1|0}while((C|0)!=(A|0))}A=c[n>>2]|0;if((A|0)!=0){if((a[m>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[A+ -4>>2]|0)}c[n>>2]=0}a[m>>0]=1;c[n>>2]=z;c[f+240>>2]=e;A=0;while(1){z=z+(A<<4)|0;if((z|0)!=0){c[z+0>>2]=c[f+216>>2];c[z+4>>2]=c[f+220>>2];c[z+8>>2]=c[f+224>>2];c[z+12>>2]=c[f+228>>2]}A=A+1|0;if((A|0)==(e|0)){break}z=c[n>>2]|0}c[o>>2]=e;z=c[n>>2]|0;u=+g[f+72>>2];v=+g[f+76>>2];t=+g[f+80>>2];A=0;while(1){w=+g[d>>2];g[f+200>>2]=w;x=+g[d+4>>2];g[f+204>>2]=x;y=s*(+g[d+8>>2]-t);g[f+200>>2]=q*(w-u);g[f+204>>2]=r*(x-v);g[f+208>>2]=y;g[f+212>>2]=0.0;c[z+(A<<4)>>2]=~~+g[f+200+(c[f+164>>2]<<2)>>2];c[z+(A<<4)+4>>2]=~~+g[f+200+(c[p>>2]<<2)>>2];c[z+(A<<4)+8>>2]=~~+g[f+200+(c[f+160>>2]<<2)>>2];c[z+(A<<4)+12>>2]=A;A=A+1|0;if((A|0)==(e|0)){break}d=d+16|0}d=c[o>>2]|0;if((d|0)>1){sx(f+232|0,0,d+ -1|0)}}else{c[o>>2]=e}c[f+92>>2]=c[f+88>>2];c[k>>2]=0;c[f+100>>2]=e;d=c[f+140>>2]|0;if((d|0)<(e|0)){if((c[f+144>>2]|0)<(e|0)){if((e|0)==0){z=d;p=0}else{c[4546]=(c[4546]|0)+1;p=Zx((e<<2|3)+16|0)|0;if((p|0)==0){p=0}else{c[(p+19&-16)+ -4>>2]=p;p=p+19&-16}z=c[f+140>>2]|0}if((z|0)>0){B=0;do{A=p+(B<<2)|0;if((A|0)!=0){c[A>>2]=c[(c[j>>2]|0)+(B<<2)>>2]}B=B+1|0}while((B|0)!=(z|0))}z=c[j>>2]|0;if((z|0)!=0){if((a[f+152>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[z+ -4>>2]|0)}c[j>>2]=0}a[f+152>>0]=1;c[j>>2]=p;c[f+144>>2]=e}do{p=(c[j>>2]|0)+(d<<2)|0;if((p|0)!=0){c[p>>2]=0}d=d+1|0}while((d|0)!=(e|0))}c[f+140>>2]=e;if((e|0)>0){d=0;do{p=c[k>>2]|0;if((p|0)==0){B=c[f+92>>2]|0;if((B|0)==0){c[4546]=(c[4546]|0)+1;p=Zx(31)|0;if((p|0)!=0?(h=p+19&-16,c[h+ -4>>2]=p,(p+19&-16|0)!=0):0){z=c[f+100>>2]|0;c[h+4>>2]=z;c[h+8>>2]=0;c[4546]=(c[4546]|0)+1;z=Zx((z*112|3)+16|0)|0;if((z|0)==0){z=0}else{c[(z+19&-16)+ -4>>2]=z;z=z+19&-16}c[(p+19&-16)>>2]=z;B=p+19&-16}else{B=0}c[B+8>>2]=c[f+88>>2];c[f+88>>2]=B}else{c[f+92>>2]=c[B+8>>2]}A=c[B+4>>2]|0;if((A|0)>0){p=0;z=c[B>>2]|0;do{p=p+1|0;E=z;z=z+112|0;c[E>>2]=(p|0)<(A|0)?z:0}while((p|0)!=(A|0))}p=c[B>>2]|0;c[k>>2]=c[p>>2];if((p|0)==0){p=0}else{l=85}}else{c[k>>2]=c[p>>2];l=85}if((l|0)==85){l=0;E=p+104|0;c[p+0>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[E>>2]=-1}c[p+8>>2]=0;E=p+88|0;D=(c[n>>2]|0)+(d<<4)|0;c[E+0>>2]=c[D+0>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2];c[p+104>>2]=-1;c[(c[j>>2]|0)+(d<<2)>>2]=p;d=d+1|0}while((d|0)<(e|0))}h=c[n>>2]|0;if((h|0)!=0){if((a[m>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[n>>2]=0}a[m>>0]=1;c[n>>2]=0;c[o>>2]=0;c[f+240>>2]=0;c[f+108>>2]=c[f+104>>2];c[f+112>>2]=0;c[f+116>>2]=e*6;c[f+172>>2]=0;c[f+176>>2]=0;c[f+156>>2]=-3;c[f+184>>2]=0;c[f+188>>2]=0;c[f+192>>2]=0;c[f+196>>2]=0;nx(f+56|0,0,e,f+184|0);c[f+180>>2]=c[f+184>>2];e=c[n>>2]|0;if((e|0)!=0){if((a[m>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[n>>2]=0}e=c[b+4>>2]|0;if((e|0)<0){if((c[b+8>>2]|0)<0){h=c[b+12>>2]|0;if((h|0)!=0){if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=0;c[b+8>>2]=0}do{E=(c[b+12>>2]|0)+(e<<4)|0;c[E+0>>2]=c[f+40>>2];c[E+4>>2]=c[f+44>>2];c[E+8>>2]=c[f+48>>2];c[E+12>>2]=c[f+52>>2];e=e+1|0}while((e|0)!=0)}c[b+4>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;c[f+32>>2]=0;e=c[b+24>>2]|0;if((e|0)<0){if((c[b+28>>2]|0)<0){h=c[b+32>>2]|0;if((h|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+28>>2]=0}do{h=(c[b+32>>2]|0)+(e*12|0)|0;if((h|0)!=0){c[h+0>>2]=c[f+24>>2];c[h+4>>2]=c[f+28>>2];c[h+8>>2]=c[f+32>>2]}e=e+1|0}while((e|0)!=0)}c[b+24>>2]=0;h=c[b+44>>2]|0;if((h|0)<0){e=c[b+52>>2]|0;if((c[b+48>>2]|0)<0){if((e|0)!=0){if((a[b+56>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=0;c[b+48>>2]=0;e=0}do{j=e+(h<<2)|0;if((j|0)!=0){c[j>>2]=0}h=h+1|0}while((h|0)!=0)}c[b+44>>2]=0;e=c[f+180>>2]|0;if((c[e+104>>2]|0)<0){c[e+104>>2]=0;c[4546]=(c[4546]|0)+1;h=Zx(23)|0;if((h|0)!=0){c[(h+19&-16)+ -4>>2]=h;o=h+19&-16;if((h+19&-16|0)!=0){c[o>>2]=e}}else{o=0}l=1;p=1;e=0;while(1){h=c[o+(e<<2)>>2]|0;if((c[h+100>>2]|0)>-1){g[f+232+(c[f+164>>2]<<2)>>2]=+(c[h+88>>2]|0);g[f+232+(c[f+168>>2]<<2)>>2]=+(c[h+92>>2]|0);q=+(c[h+96>>2]|0)}else{q=+qx(h+24|0);q=q/+qx(h+72|0);g[f+232+(c[f+164>>2]<<2)>>2]=q;q=+qx(h+40|0);q=q/+qx(h+72|0);g[f+232+(c[f+168>>2]<<2)>>2]=q;q=+qx(h+56|0);q=q/+qx(h+72|0)}g[f+232+(c[f+160>>2]<<2)>>2]=q;r=+g[f+232>>2]*+g[f+56>>2]+ +g[f+72>>2];q=+g[f+236>>2]*+g[f+60>>2]+ +g[f+76>>2];s=+g[f+240>>2]*+g[f+64>>2]+ +g[f+80>>2];k=c[b+4>>2]|0;do{if((k|0)==(c[b+8>>2]|0)){j=(k|0)==0?1:k<<1;if((k|0)>=(j|0)){break}if((j|0)==0){m=0}else{c[4546]=(c[4546]|0)+1;k=Zx((j<<4|3)+16|0)|0;if((k|0)==0){m=0}else{c[(k+19&-16)+ -4>>2]=k;m=k+19&-16}k=c[b+4>>2]|0}if((k|0)>0){n=0;do{E=m+(n<<4)|0;D=(c[b+12>>2]|0)+(n<<4)|0;c[E+0>>2]=c[D+0>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2];n=n+1|0}while((n|0)!=(k|0))}k=c[b+12>>2]|0;if((k|0)!=0){if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=m;c[b+8>>2]=j;k=c[b+4>>2]|0}}while(0);E=c[b+12>>2]|0;g[E+(k<<4)>>2]=r;g[E+(k<<4)+4>>2]=q;g[E+(k<<4)+8>>2]=s;g[E+(k<<4)+12>>2]=0.0;c[b+4>>2]=(c[b+4>>2]|0)+1;h=c[h+8>>2]|0;if((h|0)!=0){j=h;k=-1;m=-1;do{n=j+20|0;d=c[n>>2]|0;if((d|0)<0){d=c[b+24>>2]|0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;z=c[b+28>>2]|0;do{if((d|0)==(z|0)){z=(d|0)==0?1:d<<1;if((d|0)>=(z|0)){A=d;z=d;break}if((z|0)==0){A=d;B=0}else{c[4546]=(c[4546]|0)+1;A=Zx((z*12|3)+16|0)|0;if((A|0)==0){B=0}else{c[(A+19&-16)+ -4>>2]=A;B=A+19&-16}A=c[b+24>>2]|0}if((A|0)>0){D=0;do{C=B+(D*12|0)|0;if((C|0)!=0){E=(c[b+32>>2]|0)+(D*12|0)|0;c[C+0>>2]=c[E+0>>2];c[C+4>>2]=c[E+4>>2];c[C+8>>2]=c[E+8>>2]}D=D+1|0}while((D|0)!=(A|0))}A=c[b+32>>2]|0;if((A|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[A+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=B;c[b+28>>2]=z;A=c[b+24>>2]|0}else{A=d}}while(0);B=(c[b+32>>2]|0)+(A*12|0)|0;if((B|0)!=0){c[B+0>>2]=c[f+12>>2];c[B+4>>2]=c[f+16>>2];c[B+8>>2]=c[f+20>>2];A=c[b+24>>2]|0;z=c[b+28>>2]|0}B=A+1|0;c[b+24>>2]=B;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;do{if((B|0)==(z|0)){A=(z|0)==0?1:z<<1;if((z|0)>=(A|0)){B=z;break}if((A|0)==0){B=0}else{c[4546]=(c[4546]|0)+1;z=Zx((A*12|3)+16|0)|0;if((z|0)==0){B=0}else{c[(z+19&-16)+ -4>>2]=z;B=z+19&-16}z=c[b+24>>2]|0}if((z|0)>0){C=0;do{D=B+(C*12|0)|0;if((D|0)!=0){E=(c[b+32>>2]|0)+(C*12|0)|0;c[D+0>>2]=c[E+0>>2];c[D+4>>2]=c[E+4>>2];c[D+8>>2]=c[E+8>>2]}C=C+1|0}while((C|0)!=(z|0))}z=c[b+32>>2]|0;if((z|0)!=0){if((a[b+36>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[z+ -4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=B;c[b+28>>2]=A;B=c[b+24>>2]|0}}while(0);z=c[b+32>>2]|0;A=z+(B*12|0)|0;if((A|0)!=0){c[A+0>>2]=c[f+0>>2];c[A+4>>2]=c[f+4>>2];c[A+8>>2]=c[f+8>>2];B=c[b+24>>2]|0;z=c[b+32>>2]|0}c[b+24>>2]=B+1;c[n>>2]=d;c[(c[j+8>>2]|0)+20>>2]=d+1;c[z+(d*12|0)+4>>2]=1;c[z+((d+1|0)*12|0)+4>>2]=-1;A=c[j+12>>2]|0;B=c[A+104>>2]|0;if((B|0)<0){c[A+104>>2]=l;do{if((l|0)==(p|0)){C=(p|0)==0?1:p<<1;if((p|0)>=(C|0)){break}do{if((C|0)==0){B=0}else{c[4546]=(c[4546]|0)+1;B=Zx((C<<2|3)+16|0)|0;if((B|0)==0){B=0;break}c[(B+19&-16)+ -4>>2]=B;B=B+19&-16}}while(0);if((p|0)>0){E=0;do{D=B+(E<<2)|0;if((D|0)!=0){c[D>>2]=c[o+(E<<2)>>2]}E=E+1|0}while((E|0)!=(p|0))}if((o|0)==0){p=C;o=B;break}c[4548]=(c[4548]|0)+1;_x(c[o+ -4>>2]|0);p=C;o=B}}while(0);B=o+(l<<2)|0;if((B|0)!=0){c[B>>2]=A}A=l+1|0}else{A=l;l=B}c[z+(d*12|0)+8>>2]=l;c[z+((d+1|0)*12|0)+8>>2]=e;d=c[n>>2]|0;l=A}if((m|0)>-1){c[(c[b+32>>2]|0)+(d*12|0)>>2]=m-d;m=c[n>>2]|0}else{m=d;k=d}j=c[j>>2]|0}while((j|0)!=(h|0));c[(c[b+32>>2]|0)+(k*12|0)>>2]=m-k}h=e+1|0;if((h|0)<(l|0)){e=h}else{break}}if((e|0)>-1){j=0;do{k=c[(c[o+(j<<2)>>2]|0)+8>>2]|0;if((k|0)!=0){e=k;do{l=e+20|0;if((c[l>>2]|0)>-1){d=c[b+44>>2]|0;do{if((d|0)==(c[b+48>>2]|0)){m=(d|0)==0?1:d<<1;if((d|0)>=(m|0)){break}if((m|0)==0){n=0}else{c[4546]=(c[4546]|0)+1;n=Zx((m<<2|3)+16|0)|0;if((n|0)==0){n=0}else{c[(n+19&-16)+ -4>>2]=n;n=n+19&-16}d=c[b+44>>2]|0}if((d|0)>0){p=0;do{z=n+(p<<2)|0;if((z|0)!=0){c[z>>2]=c[(c[b+52>>2]|0)+(p<<2)>>2]}p=p+1|0}while((p|0)!=(d|0))}d=c[b+52>>2]|0;if((d|0)!=0){if((a[b+56>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[d+ -4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=n;c[b+48>>2]=m;d=c[b+44>>2]|0}}while(0);m=(c[b+52>>2]|0)+(d<<2)|0;if((m|0)!=0){c[m>>2]=c[l>>2];d=c[b+44>>2]|0}c[b+44>>2]=d+1;l=e;do{c[l+20>>2]=-1;l=c[(c[l+8>>2]|0)+4>>2]|0}while((l|0)!=(e|0))}e=c[e>>2]|0}while((e|0)!=(k|0))}j=j+1|0}while((j|0)<(h|0))}if((o|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[o+ -4>>2]|0)}}tx(f+56|0);i=f;return}function sx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;j=i;i=i+16|0;h=c[a+12>>2]|0;f=c[h+(((d+b|0)/2|0)<<4)>>2]|0;g=c[h+(((d+b|0)/2|0)<<4)+4>>2]|0;e=c[h+(((d+b|0)/2|0)<<4)+8>>2]|0;k=b;l=d;while(1){while(1){m=c[h+(k<<4)+4>>2]|0;if((m|0)>=(g|0)){if((m|0)!=(g|0)){break}m=c[h+(k<<4)>>2]|0;if((m|0)>=(f|0)){if((m|0)!=(f|0)){break}if((c[h+(k<<4)+8>>2]|0)>=(e|0)){break}}}k=k+1|0}while(1){m=c[h+(l<<4)+4>>2]|0;if((g|0)>=(m|0)){if((g|0)!=(m|0)){break}m=c[h+(l<<4)>>2]|0;if((f|0)>=(m|0)){if((f|0)!=(m|0)){break}if((e|0)>=(c[h+(l<<4)+8>>2]|0)){break}}}l=l+ -1|0}if((k|0)<=(l|0)){m=h+(k<<4)|0;c[j+0>>2]=c[m+0>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];h=h+(l<<4)|0;c[m+0>>2]=c[h+0>>2];c[m+4>>2]=c[h+4>>2];c[m+8>>2]=c[h+8>>2];c[m+12>>2]=c[h+12>>2];m=(c[a+12>>2]|0)+(l<<4)|0;c[m+0>>2]=c[j+0>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];c[m+12>>2]=c[j+12>>2];k=k+1|0;l=l+ -1|0}if((k|0)>(l|0)){break}h=c[a+12>>2]|0}if((l|0)>(b|0)){sx(a,b,l)}if((k|0)>=(d|0)){i=j;return}sx(a,k,d);i=j;return}function tx(b){b=b|0;var d=0,e=0,f=0;d=i;e=c[b+92>>2]|0;if((e|0)!=0){if((a[b+96>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+92>>2]=0}a[b+96>>0]=1;c[b+92>>2]=0;c[b+84>>2]=0;c[b+88>>2]=0;e=c[b+64>>2]|0;if((e|0)!=0){do{c[b+64>>2]=c[e+8>>2];f=c[e>>2]|0;if((f|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0);e=c[b+64>>2]|0}while((e|0)!=0)}f=c[b+48>>2]|0;if((f|0)!=0){do{c[b+48>>2]=c[f+8>>2];e=c[f>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0);f=c[b+48>>2]|0}while((f|0)!=0)}e=c[b+32>>2]|0;if((e|0)==0){i=d;return}do{c[b+32>>2]=c[e+8>>2];f=c[e>>2]|0;if((f|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0);e=c[b+32>>2]|0}while((e|0)!=0);i=d;return}function ux(a){a=a|0;var b=0,d=0;b=i;do{c[a+4>>2]=0;g[a+8>>2]=0.0;d=c[a+24>>2]|0;if((d|0)!=0){ux(d)}a=c[a+28>>2]|0}while((a|0)!=0);i=b;return}function vx(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=c[4564]|0;if((c[d>>2]|0)!=(a|0)){f=c[d+24>>2]|0;a:do{if((f|0)==0){e=5}else{while(1){if((c[f>>2]|0)==(a|0)){d=f;break a}f=c[f+28>>2]|0;if((f|0)==0){e=5;break}}}}while(0);if((e|0)==5){e=Zx(36)|0;b:do{if((e|0)==0){while(1){e=c[4700]|0;c[4700]=e+0;if((e|0)==0){break}tc[e&3]();e=Zx(36)|0;if((e|0)!=0){break b}}f=Cb(4)|0;c[f>>2]=18640;Ab(f|0,18688,235)}}while(0);c[e>>2]=a;a=e+4|0;f=e+20|0;c[a+0>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[f>>2]=d;c[e+24>>2]=0;f=e+28|0;c[f>>2]=0;c[e+32>>2]=0;ux(e);c[f>>2]=c[d+24>>2];c[d+24>>2]=e;d=e}c[4564]=d}e=d+4|0;c[e>>2]=(c[e>>2]|0)+1;e=d+16|0;f=c[e>>2]|0;c[e>>2]=f+1;if((f|0)!=0){i=b;return}Gb(b|0,0)|0;f=c[4550]|0;c[d+12>>2]=(c[b+4>>2]|0)-(c[f+4>>2]|0)+(((c[b>>2]|0)-(c[f>>2]|0)|0)*1e6|0);i=b;return}function wx(){var a=0,b=0;a=i;b=Zx(8)|0;a:do{if((b|0)==0){while(1){b=c[4700]|0;c[4700]=b+0;if((b|0)==0){break}tc[b&3]();b=Zx(8)|0;if((b|0)!=0){break a}}b=Cb(4)|0;c[b>>2]=18640;Ab(b|0,18688,235)}}while(0);c[4550]=b;Gb(b|0,0)|0;c[4552]=18248;c[18212>>2]=0;c[18216>>2]=0;c[18220>>2]=0;c[18224>>2]=0;c[18228>>2]=0;c[18232>>2]=0;c[18236>>2]=0;c[18240>>2]=0;ux(18208);i=a;return}function xx(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d>>2]=b;b=c[o>>2]|0;_a(b|0,a|0,d|0)|0;zb(10,b|0)|0;Bb()}function yx(){var a=0,b=0,d=0,e=0,f=0,g=0;a=i;i=i+80|0;if((tb(18456,3)|0)!=0){xx(18464,a)}b=pb(c[4612]|0)|0;if((b|0)==0){xx(18432,a)}d=c[b>>2]|0;if((d|0)==0){xx(18432,a)}b=c[d+48>>2]|0;e=c[d+52>>2]|0;if(!((b&-256|0)==1126902528&(e|0)==1129074247)){c[a>>2]=18280;xx(18392,a)}if((b|0)==1126902529&(e|0)==1129074247){b=c[d+44>>2]|0}else{b=d+80|0}e=c[d>>2]|0;d=c[e+4>>2]|0;if((e|0)==18824){f=b;g=c[f>>2]|0;g=g+8|0;g=c[g>>2]|0;f=Rb[g&127](f)|0;c[a>>2]=18280;g=a+4|0;c[g>>2]=d;g=a+8|0;c[g>>2]=f;xx(18296,a)}if((e|0)==0){c[a>>2]=18280;g=a+4|0;c[g>>2]=d;xx(18344,a)}e=Qx(e,18952)|0;if((e|0)==0){c[a>>2]=18280;g=a+4|0;c[g>>2]=d;xx(18344,a)}g=a+16|0;f=g+56|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(f|0));c[a+16>>2]=e;c[a+24>>2]=18824;c[a+28>>2]=-1;c[a+64>>2]=1;wc[c[(c[e>>2]|0)+28>>2]&63](e,a+16|0,b,1);if((c[a+40>>2]|0)!=1){c[a>>2]=18280;g=a+4|0;c[g>>2]=d;xx(18344,a)}f=c[a+32>>2]|0;g=c[f>>2]|0;g=g+8|0;g=c[g>>2]|0;f=Rb[g&127](f)|0;c[a>>2]=18280;g=a+4|0;c[g>>2]=d;g=a+8|0;c[g>>2]=f;xx(18296,a)}function zx(){var a=0;a=i;i=i+16|0;if((vb(18448,243)|0)==0){i=a;return}else{xx(18520,a)}}function Ax(a){a=a|0;var b=0;b=i;i=i+16|0;_x(a);if((yb(c[4612]|0,0)|0)==0){i=b;return}else{xx(18576,b)}}function Bx(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Cx(a){a=a|0;return}function Dx(a){a=a|0;return 18656}function Ex(a){a=a|0;var b=0;b=i;i=i+16|0;tc[a&3]();xx(18704,b)}function Fx(){var a=0,b=0;b=i;i=i+16|0;if((tb(18456,3)|0)!=0){xx(18464,b)}b=pb(c[4612]|0)|0;if(((b|0)!=0?(a=c[b>>2]|0,(a|0)!=0):0)?(c[a+52>>2]|0)==1129074247?(c[a+48>>2]&-256|0)==1126902528:0:0){Ex(c[a+12>>2]|0)}b=c[4568]|0;c[4568]=b+0;Ex(b)}function Gx(a){a=a|0;return}function Hx(a){a=a|0;return}function Ix(a){a=a|0;return}function Jx(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Kx(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Lx(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Mx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+64|0;if((a|0)==(b|0)){g=1;i=e;return g|0}if((b|0)==0){g=0;i=e;return g|0}b=Qx(b,18952)|0;if((b|0)==0){g=0;i=e;return g|0}g=e+0|0;f=g+56|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(f|0));c[e>>2]=b;c[e+8>>2]=a;c[e+12>>2]=-1;c[e+48>>2]=1;wc[c[(c[b>>2]|0)+28>>2]&63](b,e,c[d>>2]|0,1);if((c[e+24>>2]|0)!=1){g=0;i=e;return g|0}c[d>>2]=c[e+16>>2];g=1;i=e;return g|0}function Nx(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;if((c[d+8>>2]|0)!=(b|0)){i=g;return}b=c[d+16>>2]|0;if((b|0)==0){c[d+16>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;i=g;return}if((b|0)!=(e|0)){c[d+36>>2]=(c[d+36>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;i=g;return}if((c[d+24>>2]|0)!=2){i=g;return}c[d+24>>2]=f;i=g;return}function Ox(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;if((b|0)!=(c[d+8>>2]|0)){b=c[b+8>>2]|0;wc[c[(c[b>>2]|0)+28>>2]&63](b,d,e,f);i=g;return}b=c[d+16>>2]|0;if((b|0)==0){c[d+16>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;i=g;return}if((b|0)!=(e|0)){c[d+36>>2]=(c[d+36>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;i=g;return}if((c[d+24>>2]|0)!=2){i=g;return}c[d+24>>2]=f;i=g;return}function Px(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;if((b|0)==(c[d+8>>2]|0)){b=c[d+16>>2]|0;if((b|0)==0){c[d+16>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;i=g;return}if((b|0)!=(e|0)){c[d+36>>2]=(c[d+36>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;i=g;return}if((c[d+24>>2]|0)!=2){i=g;return}c[d+24>>2]=f;i=g;return}h=c[b+12>>2]|0;j=c[b+20>>2]|0;if((j&1|0)==0){k=j>>8}else{k=c[(c[e>>2]|0)+(j>>8)>>2]|0}l=c[b+16>>2]|0;wc[c[(c[l>>2]|0)+28>>2]&63](l,d,e+k|0,(j&2|0)!=0?f:2);if((h|0)<=1){i=g;return}j=b+24|0;while(1){k=c[j+4>>2]|0;if((k&1|0)==0){l=k>>8}else{l=c[(c[e>>2]|0)+(k>>8)>>2]|0}m=c[j>>2]|0;wc[c[(c[m>>2]|0)+28>>2]&63](m,d,e+l|0,(k&2|0)!=0?f:2);if((a[d+54>>0]|0)!=0){e=16;break}j=j+8|0;if(!(j>>>0<(b+(h<<3)+16|0)>>>0)){e=16;break}}if((e|0)==16){i=g;return}}function Qx(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+64|0;g=c[d>>2]|0;h=d+(c[g+ -8>>2]|0)|0;g=c[g+ -4>>2]|0;c[f>>2]=e;c[f+4>>2]=d;c[f+8>>2]=18896;j=f+12|0;d=j+40|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(d|0));b[f+52>>1]=0;a[f+54>>0]=0;if((g|0)==(e|0)){c[f+48>>2]=1;$b[c[(c[g>>2]|0)+20>>2]&7](g,f,h,h,1,0);j=(c[f+24>>2]|0)==1?h:0;i=f;return j|0}Lb[c[(c[g>>2]|0)+24>>2]&31](g,f,h,1,0);e=c[f+36>>2]|0;if((e|0)==1){if((c[f+24>>2]|0)!=1){if((c[f+40>>2]|0)!=0){j=0;i=f;return j|0}if((c[f+28>>2]|0)!=1){j=0;i=f;return j|0}if((c[f+32>>2]|0)!=1){j=0;i=f;return j|0}}j=c[f+16>>2]|0;i=f;return j|0}else if((e|0)==0){if((c[f+40>>2]|0)!=1){j=0;i=f;return j|0}if((c[f+28>>2]|0)!=1){j=0;i=f;return j|0}j=(c[f+32>>2]|0)==1?c[f+20>>2]|0:0;i=f;return j|0}else{j=0;i=f;return j|0}return 0}function Rx(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=i;if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)!=(e|0)){i=h;return}if((c[d+28>>2]|0)==1){i=h;return}c[d+28>>2]=f;i=h;return}if((b|0)==(c[d>>2]|0)){if((c[d+16>>2]|0)!=(e|0)?(c[d+20>>2]|0)!=(e|0):0){c[d+32>>2]=f;if((c[d+44>>2]|0)==4){i=h;return}l=c[b+12>>2]|0;a:do{if((l|0)>0){o=0;m=0;n=b+16|0;b:do{a[d+52>>0]=0;a[d+53>>0]=0;p=c[n+4>>2]|0;if((p&1|0)==0){q=p>>8}else{q=c[(c[e>>2]|0)+(p>>8)>>2]|0}r=c[n>>2]|0;$b[c[(c[r>>2]|0)+20>>2]&7](r,d,e,e+q|0,2-(p>>>1&1)|0,g);if((a[d+54>>0]|0)!=0){break}do{if((a[d+53>>0]|0)!=0){if((a[d+52>>0]|0)==0){if((c[b+8>>2]&1|0)==0){m=1;break b}else{m=1;break}}if((c[d+24>>2]|0)==1){l=27;break a}if((c[b+8>>2]&2|0)==0){l=27;break a}else{o=1;m=1}}}while(0);n=n+8|0}while(n>>>0<(b+(l<<3)+16|0)>>>0);if(o){k=m;l=26}else{j=m;l=23}}else{j=0;l=23}}while(0);if((l|0)==23){c[d+20>>2]=e;c[d+40>>2]=(c[d+40>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(j){l=27}else{l=28}}else{k=j;l=26}}if((l|0)==26){if(k){l=27}else{l=28}}if((l|0)==27){c[d+44>>2]=3;i=h;return}else if((l|0)==28){c[d+44>>2]=4;i=h;return}}if((f|0)!=1){i=h;return}c[d+32>>2]=1;i=h;return}j=c[b+12>>2]|0;l=c[b+20>>2]|0;if((l&1|0)==0){k=l>>8}else{k=c[(c[e>>2]|0)+(l>>8)>>2]|0}r=c[b+16>>2]|0;Lb[c[(c[r>>2]|0)+24>>2]&31](r,d,e+k|0,(l&2|0)!=0?f:2,g);if((j|0)<=1){i=h;return}k=c[b+8>>2]|0;if((k&2|0)==0?(c[d+36>>2]|0)!=1:0){if((k&1|0)==0){k=b+24|0;while(1){if((a[d+54>>0]|0)!=0){l=53;break}if((c[d+36>>2]|0)==1){l=53;break}l=c[k+4>>2]|0;if((l&1|0)==0){m=l>>8}else{m=c[(c[e>>2]|0)+(l>>8)>>2]|0}r=c[k>>2]|0;Lb[c[(c[r>>2]|0)+24>>2]&31](r,d,e+m|0,(l&2|0)!=0?f:2,g);k=k+8|0;if(!(k>>>0<(b+(j<<3)+16|0)>>>0)){l=53;break}}if((l|0)==53){i=h;return}}m=b+24|0;while(1){if((a[d+54>>0]|0)!=0){l=53;break}if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==1:0){l=53;break}l=c[m+4>>2]|0;if((l&1|0)==0){k=l>>8}else{k=c[(c[e>>2]|0)+(l>>8)>>2]|0}r=c[m>>2]|0;Lb[c[(c[r>>2]|0)+24>>2]&31](r,d,e+k|0,(l&2|0)!=0?f:2,g);m=m+8|0;if(!(m>>>0<(b+(j<<3)+16|0)>>>0)){l=53;break}}if((l|0)==53){i=h;return}}m=b+24|0;while(1){if((a[d+54>>0]|0)!=0){l=53;break}k=c[m+4>>2]|0;if((k&1|0)==0){l=k>>8}else{l=c[(c[e>>2]|0)+(k>>8)>>2]|0}r=c[m>>2]|0;Lb[c[(c[r>>2]|0)+24>>2]&31](r,d,e+l|0,(k&2|0)!=0?f:2,g);m=m+8|0;if(!(m>>>0<(b+(j<<3)+16|0)>>>0)){l=53;break}}if((l|0)==53){i=h;return}}function Sx(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)!=(e|0)){i=h;return}if((c[d+28>>2]|0)==1){i=h;return}c[d+28>>2]=f;i=h;return}if((b|0)!=(c[d>>2]|0)){b=c[b+8>>2]|0;Lb[c[(c[b>>2]|0)+24>>2]&31](b,d,e,f,g);i=h;return}if((c[d+16>>2]|0)!=(e|0)?(c[d+20>>2]|0)!=(e|0):0){c[d+32>>2]=f;if((c[d+44>>2]|0)==4){i=h;return}a[d+52>>0]=0;a[d+53>>0]=0;b=c[b+8>>2]|0;$b[c[(c[b>>2]|0)+20>>2]&7](b,d,e,e,1,g);if((a[d+53>>0]|0)!=0){if((a[d+52>>0]|0)==0){f=1;j=13}}else{f=0;j=13}do{if((j|0)==13){c[d+20>>2]=e;c[d+40>>2]=(c[d+40>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(f){break}}else{j=16}if((j|0)==16?f:0){break}c[d+44>>2]=4;i=h;return}}while(0);c[d+44>>2]=3;i=h;return}if((f|0)!=1){i=h;return}c[d+32>>2]=1;i=h;return}function Tx(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;g=i;if((c[d+8>>2]|0)==(b|0)){if((c[d+4>>2]|0)!=(e|0)){i=g;return}if((c[d+28>>2]|0)==1){i=g;return}c[d+28>>2]=f;i=g;return}if((c[d>>2]|0)!=(b|0)){i=g;return}if((c[d+16>>2]|0)!=(e|0)?(c[d+20>>2]|0)!=(e|0):0){c[d+32>>2]=f;c[d+20>>2]=e;c[d+40>>2]=(c[d+40>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1}c[d+44>>2]=4;i=g;return}if((f|0)!=1){i=g;return}c[d+32>>2]=1;i=g;return}function Ux(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=i;if((b|0)!=(c[d+8>>2]|0)){l=a[d+52>>0]|0;m=a[d+53>>0]|0;k=c[b+12>>2]|0;a[d+52>>0]=0;a[d+53>>0]=0;n=c[b+20>>2]|0;if((n&1|0)==0){o=n>>8}else{o=c[(c[f>>2]|0)+(n>>8)>>2]|0}p=c[b+16>>2]|0;$b[c[(c[p>>2]|0)+20>>2]&7](p,d,e,f+o|0,(n&2|0)!=0?g:2,h);a:do{if((k|0)>1){n=b+24|0;do{if((a[d+54>>0]|0)!=0){break a}if((a[d+52>>0]|0)==0){if((a[d+53>>0]|0)!=0?(c[b+8>>2]&1|0)==0:0){break a}}else{if((c[d+24>>2]|0)==1){break a}if((c[b+8>>2]&2|0)==0){break a}}a[d+52>>0]=0;a[d+53>>0]=0;o=c[n+4>>2]|0;if((o&1|0)==0){p=o>>8}else{p=c[(c[f>>2]|0)+(o>>8)>>2]|0}q=c[n>>2]|0;$b[c[(c[q>>2]|0)+20>>2]&7](q,d,e,f+p|0,(o&2|0)!=0?g:2,h);n=n+8|0}while(n>>>0<(b+(k<<3)+16|0)>>>0)}}while(0);a[d+52>>0]=l;a[d+53>>0]=m;i=j;return}a[d+53>>0]=1;if((c[d+4>>2]|0)!=(f|0)){i=j;return}a[d+52>>0]=1;k=c[d+16>>2]|0;if((k|0)==0){c[d+16>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0)){i=j;return}a[d+54>>0]=1;i=j;return}if((k|0)!=(e|0)){c[d+36>>2]=(c[d+36>>2]|0)+1;a[d+54>>0]=1;i=j;return}e=c[d+24>>2]|0;if((e|0)==2){c[d+24>>2]=g}else{g=e}if(!((g|0)==1?(c[d+48>>2]|0)==1:0)){i=j;return}a[d+54>>0]=1;i=j;return}function Vx(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0;j=i;if((b|0)!=(c[d+8>>2]|0)){b=c[b+8>>2]|0;$b[c[(c[b>>2]|0)+20>>2]&7](b,d,e,f,g,h);i=j;return}a[d+53>>0]=1;if((c[d+4>>2]|0)!=(f|0)){i=j;return}a[d+52>>0]=1;h=c[d+16>>2]|0;if((h|0)==0){c[d+16>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0)){i=j;return}a[d+54>>0]=1;i=j;return}if((h|0)!=(e|0)){c[d+36>>2]=(c[d+36>>2]|0)+1;a[d+54>>0]=1;i=j;return}e=c[d+24>>2]|0;if((e|0)==2){c[d+24>>2]=g}else{g=e}if(!((g|0)==1?(c[d+48>>2]|0)==1:0)){i=j;return}a[d+54>>0]=1;i=j;return}function Wx(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=i;if((c[d+8>>2]|0)!=(b|0)){i=h;return}a[d+53>>0]=1;if((c[d+4>>2]|0)!=(f|0)){i=h;return}a[d+52>>0]=1;f=c[d+16>>2]|0;if((f|0)==0){c[d+16>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0)){i=h;return}a[d+54>>0]=1;i=h;return}if((f|0)!=(e|0)){c[d+36>>2]=(c[d+36>>2]|0)+1;a[d+54>>0]=1;i=h;return}e=c[d+24>>2]|0;if((e|0)==2){c[d+24>>2]=g}else{g=e}if(!((g|0)==1?(c[d+48>>2]|0)==1:0)){i=h;return}a[d+54>>0]=1;i=h;return}function Xx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;i=i+16|0;c[e>>2]=c[d>>2];b=_b[c[(c[a>>2]|0)+16>>2]&31](a,b,e)|0;if(!b){i=e;return b&1|0}c[d>>2]=c[e>>2];i=e;return b&1|0}function Yx(a){a=a|0;var b=0;b=i;if((a|0)==0){a=0}else{a=(Qx(a,19064)|0)!=0}i=b;return a&1|0} function vk(b,d){b=b|0;d=+d;var e=0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0;e=i;i=i+16|0;vx(1696);s=c[b+232>>2]|0;if((s|0)>0){f=0;do{h=c[(c[b+240>>2]|0)+(f<<2)>>2]|0;if((c[h+204>>2]&3|0)==0){k=+g[h+444>>2];n=+R(+(1.0-k),+d);p=n*+g[h+312>>2];g[h+312>>2]=p;m=n*+g[h+316>>2];g[h+316>>2]=m;n=n*+g[h+320>>2];g[h+320>>2]=n;j=+g[h+448>>2];q=+R(+(1.0-j),+d);l=q*+g[h+328>>2];g[h+328>>2]=l;o=q*+g[h+332>>2];g[h+332>>2]=o;q=q*+g[h+336>>2];g[h+336>>2]=q;do{if((a[h+452>>0]|0)!=0){if(q*q+(l*l+o*o)<+g[h+464>>2]?p*p+m*m+n*n<+g[h+460>>2]:0){r=+g[h+456>>2];g[h+328>>2]=l*r;g[h+332>>2]=r*o;g[h+336>>2]=r*q;g[h+312>>2]=r*p;g[h+316>>2]=r*m;g[h+320>>2]=r*n;p=r*p;m=r*m;n=r*n;l=l*r;o=r*o;q=r*q}r=+Q(+(p*p+m*m+n*n));do{if(r.004999999888241291){p=p-p*(1.0/r)*.004999999888241291;g[h+312>>2]=p;m=m-m*(1.0/r)*.004999999888241291;g[h+316>>2]=m;n=n-n*(1.0/r)*.004999999888241291;g[h+320>>2]=n;break}else{c[h+312>>2]=0;c[h+316>>2]=0;c[h+320>>2]=0;c[h+324>>2]=0;p=0.0;m=0.0;n=0.0;break}}}while(0);k=+Q(+(l*l+o*o+q*q));if(k.004999999888241291){g[h+328>>2]=l-l*(1.0/k)*.004999999888241291;g[h+332>>2]=o-o*(1.0/k)*.004999999888241291;g[h+336>>2]=q-q*(1.0/k)*.004999999888241291;break}else{c[h+328>>2]=0;c[h+332>>2]=0;c[h+336>>2]=0;c[h+340>>2]=0;break}}}}while(0);Hj(h+4|0,p,m,n,h+328|0,d,h+68|0);s=c[b+232>>2]|0}f=f+1|0}while((f|0)<(s|0))}b=c[4564]|0;s=(c[b+16>>2]|0)+ -1|0;c[b+16>>2]=s;if((s|0)!=0){i=e;return}do{if((c[b+4>>2]|0)!=0){Gb(e|0,0)|0;s=c[4550]|0;g[b+8>>2]=+(((c[e+4>>2]|0)-(c[s+4>>2]|0)+(((c[e>>2]|0)-(c[s>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3+ +g[b+8>>2];if((c[b+16>>2]|0)==0){b=c[4564]|0;break}else{i=e;return}}}while(0);c[4564]=c[b+20>>2];i=e;return}function wk(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;if((a[b+273>>0]|0)!=0?(f=c[b+200>>2]|0,(f|0)!=0):0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}a[b+273>>0]=0;c[b+200>>2]=d;c[(c[b+196>>2]|0)+8>>2]=d;i=e;return}function xk(a){a=a|0;return c[a+200>>2]|0}function yk(a){a=a|0;return c[a+212>>2]|0}function zk(a,b){a=a|0;b=b|0;return c[(c[a+220>>2]|0)+(b<<2)>>2]|0}function Ak(a,b){a=a|0;b=b|0;return c[(c[a+220>>2]|0)+(b<<2)>>2]|0}function Bk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0;d=i;Nb[c[(c[b>>2]|0)+32>>2]&255](b);e=_b[c[(c[b>>2]|0)+16>>2]&31](b,104,1)|0;f=c[e+8>>2]|0;h=f+0|0;j=h+104|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));g[f+88>>2]=+g[a+248>>2];g[f+92>>2]=+g[a+252>>2];g[f+96>>2]=+g[a+256>>2];g[f+100>>2]=+g[a+260>>2];g[f>>2]=+g[a+92>>2];g[f+4>>2]=+g[a+96>>2];g[f+8>>2]=+g[a+100>>2];g[f+12>>2]=+g[a+104>>2];g[f+16>>2]=+g[a+108>>2];g[f+20>>2]=+g[a+116>>2];g[f+24>>2]=+g[a+120>>2];g[f+28>>2]=+g[a+124>>2];g[f+32>>2]=+g[a+128>>2];g[f+36>>2]=+g[a+132>>2];g[f+40>>2]=+g[a+140>>2];g[f+44>>2]=+g[a+144>>2];g[f+48>>2]=+g[a+148>>2];g[f+52>>2]=+g[a+152>>2];g[f+56>>2]=+g[a+168>>2];g[f+60>>2]=+g[a+172>>2];c[f+64>>2]=c[a+112>>2];c[f+68>>2]=c[a+156>>2];c[f+72>>2]=c[a+160>>2];c[f+76>>2]=c[a+164>>2];c[f+80>>2]=c[a+136>>2];Lb[c[(c[b>>2]|0)+20>>2]&31](b,e,1728,1145853764,f);f=c[a+8>>2]|0;if((f|0)>0){e=0;do{h=c[(c[a+16>>2]|0)+(e<<2)>>2]|0;if((c[h+236>>2]&2|0)!=0){j=Rb[c[(c[h>>2]|0)+16>>2]&127](h)|0;j=_b[c[(c[b>>2]|0)+16>>2]&31](b,j,1)|0;f=_b[c[(c[h>>2]|0)+20>>2]&31](h,c[j+8>>2]|0,b)|0;Lb[c[(c[b>>2]|0)+20>>2]&31](b,j,f,1497645650,h);f=c[a+8>>2]|0}e=e+1|0}while((e|0)<(f|0))}if((c[a+212>>2]|0)<=0){Xo(a,b);j=c[b>>2]|0;j=j+36|0;j=c[j>>2]|0;Nb[j&255](b);i=d;return}e=0;do{j=c[(c[a+220>>2]|0)+(e<<2)>>2]|0;f=Rb[c[(c[j>>2]|0)+36>>2]&127](j)|0;f=_b[c[(c[b>>2]|0)+16>>2]&31](b,f,1)|0;h=_b[c[(c[j>>2]|0)+40>>2]&31](j,c[f+8>>2]|0,b)|0;Lb[c[(c[b>>2]|0)+20>>2]&31](b,f,h,1397641027,j);e=e+1|0}while((e|0)<(c[a+212>>2]|0));Xo(a,b);j=c[b>>2]|0;j=j+36|0;j=c[j>>2]|0;Nb[j&255](b);i=d;return}function Ck(a,b){a=a|0;b=b|0;c[a+72>>2]=b;return}function Dk(a){a=a|0;return c[a+72>>2]|0}function Ek(a){a=a|0;return 2}function Fk(a,b){a=a|0;b=b|0;return}function Gk(a,b){a=a|0;b=+b;var d=0,e=0,f=0;d=i;i=i+16|0;vx(1400);if((c[a+280>>2]|0)>0){e=0;do{f=c[(c[a+288>>2]|0)+(e<<2)>>2]|0;uc[c[(c[f>>2]|0)+8>>2]&3](f,a,b);e=e+1|0}while((e|0)<(c[a+280>>2]|0))}a=c[4564]|0;f=(c[a+16>>2]|0)+ -1|0;c[a+16>>2]=f;if((f|0)!=0){i=d;return}do{if((c[a+4>>2]|0)!=0){Gb(d|0,0)|0;f=c[4550]|0;g[a+8>>2]=+(((c[d+4>>2]|0)-(c[f+4>>2]|0)+(((c[d>>2]|0)-(c[f>>2]|0)|0)*1e6|0)-(c[a+12>>2]|0)|0)>>>0)/1.0e3+ +g[a+8>>2];if((c[a+16>>2]|0)==0){a=c[4564]|0;break}else{i=d;return}}}while(0);c[4564]=c[a+20>>2];i=d;return}function Hk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;while(1){f=c[a+12>>2]|0;g=c[f+(((b+d|0)/2|0)<<2)>>2]|0;l=b;k=d;while(1){h=c[(c[g+28>>2]|0)+208>>2]|0;if((h|0)>-1){while(1){j=c[f+(l<<2)>>2]|0;m=c[(c[j+28>>2]|0)+208>>2]|0;if(!((m|0)>-1)){m=c[(c[j+32>>2]|0)+208>>2]|0}if((m|0)<(h|0)){l=l+1|0}else{break}}}else{m=c[(c[g+32>>2]|0)+208>>2]|0;while(1){j=c[f+(l<<2)>>2]|0;n=c[(c[j+28>>2]|0)+208>>2]|0;if(!((n|0)>-1)){n=c[(c[j+32>>2]|0)+208>>2]|0}if((n|0)<(m|0)){l=l+1|0}else{break}}}if((h|0)>-1){while(1){m=c[f+(k<<2)>>2]|0;n=c[(c[m+28>>2]|0)+208>>2]|0;if(!((n|0)>-1)){n=c[(c[m+32>>2]|0)+208>>2]|0}if((h|0)<(n|0)){k=k+ -1|0}else{break}}}else{h=c[(c[g+32>>2]|0)+208>>2]|0;while(1){m=c[f+(k<<2)>>2]|0;n=c[(c[m+28>>2]|0)+208>>2]|0;if(!((n|0)>-1)){n=c[(c[m+32>>2]|0)+208>>2]|0}if((h|0)<(n|0)){k=k+ -1|0}else{break}}}if((l|0)<=(k|0)){c[f+(l<<2)>>2]=m;c[(c[a+12>>2]|0)+(k<<2)>>2]=j;l=l+1|0;k=k+ -1|0}if((l|0)>(k|0)){break}f=c[a+12>>2]|0}if((k|0)>(b|0)){Hk(a,b,k)}if((l|0)<(d|0)){b=l}else{break}}i=e;return}function Ik(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Jk(a){a=a|0;return a+12|0}function Kk(a){a=a|0;return 1880}function Lk(a,b){a=a|0;b=b|0;g[a>>2]=1.0;g[a+4>>2]=1.0;g[a+8>>2]=1.0;g[a+12>>2]=0.0;return}function Mk(a,b){a=a|0;b=+b;g[a+44>>2]=b;return}function Nk(a){a=a|0;return+(+g[a+28>>2]*+g[a+12>>2])}function Ok(a){a=a|0;return 52}function Pk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0;e=i;f=hc[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;h=hc[c[(c[d>>2]|0)+28>>2]&31](d,f)|0;c[b>>2]=h;if((h|0)!=0){Pb[c[(c[d>>2]|0)+48>>2]&127](d,f)}c[b+4>>2]=c[a+4>>2];g[b+28>>2]=+g[a+28>>2];g[b+32>>2]=+g[a+32>>2];g[b+36>>2]=+g[a+36>>2];g[b+40>>2]=+g[a+40>>2];g[b+12>>2]=+g[a+12>>2];g[b+16>>2]=+g[a+16>>2];g[b+20>>2]=+g[a+20>>2];g[b+24>>2]=+g[a+24>>2];g[b+44>>2]=+g[a+44>>2];i=e;return 1848}function Qk(a){a=a|0;return 0}function Rk(a,b,c){a=a|0;b=b|0;c=c|0;return}function Sk(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Tk(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;e=i;g=c[d>>2]|0;f=c[a+80>>2]|0;if((g|0)==(f|0)){d=0;i=e;return d|0}if((b[a+10>>1]&b[d+4>>1])<<16>>16==0){d=0;i=e;return d|0}if((b[d+6>>1]&b[a+8>>1])<<16>>16==0){d=0;i=e;return d|0}d=c[a+92>>2]|0;d=_b[c[(c[d>>2]|0)+28>>2]&31](d,f,g)|0;i=e;return d|0}function Uk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0;e=i;f=c[b>>2]|0;if((f|0)==(c[a+80>>2]|0)){h=1.0;i=e;return+h}if((c[f+204>>2]&4|0)!=0){h=1.0;i=e;return+h}if((+g[a+28>>2]- +g[a+12>>2])*+g[b+8>>2]+(+g[a+32>>2]- +g[a+16>>2])*+g[b+12>>2]+(+g[a+36>>2]- +g[a+20>>2])*+g[b+16>>2]>=-+g[a+84>>2]){h=1.0;i=e;return+h}g[a+4>>2]=+g[b+40>>2];c[a+76>>2]=f;if(d){c[a+44>>2]=c[b+8>>2];c[a+48>>2]=c[b+12>>2];c[a+52>>2]=c[b+16>>2];c[a+56>>2]=c[b+20>>2]}else{m=+g[b+8>>2];l=+g[b+12>>2];k=+g[b+16>>2];j=m*+g[f+20>>2]+l*+g[f+24>>2]+k*+g[f+28>>2];h=m*+g[f+36>>2]+l*+g[f+40>>2]+k*+g[f+44>>2];g[a+44>>2]=+g[f+4>>2]*m+ +g[f+8>>2]*l+ +g[f+12>>2]*k;g[a+48>>2]=j;g[a+52>>2]=h;g[a+56>>2]=0.0}c[a+60>>2]=c[b+24>>2];c[a+64>>2]=c[b+28>>2];c[a+68>>2]=c[b+32>>2];c[a+72>>2]=c[b+36>>2];m=+g[b+40>>2];i=e;return+m}function Vk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0;e=i;g[a+4>>2]=+g[b+40>>2];f=c[b>>2]|0;c[a+76>>2]=f;if(d){c[a+44>>2]=c[b+8>>2];c[a+48>>2]=c[b+12>>2];c[a+52>>2]=c[b+16>>2];c[a+56>>2]=c[b+20>>2];d=a+60|0;a=b+24|0;c[d+0>>2]=c[a+0>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];h=+g[b+40>>2];i=e;return+h}else{m=+g[b+8>>2];l=+g[b+12>>2];k=+g[b+16>>2];j=m*+g[f+20>>2]+l*+g[f+24>>2]+k*+g[f+28>>2];h=m*+g[f+36>>2]+l*+g[f+40>>2]+k*+g[f+44>>2];g[a+44>>2]=+g[f+4>>2]*m+ +g[f+8>>2]*l+ +g[f+12>>2]*k;g[a+48>>2]=j;g[a+52>>2]=h;g[a+56>>2]=0.0;d=a+60|0;a=b+24|0;c[d+0>>2]=c[a+0>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];h=+g[b+40>>2];i=e;return+h}return 0.0}function Wk(a,c){a=a|0;c=c|0;var d=0;d=i;if((b[a+10>>1]&b[c+4>>1])<<16>>16==0){a=0;i=d;return a|0}a=(b[c+6>>1]&b[a+8>>1])<<16>>16!=0;i=d;return a|0}function Xk(a){a=a|0;return}function Yk(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Zk(a){a=a|0;var b=0;b=i;al(a);i=b;return}function _k(a){a=a|0;var b=0;b=i;al(a);if((a|0)==0){i=b;return}_x(a);i=b;return}function $k(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;if((h|0)<0){r=c[b+8>>2]|0;+jc[c[(c[r>>2]|0)+12>>2]&3](r,d,e,f,g,c[b+12>>2]|0,c[b+16>>2]|0,c[b+4>>2]|0,c[b+20>>2]|0,c[b+24>>2]|0);i=j;return}m=c[b+16>>2]|0;a:do{if((m|0)>0){l=c[b+12>>2]|0;o=0;while(1){k=l+(o<<2)|0;n=c[k>>2]|0;p=c[(c[n+28>>2]|0)+208>>2]|0;if(!((p|0)>-1)){p=c[(c[n+32>>2]|0)+208>>2]|0}n=o+1|0;if((p|0)==(h|0)){break a}if((n|0)<(m|0)){o=n}else{o=n;k=0;break}}}else{o=0;k=0}}while(0);if((o|0)<(m|0)){n=c[b+12>>2]|0;l=0;do{q=c[n+(o<<2)>>2]|0;p=c[(c[q+28>>2]|0)+208>>2]|0;if(!((p|0)>-1)){p=c[(c[q+32>>2]|0)+208>>2]|0}l=((p|0)==(h|0)&1)+l|0;o=o+1|0}while((o|0)<(m|0))}else{l=0}m=c[b+4>>2]|0;if((c[m+72>>2]|0)<2){r=c[b+8>>2]|0;+jc[c[(c[r>>2]|0)+12>>2]&3](r,d,e,f,g,k,l,m,c[b+20>>2]|0,c[b+24>>2]|0);i=j;return}if((e|0)>0){o=c[b+32>>2]|0;p=c[b+36>>2]|0;h=0;while(1){m=d+(h<<2)|0;if((o|0)==(p|0)){n=(p|0)==0?1:p<<1;if((p|0)<(n|0)){if((n|0)==0){o=0}else{c[4546]=(c[4546]|0)+1;o=Zx((n<<2|3)+16|0)|0;if((o|0)==0){o=0}else{c[(o+19&-16)+ -4>>2]=o;o=o+19&-16}p=c[b+32>>2]|0}if((p|0)>0){q=0;do{r=o+(q<<2)|0;if((r|0)!=0){c[r>>2]=c[(c[b+40>>2]|0)+(q<<2)>>2]}q=q+1|0}while((q|0)!=(p|0))}q=c[b+40>>2]|0;if((q|0)!=0){if((a[b+44>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[q+ -4>>2]|0);p=c[b+32>>2]|0}c[b+40>>2]=0}a[b+44>>0]=1;c[b+40>>2]=o;c[b+36>>2]=n;o=p}else{o=p;n=p}}else{n=p}p=(c[b+40>>2]|0)+(o<<2)|0;if((p|0)!=0){c[p>>2]=c[m>>2]}o=o+1|0;c[b+32>>2]=o;h=h+1|0;if((h|0)==(e|0)){break}else{p=n}}}if((g|0)>0){h=c[b+52>>2]|0;n=c[b+56>>2]|0;e=0;while(1){d=f+(e<<2)|0;if((h|0)==(n|0)){m=(n|0)==0?1:n<<1;if((n|0)<(m|0)){if((m|0)==0){h=0}else{c[4546]=(c[4546]|0)+1;h=Zx((m<<2|3)+16|0)|0;if((h|0)==0){h=0}else{c[(h+19&-16)+ -4>>2]=h;h=h+19&-16}n=c[b+52>>2]|0}if((n|0)>0){o=0;do{p=h+(o<<2)|0;if((p|0)!=0){c[p>>2]=c[(c[b+60>>2]|0)+(o<<2)>>2]}o=o+1|0}while((o|0)!=(n|0))}o=c[b+60>>2]|0;if((o|0)!=0){if((a[b+64>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[o+ -4>>2]|0);n=c[b+52>>2]|0}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=h;c[b+56>>2]=m;h=n}else{h=n;m=n}}else{m=n}n=(c[b+60>>2]|0)+(h<<2)|0;if((n|0)!=0){c[n>>2]=c[d>>2]}h=h+1|0;c[b+52>>2]=h;e=e+1|0;if((e|0)==(g|0)){break}else{n=m}}}if((l|0)>0){e=c[b+72>>2]|0;m=c[b+76>>2]|0;f=0;while(1){g=k+(f<<2)|0;if((e|0)==(m|0)){d=(m|0)==0?1:m<<1;if((m|0)<(d|0)){if((d|0)==0){e=0}else{c[4546]=(c[4546]|0)+1;e=Zx((d<<2|3)+16|0)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}m=c[b+72>>2]|0}if((m|0)>0){h=0;do{n=e+(h<<2)|0;if((n|0)!=0){c[n>>2]=c[(c[b+80>>2]|0)+(h<<2)>>2]}h=h+1|0}while((h|0)!=(m|0))}h=c[b+80>>2]|0;if((h|0)!=0){if((a[b+84>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0);m=c[b+72>>2]|0}c[b+80>>2]=0}a[b+84>>0]=1;c[b+80>>2]=e;c[b+76>>2]=d;e=m}else{e=m;d=m}}else{d=m}m=(c[b+80>>2]|0)+(e<<2)|0;if((m|0)!=0){c[m>>2]=c[g>>2]}e=e+1|0;c[b+72>>2]=e;f=f+1|0;if((f|0)==(l|0)){break}else{m=d}}}else{e=c[b+72>>2]|0}if(((c[b+52>>2]|0)+e|0)<=(c[(c[b+4>>2]|0)+72>>2]|0)){i=j;return}qk(b);i=j;return}function al(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=2128;e=c[b+80>>2]|0;if((e|0)!=0){if((a[b+84>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+80>>2]=0}a[b+84>>0]=1;c[b+80>>2]=0;c[b+72>>2]=0;c[b+76>>2]=0;e=c[b+60>>2]|0;if((e|0)!=0){if((a[b+64>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=0;c[b+52>>2]=0;c[b+56>>2]=0;e=c[b+40>>2]|0;if((e|0)==0){a[b+44>>0]=1;c[b+40>>2]=0;c[b+32>>2]=0;e=b+36|0;c[e>>2]=0;i=d;return}if((a[b+44>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+40>>2]=0;a[b+44>>0]=1;c[b+40>>2]=0;c[b+32>>2]=0;e=b+36|0;c[e>>2]=0;i=d;return}function bl(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0;b=i;i=i+144|0;g[a+36>>2]=0.0;c[b+128>>2]=0;c[b+132>>2]=0;c[b+136>>2]=0;c[b+140>>2]=0;d=0;do{e=b+128+(d<<2)|0;g[e>>2]=1.0;h=c[a+28>>2]|0;G=+g[h+4>>2];g[b+80>>2]=G;C=+g[h+20>>2];g[b+84>>2]=C;j=+g[h+36>>2];g[b+88>>2]=j;g[b+92>>2]=0.0;F=+g[h+8>>2];g[b+96>>2]=F;B=+g[h+24>>2];g[b+100>>2]=B;u=+g[h+40>>2];g[b+104>>2]=u;g[b+108>>2]=0.0;E=+g[h+12>>2];g[b+112>>2]=E;A=+g[h+28>>2];g[b+116>>2]=A;n=+g[h+44>>2];g[b+120>>2]=n;g[b+124>>2]=0.0;f=c[a+32>>2]|0;x=+g[f+4>>2];g[b+32>>2]=x;t=+g[f+20>>2];g[b+36>>2]=t;o=+g[f+36>>2];g[b+40>>2]=o;g[b+44>>2]=0.0;w=+g[f+8>>2];g[b+48>>2]=w;s=+g[f+24>>2];g[b+52>>2]=s;m=+g[f+40>>2];g[b+56>>2]=m;g[b+60>>2]=0.0;v=+g[f+12>>2];g[b+64>>2]=v;r=+g[f+28>>2];g[b+68>>2]=r;k=+g[f+44>>2];g[b+72>>2]=k;g[b+76>>2]=0.0;y=+g[a+300>>2];q=+g[a+304>>2];l=+g[a+308>>2];D=+g[h+52>>2];z=+g[h+56>>2];p=+g[h+60>>2];g[b+16>>2]=y*G+q*F+l*E+D-D;g[b+20>>2]=y*C+q*B+l*A+z-z;g[b+24>>2]=y*j+q*u+l*n+p-p;g[b+28>>2]=0.0;p=+g[a+316>>2];n=+g[a+320>>2];l=+g[a+324>>2];u=+g[f+52>>2];q=+g[f+56>>2];j=+g[f+60>>2];g[b>>2]=p*x+n*w+l*v+u-u;g[b+4>>2]=p*t+n*s+l*r+q-q;g[b+8>>2]=p*o+n*m+l*k+j-j;g[b+12>>2]=0.0;h=c[a+28>>2]|0;Rj(a+(d*84|0)+48|0,b+80|0,b+32|0,b+16|0,b,b+128|0,h+396|0,+g[h+344>>2],f+396|0,+g[f+344>>2]);g[e>>2]=0.0;d=d+1|0}while((d|0)!=3);i=b;return}function cl(b,d){b=b|0;d=d|0;var e=0;e=i;if((a[b+344>>0]|0)==0){c[d>>2]=3;c[d+4>>2]=3;i=e;return}else{c[d>>2]=0;c[d+4>>2]=0;i=e;return}}function dl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,h=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;d=i;l=c[a+28>>2]|0;m=c[a+32>>2]|0;e=c[b+8>>2]|0;g[e>>2]=1.0;j=c[b+24>>2]|0;g[e+(j+1<<2)>>2]=1.0;g[e+((j<<1)+2<<2)>>2]=1.0;n=+g[a+300>>2];s=+g[a+304>>2];h=+g[a+308>>2];q=+g[l+4>>2]*n+ +g[l+8>>2]*s+ +g[l+12>>2]*h;o=n*+g[l+20>>2]+s*+g[l+24>>2]+h*+g[l+28>>2];h=n*+g[l+36>>2]+s*+g[l+40>>2]+h*+g[l+44>>2];e=c[b+12>>2]|0;g[e>>2]=0.0;g[e+4>>2]=h;g[e+8>>2]=-o;g[e+12>>2]=0.0;g[e+(j<<2)>>2]=-h;g[e+(j+1<<2)>>2]=0.0;g[e+(j+2<<2)>>2]=q;g[e+(j+3<<2)>>2]=0.0;g[e+(j<<1<<2)>>2]=o;g[e+((j<<1|1)<<2)>>2]=-q;g[e+((j<<1)+2<<2)>>2]=0.0;g[e+((j<<1)+3<<2)>>2]=0.0;e=c[b+16>>2]|0;g[e>>2]=-1.0;g[e+(j+1<<2)>>2]=-1.0;g[e+((j<<1)+2<<2)>>2]=-1.0;s=+g[a+316>>2];n=+g[a+320>>2];f=+g[a+324>>2];r=+g[m+4>>2]*s+ +g[m+8>>2]*n+ +g[m+12>>2]*f;p=s*+g[m+20>>2]+n*+g[m+24>>2]+f*+g[m+28>>2];f=s*+g[m+36>>2]+n*+g[m+40>>2]+f*+g[m+44>>2];e=c[b+20>>2]|0;g[e>>2]=0.0;g[e+4>>2]=-f;g[e+8>>2]=p;g[e+12>>2]=0.0;g[e+(j<<2)>>2]=f;g[e+(j+1<<2)>>2]=0.0;g[e+(j+2<<2)>>2]=-r;g[e+(j+3<<2)>>2]=0.0;g[e+(j<<1<<2)>>2]=-p;g[e+((j<<1|1)<<2)>>2]=r;g[e+((j<<1)+2<<2)>>2]=0.0;g[e+((j<<1)+3<<2)>>2]=0.0;j=c[a+332>>2]|0;n=+g[((j&1|0)==0?b+4|0:a+336|0)>>2]*+g[b>>2];e=c[b+24>>2]|0;k=c[b+28>>2]|0;g[k>>2]=n*(r+ +g[m+52>>2]-q- +g[l+52>>2]);g[k+(e<<2)>>2]=n*(p+ +g[m+56>>2]-o- +g[l+56>>2]);g[k+(e<<1<<2)>>2]=n*(f+ +g[m+60>>2]-h- +g[l+60>>2]);if((j&2|0)!=0){m=c[b+32>>2]|0;g[m>>2]=+g[a+340>>2];g[m+(e<<2)>>2]=+g[a+340>>2];g[m+(e<<1<<2)>>2]=+g[a+340>>2]}f=+g[a+356>>2];if(f>0.0){g[c[b+36>>2]>>2]=-f;g[c[b+40>>2]>>2]=f;h=+g[a+356>>2]}else{h=f}if(h>0.0){g[(c[b+36>>2]|0)+(e<<2)>>2]=-f;g[(c[b+40>>2]|0)+(e<<2)>>2]=f;h=+g[a+356>>2]}if(!(h>0.0)){m=a+352|0;s=+g[m>>2];m=b+52|0;g[m>>2]=s;i=d;return}g[(c[b+36>>2]|0)+(e<<1<<2)>>2]=-f;g[(c[b+40>>2]|0)+(e<<1<<2)>>2]=f;m=a+352|0;s=+g[m>>2];m=b+52|0;g[m>>2]=s;i=d;return}function el(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0;f=i;if(!((e|0)==-1)){i=f;return}if((b|0)==4|(b|0)==3){g[a+340>>2]=d;c[a+332>>2]=c[a+332>>2]|2;i=f;return}else if((b|0)==2|(b|0)==1){g[a+336>>2]=d;c[a+332>>2]=c[a+332>>2]|1;i=f;return}else{i=f;return}}function fl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0;d=i;do{if((c|0)==-1){if((b|0)==4|(b|0)==3){e=+g[a+340>>2];break}else if((b|0)==2|(b|0)==1){e=+g[a+336>>2];break}else{e=3.4028234663852886e+38;break}}else{e=3.4028234663852886e+38}}while(0);i=d;return+e}function gl(a){a=a|0;return}function hl(a){a=a|0;var b=0;b=i;if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function il(a){a=a|0;return 84}function jl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;dm(a,b,c)|0;g[b+52>>2]=+g[a+300>>2];g[b+56>>2]=+g[a+304>>2];g[b+60>>2]=+g[a+308>>2];g[b+64>>2]=+g[a+312>>2];g[b+68>>2]=+g[a+316>>2];g[b+72>>2]=+g[a+320>>2];g[b+76>>2]=+g[a+324>>2];g[b+80>>2]=+g[a+328>>2];i=d;return 2352}function kl(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=3216;e=c[b+496>>2]|0;if((e|0)!=0){if((a[b+500>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+496>>2]=0}a[b+500>>0]=1;c[b+496>>2]=0;c[b+488>>2]=0;c[b+492>>2]=0;i=d;return}function ll(a){a=a|0;var b=0;b=i;ml(a);if((a|0)!=0){_x(a)}i=b;return}function ml(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=3024;e=c[b+144>>2]|0;if((e|0)!=0){if((a[b+148>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+144>>2]=0}a[b+148>>0]=1;c[b+144>>2]=0;c[b+136>>2]=0;c[b+140>>2]=0;e=c[b+76>>2]|0;if((e|0)!=0){if((a[b+80>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+76>>2]=0}a[b+80>>0]=1;c[b+76>>2]=0;c[b+68>>2]=0;c[b+72>>2]=0;e=c[b+56>>2]|0;if((e|0)!=0){if((a[b+60>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;e=c[b+36>>2]|0;if((e|0)!=0){if((a[b+40>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;e=c[b+16>>2]|0;if((e|0)==0){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;e=b+12|0;c[e>>2]=0;i=d;return}if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;e=b+12|0;c[e>>2]=0;i=d;return}function nl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0;f=i;i=i+64|0;a[d+84>>0]=0;c[f+0>>2]=c[b+4>>2];c[f+4>>2]=c[b+8>>2];c[f+8>>2]=c[b+12>>2];c[f+12>>2]=c[b+16>>2];c[f+16>>2]=c[b+20>>2];c[f+20>>2]=c[b+24>>2];c[f+24>>2]=c[b+28>>2];c[f+28>>2]=c[b+32>>2];c[f+32>>2]=c[b+36>>2];c[f+36>>2]=c[b+40>>2];c[f+40>>2]=c[b+44>>2];c[f+44>>2]=c[b+48>>2];c[f+48>>2]=c[b+52>>2];c[f+52>>2]=c[b+56>>2];c[f+56>>2]=c[b+60>>2];c[f+60>>2]=c[b+64>>2];if(e?(h=c[b+480>>2]|0,(h|0)!=0):0){Pb[c[(c[h>>2]|0)+8>>2]&127](h,f)}w=+g[d+156>>2];u=+g[f>>2];v=+g[d+160>>2];t=+g[f+4>>2];o=+g[d+164>>2];s=+g[f+8>>2];r=+g[f+16>>2];q=+g[f+20>>2];p=+g[f+24>>2];n=+g[f+32>>2];l=+g[f+36>>2];j=+g[f+40>>2];m=w*r+v*q+o*p+ +g[f+52>>2];k=w*n+v*l+o*j+ +g[f+56>>2];g[d+36>>2]=w*u+v*t+o*s+ +g[f+48>>2];g[d+40>>2]=m;g[d+44>>2]=k;g[d+48>>2]=0.0;k=+g[d+172>>2];m=+g[d+176>>2];o=+g[d+180>>2];g[d+52>>2]=u*k+t*m+s*o;g[d+56>>2]=k*r+m*q+o*p;g[d+60>>2]=k*n+m*l+o*j;g[d+64>>2]=0.0;o=+g[d+188>>2];m=+g[d+192>>2];k=+g[d+196>>2];g[d+68>>2]=u*o+t*m+s*k;g[d+72>>2]=o*r+m*q+k*p;g[d+76>>2]=o*n+m*l+k*j;g[d+80>>2]=0.0;i=f;return}function ol(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0;e=i;nl(a,b+(c*284|0)|0,d);o=+g[b+(c*284|0)+52>>2];j=+g[b+(c*284|0)+56>>2];s=+g[b+(c*284|0)+60>>2];I=+g[b+(c*284|0)+76>>2];B=+g[b+(c*284|0)+72>>2];A=+g[b+(c*284|0)+68>>2];y=1.0/+Q(+((B*-o-A*-j)*(B*-o-A*-j)+((I*-j-B*-s)*(I*-j-B*-s)+(A*-s-I*-o)*(A*-s-I*-o))));x=(I*-j-B*-s)*y;w=y*(A*-s-I*-o);y=y*(B*-o-A*-j);f=+g[b+(c*284|0)+232>>2]*.5;m=+T(+f)/+Q(+(o*o+j*j+s*s));f=+S(+f);n=2.0/(f*f+(m*-s*m*-s+(m*-o*m*-o+m*-j*m*-j)));G=1.0-(m*-j*m*-j*n+m*-s*m*-s*n);F=m*-o*m*-j*n-f*m*-s*n;H=m*-o*m*-s*n+f*m*-j*n;D=m*-o*m*-j*n+f*m*-s*n;C=1.0-(m*-o*m*-o*n+m*-s*m*-s*n);E=m*-j*m*-s*n-f*m*-o*n;l=m*-o*m*-s*n-f*m*-j*n;f=m*-j*m*-s*n+f*m*-o*n;n=1.0-(m*-o*m*-o*n+m*-j*m*-j*n);m=+g[b+(c*284|0)+236>>2]*-.5;z=+T(+m)/+Q(+(I*I+(B*B+A*A)));m=+S(+m);t=2.0/(m*m+(I*z*I*z+(A*z*A*z+B*z*B*z)));p=1.0-(B*z*B*z*t+I*z*I*z*t);k=A*z*B*z*t-m*I*z*t;v=A*z*I*z*t+m*B*z*t;q=A*z*B*z*t+m*I*z*t;h=1.0-(A*z*A*z*t+I*z*I*z*t);u=B*z*I*z*t-m*A*z*t;r=A*z*I*z*t-m*B*z*t;m=B*z*I*z*t+m*A*z*t;t=1.0-(A*z*A*z*t+B*z*B*z*t);z=+g[b+(c*284|0)+72>>2];B=+g[b+(c*284|0)+76>>2];g[b+(c*284|0)+92>>2]=B*(G*v+F*u+H*t)+(A*(H*r+(F*q+G*p))+z*(H*m+(G*k+F*h)));g[b+(c*284|0)+96>>2]=y*(G*v+F*u+H*t)+(x*(H*r+(F*q+G*p))+w*(H*m+(G*k+F*h)));g[b+(c*284|0)+100>>2]=(G*v+F*u+H*t)*-s+((H*r+(F*q+G*p))*-o+(H*m+(G*k+F*h))*-j);g[b+(c*284|0)+104>>2]=0.0;g[b+(c*284|0)+108>>2]=B*(D*v+C*u+E*t)+(A*(E*r+(C*q+D*p))+z*(E*m+(D*k+C*h)));g[b+(c*284|0)+112>>2]=y*(D*v+C*u+E*t)+(x*(E*r+(C*q+D*p))+w*(E*m+(D*k+C*h)));g[b+(c*284|0)+116>>2]=(D*v+C*u+E*t)*-s+((E*r+(C*q+D*p))*-o+(E*m+(D*k+C*h))*-j);g[b+(c*284|0)+120>>2]=0.0;g[b+(c*284|0)+124>>2]=B*(l*v+f*u+n*t)+(A*(n*r+(f*q+l*p))+z*(n*m+(l*k+f*h)));g[b+(c*284|0)+128>>2]=y*(l*v+f*u+n*t)+(x*(n*r+(f*q+l*p))+w*(n*m+(l*k+f*h)));g[b+(c*284|0)+132>>2]=(l*v+f*u+n*t)*-s+((n*r+(f*q+l*p))*-o+(n*m+(l*k+f*h))*-j);g[b+(c*284|0)+136>>2]=0.0;j=+g[b+(c*284|0)+32>>2];h=j*+g[b+(c*284|0)+56>>2]+ +g[b+(c*284|0)+40>>2];f=j*+g[b+(c*284|0)+60>>2]+ +g[b+(c*284|0)+44>>2];g[b+(c*284|0)+140>>2]=+g[b+(c*284|0)+52>>2]*j+ +g[b+(c*284|0)+36>>2];g[b+(c*284|0)+144>>2]=h;g[b+(c*284|0)+148>>2]=f;g[b+(c*284|0)+152>>2]=0.0;i=e;return}function pl(b,d){b=b|0;d=+d;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0.0,G=0.0;e=i;i=i+112|0;h=c[b+136>>2]|0;if((h|0)>0){f=0;do{ol(c[b+116>>2]|0,c[b+144>>2]|0,f,0);f=f+1|0;h=c[b+136>>2]|0}while((f|0)<(h|0));f=b+116|0}else{f=b+116|0}k=c[f>>2]|0;C=+g[k+312>>2];D=+g[k+316>>2];r=+g[k+320>>2];r=+Q(+(C*C+D*D+r*r))*3.5999999046325684;g[b+112>>2]=r;y=c[b+128>>2]|0;if(+g[k+(y<<2)+4>>2]*+g[k+312>>2]+ +g[k+(y<<2)+20>>2]*+g[k+316>>2]+ +g[k+(y<<2)+36>>2]*+g[k+320>>2]<0.0){g[b+112>>2]=r*-1.0}a:do{if((h|0)>0){h=0;do{j=c[b+144>>2]|0;q=j+(h*284|0)|0;nl(k,q,0);u=j+(h*284|0)+204|0;y=j+(h*284|0)+212|0;r=+g[u>>2]+ +g[y>>2];n=j+(h*284|0)+52|0;o=j+(h*284|0)+56|0;p=j+(h*284|0)+60|0;E=j+(h*284|0)+36|0;m=j+(h*284|0)+16|0;C=r*+g[o>>2]+ +g[j+(h*284|0)+40>>2];D=r*+g[p>>2]+ +g[j+(h*284|0)+44>>2];g[j+(h*284|0)+16>>2]=+g[n>>2]*r+ +g[E>>2];l=j+(h*284|0)+20|0;g[l>>2]=C;k=j+(h*284|0)+24|0;g[k>>2]=D;g[j+(h*284|0)+28>>2]=0.0;g[e+64>>2]=-1.0;x=c[b+100>>2]|0;E=Vb[c[(c[x>>2]|0)+8>>2]&31](x,E,m,e+32|0)|0;x=j+(h*284|0)+88|0;c[x>>2]=0;do{if((E|0)!=0){r=r*+g[e+64>>2];c[q+0>>2]=c[e+48>>2];c[q+4>>2]=c[e+52>>2];c[q+8>>2]=c[e+56>>2];c[q+12>>2]=c[e+60>>2];a[j+(h*284|0)+84>>0]=1;if((a[3008]|0)==0?(Ya(3008)|0)!=0:0){c[e+88>>2]=0;c[e+92>>2]=0;c[e+96>>2]=0;c[e+100>>2]=0;Al(2392,0.0,0,0,e+88|0);cb(3008)}c[e+72>>2]=0;c[e+76>>2]=0;c[e+80>>2]=0;c[e+84>>2]=0;Bl(2392,0.0,e+72|0);c[x>>2]=2392;t=r- +g[y>>2];x=j+(h*284|0)+32|0;g[x>>2]=t;r=+g[u>>2];s=+g[j+(h*284|0)+208>>2]*.009999999776482582;if(t>2]=r-s;t=r-s}if(t>r+s){g[x>>2]=r+s}c[m+0>>2]=c[e+32>>2];c[m+4>>2]=c[e+36>>2];c[m+8>>2]=c[e+40>>2];c[m+12>>2]=c[e+44>>2];s=+g[q>>2];r=+g[j+(h*284|0)+4>>2];t=+g[j+(h*284|0)+8>>2];v=s*+g[n>>2]+r*+g[o>>2]+t*+g[p>>2];n=c[f>>2]|0;w=+g[m>>2]- +g[n+52>>2];z=+g[l>>2]- +g[n+56>>2];C=+g[k>>2]- +g[n+60>>2];D=+g[n+332>>2];A=+g[n+336>>2];B=+g[n+328>>2];if(!(v>=-.10000000149011612)){g[j+(h*284|0)+272>>2]=-1.0/v*(r*(w*A-C*B+ +g[n+316>>2])+s*(D*C-z*A+ +g[n+312>>2])+t*(z*B-w*D+ +g[n+320>>2]));g[j+(h*284|0)+268>>2]=-1.0/v;break}else{g[j+(h*284|0)+272>>2]=0.0;g[j+(h*284|0)+268>>2]=10.0;break}}else{g[j+(h*284|0)+32>>2]=+g[u>>2];g[j+(h*284|0)+272>>2]=0.0;C=-+g[o>>2];D=-+g[p>>2];g[q>>2]=-+g[n>>2];g[j+(h*284|0)+4>>2]=C;g[j+(h*284|0)+8>>2]=D;g[j+(h*284|0)+12>>2]=0.0;g[j+(h*284|0)+268>>2]=1.0}}while(0);h=h+1|0;j=c[b+136>>2]|0;k=c[f>>2]|0}while((h|0)<(j|0));r=1.0/+g[k+344>>2];if((j|0)>0){m=c[b+144>>2]|0;l=0;do{if((a[m+(l*284|0)+84>>0]|0)!=0){D=+g[m+(l*284|0)+272>>2];D=r*(+g[m+(l*284|0)+216>>2]*(+g[m+(l*284|0)+204>>2]- +g[m+(l*284|0)+32>>2])*+g[m+(l*284|0)+268>>2]-D*+g[(D<0.0?m+(l*284|0)+220|0:m+(l*284|0)+224|0)>>2]);h=m+(l*284|0)+276|0;g[h>>2]=D;if(D<0.0){g[h>>2]=0.0}}else{g[m+(l*284|0)+276>>2]=0.0}l=l+1|0}while((l|0)<(j|0));h=0;while(1){B=+g[m+(h*284|0)+276>>2];D=+g[m+(h*284|0)+248>>2];B=B>D?D:B;D=B*+g[m+(h*284|0)+4>>2]*d;C=B*+g[m+(h*284|0)+8>>2]*d;g[e+16>>2]=+g[m+(h*284|0)>>2]*B*d;g[e+20>>2]=D;g[e+24>>2]=C;g[e+28>>2]=0.0;C=+g[m+(h*284|0)+20>>2]- +g[k+56>>2];D=+g[m+(h*284|0)+24>>2]- +g[k+60>>2];g[e>>2]=+g[m+(h*284|0)+16>>2]- +g[k+52>>2];g[e+4>>2]=C;g[e+8>>2]=D;g[e+12>>2]=0.0;ei(k,e+16|0,e);h=h+1|0;if((h|0)>=(c[b+136>>2]|0)){break a}m=c[b+144>>2]|0;k=c[f>>2]|0}}}}while(0);Mb[c[(c[b>>2]|0)+20>>2]&31](b,d);h=c[b+136>>2]|0;if((h|0)<=0){i=e;return}j=c[b+144>>2]|0;f=c[f>>2]|0;k=0;do{t=+g[j+(k*284|0)+36>>2]- +g[f+52>>2];s=+g[j+(k*284|0)+40>>2]- +g[f+56>>2];w=+g[j+(k*284|0)+44>>2]- +g[f+60>>2];r=+g[f+332>>2];v=+g[f+336>>2];z=+g[f+328>>2];if((a[j+(k*284|0)+84>>0]|0)==0){r=+g[j+(k*284|0)+240>>2];E=j+(k*284|0)+236|0;g[E>>2]=r+ +g[E>>2]}else{E=c[b+128>>2]|0;G=+g[f+(E<<2)+4>>2];A=+g[f+(E<<2)+20>>2];C=+g[f+(E<<2)+36>>2];F=+g[j+(k*284|0)>>2];B=+g[j+(k*284|0)+4>>2];D=+g[j+(k*284|0)+8>>2];r=((s*z-t*r+ +g[f+320>>2])*(C-D*(G*F+A*B+C*D))+((r*w-s*v+ +g[f+312>>2])*(G-F*(G*F+A*B+C*D))+(t*v-w*z+ +g[f+316>>2])*(A-B*(G*F+A*B+C*D))))*d/+g[j+(k*284|0)+212>>2];g[j+(k*284|0)+240>>2]=r;E=j+(k*284|0)+236|0;g[E>>2]=r+ +g[E>>2]}g[j+(k*284|0)+240>>2]=r*.9900000095367432;k=k+1|0}while((k|0)<(h|0));i=e;return}function ql(b,d){b=b|0;d=+d;var e=0,f=0,h=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0.0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,R=0.0;e=i;i=i+384|0;j=c[b+136>>2]|0;if((j|0)==0){i=e;return}k=c[b+8>>2]|0;if((k|0)<(j|0)){if((c[b+12>>2]|0)<(j|0)){c[4546]=(c[4546]|0)+1;l=Zx((j<<4|3)+16|0)|0;if((l|0)==0){l=0}else{c[(l+19&-16)+ -4>>2]=l;l=l+19&-16}m=c[b+8>>2]|0;if((m|0)>0){n=0;do{s=l+(n<<4)|0;q=(c[b+16>>2]|0)+(n<<4)|0;c[s+0>>2]=c[q+0>>2];c[s+4>>2]=c[q+4>>2];c[s+8>>2]=c[q+8>>2];c[s+12>>2]=c[q+12>>2];n=n+1|0}while((n|0)!=(m|0))}m=c[b+16>>2]|0;if((m|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=l;c[b+12>>2]=j;l=b+16|0}else{l=b+16|0}do{s=(c[l>>2]|0)+(k<<4)|0;c[s+0>>2]=c[e+144>>2];c[s+4>>2]=c[e+148>>2];c[s+8>>2]=c[e+152>>2];c[s+12>>2]=c[e+156>>2];k=k+1|0}while((k|0)!=(j|0))}c[b+8>>2]=j;k=c[b+28>>2]|0;if((k|0)<(j|0)){if((c[b+32>>2]|0)<(j|0)){c[4546]=(c[4546]|0)+1;l=Zx((j<<4|3)+16|0)|0;if((l|0)==0){l=0}else{c[(l+19&-16)+ -4>>2]=l;l=l+19&-16}n=c[b+28>>2]|0;if((n|0)>0){m=0;do{s=l+(m<<4)|0;q=(c[b+36>>2]|0)+(m<<4)|0;c[s+0>>2]=c[q+0>>2];c[s+4>>2]=c[q+4>>2];c[s+8>>2]=c[q+8>>2];c[s+12>>2]=c[q+12>>2];m=m+1|0}while((m|0)!=(n|0))}m=c[b+36>>2]|0;if((m|0)!=0){if((a[b+40>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=l;c[b+32>>2]=j;l=b+36|0}else{l=b+36|0}do{s=(c[l>>2]|0)+(k<<4)|0;c[s+0>>2]=c[e+128>>2];c[s+4>>2]=c[e+132>>2];c[s+8>>2]=c[e+136>>2];c[s+12>>2]=c[e+140>>2];k=k+1|0}while((k|0)!=(j|0))}c[b+28>>2]=j;k=c[b+48>>2]|0;if((k|0)<(j|0)){if((c[b+52>>2]|0)<(j|0)){c[4546]=(c[4546]|0)+1;l=Zx((j<<2|3)+16|0)|0;if((l|0)==0){l=0}else{c[(l+19&-16)+ -4>>2]=l;l=l+19&-16}m=c[b+48>>2]|0;if((m|0)>0){n=0;do{o=l+(n<<2)|0;if((o|0)!=0){g[o>>2]=+g[(c[b+56>>2]|0)+(n<<2)>>2]}n=n+1|0}while((n|0)!=(m|0))}m=c[b+56>>2]|0;if((m|0)!=0){if((a[b+60>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=l;c[b+52>>2]=j}else{l=c[b+56>>2]|0}do{m=l+(k<<2)|0;if((m|0)!=0){g[m>>2]=0.0}k=k+1|0}while((k|0)!=(j|0))}c[b+48>>2]=j;k=c[b+68>>2]|0;if((k|0)<(j|0)){if((c[b+72>>2]|0)<(j|0)){c[4546]=(c[4546]|0)+1;l=Zx((j<<2|3)+16|0)|0;if((l|0)==0){l=0}else{c[(l+19&-16)+ -4>>2]=l;l=l+19&-16}n=c[b+68>>2]|0;if((n|0)>0){m=0;do{o=l+(m<<2)|0;if((o|0)!=0){g[o>>2]=+g[(c[b+76>>2]|0)+(m<<2)>>2]}m=m+1|0}while((m|0)!=(n|0))}m=c[b+76>>2]|0;if((m|0)!=0){if((a[b+80>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0)}c[b+76>>2]=0}a[b+80>>0]=1;c[b+76>>2]=l;c[b+72>>2]=j}else{l=c[b+76>>2]|0}do{m=l+(k<<2)|0;if((m|0)!=0){g[m>>2]=0.0}k=k+1|0}while((k|0)!=(j|0))}c[b+68>>2]=j;m=c[b+136>>2]|0;if((m|0)<=0){i=e;return}k=c[b+76>>2]|0;l=c[b+56>>2]|0;j=0;do{g[k+(j<<2)>>2]=0.0;g[l+(j<<2)>>2]=0.0;j=j+1|0}while((j|0)<(m|0));j=0;do{k=c[b+144>>2]|0;l=c[k+(j*284|0)+88>>2]|0;if((l|0)!=0){m=k+(j*284|0)+92|0;c[e+80>>2]=c[m+0>>2];c[e+84>>2]=c[m+4>>2];c[e+88>>2]=c[m+8>>2];c[e+92>>2]=c[m+12>>2];m=k+(j*284|0)+108|0;c[e+96>>2]=c[m+0>>2];c[e+100>>2]=c[m+4>>2];c[e+104>>2]=c[m+8>>2];c[e+108>>2]=c[m+12>>2];m=k+(j*284|0)+124|0;c[e+112>>2]=c[m+0>>2];c[e+116>>2]=c[m+4>>2];c[e+120>>2]=c[m+8>>2];c[e+124>>2]=c[m+12>>2];m=c[b+36>>2]|0;y=c[b+120>>2]|0;p=+g[e+80+(y<<2)+16>>2];z=+g[e+80+(y<<2)+32>>2];g[m+(j<<4)>>2]=+g[e+80+(y<<2)>>2];g[m+(j<<4)+4>>2]=p;g[m+(j<<4)+8>>2]=z;g[m+(j<<4)+12>>2]=0.0;m=c[b+36>>2]|0;y=m+(j<<4)|0;z=+g[y>>2];n=k+(j*284|0)|0;p=+g[n>>2];o=m+(j<<4)+4|0;x=+g[o>>2];s=k+(j*284|0)+4|0;r=+g[s>>2];m=m+(j<<4)+8|0;u=+g[m>>2];q=k+(j*284|0)+8|0;w=+g[q>>2];t=z-p*(z*p+x*r+u*w);v=x-r*(z*p+x*r+u*w);w=u-w*(z*p+x*r+u*w);u=1.0/+Q(+(t*t+v*v+w*w));g[y>>2]=t*u;g[o>>2]=v*u;g[m>>2]=w*u;m=c[b+16>>2]|0;r=+g[s>>2];x=+g[q>>2];p=+g[n>>2];g[m+(j<<4)>>2]=r*w*u-x*v*u;g[m+(j<<4)+4>>2]=x*t*u-w*u*p;g[m+(j<<4)+8>>2]=v*u*p-r*t*u;g[m+(j<<4)+12>>2]=0.0;m=c[b+16>>2]|0;n=m+(j<<4)|0;u=+g[n>>2];q=m+(j<<4)+4|0;t=+g[q>>2];m=m+(j<<4)+8|0;r=+g[m>>2];p=1.0/+Q(+(u*u+t*t+r*r));g[n>>2]=u*p;g[q>>2]=t*p;g[m>>2]=r*p;m=c[b+116>>2]|0;q=c[b+36>>2]|0;n=q+(j<<4)|0;s=(c[b+76>>2]|0)+(j<<2)|0;p=+g[n>>2];o=q+(j<<4)+4|0;r=+g[o>>2];q=q+(j<<4)+8|0;t=+g[q>>2];if(p*p+r*r+t*t>1.100000023841858){g[s>>2]=0.0}else{z=+g[k+(j*284|0)+16>>2];r=z- +g[m+52>>2];t=+g[k+(j*284|0)+20>>2];B=t- +g[m+56>>2];x=+g[k+(j*284|0)+24>>2];D=x- +g[m+60>>2];g[e+360>>2]=r;g[e+364>>2]=B;g[e+368>>2]=D;g[e+372>>2]=0.0;z=z- +g[l+52>>2];t=t- +g[l+56>>2];x=x- +g[l+60>>2];g[e+344>>2]=z;g[e+348>>2]=t;g[e+352>>2]=x;g[e+356>>2]=0.0;p=+g[m+332>>2];E=+g[m+336>>2];A=+g[m+328>>2];v=+g[l+332>>2];C=+g[l+336>>2];u=+g[l+328>>2];w=p*D-E*B+ +g[m+312>>2]-(v*x-C*t+ +g[l+312>>2]);x=+g[m+316>>2]+(E*r-D*A)-(+g[l+316>>2]+(C*z-x*u));z=B*A-p*r+ +g[m+320>>2]-(t*u-v*z+ +g[l+320>>2]);g[e+208>>2]=+g[m+4>>2];g[e+212>>2]=+g[m+20>>2];g[e+216>>2]=+g[m+36>>2];g[e+220>>2]=0.0;g[e+224>>2]=+g[m+8>>2];g[e+228>>2]=+g[m+24>>2];g[e+232>>2]=+g[m+40>>2];g[e+236>>2]=0.0;g[e+240>>2]=+g[m+12>>2];g[e+244>>2]=+g[m+28>>2];g[e+248>>2]=+g[m+44>>2];g[e+252>>2]=0.0;g[e+160>>2]=+g[l+4>>2];g[e+164>>2]=+g[l+20>>2];g[e+168>>2]=+g[l+36>>2];g[e+172>>2]=0.0;g[e+176>>2]=+g[l+8>>2];g[e+180>>2]=+g[l+24>>2];g[e+184>>2]=+g[l+40>>2];g[e+188>>2]=0.0;g[e+192>>2]=+g[l+12>>2];g[e+196>>2]=+g[l+28>>2];g[e+200>>2]=+g[l+44>>2];g[e+204>>2]=0.0;Rj(e+256|0,e+208|0,e+160|0,e+360|0,e+344|0,n,m+396|0,+g[m+344>>2],l+396|0,+g[l+344>>2]);g[s>>2]=1.0/+g[e+336>>2]*(w*+g[n>>2]+x*+g[o>>2]+z*+g[q>>2])*-.20000000298023224}m=c[b+136>>2]|0}j=j+1|0}while((j|0)<(m|0));if((m|0)<=0){i=e;return}o=c[b+144>>2]|0;k=0;j=0;while(1){l=c[o+(j*284|0)+88>>2]|0;if((l|0)!=0){p=+g[o+(j*284|0)+252>>2];if(p!=0.0){l=c[b+56>>2]|0;q=l+(j<<2)|0;g[q>>2]=0.0;n=o+(j*284|0)+280|0;g[n>>2]=1.0;m=o;r=p*d}else{E=+g[o+(j*284|0)+256>>2];E=E!=0.0?E:0.0;m=c[b+116>>2]|0;q=c[b+16>>2]|0;x=+g[o+(j*284|0)+16>>2];v=+g[o+(j*284|0)+20>>2];F=+g[o+(j*284|0)+24>>2];H=+g[q+(j<<4)>>2];u=+g[q+(j<<4)+4>>2];r=+g[q+(j<<4)+8>>2];O=x- +g[m+52>>2];P=v- +g[m+56>>2];M=F- +g[m+60>>2];L=+g[m+264>>2]*(P*r-M*u)+ +g[m+280>>2]*(M*H-O*r)+(O*u-P*H)*+g[m+296>>2];R=(P*r-M*u)*+g[m+268>>2]+(M*H-O*r)*+g[m+284>>2]+(O*u-P*H)*+g[m+300>>2];N=(P*r-M*u)*+g[m+272>>2]+(M*H-O*r)*+g[m+288>>2]+(O*u-P*H)*+g[m+304>>2];C=x- +g[l+52>>2];A=v- +g[l+56>>2];t=F- +g[l+60>>2];I=(u*C-H*A)*+g[l+296>>2]+(+g[l+264>>2]*(r*A-u*t)+ +g[l+280>>2]*(H*t-r*C));K=(r*A-u*t)*+g[l+268>>2]+(H*t-r*C)*+g[l+284>>2]+(u*C-H*A)*+g[l+300>>2];J=(r*A-u*t)*+g[l+272>>2]+(H*t-r*C)*+g[l+288>>2]+(u*C-H*A)*+g[l+304>>2];x=x- +g[m+52>>2];v=v- +g[m+56>>2];F=F- +g[m+60>>2];z=+g[m+332>>2];G=+g[m+336>>2];w=+g[m+328>>2];D=+g[l+332>>2];p=+g[l+336>>2];B=+g[l+328>>2];r=-(1.0/(+g[m+344>>2]+(r*(P*L-O*R)+(H*(M*R-P*N)+u*(O*N-M*L)))+(+g[l+344>>2]+(r*(A*I-C*K)+(H*(t*K-A*J)+u*(C*J-t*I)))))*((F*z-v*G+ +g[m+312>>2]-(t*D-A*p+ +g[l+312>>2]))*H+(+g[m+316>>2]+(x*G-F*w)-(+g[l+316>>2]+(C*p-t*B)))*u+(v*w-x*z+ +g[m+320>>2]-(A*B-C*D+ +g[l+320>>2]))*r));r=E>2]|0;l=c[b+56>>2]|0;q=l+(j<<2)|0;g[q>>2]=0.0;n=m+(j*284|0)+280|0;g[n>>2]=1.0;r=r<-E?-E:r}g[n>>2]=1.0;p=+g[o+(j*284|0)+276>>2]*d*+g[o+(j*284|0)+228>>2];g[q>>2]=r;r=r*.5;t=+g[(c[b+76>>2]|0)+(j<<2)>>2];if(r*r+t*t>p*p){R=p/+Q(+(r*r+t*t));g[n>>2]=R*+g[n>>2];k=1}}else{l=c[b+56>>2]|0;g[l+(j<<2)>>2]=0.0;g[o+(j*284|0)+280>>2]=1.0;m=o}j=j+1|0;n=c[b+136>>2]|0;if((j|0)>=(n|0)){break}else{o=m}}if(k){if((n|0)<=0){i=e;return}j=c[b+76>>2]|0;k=0;do{o=j+(k<<2)|0;if(+g[o>>2]!=0.0?(f=m+(k*284|0)+280|0,h=+g[f>>2],h<1.0):0){y=l+(k<<2)|0;g[y>>2]=h*+g[y>>2];g[o>>2]=+g[f>>2]*+g[o>>2]}k=k+1|0}while((k|0)<(n|0))}if((n|0)<=0){i=e;return}n=0;while(1){o=c[b+116>>2]|0;k=m+(n*284|0)+16|0;f=m+(n*284|0)+20|0;R=+g[f>>2]- +g[o+56>>2];j=m+(n*284|0)+24|0;h=+g[j>>2]- +g[o+60>>2];g[e+64>>2]=+g[k>>2]- +g[o+52>>2];g[e+68>>2]=R;g[e+72>>2]=h;g[e+76>>2]=0.0;h=+g[l+(n<<2)>>2];if(h!=0.0){y=c[b+16>>2]|0;P=h*+g[y+(n<<4)+4>>2];R=h*+g[y+(n<<4)+8>>2];g[e+48>>2]=h*+g[y+(n<<4)>>2];g[e+52>>2]=P;g[e+56>>2]=R;g[e+60>>2]=0.0;ei(o,e+48|0,e+64|0)}h=+g[(c[b+76>>2]|0)+(n<<2)>>2];if(h!=0.0){y=c[(c[b+144>>2]|0)+(n*284|0)+88>>2]|0;L=+g[f>>2]- +g[y+56>>2];N=+g[j>>2]- +g[y+60>>2];g[e+32>>2]=+g[k>>2]- +g[y+52>>2];g[e+36>>2]=L;g[e+40>>2]=N;g[e+44>>2]=0.0;s=c[b+36>>2]|0;N=h*+g[s+(n<<4)+4>>2];L=h*+g[s+(n<<4)+8>>2];g[e+16>>2]=+g[s+(n<<4)>>2]*h;g[e+20>>2]=N;g[e+24>>2]=L;g[e+28>>2]=0.0;s=c[b+116>>2]|0;q=c[b+124>>2]|0;L=+g[s+(q<<2)+4>>2];N=+g[s+(q<<2)+20>>2];R=+g[s+(q<<2)+36>>2];K=+g[e+64>>2];M=+g[e+68>>2];O=+g[e+72>>2];P=(L*K+N*M+R*O)*(1.0- +g[m+(n*284|0)+244>>2]);g[e+64>>2]=K-L*P;g[e+68>>2]=M-N*P;g[e+72>>2]=O-R*P;ei(s,e+16|0,e+64|0);P=-+g[e+20>>2];R=-+g[e+24>>2];g[e>>2]=-+g[e+16>>2];g[e+4>>2]=P;g[e+8>>2]=R;g[e+12>>2]=0.0;ei(y,e,e+32|0)}n=n+1|0;if((n|0)>=(c[b+136>>2]|0)){break}m=c[b+144>>2]|0;l=c[b+56>>2]|0}i=e;return}function rl(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,j=0.0,k=0.0,l=0,m=0;e=i;i=i+48|0;if((c[b+136>>2]|0)<=0){i=e;return}f=0;do{m=c[b+144>>2]|0;g[e+32>>2]=(a[m+(f*284|0)+84>>0]|0)==0?1.0:0.0;g[e+36>>2]=0.0;g[e+40>>2]=1.0;g[e+44>>2]=0.0;l=m+(f*284|0)+140|0;c[e+16>>2]=c[l+0>>2];c[e+20>>2]=c[l+4>>2];c[e+24>>2]=c[l+8>>2];c[e+28>>2]=c[l+12>>2];l=c[b+120>>2]|0;h=c[(c[d>>2]|0)+8>>2]|0;k=+g[m+(f*284|0)+(l<<2)+108>>2]+ +g[e+20>>2];j=+g[m+(f*284|0)+(l<<2)+124>>2]+ +g[e+24>>2];g[e>>2]=+g[m+(f*284|0)+(l<<2)+92>>2]+ +g[e+16>>2];g[e+4>>2]=k;g[e+8>>2]=j;g[e+12>>2]=0.0;wc[h&63](d,e+16|0,e,e+32|0);wc[c[(c[d>>2]|0)+8>>2]&63](d,e+16|0,(c[b+144>>2]|0)+(f*284|0)+16|0,e+32|0);f=f+1|0}while((f|0)<(c[b+136>>2]|0));i=e;return}function sl(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,j=0.0,k=0.0,l=0.0,m=0.0;h=i;i=i+96|0;g[h+4>>2]=1.0;c[h+8>>2]=0;b[h+12>>1]=1;b[h+14>>1]=-1;c[h+16>>2]=0;c[h>>2]=224;c[h+20>>2]=c[d+0>>2];c[h+24>>2]=c[d+4>>2];c[h+28>>2]=c[d+8>>2];c[h+32>>2]=c[d+12>>2];c[h+36>>2]=c[e+0>>2];c[h+40>>2]=c[e+4>>2];c[h+44>>2]=c[e+8>>2];c[h+48>>2]=c[e+12>>2];a=c[a+4>>2]|0;wc[c[(c[a>>2]|0)+32>>2]&63](a,d,e,h);e=c[h+8>>2]|0;if((e|0)==0){a=0;i=h;return a|0}if((c[e+236>>2]&2|0)==0){a=0;i=h;return a|0}if((c[e+204>>2]&4|0)!=0){a=0;i=h;return a|0}c[f+0>>2]=c[h+68>>2];c[f+4>>2]=c[h+72>>2];c[f+8>>2]=c[h+76>>2];c[f+12>>2]=c[h+80>>2];c[f+16>>2]=c[h+52>>2];c[f+20>>2]=c[h+56>>2];c[f+24>>2]=c[h+60>>2];c[f+28>>2]=c[h+64>>2];m=+g[f+16>>2];l=+g[f+20>>2];k=+g[f+24>>2];j=1.0/+Q(+(m*m+l*l+k*k));g[f+16>>2]=m*j;g[f+20>>2]=l*j;g[f+24>>2]=k*j;g[f+32>>2]=+g[h+4>>2];a=e;i=h;return a|0}function tl(a,b,d){a=a|0;b=b|0;d=+d;b=i;Mb[c[(c[a>>2]|0)+16>>2]&31](a,d);i=b;return}function ul(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+120>>2]=b;c[a+124>>2]=d;c[a+128>>2]=e;return}function vl(a){a=a|0;return}function wl(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function xl(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=3216;e=c[b+496>>2]|0;if((e|0)==0){a[b+500>>0]=1;c[b+496>>2]=0;c[b+488>>2]=0;c[b+492>>2]=0;e=c[4548]|0;e=e+1|0;c[4548]=e;e=b+ -4|0;e=c[e>>2]|0;_x(e);i=d;return}if((a[b+500>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}a[b+500>>0]=1;c[b+496>>2]=0;c[b+488>>2]=0;c[b+492>>2]=0;e=c[4548]|0;e=e+1|0;c[4548]=e;e=b+ -4|0;e=c[e>>2]|0;_x(e);i=d;return}function yl(a,b){a=a|0;b=b|0;c[a+260>>2]=(c[a+260>>2]|0)+1;c[a+192>>2]=b;c[a+200>>2]=b;return}function zl(b,d){b=b|0;d=d|0;var e=0,f=0.0,h=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0;e=i;c[b+236>>2]=2;c[b+312>>2]=0;c[b+316>>2]=0;c[b+320>>2]=0;c[b+324>>2]=0;c[b+328>>2]=0;c[b+332>>2]=0;c[b+336>>2]=0;c[b+340>>2]=0;g[b+544>>2]=1.0;g[b+548>>2]=1.0;g[b+552>>2]=1.0;g[b+556>>2]=0.0;g[b+348>>2]=1.0;g[b+352>>2]=1.0;g[b+356>>2]=1.0;l=b+360|0;k=l+36|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(k|0));c[b+412>>2]=0;c[b+416>>2]=0;c[b+420>>2]=0;c[b+424>>2]=0;c[b+428>>2]=0;c[b+432>>2]=0;c[b+436>>2]=0;c[b+440>>2]=0;h=+g[d+92>>2];f=+g[d+96>>2];if(h<0.0){h=0.0}else{h=h>1.0?1.0:h}g[b+444>>2]=h;if(f<0.0){f=0.0}else{f=f>1.0?1.0:f}g[b+448>>2]=f;g[b+472>>2]=+g[d+112>>2];g[b+476>>2]=+g[d+116>>2];k=c[d+4>>2]|0;c[b+480>>2]=k;c[b+608>>2]=0;c[b+612>>2]=0;a[b+452>>0]=a[d+120>>0]|0;g[b+456>>2]=+g[d+124>>2];g[b+460>>2]=+g[d+128>>2];g[b+464>>2]=+g[d+132>>2];g[b+468>>2]=+g[d+136>>2];if((k|0)==0){c[b+4>>2]=c[d+8>>2];c[b+8>>2]=c[d+12>>2];c[b+12>>2]=c[d+16>>2];c[b+16>>2]=c[d+20>>2];c[b+20>>2]=c[d+24>>2];c[b+24>>2]=c[d+28>>2];c[b+28>>2]=c[d+32>>2];c[b+32>>2]=c[d+36>>2];c[b+36>>2]=c[d+40>>2];c[b+40>>2]=c[d+44>>2];c[b+44>>2]=c[d+48>>2];c[b+48>>2]=c[d+52>>2];c[b+52>>2]=c[d+56>>2];c[b+56>>2]=c[d+60>>2];c[b+60>>2]=c[d+64>>2];c[b+64>>2]=c[d+68>>2];m=b+20|0;k=b+36|0;n=b+52|0;l=b+4|0}else{Pb[c[(c[k>>2]|0)+8>>2]&127](k,b+4|0);m=b+20|0;k=b+36|0;n=b+52|0;l=b+4|0}c[b+68>>2]=c[l+0>>2];c[b+72>>2]=c[l+4>>2];c[b+76>>2]=c[l+8>>2];c[b+80>>2]=c[l+12>>2];c[b+84>>2]=c[m+0>>2];c[b+88>>2]=c[m+4>>2];c[b+92>>2]=c[m+8>>2];c[b+96>>2]=c[m+12>>2];c[b+100>>2]=c[k+0>>2];c[b+104>>2]=c[k+4>>2];c[b+108>>2]=c[k+8>>2];c[b+112>>2]=c[k+12>>2];c[b+116>>2]=c[n+0>>2];c[b+120>>2]=c[n+4>>2];c[b+124>>2]=c[n+8>>2];c[b+128>>2]=c[n+12>>2];c[b+132>>2]=0;c[b+136>>2]=0;c[b+140>>2]=0;c[b+144>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;c[b+156>>2]=0;c[b+160>>2]=0;g[b+224>>2]=+g[d+100>>2];g[b+232>>2]=+g[d+104>>2];g[b+228>>2]=+g[d+108>>2];Pb[c[(c[b>>2]|0)+12>>2]&127](b,c[d+72>>2]|0);k=c[812]|0;c[812]=k+1;c[b+508>>2]=k;h=+g[d>>2];k=c[b+204>>2]|0;if(h==0.0){c[b+204>>2]=k|1;g[b+344>>2]=0.0;f=0.0}else{c[b+204>>2]=k&-2;g[b+344>>2]=1.0/h;f=1.0/h}j=h*+g[b+384>>2];o=h*+g[b+388>>2];g[b+364>>2]=h*+g[b+380>>2];g[b+368>>2]=j;g[b+372>>2]=o;g[b+376>>2]=0.0;h=+g[d+76>>2];if(h!=0.0){h=1.0/h}else{h=0.0}j=+g[d+80>>2];if(j!=0.0){j=1.0/j}else{j=0.0}o=+g[d+84>>2];if(o!=0.0){o=1.0/o}else{o=0.0}g[b+396>>2]=h;g[b+400>>2]=j;g[b+404>>2]=o;g[b+408>>2]=0.0;D=f*+g[b+352>>2];x=f*+g[b+356>>2];g[b+560>>2]=f*+g[b+348>>2];g[b+564>>2]=D;g[b+568>>2]=x;g[b+572>>2]=0.0;x=+g[b+4>>2];D=x*h;w=+g[b+8>>2];C=w*j;v=+g[b+12>>2];B=v*o;u=+g[b+20>>2];A=h*u;t=+g[b+24>>2];z=j*t;s=+g[b+28>>2];y=o*s;r=+g[b+36>>2];q=h*r;p=+g[b+40>>2];f=j*p;j=+g[b+44>>2];h=o*j;g[b+264>>2]=x*D+w*C+v*B;g[b+268>>2]=D*u+C*t+B*s;g[b+272>>2]=D*r+C*p+B*j;g[b+276>>2]=0.0;g[b+280>>2]=x*A+w*z+v*y;g[b+284>>2]=u*A+t*z+s*y;g[b+288>>2]=A*r+z*p+y*j;g[b+292>>2]=0.0;g[b+296>>2]=x*q+w*f+v*h;g[b+300>>2]=u*q+t*f+s*h;g[b+304>>2]=r*q+p*f+j*h;g[b+308>>2]=0.0;c[b+504>>2]=0;c[b+512>>2]=0;c[b+516>>2]=0;c[b+520>>2]=0;c[b+524>>2]=0;c[b+528>>2]=0;c[b+532>>2]=0;c[b+536>>2]=0;c[b+540>>2]=0;h=+g[b+344>>2];j=h*+g[b+352>>2];o=h*+g[b+356>>2];g[b+560>>2]=+g[b+348>>2]*h;g[b+564>>2]=j;g[b+568>>2]=o;l=b+572|0;k=l+36|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(k|0));i=e;return}function Al(b,d,e,f,h){b=b|0;d=+d;e=e|0;f=f|0;h=h|0;var j=0;j=i;i=i+144|0;g[b+164>>2]=1.0;g[b+168>>2]=1.0;g[b+172>>2]=1.0;g[b+176>>2]=0.0;c[b+180>>2]=0;g[b+184>>2]=999999984306749400.0;c[b+188>>2]=0;c[b+192>>2]=0;c[b+196>>2]=0;c[b+200>>2]=0;c[b+204>>2]=1;c[b+208>>2]=-1;c[b+212>>2]=-1;c[b+216>>2]=1;g[b+220>>2]=0.0;g[b+224>>2]=.5;g[b+228>>2]=0.0;g[b+232>>2]=0.0;c[b+236>>2]=1;c[b+240>>2]=0;g[b+244>>2]=1.0;c[b+248>>2]=0;c[b+252>>2]=0;c[b+256>>2]=0;c[b+260>>2]=0;g[b+4>>2]=1.0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;g[b+24>>2]=1.0;c[b+28>>2]=0;c[b+32>>2]=0;c[b+36>>2]=0;c[b+40>>2]=0;g[b+44>>2]=1.0;c[b+48>>2]=0;c[b+52>>2]=0;c[b+56>>2]=0;c[b+60>>2]=0;c[b+64>>2]=0;c[b>>2]=3216;a[b+500>>0]=1;c[b+496>>2]=0;c[b+488>>2]=0;c[b+492>>2]=0;g[j>>2]=d;c[j+4>>2]=e;c[j+72>>2]=f;c[j+76>>2]=c[h+0>>2];c[j+80>>2]=c[h+4>>2];c[j+84>>2]=c[h+8>>2];c[j+88>>2]=c[h+12>>2];g[j+92>>2]=0.0;g[j+96>>2]=0.0;g[j+100>>2]=.5;g[j+104>>2]=0.0;g[j+108>>2]=0.0;g[j+112>>2]=.800000011920929;g[j+116>>2]=1.0;a[j+120>>0]=0;g[j+124>>2]=.004999999888241291;g[j+128>>2]=.009999999776482582;g[j+132>>2]=.009999999776482582;g[j+136>>2]=.009999999776482582;g[j+8>>2]=1.0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;g[j+28>>2]=1.0;c[j+32>>2]=0;c[j+36>>2]=0;c[j+40>>2]=0;c[j+44>>2]=0;g[j+48>>2]=1.0;c[j+52>>2]=0;c[j+56>>2]=0;c[j+60>>2]=0;c[j+64>>2]=0;c[j+68>>2]=0;zl(b,j);i=j;return}function Bl(a,b,d){a=a|0;b=+b;d=d|0;var e=0.0,f=0.0,h=0.0,i=0;i=c[a+204>>2]|0;if(b==0.0){c[a+204>>2]=i|1;g[a+344>>2]=0.0;e=0.0}else{c[a+204>>2]=i&-2;g[a+344>>2]=1.0/b;e=1.0/b}f=+g[a+384>>2]*b;h=+g[a+388>>2]*b;g[a+364>>2]=+g[a+380>>2]*b;g[a+368>>2]=f;g[a+372>>2]=h;g[a+376>>2]=0.0;b=+g[d>>2];if(b!=0.0){b=1.0/b}else{b=0.0}f=+g[d+4>>2];if(f!=0.0){f=1.0/f}else{f=0.0}h=+g[d+8>>2];if(h!=0.0){h=1.0/h}else{h=0.0}g[a+396>>2]=b;g[a+400>>2]=f;g[a+404>>2]=h;g[a+408>>2]=0.0;f=e*+g[a+352>>2];h=e*+g[a+356>>2];g[a+560>>2]=+g[a+348>>2]*e;g[a+564>>2]=f;g[a+568>>2]=h;g[a+572>>2]=0.0;return}function Cl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;j=i;if((c[a+204>>2]&2|0)==0){c[a+68>>2]=c[b+0>>2];c[a+72>>2]=c[b+4>>2];c[a+76>>2]=c[b+8>>2];c[a+80>>2]=c[b+12>>2];c[a+84>>2]=c[b+16>>2];c[a+88>>2]=c[b+20>>2];c[a+92>>2]=c[b+24>>2];c[a+96>>2]=c[b+28>>2];c[a+100>>2]=c[b+32>>2];c[a+104>>2]=c[b+36>>2];c[a+108>>2]=c[b+40>>2];c[a+112>>2]=c[b+44>>2];c[a+116>>2]=c[b+48>>2];c[a+120>>2]=c[b+52>>2];c[a+124>>2]=c[b+56>>2];c[a+128>>2]=c[b+60>>2];l=b;h=a+20|0;e=b+16|0;d=a+36|0;k=b+32|0;f=a+52|0;b=b+48|0;m=a+4|0}else{c[a+68>>2]=c[a+4>>2];c[a+72>>2]=c[a+8>>2];c[a+76>>2]=c[a+12>>2];c[a+80>>2]=c[a+16>>2];c[a+84>>2]=c[a+20>>2];c[a+88>>2]=c[a+24>>2];c[a+92>>2]=c[a+28>>2];c[a+96>>2]=c[a+32>>2];c[a+100>>2]=c[a+36>>2];c[a+104>>2]=c[a+40>>2];c[a+108>>2]=c[a+44>>2];c[a+112>>2]=c[a+48>>2];c[a+116>>2]=c[a+52>>2];c[a+120>>2]=c[a+56>>2];c[a+124>>2]=c[a+60>>2];c[a+128>>2]=c[a+64>>2];l=b;h=a+20|0;e=b+16|0;d=a+36|0;k=b+32|0;f=a+52|0;b=b+48|0;m=a+4|0}c[a+132>>2]=c[a+312>>2];c[a+136>>2]=c[a+316>>2];c[a+140>>2]=c[a+320>>2];c[a+144>>2]=c[a+324>>2];c[a+148>>2]=c[a+328>>2];c[a+152>>2]=c[a+332>>2];c[a+156>>2]=c[a+336>>2];c[a+160>>2]=c[a+340>>2];c[m+0>>2]=c[l+0>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];c[h+0>>2]=c[e+0>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];c[d+0>>2]=c[k+0>>2];c[d+4>>2]=c[k+4>>2];c[d+8>>2]=c[k+8>>2];c[d+12>>2]=c[k+12>>2];c[f+0>>2]=c[b+0>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];y=+g[a+4>>2];s=+g[a+396>>2];x=+g[a+8>>2];q=+g[a+400>>2];w=+g[a+12>>2];o=+g[a+404>>2];v=+g[a+20>>2];u=+g[a+24>>2];t=+g[a+28>>2];r=+g[a+36>>2];p=+g[a+40>>2];n=+g[a+44>>2];g[a+264>>2]=y*y*s+x*x*q+w*w*o;g[a+268>>2]=y*s*v+x*q*u+w*o*t;g[a+272>>2]=y*s*r+x*q*p+w*o*n;g[a+276>>2]=0.0;g[a+280>>2]=y*s*v+x*q*u+w*o*t;g[a+284>>2]=v*s*v+u*q*u+t*o*t;g[a+288>>2]=s*v*r+q*u*p+o*t*n;g[a+292>>2]=0.0;g[a+296>>2]=y*s*r+x*q*p+w*o*n;g[a+300>>2]=v*s*r+u*q*p+t*o*n;g[a+304>>2]=r*s*r+p*q*p+n*o*n;g[a+308>>2]=0.0;i=j;return}function Dl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;a:do{if((c[d+236>>2]&2|0)!=0?(f=c[b+488>>2]|0,(f|0)>0):0){b=c[b+496>>2]|0;g=0;while(1){h=c[b+(g<<2)>>2]|0;if((a[h+20>>0]|0)!=0){if((c[h+28>>2]|0)==(d|0)){d=0;break a}if((c[h+32>>2]|0)==(d|0)){d=0;break a}}g=g+1|0;if((g|0)>=(f|0)){d=1;break}}}else{d=1}}while(0);i=e;return d|0}function El(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;h=c[b+488>>2]|0;a:do{if((h|0)>0){k=c[b+496>>2]|0;j=0;while(1){g=j+1|0;if((c[k+(j<<2)>>2]|0)==(d|0)){break}if((g|0)<(h|0)){j=g}else{break a}}if((j|0)!=(h|0)){k=b+256|0;c[k>>2]=1;i=e;return}}}while(0);if((h|0)==(c[b+492>>2]|0)?(f=(h|0)==0?1:h<<1,(h|0)<(f|0)):0){if((f|0)==0){g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((f<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[b+488>>2]|0}if((h|0)>0){k=0;do{j=g+(k<<2)|0;if((j|0)!=0){c[j>>2]=c[(c[b+496>>2]|0)+(k<<2)>>2]}k=k+1|0}while((k|0)!=(h|0))}j=c[b+496>>2]|0;if((j|0)!=0){if((a[b+500>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);h=c[b+488>>2]|0}c[b+496>>2]=0}a[b+500>>0]=1;c[b+496>>2]=g;c[b+492>>2]=f}f=(c[b+496>>2]|0)+(h<<2)|0;if((f|0)!=0){c[f>>2]=d}c[b+488>>2]=h+1;k=b+256|0;c[k>>2]=1;i=e;return}function Fl(a){a=a|0;return 488}function Gl(a,b,e){a=a|0;b=b|0;e=e|0;var f=0;f=i;xo(a,b,e)|0;g[b+256>>2]=+g[a+264>>2];g[b+260>>2]=+g[a+268>>2];g[b+264>>2]=+g[a+272>>2];g[b+268>>2]=+g[a+276>>2];g[b+272>>2]=+g[a+280>>2];g[b+276>>2]=+g[a+284>>2];g[b+280>>2]=+g[a+288>>2];g[b+284>>2]=+g[a+292>>2];g[b+288>>2]=+g[a+296>>2];g[b+292>>2]=+g[a+300>>2];g[b+296>>2]=+g[a+304>>2];g[b+300>>2]=+g[a+308>>2];g[b+304>>2]=+g[a+312>>2];g[b+308>>2]=+g[a+316>>2];g[b+312>>2]=+g[a+320>>2];g[b+316>>2]=+g[a+324>>2];g[b+320>>2]=+g[a+328>>2];g[b+324>>2]=+g[a+332>>2];g[b+328>>2]=+g[a+336>>2];g[b+332>>2]=+g[a+340>>2];g[b+448>>2]=+g[a+344>>2];g[b+336>>2]=+g[a+544>>2];g[b+340>>2]=+g[a+548>>2];g[b+344>>2]=+g[a+552>>2];g[b+348>>2]=+g[a+556>>2];g[b+352>>2]=+g[a+348>>2];g[b+356>>2]=+g[a+352>>2];g[b+360>>2]=+g[a+356>>2];g[b+364>>2]=+g[a+360>>2];g[b+368>>2]=+g[a+364>>2];g[b+372>>2]=+g[a+368>>2];g[b+376>>2]=+g[a+372>>2];g[b+380>>2]=+g[a+376>>2];g[b+384>>2]=+g[a+380>>2];g[b+388>>2]=+g[a+384>>2];g[b+392>>2]=+g[a+388>>2];g[b+396>>2]=+g[a+392>>2];g[b+400>>2]=+g[a+396>>2];g[b+404>>2]=+g[a+400>>2];g[b+408>>2]=+g[a+404>>2];g[b+412>>2]=+g[a+408>>2];g[b+416>>2]=+g[a+412>>2];g[b+420>>2]=+g[a+416>>2];g[b+424>>2]=+g[a+420>>2];g[b+428>>2]=+g[a+424>>2];g[b+432>>2]=+g[a+428>>2];g[b+436>>2]=+g[a+432>>2];g[b+440>>2]=+g[a+436>>2];g[b+444>>2]=+g[a+440>>2];g[b+452>>2]=+g[a+444>>2];g[b+456>>2]=+g[a+448>>2];c[b+484>>2]=d[a+452>>0]|0;g[b+460>>2]=+g[a+456>>2];g[b+464>>2]=+g[a+460>>2];g[b+468>>2]=+g[a+464>>2];g[b+472>>2]=+g[a+468>>2];g[b+476>>2]=+g[a+472>>2];g[b+480>>2]=+g[a+476>>2];i=f;return 3256}function Hl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=c[(c[b>>2]|0)+16>>2]|0;f=Rb[c[(c[a>>2]|0)+16>>2]&127](a)|0;f=_b[e&31](b,f,1)|0;e=_b[c[(c[a>>2]|0)+20>>2]&31](a,c[f+8>>2]|0,b)|0;Lb[c[(c[b>>2]|0)+20>>2]&31](b,f,e,1497645650,a);i=d;return}function Il(a){a=a|0;var b=0;b=i;Jl(a);if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Jl(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=3328;e=c[b+176>>2]|0;if((e|0)!=0){if((a[b+180>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+176>>2]=0}a[b+180>>0]=1;c[b+176>>2]=0;c[b+168>>2]=0;c[b+172>>2]=0;e=c[b+156>>2]|0;if((e|0)!=0){if((a[b+160>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+156>>2]=0}a[b+160>>0]=1;c[b+156>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;e=c[b+136>>2]|0;if((e|0)!=0){if((a[b+140>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+136>>2]=0}a[b+140>>0]=1;c[b+136>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;e=c[b+116>>2]|0;if((e|0)!=0){if((a[b+120>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=0;c[b+108>>2]=0;c[b+112>>2]=0;e=c[b+96>>2]|0;if((e|0)!=0){if((a[b+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;e=c[b+76>>2]|0;if((e|0)!=0){if((a[b+80>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+76>>2]=0}a[b+80>>0]=1;c[b+76>>2]=0;c[b+68>>2]=0;c[b+72>>2]=0;e=c[b+56>>2]|0;if((e|0)!=0){if((a[b+60>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;e=c[b+36>>2]|0;if((e|0)!=0){if((a[b+40>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;e=c[b+16>>2]|0;if((e|0)==0){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;e=b+12|0;c[e>>2]=0;i=d;return}if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;e=b+12|0;c[e>>2]=0;i=d;return}function Kl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,j=0,k=0.0,l=0.0,m=0.0;j=i;k=+g[d+100>>2];h=+g[d+16>>2];e=+g[d+20>>2];f=+g[d+24>>2];l=+g[d+108>>2];l=+g[d+112>>2]-k*+g[d+116>>2]-(h*+g[a+64>>2]+e*+g[a+68>>2]+f*+g[a+72>>2]+(+g[d>>2]*+g[a+80>>2]+ +g[d+4>>2]*+g[a+84>>2]+ +g[d+8>>2]*+g[a+88>>2]))*l-l*(+g[d+48>>2]*+g[b+64>>2]+ +g[d+52>>2]*+g[b+68>>2]+ +g[d+56>>2]*+g[b+72>>2]+(+g[d+32>>2]*+g[b+80>>2]+ +g[d+36>>2]*+g[b+84>>2]+ +g[d+40>>2]*+g[b+88>>2]));m=+g[d+120>>2];do{if(!(k+l>2];if(k+l>m){g[d+100>>2]=m;l=m-k;break}else{g[d+100>>2]=k+l;break}}else{g[d+100>>2]=m;l=m-k}}while(0);if((c[a+240>>2]|0)!=0){m=l*+g[a+132>>2]*e*+g[a+116>>2];k=l*+g[a+136>>2]*f*+g[a+120>>2];g[a+64>>2]=+g[a+112>>2]*l*+g[a+128>>2]*h+ +g[a+64>>2];g[a+68>>2]=m+ +g[a+68>>2];g[a+72>>2]=k+ +g[a+72>>2];k=l*+g[a+100>>2]*+g[d+68>>2];m=l*+g[a+104>>2]*+g[d+72>>2];g[a+80>>2]=l*+g[a+96>>2]*+g[d+64>>2]+ +g[a+80>>2];g[a+84>>2]=k+ +g[a+84>>2];g[a+88>>2]=m+ +g[a+88>>2]}if((c[b+240>>2]|0)==0){i=j;return}m=l*+g[b+132>>2]*+g[d+52>>2]*+g[b+116>>2];k=l*+g[b+136>>2]*+g[d+56>>2]*+g[b+120>>2];g[b+64>>2]=+g[b+112>>2]*l*+g[b+128>>2]*+g[d+48>>2]+ +g[b+64>>2];g[b+68>>2]=m+ +g[b+68>>2];g[b+72>>2]=k+ +g[b+72>>2];k=l*+g[b+100>>2]*+g[d+84>>2];m=l*+g[b+104>>2]*+g[d+88>>2];g[b+80>>2]=l*+g[b+96>>2]*+g[d+80>>2]+ +g[b+80>>2];g[b+84>>2]=k+ +g[b+84>>2];g[b+88>>2]=m+ +g[b+88>>2];i=j;return}function Ll(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0;j=i;m=+g[d+100>>2];h=+g[d+16>>2];e=+g[d+20>>2];f=+g[d+24>>2];n=+g[d+108>>2];n=+g[d+112>>2]-m*+g[d+116>>2]-(h*+g[a+64>>2]+e*+g[a+68>>2]+f*+g[a+72>>2]+(+g[d>>2]*+g[a+80>>2]+ +g[d+4>>2]*+g[a+84>>2]+ +g[d+8>>2]*+g[a+88>>2]))*n-n*(+g[d+48>>2]*+g[b+64>>2]+ +g[d+52>>2]*+g[b+68>>2]+ +g[d+56>>2]*+g[b+72>>2]+(+g[d+32>>2]*+g[b+80>>2]+ +g[d+36>>2]*+g[b+84>>2]+ +g[d+40>>2]*+g[b+88>>2]));l=+g[d+120>>2];if(m+n>2]=l;if((c[a+240>>2]|0)!=0){n=k*+g[a+132>>2]*e*+g[a+116>>2];m=k*+g[a+136>>2]*f*+g[a+120>>2];g[a+64>>2]=+g[a+112>>2]*k*+g[a+128>>2]*h+ +g[a+64>>2];g[a+68>>2]=n+ +g[a+68>>2];g[a+72>>2]=m+ +g[a+72>>2];m=k*+g[a+100>>2]*+g[d+68>>2];n=k*+g[a+104>>2]*+g[d+72>>2];g[a+80>>2]=k*+g[a+96>>2]*+g[d+64>>2]+ +g[a+80>>2];g[a+84>>2]=m+ +g[a+84>>2];g[a+88>>2]=n+ +g[a+88>>2]}if((c[b+240>>2]|0)==0){i=j;return}n=k*+g[b+132>>2]*+g[d+52>>2]*+g[b+116>>2];m=k*+g[b+136>>2]*+g[d+56>>2]*+g[b+120>>2];g[b+64>>2]=+g[b+112>>2]*k*+g[b+128>>2]*+g[d+48>>2]+ +g[b+64>>2];g[b+68>>2]=n+ +g[b+68>>2];g[b+72>>2]=m+ +g[b+72>>2];m=k*+g[b+100>>2]*+g[d+84>>2];n=k*+g[b+104>>2]*+g[d+88>>2];g[b+80>>2]=k*+g[b+96>>2]*+g[d+80>>2]+ +g[b+80>>2];g[b+84>>2]=m+ +g[b+84>>2];g[b+88>>2]=n+ +g[b+88>>2];i=j;return}function Ml(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,h=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0;j=i;l=+g[d+128>>2];if(!(l!=0.0)){i=j;return}c[828]=(c[828]|0)+1;k=+g[d+96>>2];f=+g[d+16>>2];h=+g[d+20>>2];e=+g[d+24>>2];n=+g[d+108>>2];n=l-k*+g[d+116>>2]-(f*+g[a+144>>2]+h*+g[a+148>>2]+e*+g[a+152>>2]+(+g[d>>2]*+g[a+160>>2]+ +g[d+4>>2]*+g[a+164>>2]+ +g[d+8>>2]*+g[a+168>>2]))*n-n*(+g[d+48>>2]*+g[b+144>>2]+ +g[d+52>>2]*+g[b+148>>2]+ +g[d+56>>2]*+g[b+152>>2]+(+g[d+32>>2]*+g[b+160>>2]+ +g[d+36>>2]*+g[b+164>>2]+ +g[d+40>>2]*+g[b+168>>2]));m=+g[d+120>>2];if(k+n>2]=m;if((c[a+240>>2]|0)!=0){n=l*+g[a+132>>2]*h*+g[a+116>>2];m=l*+g[a+136>>2]*e*+g[a+120>>2];g[a+144>>2]=+g[a+112>>2]*l*+g[a+128>>2]*f+ +g[a+144>>2];g[a+148>>2]=n+ +g[a+148>>2];g[a+152>>2]=m+ +g[a+152>>2];m=l*+g[a+100>>2]*+g[d+68>>2];n=l*+g[a+104>>2]*+g[d+72>>2];g[a+160>>2]=l*+g[a+96>>2]*+g[d+64>>2]+ +g[a+160>>2];g[a+164>>2]=m+ +g[a+164>>2];g[a+168>>2]=n+ +g[a+168>>2]}if((c[b+240>>2]|0)==0){i=j;return}n=l*+g[b+132>>2]*+g[d+52>>2]*+g[b+116>>2];m=l*+g[b+136>>2]*+g[d+56>>2]*+g[b+120>>2];g[b+144>>2]=+g[b+112>>2]*l*+g[b+128>>2]*+g[d+48>>2]+ +g[b+144>>2];g[b+148>>2]=n+ +g[b+148>>2];g[b+152>>2]=m+ +g[b+152>>2];m=l*+g[b+100>>2]*+g[d+84>>2];n=l*+g[b+104>>2]*+g[d+88>>2];g[b+160>>2]=l*+g[b+96>>2]*+g[d+80>>2]+ +g[b+160>>2];g[b+164>>2]=m+ +g[b+164>>2];g[b+168>>2]=n+ +g[b+168>>2];i=j;return}function Nl(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0;e=i;if(!((b|0)!=0?(c[b+236>>2]&2|0)!=0:0)){b=0}f=(b|0)==0;c[a+64>>2]=0;c[a+68>>2]=0;c[a+72>>2]=0;c[a+76>>2]=0;c[a+80>>2]=0;c[a+84>>2]=0;c[a+88>>2]=0;c[a+92>>2]=0;c[a+144>>2]=0;c[a+148>>2]=0;c[a+152>>2]=0;c[a+156>>2]=0;c[a+160>>2]=0;c[a+164>>2]=0;c[a+168>>2]=0;c[a+172>>2]=0;if(f){g[a>>2]=1.0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;g[a+20>>2]=1.0;c[a+24>>2]=0;c[a+28>>2]=0;c[a+32>>2]=0;c[a+36>>2]=0;g[a+40>>2]=1.0;c[a+44>>2]=0;c[a+48>>2]=0;c[a+52>>2]=0;c[a+56>>2]=0;c[a+60>>2]=0;c[a+240>>2]=0;c[a+128>>2]=0;c[a+132>>2]=0;c[a+136>>2]=0;c[a+140>>2]=0;g[a+96>>2]=1.0;g[a+100>>2]=1.0;g[a+104>>2]=1.0;g[a+108>>2]=0.0;g[a+112>>2]=1.0;g[a+116>>2]=1.0;g[a+120>>2]=1.0;g[a+124>>2]=0.0;b=a+176|0;a=b+64|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));i=e;return}else{f=b+4|0;c[a+0>>2]=c[f+0>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];c[a+12>>2]=c[f+12>>2];f=b+20|0;c[a+16>>2]=c[f+0>>2];c[a+20>>2]=c[f+4>>2];c[a+24>>2]=c[f+8>>2];c[a+28>>2]=c[f+12>>2];f=b+36|0;c[a+32>>2]=c[f+0>>2];c[a+36>>2]=c[f+4>>2];c[a+40>>2]=c[f+8>>2];c[a+44>>2]=c[f+12>>2];f=b+52|0;c[a+48>>2]=c[f+0>>2];c[a+52>>2]=c[f+4>>2];c[a+56>>2]=c[f+8>>2];c[a+60>>2]=c[f+12>>2];f=b+344|0;m=+g[f>>2];n=b+348|0;l=m*+g[b+352>>2];k=m*+g[b+356>>2];g[a+128>>2]=m*+g[n>>2];g[a+132>>2]=l;g[a+136>>2]=k;g[a+140>>2]=0.0;c[a+240>>2]=b;o=b+544|0;c[a+96>>2]=c[o+0>>2];c[a+100>>2]=c[o+4>>2];c[a+104>>2]=c[o+8>>2];c[a+108>>2]=c[o+12>>2];c[a+112>>2]=c[n+0>>2];c[a+116>>2]=c[n+4>>2];c[a+120>>2]=c[n+8>>2];c[a+124>>2]=c[n+12>>2];n=b+312|0;c[a+176>>2]=c[n+0>>2];c[a+180>>2]=c[n+4>>2];c[a+184>>2]=c[n+8>>2];c[a+188>>2]=c[n+12>>2];n=b+328|0;c[a+192>>2]=c[n+0>>2];c[a+196>>2]=c[n+4>>2];c[a+200>>2]=c[n+8>>2];c[a+204>>2]=c[n+12>>2];k=+g[f>>2];l=k*+g[b+416>>2]*d;m=k*+g[b+420>>2]*d;g[a+208>>2]=k*+g[b+412>>2]*d;g[a+212>>2]=l;g[a+216>>2]=m;g[a+220>>2]=0.0;m=+g[b+428>>2];l=+g[b+432>>2];k=+g[b+436>>2];j=(m*+g[b+268>>2]+l*+g[b+284>>2]+k*+g[b+300>>2])*d;h=(m*+g[b+272>>2]+l*+g[b+288>>2]+k*+g[b+304>>2])*d;g[a+224>>2]=(+g[b+264>>2]*m+ +g[b+280>>2]*l+ +g[b+296>>2]*k)*d;g[a+228>>2]=j;g[a+232>>2]=h;g[a+236>>2]=0.0;i=e;return}}function Ol(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;d=i;if((a|0)==0){i=d;return}if((c[a+180>>2]&1|0)==0){i=d;return}r=+g[a+4>>2];t=+g[b>>2];o=+g[a+20>>2];s=+g[b+4>>2];l=+g[a+36>>2];e=+g[b+8>>2];q=+g[a+8>>2];n=+g[a+24>>2];j=+g[a+40>>2];p=+g[a+12>>2];m=+g[a+28>>2];f=+g[a+44>>2];k=(r*t+o*s+l*e)*+g[a+164>>2];h=(t*q+s*n+e*j)*+g[a+168>>2];e=(t*p+s*m+e*f)*+g[a+172>>2];g[b>>2]=r*k+q*h+p*e;g[b+4>>2]=o*k+n*h+m*e;g[b+8>>2]=l*k+j*h+f*e;g[b+12>>2]=0.0;i=d;return}function Pl(b,d,e,f,h,j,k,l,m,n,o){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;l=l|0;m=+m;n=+n;o=+o;var p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0.0,H=0.0,I=0.0;p=i;q=c[b+68>>2]|0;if((q|0)==(c[b+72>>2]|0)?(r=(q|0)==0?1:q<<1,(q|0)<(r|0)):0){if((r|0)==0){x=q;E=0}else{c[4546]=(c[4546]|0)+1;x=Zx((r*152|3)+16|0)|0;if((x|0)==0){E=0}else{c[(x+19&-16)+ -4>>2]=x;E=x+19&-16}x=c[b+68>>2]|0}if((x|0)>0){F=0;do{ey(E+(F*152|0)|0,(c[b+76>>2]|0)+(F*152|0)|0,152)|0;F=F+1|0}while((F|0)!=(x|0))}x=c[b+76>>2]|0;if((x|0)!=0){if((a[b+80>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[x+ -4>>2]|0)}c[b+76>>2]=0}a[b+80>>0]=1;c[b+76>>2]=E;c[b+72>>2]=r;r=c[b+68>>2]|0}else{r=q}c[b+68>>2]=r+1;r=c[b+76>>2]|0;c[r+(q*152|0)+140>>2]=h;h=c[b+16>>2]|0;x=c[h+(e*244|0)+240>>2]|0;b=c[h+(f*244|0)+240>>2]|0;c[r+(q*152|0)+144>>2]=e;c[r+(q*152|0)+148>>2]=f;v=+g[j+84>>2];g[r+(q*152|0)+104>>2]=v;c[r+(q*152|0)+132>>2]=0;g[r+(q*152|0)+100>>2]=0.0;g[r+(q*152|0)+96>>2]=0.0;if((x|0)!=0){c[r+(q*152|0)+16>>2]=c[d+0>>2];c[r+(q*152|0)+20>>2]=c[d+4>>2];c[r+(q*152|0)+24>>2]=c[d+8>>2];c[r+(q*152|0)+28>>2]=c[d+12>>2];B=+g[k+4>>2];C=+g[r+(q*152|0)+24>>2];D=+g[k+8>>2];w=+g[r+(q*152|0)+20>>2];y=+g[r+(q*152|0)+16>>2];u=+g[k>>2];g[r+(q*152|0)>>2]=B*C-D*w;g[r+(q*152|0)+4>>2]=D*y-C*u;g[r+(q*152|0)+8>>2]=w*u-B*y;g[r+(q*152|0)+12>>2]=0.0;z=((B*C-D*w)*+g[x+280>>2]+(D*y-C*u)*+g[x+284>>2]+(w*u-B*y)*+g[x+288>>2])*+g[x+548>>2];A=((B*C-D*w)*+g[x+296>>2]+(D*y-C*u)*+g[x+300>>2]+(w*u-B*y)*+g[x+304>>2])*+g[x+552>>2];g[r+(q*152|0)+64>>2]=((B*C-D*w)*+g[x+264>>2]+ +g[x+268>>2]*(D*y-C*u)+(w*u-B*y)*+g[x+272>>2])*+g[x+544>>2];g[r+(q*152|0)+68>>2]=z;g[r+(q*152|0)+72>>2]=A;g[r+(q*152|0)+76>>2]=0.0;w=B*C-D*w}else{c[r+(q*152|0)+64>>2]=0;c[r+(q*152|0)+68>>2]=0;c[r+(q*152|0)+72>>2]=0;c[r+(q*152|0)+76>>2]=0;c[r+(q*152|0)+0>>2]=0;c[r+(q*152|0)+4>>2]=0;c[r+(q*152|0)+8>>2]=0;c[r+(q*152|0)+12>>2]=0;c[r+(q*152|0)+16>>2]=0;c[r+(q*152|0)+20>>2]=0;c[r+(q*152|0)+24>>2]=0;c[r+(q*152|0)+28>>2]=0;w=0.0}if((b|0)!=0){C=-+g[d>>2];s=-+g[d+4>>2];u=-+g[d+8>>2];g[r+(q*152|0)+48>>2]=C;g[r+(q*152|0)+52>>2]=s;g[r+(q*152|0)+56>>2]=u;g[r+(q*152|0)+60>>2]=0.0;G=+g[l+4>>2];z=+g[l+8>>2];D=+g[l>>2];g[r+(q*152|0)+32>>2]=G*u-z*s;g[r+(q*152|0)+36>>2]=z*C-D*u;g[r+(q*152|0)+40>>2]=D*s-G*C;g[r+(q*152|0)+44>>2]=0.0;B=((G*u-z*s)*+g[b+264>>2]+ +g[b+268>>2]*(z*C-D*u)+(D*s-G*C)*+g[b+272>>2])*+g[b+544>>2];A=((G*u-z*s)*+g[b+280>>2]+(z*C-D*u)*+g[b+284>>2]+(D*s-G*C)*+g[b+288>>2])*+g[b+548>>2];y=((G*u-z*s)*+g[b+296>>2]+(z*C-D*u)*+g[b+300>>2]+(D*s-G*C)*+g[b+304>>2])*+g[b+552>>2];g[r+(q*152|0)+80>>2]=B;g[r+(q*152|0)+84>>2]=A;g[r+(q*152|0)+88>>2]=y;g[r+(q*152|0)+92>>2]=0.0;t=D*s-G*C;s=G*u-z*s;u=z*C-D*u}else{c[r+(q*152|0)+80>>2]=0;c[r+(q*152|0)+84>>2]=0;c[r+(q*152|0)+88>>2]=0;c[r+(q*152|0)+92>>2]=0;c[r+(q*152|0)+32>>2]=0;c[r+(q*152|0)+36>>2]=0;c[r+(q*152|0)+40>>2]=0;c[r+(q*152|0)+44>>2]=0;c[r+(q*152|0)+48>>2]=0;c[r+(q*152|0)+52>>2]=0;c[r+(q*152|0)+56>>2]=0;c[r+(q*152|0)+60>>2]=0;t=0.0;B=0.0;A=0.0;y=0.0;s=0.0;u=0.0}if((x|0)!=0){G=+g[r+(q*152|0)+68>>2];H=+g[k+8>>2];I=+g[r+(q*152|0)+72>>2];C=+g[k+4>>2];z=+g[k>>2];D=+g[r+(q*152|0)+64>>2];z=+g[x+344>>2]+((G*H-I*C)*+g[d>>2]+(I*z-H*D)*+g[d+4>>2]+(C*D-G*z)*+g[d+8>>2])}else{z=0.0}if((b|0)!=0){H=-B;I=-A;C=-y;D=+g[l+8>>2];G=+g[l+4>>2];y=+g[l>>2];y=+g[b+344>>2]+((D*I-G*C)*+g[d>>2]+(y*C-D*H)*+g[d+4>>2]+(G*H-y*I)*+g[d+8>>2])}else{y=0.0}m=m/(z+y);g[r+(q*152|0)+108>>2]=m;if((x|0)!=0){y=+g[h+(e*244|0)+176>>2]+ +g[h+(e*244|0)+208>>2];z=+g[h+(e*244|0)+184>>2]+ +g[h+(e*244|0)+216>>2];A=+g[h+(e*244|0)+180>>2]+ +g[h+(e*244|0)+212>>2]}else{y=0.0;z=0.0;A=0.0}if((x|0)!=0){C=+g[h+(e*244|0)+192>>2];B=+g[h+(e*244|0)+196>>2];D=+g[h+(e*244|0)+200>>2]}else{C=0.0;B=0.0;D=0.0}w=y*+g[r+(q*152|0)+16>>2]+A*+g[r+(q*152|0)+20>>2]+z*+g[r+(q*152|0)+24>>2]+(C*w+B*+g[r+(q*152|0)+4>>2]+D*+g[r+(q*152|0)+8>>2]);if((b|0)!=0){y=+g[h+(f*244|0)+176>>2]+ +g[h+(f*244|0)+208>>2];z=+g[h+(f*244|0)+184>>2]+ +g[h+(f*244|0)+216>>2];A=+g[h+(f*244|0)+180>>2]+ +g[h+(f*244|0)+212>>2]}else{y=0.0;z=0.0;A=0.0}y=y*+g[r+(q*152|0)+48>>2]+A*+g[r+(q*152|0)+52>>2]+z*+g[r+(q*152|0)+56>>2];if((b|0)==0){H=0.0;I=0.0;G=0.0;G=G*s;H=H*u;H=G+H;I=I*t;I=H+I;I=y+I;I=w+I;I=n-I;I=m*I;F=r+(q*152|0)+112|0;g[F>>2]=I;F=r+(q*152|0)+116|0;g[F>>2]=o;I=-v;F=r+(q*152|0)+120|0;g[F>>2]=I;F=r+(q*152|0)+124|0;g[F>>2]=v;i=p;return}H=+g[h+(f*244|0)+196>>2];I=+g[h+(f*244|0)+200>>2];G=+g[h+(f*244|0)+192>>2];G=G*s;H=H*u;H=G+H;I=I*t;I=H+I;I=y+I;I=w+I;I=n-I;I=m*I;F=r+(q*152|0)+112|0;g[F>>2]=I;F=r+(q*152|0)+116|0;g[F>>2]=o;I=-v;F=r+(q*152|0)+120|0;g[F>>2]=I;F=r+(q*152|0)+124|0;g[F>>2]=v;i=p;return}function Ql(b,d,e,f,h,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0;l=i;k=c[b+88>>2]|0;if((k|0)==(c[b+92>>2]|0)?(m=(k|0)==0?1:k<<1,(k|0)<(m|0)):0){if((m|0)==0){B=k;u=0}else{c[4546]=(c[4546]|0)+1;u=Zx((m*152|3)+16|0)|0;if((u|0)==0){u=0}else{c[(u+19&-16)+ -4>>2]=u;u=u+19&-16}B=c[b+88>>2]|0}if((B|0)>0){C=0;do{ey(u+(C*152|0)|0,(c[b+96>>2]|0)+(C*152|0)|0,152)|0;C=C+1|0}while((C|0)!=(B|0))}B=c[b+96>>2]|0;if((B|0)!=0){if((a[b+100>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[B+ -4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=u;c[b+92>>2]=m;m=c[b+88>>2]|0}else{m=k}c[b+88>>2]=m+1;m=c[b+96>>2]|0;c[m+(k*152|0)+140>>2]=h;c[m+(k*152|0)+16>>2]=0;c[m+(k*152|0)+20>>2]=0;c[m+(k*152|0)+24>>2]=0;c[m+(k*152|0)+28>>2]=0;g[m+(k*152|0)+48>>2]=-0.0;g[m+(k*152|0)+52>>2]=-0.0;g[m+(k*152|0)+56>>2]=-0.0;g[m+(k*152|0)+60>>2]=0.0;b=c[b+16>>2]|0;u=c[b+(e*244|0)+240>>2]|0;h=c[b+(f*244|0)+240>>2]|0;c[m+(k*152|0)+144>>2]=e;c[m+(k*152|0)+148>>2]=f;n=+g[j+88>>2];g[m+(k*152|0)+104>>2]=n;c[m+(k*152|0)+132>>2]=0;g[m+(k*152|0)+100>>2]=0.0;g[m+(k*152|0)+96>>2]=0.0;o=-+g[d>>2];p=-+g[d+4>>2];q=-+g[d+8>>2];g[m+(k*152|0)>>2]=o;g[m+(k*152|0)+4>>2]=p;g[m+(k*152|0)+8>>2]=q;g[m+(k*152|0)+12>>2]=0.0;if((u|0)!=0){s=(+g[u+264>>2]*o+ +g[u+268>>2]*p+ +g[u+272>>2]*q)*+g[u+544>>2];t=(+g[u+296>>2]*o+ +g[u+300>>2]*p+ +g[u+304>>2]*q)*+g[u+552>>2];r=(+g[u+280>>2]*o+ +g[u+284>>2]*p+ +g[u+288>>2]*q)*+g[u+548>>2]}else{s=0.0;t=0.0;r=0.0}g[m+(k*152|0)+64>>2]=s;g[m+(k*152|0)+68>>2]=r;g[m+(k*152|0)+72>>2]=t;g[m+(k*152|0)+76>>2]=0.0;s=+g[d>>2];t=+g[d+4>>2];r=+g[d+8>>2];A=+g[d+12>>2];g[m+(k*152|0)+32>>2]=s;g[m+(k*152|0)+36>>2]=t;g[m+(k*152|0)+40>>2]=r;g[m+(k*152|0)+44>>2]=A;if((h|0)!=0){x=(s*+g[h+264>>2]+t*+g[h+268>>2]+r*+g[h+272>>2])*+g[h+544>>2];v=(s*+g[h+296>>2]+t*+g[h+300>>2]+r*+g[h+304>>2])*+g[h+552>>2];w=(s*+g[h+280>>2]+t*+g[h+284>>2]+r*+g[h+288>>2])*+g[h+548>>2]}else{x=0.0;v=0.0;w=0.0}g[m+(k*152|0)+80>>2]=x;g[m+(k*152|0)+84>>2]=w;g[m+(k*152|0)+88>>2]=v;g[m+(k*152|0)+92>>2]=0.0;if((u|0)!=0){w=+g[u+296>>2]*o+ +g[u+300>>2]*p+ +g[u+304>>2]*q;x=+g[u+280>>2]*o+ +g[u+284>>2]*p+ +g[u+288>>2]*q;A=+g[u+264>>2]*o+ +g[u+268>>2]*p+ +g[u+272>>2]*q}else{w=0.0;x=0.0;A=0.0}if((h|0)!=0){y=s*+g[h+296>>2]+t*+g[h+300>>2]+r*+g[h+304>>2];z=s*+g[h+280>>2]+t*+g[h+284>>2]+r*+g[h+288>>2];v=+g[h+264>>2]*s+ +g[h+268>>2]*t+ +g[h+272>>2]*r}else{y=0.0;z=0.0;v=0.0}v=1.0/(A*o+x*p+w*q+0.0+(v*s+z*t+y*r));g[m+(k*152|0)+108>>2]=v;if((u|0)!=0){w=+g[b+(e*244|0)+192>>2];y=+g[b+(e*244|0)+196>>2];x=+g[b+(e*244|0)+200>>2];z=(+g[b+(e*244|0)+176>>2]+ +g[b+(e*244|0)+208>>2])*0.0+(+g[b+(e*244|0)+180>>2]+ +g[b+(e*244|0)+212>>2])*0.0+(+g[b+(e*244|0)+184>>2]+ +g[b+(e*244|0)+216>>2])*0.0}else{w=0.0;y=0.0;x=0.0;z=0.0}o=z+(w*o+y*p+x*q);if((h|0)==0){x=0.0;y=0.0;A=0.0;z=-0.0;x=x*s;y=y*t;y=x+y;A=A*r;A=y+A;A=z+A;A=o+A;A=0.0-A;A=v*A;C=m+(k*152|0)+112|0;g[C>>2]=A;C=m+(k*152|0)+116|0;g[C>>2]=0.0;A=-n;C=m+(k*152|0)+120|0;g[C>>2]=A;C=m+(k*152|0)+124|0;g[C>>2]=n;i=l;return}x=+g[b+(f*244|0)+192>>2];y=+g[b+(f*244|0)+196>>2];A=+g[b+(f*244|0)+200>>2];z=(+g[b+(f*244|0)+176>>2]+ +g[b+(f*244|0)+208>>2])*-0.0+(+g[b+(f*244|0)+180>>2]+ +g[b+(f*244|0)+212>>2])*-0.0+(+g[b+(f*244|0)+184>>2]+ +g[b+(f*244|0)+216>>2])*-0.0;x=x*s;y=y*t;y=x+y;A=A*r;A=y+A;A=z+A;A=o+A;A=0.0-A;A=v*A;C=m+(k*152|0)+112|0;g[C>>2]=A;C=m+(k*152|0)+116|0;g[C>>2]=0.0;A=-n;C=m+(k*152|0)+120|0;g[C>>2]=A;C=m+(k*152|0)+124|0;g[C>>2]=n;i=l;return}function Rl(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0;e=i;i=i+496|0;f=c[b+212>>2]|0;if((f|0)>-1){b=f;i=e;return b|0}do{if((c[b+236>>2]&2|0)!=0){if(!(+g[b+344>>2]!=0.0)?(c[b+204>>2]&2|0)==0:0){break}f=c[a+8>>2]|0;by(e+244|0,0,244)|0;Nl(Sl(a+4|0,e+244|0)|0,b,d);c[b+212>>2]=f;b=f;i=e;return b|0}}while(0);f=c[a+188>>2]|0;if((f|0)>=0){b=f;i=e;return b|0}c[a+188>>2]=c[a+8>>2];by(e|0,0,244)|0;Nl(Sl(a+4|0,e)|0,0,d);b=c[a+188>>2]|0;i=e;return b|0}function Sl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;f=c[b+4>>2]|0;if((f|0)==(c[b+8>>2]|0)?(g=(f|0)==0?1:f<<1,(f|0)<(g|0)):0){if((g|0)==0){h=f;j=0}else{c[4546]=(c[4546]|0)+1;h=Zx((g*244|3)+16|0)|0;if((h|0)==0){j=0}else{c[(h+19&-16)+ -4>>2]=h;j=h+19&-16}h=c[b+4>>2]|0}if((h|0)>0){k=0;do{m=j+(k*244|0)|0;l=c[b+12>>2]|0;n=l+(k*244|0)|0;c[m+0>>2]=c[n+0>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];m=j+(k*244|0)+16|0;n=l+(k*244|0)+16|0;c[m+0>>2]=c[n+0>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];m=j+(k*244|0)+32|0;n=l+(k*244|0)+32|0;c[m+0>>2]=c[n+0>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];m=j+(k*244|0)+48|0;n=l+(k*244|0)+48|0;c[m+0>>2]=c[n+0>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];ey(j+(k*244|0)+64|0,l+(k*244|0)+64|0,180)|0;k=k+1|0}while((k|0)!=(h|0))}h=c[b+12>>2]|0;if((h|0)!=0){if((a[b+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=j;c[b+8>>2]=g;g=c[b+4>>2]|0}else{g=f}c[b+4>>2]=g+1;n=c[b+12>>2]|0;c[n+(f*244|0)+0>>2]=c[d+0>>2];c[n+(f*244|0)+4>>2]=c[d+4>>2];c[n+(f*244|0)+8>>2]=c[d+8>>2];c[n+(f*244|0)+12>>2]=c[d+12>>2];c[n+(f*244|0)+16>>2]=c[d+16>>2];c[n+(f*244|0)+20>>2]=c[d+20>>2];c[n+(f*244|0)+24>>2]=c[d+24>>2];c[n+(f*244|0)+28>>2]=c[d+28>>2];c[n+(f*244|0)+32>>2]=c[d+32>>2];c[n+(f*244|0)+36>>2]=c[d+36>>2];c[n+(f*244|0)+40>>2]=c[d+40>>2];c[n+(f*244|0)+44>>2]=c[d+44>>2];c[n+(f*244|0)+48>>2]=c[d+48>>2];c[n+(f*244|0)+52>>2]=c[d+52>>2];c[n+(f*244|0)+56>>2]=c[d+56>>2];c[n+(f*244|0)+60>>2]=c[d+60>>2];ey(n+(f*244|0)+64|0,d+64|0,180)|0;i=e;return(c[b+12>>2]|0)+(f*244|0)|0} function lw(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0.0,F=0.0,G=0,H=0.0,I=0.0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,R=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0,ga=0,ha=0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;j=i;i=i+832|0;r=c[b+20>>2]|0;if((r|0)==0){r=c[b+4>>2]|0;r=_b[c[(c[r>>2]|0)+12>>2]&31](r,c[d+8>>2]|0,c[e+8>>2]|0)|0;c[b+20>>2]=r;a[b+16>>0]=1}c[h+4>>2]=r;l=c[d+4>>2]|0;k=c[e+4>>2]|0;u=c[l+4>>2]|0;if((u|0)==10?(c[k+4>>2]|0)==10:0){m=+g[(c[b+20>>2]|0)+752>>2];ta=c[l+52>>2]|0;C=+g[l+(ta<<2)+28>>2];o=+g[l+(((ta+2|0)%3|0)<<2)+28>>2];ua=c[k+52>>2]|0;A=+g[k+(ua<<2)+28>>2];p=+g[k+(((ua+2|0)%3|0)<<2)+28>>2];va=c[d+12>>2]|0;b=c[e+12>>2]|0;v=+g[va+(ta<<2)>>2];q=+g[va+(ta<<2)+16>>2];w=+g[va+(ta<<2)+32>>2];E=+g[b+(ua<<2)>>2];F=+g[b+(ua<<2)+16>>2];B=+g[b+(ua<<2)+32>>2];z=+g[b+48>>2]- +g[va+48>>2];y=+g[b+52>>2]- +g[va+52>>2];x=+g[b+56>>2]- +g[va+56>>2];H=1.0-(v*E+q*F+w*B)*(v*E+q*F+w*B);if(!(H==0.0)){I=(v*z+q*y+w*x-(v*E+q*F+w*B)*(E*z+F*y+B*x))/H;if(!(I<-C)){if(I>C){I=C}}else{I=-C}}else{I=0.0}H=(v*E+q*F+w*B)*I-(E*z+F*y+B*x);if(H<-A){H=(v*E+q*F+w*B)*-A+(v*z+q*y+w*x);if(!(H<-C)){if(H>C){A=-A}else{C=H;A=-A}}else{C=-C;A=-A}}else{if(H>A){H=A*(v*E+q*F+w*B)+(v*z+q*y+w*x);if(!(H<-C)){if(!(H>C)){C=H}}else{C=-C}}else{C=I;A=H}}E=E*A;F=F*A;A=B*A;z=E+(z-v*C);y=F+(y-q*C);B=A+(x-w*C);x=+Q(+(B*B+(z*z+y*y)));if(!(x-o-p>m)){do{if(B*B+(z*z+y*y)<=1.4210854715202004e-14){if(+P(+w)>.7071067690849304){la=1.0/+Q(+(q*q+w*w));g[j+320>>2]=0.0;g[j+324>>2]=-(w*la);g[j+328>>2]=q*la;z=0.0;v=-(w*la);q=q*la;break}else{la=1.0/+Q(+(v*v+q*q));g[j+320>>2]=-(q*la);g[j+324>>2]=v*la;g[j+328>>2]=0.0;z=-(q*la);v=v*la;q=0.0;break}}else{g[j+320>>2]=z*-(1.0/x);g[j+324>>2]=y*-(1.0/x);g[j+328>>2]=B*-(1.0/x);g[j+332>>2]=0.0;z=z*-(1.0/x);v=y*-(1.0/x);q=B*-(1.0/x)}}while(0);ka=p*v+(F+ +g[b+52>>2]);la=p*q+(A+ +g[b+56>>2]);g[j+304>>2]=p*z+(E+ +g[b+48>>2]);g[j+308>>2]=ka;g[j+312>>2]=la;g[j+316>>2]=0.0}if(x-o-p>2]|0)+16>>2]&15](h,j+320|0,j+304|0,x-o-p);r=c[h+4>>2]|0}if((c[r+748>>2]|0)==0){i=j;return}b=c[r+740>>2]|0;d=c[(c[h+8>>2]|0)+8>>2]|0;if((b|0)==(d|0)){Gt(r,b+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);i=j;return}else{Gt(r,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,d+4|0);i=j;return}}else{na=k+4|0}g[j+296>>2]=999999984306749400.0;G=c[b+8>>2]|0;D=c[b+12>>2]|0;c[j+88>>2]=11880;g[j+92>>2]=0.0;g[j+96>>2]=1.0;g[j+100>>2]=0.0;g[j+104>>2]=0.0;c[j+108>>2]=D;c[j+112>>2]=G;c[j+116>>2]=l;c[j+120>>2]=k;c[j+124>>2]=u;c[j+128>>2]=c[na>>2];g[j+132>>2]=+bc[c[(c[l>>2]|0)+48>>2]&15](l);g[j+136>>2]=+bc[c[(c[k>>2]|0)+48>>2]&15](k);a[j+140>>0]=0;c[j+148>>2]=-1;c[j+160>>2]=1;c[j+164>>2]=1;c[j+116>>2]=l;c[j+120>>2]=k;ka=+bc[c[(c[l>>2]|0)+48>>2]&15](l);la=+bc[c[(c[k>>2]|0)+48>>2]&15](k);la=ka+la+ +g[(c[b+20>>2]|0)+752>>2];g[j+296>>2]=la*la;u=c[d+12>>2]|0;c[j+168>>2]=c[u+0>>2];c[j+172>>2]=c[u+4>>2];c[j+176>>2]=c[u+8>>2];c[j+180>>2]=c[u+12>>2];G=j+184|0;c[G+0>>2]=c[u+16>>2];c[G+4>>2]=c[u+20>>2];c[G+8>>2]=c[u+24>>2];c[G+12>>2]=c[u+28>>2];D=j+200|0;c[D+0>>2]=c[u+32>>2];c[D+4>>2]=c[u+36>>2];c[D+8>>2]=c[u+40>>2];c[D+12>>2]=c[u+44>>2];ga=j+216|0;c[ga+0>>2]=c[u+48>>2];c[ga+4>>2]=c[u+52>>2];c[ga+8>>2]=c[u+56>>2];c[ga+12>>2]=c[u+60>>2];u=j+232|0;r=c[e+12>>2]|0;c[u+0>>2]=c[r+0>>2];c[u+4>>2]=c[r+4>>2];c[u+8>>2]=c[r+8>>2];c[u+12>>2]=c[r+12>>2];J=j+248|0;c[J+0>>2]=c[r+16>>2];c[J+4>>2]=c[r+20>>2];c[J+8>>2]=c[r+24>>2];c[J+12>>2]=c[r+28>>2];$=j+264|0;c[$+0>>2]=c[r+32>>2];c[$+4>>2]=c[r+36>>2];c[$+8>>2]=c[r+40>>2];c[$+12>>2]=c[r+44>>2];fa=j+280|0;c[fa+0>>2]=c[r+48>>2];c[fa+4>>2]=c[r+52>>2];c[fa+8>>2]=c[r+56>>2];c[fa+12>>2]=c[r+60>>2];r=c[l+4>>2]|0;do{if((r|0)<7?(s=c[na>>2]|0,(s|0)<7):0){c[j+80>>2]=17392;if((r|0)==0){q=0.0}else{q=+bc[c[(c[l>>2]|0)+48>>2]&15](l);s=c[na>>2]|0}if((s|0)==0){x=0.0}else{x=+bc[c[(c[k>>2]|0)+48>>2]&15](k)}c[j+40>>2]=17200;c[j+44>>2]=h;g[j+64>>2]=q;g[j+68>>2]=x;a[j+76>>0]=0;s=c[l+52>>2]|0;if((s|0)!=0){r=c[k+52>>2]|0;if((r|0)==0){if((c[na>>2]|0)!=1){break}r=j+32|0;a[r>>0]=1;u=j+28|0;c[u>>2]=0;n=j+20|0;c[n>>2]=0;s=j+24|0;c[s>>2]=0;D=c[e+12>>2]|0;ka=+g[k+56>>2];la=+g[k+60>>2];o=+g[k+64>>2];m=ka*+g[D>>2]+la*+g[D+4>>2]+o*+g[D+8>>2]+ +g[D+48>>2];p=ka*+g[D+16>>2]+la*+g[D+20>>2]+o*+g[D+24>>2]+ +g[D+52>>2];o=ka*+g[D+32>>2]+la*+g[D+36>>2]+o*+g[D+40>>2]+ +g[D+56>>2];c[4546]=(c[4546]|0)+1;D=Zx(35)|0;if((D|0)==0){G=0}else{c[(D+19&-16)+ -4>>2]=D;G=D+19&-16}D=c[u>>2]|0;if((D|0)!=0){if((a[r>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0)}c[u>>2]=0}a[r>>0]=1;c[u>>2]=G;c[s>>2]=1;D=c[n>>2]|0;g[G+(D<<4)>>2]=m;g[G+(D<<4)+4>>2]=p;g[G+(D<<4)+8>>2]=o;g[G+(D<<4)+12>>2]=0.0;G=c[n>>2]|0;c[n>>2]=G+1;D=c[e+12>>2]|0;ka=+g[k+72>>2];la=+g[k+76>>2];p=+g[k+80>>2];o=ka*+g[D>>2]+la*+g[D+4>>2]+p*+g[D+8>>2]+ +g[D+48>>2];m=ka*+g[D+16>>2]+la*+g[D+20>>2]+p*+g[D+24>>2]+ +g[D+52>>2];p=ka*+g[D+32>>2]+la*+g[D+36>>2]+p*+g[D+40>>2]+ +g[D+56>>2];D=c[s>>2]|0;if((G+1|0)==(D|0)){D=(G+1|0)==0?1:G+1<<1;if((G+1|0)<(D|0)){if((D|0)!=0?(c[4546]=(c[4546]|0)+1,ma=Zx((D<<4|3)+16|0)|0,(ma|0)!=0):0){c[(ma+19&-16)+ -4>>2]=ma;J=ma+19&-16}else{J=0}if((G|0)>-1){$=0;do{va=J+($<<4)|0;ua=(c[u>>2]|0)+($<<4)|0;c[va+0>>2]=c[ua+0>>2];c[va+4>>2]=c[ua+4>>2];c[va+8>>2]=c[ua+8>>2];c[va+12>>2]=c[ua+12>>2];$=$+1|0}while(($|0)!=(G+1|0))}G=c[u>>2]|0;if((G|0)!=0){if((a[r>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[G+ -4>>2]|0)}c[u>>2]=0}a[r>>0]=1;c[u>>2]=J;c[s>>2]=D;J=c[n>>2]|0}else{J=G+1|0;D=G+1|0}}else{J=G+1|0}G=c[u>>2]|0;g[G+(J<<4)>>2]=o;g[G+(J<<4)+4>>2]=m;g[G+(J<<4)+8>>2]=p;g[G+(J<<4)+12>>2]=0.0;J=J+1|0;c[n>>2]=J;va=c[e+12>>2]|0;ka=+g[k+88>>2];la=+g[k+92>>2];o=+g[k+96>>2];m=ka*+g[va>>2]+la*+g[va+4>>2]+o*+g[va+8>>2]+ +g[va+48>>2];p=ka*+g[va+16>>2]+la*+g[va+20>>2]+o*+g[va+24>>2]+ +g[va+52>>2];o=ka*+g[va+32>>2]+la*+g[va+36>>2]+o*+g[va+40>>2]+ +g[va+56>>2];if((J|0)==(D|0)){e=(D|0)==0?1:D<<1;if((D|0)<(e|0)){if((e|0)!=0?(c[4546]=(c[4546]|0)+1,ha=Zx((e<<4|3)+16|0)|0,(ha|0)!=0):0){c[(ha+19&-16)+ -4>>2]=ha;G=ha+19&-16}else{G=0}if((D|0)>0){J=0;do{va=G+(J<<4)|0;ua=(c[u>>2]|0)+(J<<4)|0;c[va+0>>2]=c[ua+0>>2];c[va+4>>2]=c[ua+4>>2];c[va+8>>2]=c[ua+8>>2];c[va+12>>2]=c[ua+12>>2];J=J+1|0}while((J|0)!=(D|0))}D=c[u>>2]|0;if((D|0)!=0){if((a[r>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0)}c[u>>2]=0}a[r>>0]=1;c[u>>2]=G;c[s>>2]=e;D=c[n>>2]|0}}else{D=J}g[G+(D<<4)>>2]=m;g[G+(D<<4)+4>>2]=p;g[G+(D<<4)+8>>2]=o;g[G+(D<<4)+12>>2]=0.0;c[n>>2]=(c[n>>2]|0)+1;m=+g[(c[b+20>>2]|0)+752>>2];Js(j+88|0,j+168|0,j+80|0,c[f+20>>2]|0,0);p=+g[j+92>>2];q=+g[j+96>>2];o=+g[j+100>>2];if(p*p+q*q+o*o>1.1920928955078125e-7){ka=1.0/(p*p+q*q+o*o);g[j>>2]=p*ka;g[j+4>>2]=q*ka;g[j+8>>2]=o*ka;g[j+12>>2]=0.0;ka=+g[j+144>>2];la=+bc[c[(c[l>>2]|0)+48>>2]&15](l);la=ka-la- +bc[c[(c[k>>2]|0)+48>>2]&15](k);$w(j,c[l+52>>2]|0,c[d+12>>2]|0,j+16|0,la-m,m,h)}do{if((a[b+16>>0]|0)!=0?(t=c[h+4>>2]|0,(c[t+748>>2]|0)!=0):0){b=c[t+740>>2]|0;d=c[(c[h+8>>2]|0)+8>>2]|0;if((b|0)==(d|0)){Gt(t,b+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);break}else{Gt(t,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,d+4|0);break}}}while(0);h=c[u>>2]|0;if((h|0)!=0){if((a[r>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[u>>2]=0}a[r>>0]=1;c[u>>2]=0;c[n>>2]=0;c[s>>2]=0;i=j;return}m=+g[(c[b+20>>2]|0)+752>>2];if((a[f+24>>0]|0)==0){Js(j+88|0,j+168|0,j+40|0,c[f+20>>2]|0,0);o=+g[j+72>>2];if((a[j+76>>0]|0)!=0&o<0.0){K=+g[j+48>>2];L=+g[j+52>>2];I=+g[j+56>>2];H=+g[j+60>>2];n=105}}else{t=c[d+12>>2]|0;f=c[e+12>>2]|0;c[4462]=(c[4462]|0)+1;ea=+g[s+64>>2];ia=+g[s+68>>2];y=+g[t+4>>2];ja=+g[s+72>>2];z=+g[t+8>>2];A=+g[t+16>>2];B=+g[t+20>>2];E=+g[t+24>>2];C=+g[t+32>>2];M=+g[t+36>>2];N=+g[t+40>>2];ka=+g[r+64>>2];la=+g[r+68>>2];q=+g[r+72>>2];o=ea*+g[t>>2]+ia*y+ja*z+ +g[t+48>>2]-(ka*+g[f>>2]+la*+g[f+4>>2]+q*+g[f+8>>2]+ +g[f+48>>2]);p=ea*A+ia*B+ja*E+ +g[t+52>>2]-(ka*+g[f+16>>2]+la*+g[f+20>>2]+q*+g[f+24>>2]+ +g[f+52>>2]);q=ea*C+ia*M+ja*N+ +g[t+56>>2]-(ka*+g[f+32>>2]+la*+g[f+36>>2]+q*+g[f+40>>2]+ +g[f+56>>2]);u=c[s+28>>2]|0;a:do{if((u|0)>0){F=3.4028234663852886e+38;D=0;K=0.0;L=0.0;I=0.0;H=0.0;x=0.0;while(1){va=c[s+36>>2]|0;ja=+g[va+(D*36|0)+20>>2];ka=+g[va+(D*36|0)+24>>2];la=+g[va+(D*36|0)+28>>2];y=ja*+g[t>>2]+ka*y+la*z;z=ja*A+ka*B+la*E;A=ja*C+ka*M+la*N;g[j+400>>2]=y;g[j+404>>2]=z;g[j+408>>2]=A;g[j+412>>2]=0.0;if(o*y+p*z+q*A<0.0){g[j+400>>2]=y*-1.0;g[j+404>>2]=z*-1.0;g[j+408>>2]=A*-1.0;y=y*-1.0;z=z*-1.0;A=A*-1.0}c[4458]=(c[4458]|0)+1;if(_w(t,f,o,p,q,y,z,A,s,r,F)|0){c[4460]=(c[4460]|0)+1;Kw(s,t,j+400|0,j+808|0,j+784|0,j+464|0,j+448|0);Kw(r,f,j+400|0,j+720|0,j+480|0,j+432|0,j+416|0);y=+g[j+784>>2];z=+g[j+720>>2];if(!(y>2],v=+g[j+808>>2],!(w>2];L=+g[j+404>>2];I=+g[j+408>>2];H=+g[j+412>>2]}}D=D+1|0;if((D|0)>=(u|0)){n=52;break a}y=+g[t+4>>2];z=+g[t+8>>2];A=+g[t+16>>2];B=+g[t+20>>2];E=+g[t+24>>2];C=+g[t+32>>2];M=+g[t+36>>2];N=+g[t+40>>2]}}else{F=3.4028234663852886e+38;K=0.0;L=0.0;I=0.0;H=0.0;n=52}}while(0);b:do{if((n|0)==52){u=c[r+28>>2]|0;if((u|0)>0){D=0;v=0.0;do{va=c[r+36>>2]|0;ka=+g[va+(D*36|0)+20>>2];la=+g[va+(D*36|0)+24>>2];x=+g[va+(D*36|0)+28>>2];w=ka*+g[f>>2]+la*+g[f+4>>2]+x*+g[f+8>>2];y=ka*+g[f+16>>2]+la*+g[f+20>>2]+x*+g[f+24>>2];x=ka*+g[f+32>>2]+la*+g[f+36>>2]+x*+g[f+40>>2];g[j+384>>2]=w;g[j+388>>2]=y;g[j+392>>2]=x;g[j+396>>2]=0.0;if(o*w+p*y+q*x<0.0){g[j+384>>2]=w*-1.0;g[j+388>>2]=y*-1.0;g[j+392>>2]=x*-1.0;w=w*-1.0;y=y*-1.0;x=x*-1.0}c[4458]=(c[4458]|0)+1;do{if(_w(t,f,o,p,q,w,y,x,s,r,F)|0){c[4460]=(c[4460]|0)+1;Kw(s,t,j+384|0,j+808|0,j+784|0,j+464|0,j+448|0);Kw(r,f,j+384|0,j+720|0,j+480|0,j+432|0,j+416|0);z=+g[j+784>>2];x=+g[j+720>>2];do{if(z>2];y=+g[j+808>>2];if(w>2];L=+g[j+388>>2];I=+g[j+392>>2];H=+g[j+396>>2]}}while(0);D=D+1|0}while((D|0)<(u|0))}D=c[s+48>>2]|0;if((D|0)>0){$=c[r+48>>2]|0;y=0.0;z=0.0;A=0.0;B=0.0;C=0.0;E=0.0;u=0;G=-1;J=-1;Z=0.0;M=0.0;aa=0.0;N=0.0;ba=0.0;U=0.0;_=0.0;X=0.0;Y=0.0;W=0.0;V=0.0;R=0.0;O=0.0;do{va=c[s+56>>2]|0;ka=+g[va+(u<<4)>>2];la=+g[va+(u<<4)+4>>2];x=+g[va+(u<<4)+8>>2];w=ka*+g[t>>2]+la*+g[t+4>>2]+x*+g[t+8>>2];v=ka*+g[t+16>>2]+la*+g[t+20>>2]+x*+g[t+24>>2];x=ka*+g[t+32>>2]+la*+g[t+36>>2]+x*+g[t+40>>2];if(($|0)>0){D=0;do{va=c[r+56>>2]|0;ka=+g[va+(D<<4)>>2];la=+g[va+(D<<4)+4>>2];ea=+g[va+(D<<4)+8>>2];ca=ka*+g[f>>2]+la*+g[f+4>>2]+ea*+g[f+8>>2];da=ka*+g[f+16>>2]+la*+g[f+20>>2]+ea*+g[f+24>>2];ea=ka*+g[f+32>>2]+la*+g[f+36>>2]+ea*+g[f+40>>2];g[j+368>>2]=v*ea-x*da;g[j+372>>2]=x*ca-w*ea;g[j+376>>2]=w*da-v*ca;g[j+380>>2]=0.0;do{if(!(+P(+(v*ea-x*da))>1.0e-6)){if(+P(+(x*ca-w*ea))>1.0e-6){n=70;break}if(+P(+(w*da-v*ca))>1.0e-6){n=70}}else{n=70}}while(0);do{if((n|0)==70){n=0;ia=1.0/+Q(+((v*ea-x*da)*(v*ea-x*da)+(x*ca-w*ea)*(x*ca-w*ea)+(w*da-v*ca)*(w*da-v*ca)));ja=(v*ea-x*da)*ia;g[j+368>>2]=ja;ka=(x*ca-w*ea)*ia;g[j+372>>2]=ka;ia=(w*da-v*ca)*ia;g[j+376>>2]=ia;if(o*ja+p*ka+q*ia<0.0){g[j+368>>2]=ja*-1.0;g[j+372>>2]=ka*-1.0;g[j+376>>2]=ia*-1.0;ja=ja*-1.0;ka=ka*-1.0;ia=ia*-1.0}c[4458]=(c[4458]|0)+1;if(!(_w(t,f,o,p,q,ja,ka,ia,s,r,F)|0)){break}c[4460]=(c[4460]|0)+1;Kw(s,t,j+368|0,j+808|0,j+784|0,j+464|0,j+448|0);Kw(r,f,j+368|0,j+720|0,j+480|0,j+432|0,j+416|0);ia=+g[j+784>>2];ja=+g[j+720>>2];do{if(!(ia>2];ka=+g[j+808>>2];if(la>2];ba=+g[j+452>>2];_=+g[j+456>>2];Y=+g[j+432>>2];V=+g[j+436>>2];O=+g[j+440>>2];break}else{$=1;Z=la-ka;aa=+g[j+464>>2];ba=+g[j+468>>2];_=+g[j+472>>2];Y=+g[j+416>>2];V=+g[j+420>>2];O=+g[j+424>>2];break}}else{$=0}}while(0);if(!$){r=0;break b}if(!(Z>2];L=+g[j+372>>2];I=+g[j+376>>2];H=+g[j+380>>2];M=aa;N=ba;U=_;X=Y;W=V;R=O}}while(0);D=D+1|0;$=c[r+48>>2]|0}while((D|0)<($|0));D=c[s+48>>2]|0}u=u+1|0}while((u|0)<(D|0))}else{y=0.0;z=0.0;A=0.0;B=0.0;C=0.0;E=0.0;G=-1;J=-1;M=0.0;N=0.0;U=0.0;X=0.0;W=0.0;R=0.0}if((J|G|0)>-1){w=X-M;x=W-N;v=R-U;O=E*C+B*A+z*y;N=E*w+B*x+z*v;M=C*w+A*x+y*v;do{if(!(1.0-O*O==0.0)){if((N-O*M)/(1.0-O*O)<-1.0000000150474662e+30){F=-1.0000000150474662e+30}else{if(!((N-O*M)/(1.0-O*O)>1.0000000150474662e+30)){F=(N-O*M)/(1.0-O*O);break}F=1.0000000150474662e+30}}else{F=0.0}}while(0);M=O*F-M;do{if(M<-1.0000000150474662e+30){if(O*-1.0000000150474662e+30+N<-1.0000000150474662e+30){F=-1.0000000150474662e+30;M=-1.0000000150474662e+30;break}if(!(O*-1.0000000150474662e+30+N>1.0000000150474662e+30)){F=O*-1.0000000150474662e+30+N;M=-1.0000000150474662e+30;break}F=1.0000000150474662e+30;M=-1.0000000150474662e+30}else{if(!(M>1.0000000150474662e+30)){break}if(O*1.0000000150474662e+30+N<-1.0000000150474662e+30){F=-1.0000000150474662e+30;M=1.0000000150474662e+30;break}if(!(O*1.0000000150474662e+30+N>1.0000000150474662e+30)){F=O*1.0000000150474662e+30+N;M=1.0000000150474662e+30;break}F=1.0000000150474662e+30;M=1.0000000150474662e+30}}while(0);C=C*M;A=M*A;y=M*y;w=w-E*F+C;x=x-F*B+A;z=v-F*z+y;g[j+352>>2]=w;g[j+356>>2]=x;g[j+360>>2]=z;g[j+364>>2]=0.0;if(w*w+x*x+z*z>1.1920928955078125e-7){v=+Q(+(w*w+x*x+z*z));g[j+352>>2]=w*(1.0/v);g[j+356>>2]=1.0/v*x;g[j+360>>2]=1.0/v*z;if(w*(1.0/v)*o+1.0/v*x*p+1.0/v*z*q<0.0){g[j+352>>2]=w*(1.0/v)*-1.0;g[j+356>>2]=1.0/v*x*-1.0;g[j+360>>2]=1.0/v*z*-1.0}g[j+336>>2]=X+C;g[j+340>>2]=W+A;g[j+344>>2]=R+y;g[j+348>>2]=0.0;rc[c[(c[h>>2]|0)+16>>2]&15](h,j+352|0,j+336|0,-v)}}if(o*K+p*L+q*I<0.0){r=1;K=-K;L=-L;I=-I;H=0.0}else{r=1}}}while(0);if(r){o=-1.0000000150474662e+30;n=105}}if((n|0)==105){l=c[l+52>>2]|0;k=c[k+52>>2]|0;d=c[d+12>>2]|0;e=c[e+12>>2]|0;o=o-m;v=1.0/+Q(+(K*K+L*L+I*I));p=K*v;q=L*v;v=I*v;g[j+808>>2]=p;g[j+812>>2]=q;g[j+816>>2]=v;g[j+820>>2]=H;r=c[k+28>>2]|0;n=c[k+36>>2]|0;if((r|0)>0){B=+g[e>>2];A=+g[e+4>>2];x=+g[e+8>>2];L=+g[e+16>>2];K=+g[e+20>>2];I=+g[e+24>>2];H=+g[e+32>>2];z=+g[e+36>>2];w=+g[e+40>>2];t=-1;y=-3.4028234663852886e+38;f=0;while(1){F=+g[n+(f*36|0)+20>>2];E=+g[n+(f*36|0)+24>>2];C=+g[n+(f*36|0)+28>>2];s=(F*B+E*A+C*x)*p+(F*L+E*K+C*I)*q+(F*H+E*z+C*w)*v>y;t=s?f:t;f=f+1|0;if((f|0)>=(r|0)){s=t;break}else{y=s?(F*B+E*A+C*x)*p+(F*L+E*K+C*I)*q+(F*H+E*z+C*w)*v:y}}}else{s=-1}a[j+800>>0]=1;r=j+796|0;c[r>>2]=0;c[j+788>>2]=0;c[j+792>>2]=0;f=c[n+(s*36|0)+4>>2]|0;c:do{if((f|0)>0){n=n+(s*36|0)+12|0;J=0;u=0;G=0;t=0;while(1){va=c[(c[n>>2]|0)+(t<<2)>>2]|0;ua=c[k+16>>2]|0;ka=+g[ua+(va<<4)>>2];la=+g[ua+(va<<4)+4>>2];v=+g[ua+(va<<4)+8>>2];q=ka*+g[e>>2]+la*+g[e+4>>2]+v*+g[e+8>>2]+ +g[e+48>>2];p=ka*+g[e+16>>2]+la*+g[e+20>>2]+v*+g[e+24>>2]+ +g[e+52>>2];v=ka*+g[e+32>>2]+la*+g[e+36>>2]+v*+g[e+40>>2]+ +g[e+56>>2];if((J|0)==(u|0)){D=(u|0)==0?1:u<<1;if((u|0)<(D|0)){do{if((D|0)==0){G=0}else{c[4546]=(c[4546]|0)+1;G=Zx((D<<4|3)+16|0)|0;if((G|0)==0){G=0;break}c[(G+19&-16)+ -4>>2]=G;G=G+19&-16}}while(0);if((u|0)>0){J=0;do{va=G+(J<<4)|0;ua=(c[r>>2]|0)+(J<<4)|0;c[va+0>>2]=c[ua+0>>2];c[va+4>>2]=c[ua+4>>2];c[va+8>>2]=c[ua+8>>2];c[va+12>>2]=c[ua+12>>2];J=J+1|0}while((J|0)!=(u|0))}u=c[r>>2]|0;if((u|0)!=0){if((a[j+800>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[u+ -4>>2]|0)}c[r>>2]=0}a[j+800>>0]=1;c[r>>2]=G;c[j+792>>2]=D;D=G;u=c[j+788>>2]|0}else{D=G}}else{D=G;u=J}g[D+(u<<4)>>2]=q;g[D+(u<<4)+4>>2]=p;g[D+(u<<4)+8>>2]=v;g[D+(u<<4)+12>>2]=0.0;J=(c[j+788>>2]|0)+1|0;c[j+788>>2]=J;t=t+1|0;if((t|0)>=(f|0)){break c}u=c[j+792>>2]|0;G=D}}else{D=0}}while(0);if((s|0)>-1){$w(j+808|0,l,d,j+784|0,o,m,h);D=c[r>>2]|0}if((D|0)!=0){if((a[j+800>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[D+ -4>>2]|0)}c[r>>2]=0}}if((a[b+16>>0]|0)==0){i=j;return}e=c[h+4>>2]|0;if((c[e+748>>2]|0)==0){i=j;return}d=c[e+740>>2]|0;b=c[(c[h+8>>2]|0)+8>>2]|0;if((d|0)==(b|0)){Gt(e,d+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);i=j;return}else{Gt(e,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,b+4|0);i=j;return}}}}while(0);Js(j+88|0,j+168|0,h,c[f+20>>2]|0,0);if(((c[b+28>>2]|0)!=0?(c[(c[h+4>>2]|0)+748>>2]|0)<(c[b+32>>2]|0):0)?(m=+g[j+92>>2],o=+g[j+96>>2],p=+g[j+100>>2],m*m+o*o+p*p>1.1920928955078125e-7):0){q=1.0/(m*m+o*o+p*p);if(+P(+(p*q))>.7071067690849304){z=1.0/+Q(+(p*q*p*q+o*q*o*q));x=0.0;y=-(p*q*z);z=o*q*z}else{y=1.0/+Q(+(m*q*m*q+o*q*o*q));x=-(o*q*y);y=m*q*y;z=0.0}v=+bc[c[(c[l>>2]|0)+16>>2]&15](l);w=+bc[c[(c[k>>2]|0)+16>>2]&15](k);A=.019999999552965164/(v>2]=c[j+168>>2];c[j+724>>2]=c[j+172>>2];c[j+728>>2]=c[j+176>>2];c[j+732>>2]=c[j+180>>2];c[j+736>>2]=c[G+0>>2];c[j+740>>2]=c[G+4>>2];c[j+744>>2]=c[G+8>>2];c[j+748>>2]=c[G+12>>2];c[j+752>>2]=c[D+0>>2];c[j+756>>2]=c[D+4>>2];c[j+760>>2]=c[D+8>>2];c[j+764>>2]=c[D+12>>2];c[j+768>>2]=c[ga+0>>2];c[j+772>>2]=c[ga+4>>2];c[j+776>>2]=c[ga+8>>2];c[j+780>>2]=c[ga+12>>2]}else{c[j+720>>2]=c[u+0>>2];c[j+724>>2]=c[u+4>>2];c[j+728>>2]=c[u+8>>2];c[j+732>>2]=c[u+12>>2];c[j+736>>2]=c[J+0>>2];c[j+740>>2]=c[J+4>>2];c[j+744>>2]=c[J+8>>2];c[j+748>>2]=c[J+12>>2];c[j+752>>2]=c[$+0>>2];c[j+756>>2]=c[$+4>>2];c[j+760>>2]=c[$+8>>2];c[j+764>>2]=c[$+12>>2];c[j+768>>2]=c[fa+0>>2];c[j+772>>2]=c[fa+4>>2];c[j+776>>2]=c[fa+8>>2];c[j+780>>2]=c[fa+12>>2]}ua=c[b+28>>2]|0;if((ua|0)>0){B=z*z+(y*y+x*x);A=A>.39269909262657166?.19634954631328583:A*.5;t=j+516|0;s=j+532|0;r=j+548|0;ha=j+564|0;ma=j+580|0;sa=j+596|0;ta=j+612|0;l=j+628|0;n=j+644|0;k=j+660|0;na=j+736|0;pa=j+676|0;oa=j+752|0;ra=j+692|0;qa=j+768|0;if(B>1.1920928955078125e-7){B=+T(+A)/+Q(+B);x=x*B;y=y*B;z=z*B;B=+S(+A);A=+Q(+(p*q*p*q+(m*q*m*q+o*q*o*q)));if(v>2]|0;V=+g[wa>>2];W=+g[wa+16>>2];X=+g[wa+32>>2];Y=+g[wa+4>>2];Z=+g[wa+20>>2];_=+g[wa+36>>2];aa=+g[wa+8>>2];da=+g[wa+24>>2];la=+g[wa+40>>2];g[j+168>>2]=(ea*ba+ca*ka)*X+(W*(ea*ka-ca*ba)+V*(1.0-(ja*ka+U*ba)));g[j+172>>2]=(1.0-(ja*ka+U*ba))*Y+(ea*ka-ca*ba)*Z+(ea*ba+ca*ka)*_;g[j+176>>2]=(1.0-(ja*ka+U*ba))*aa+(ea*ka-ca*ba)*da+(ea*ba+ca*ka)*la;g[j+180>>2]=0.0;g[j+184>>2]=(ja*ba-ca*ia)*X+(V*(ea*ka+ca*ba)+W*(1.0-(ea*ia+U*ba)));g[j+188>>2]=(ea*ka+ca*ba)*Y+(1.0-(ea*ia+U*ba))*Z+(ja*ba-ca*ia)*_;g[j+192>>2]=(ea*ka+ca*ba)*aa+(1.0-(ea*ia+U*ba))*da+(ja*ba-ca*ia)*la;g[j+196>>2]=0.0;g[j+200>>2]=V*(ea*ba-ca*ka)+W*(ja*ba+ca*ia)+X*(1.0-(ea*ia+ja*ka));g[j+204>>2]=(ea*ba-ca*ka)*Y+(ja*ba+ca*ia)*Z+(1.0-(ea*ia+ja*ka))*_;g[j+208>>2]=(ea*ba-ca*ka)*aa+(ja*ba+ca*ia)*da+(1.0-(ea*ia+ja*ka))*la;g[j+212>>2]=0.0;wa=c[e+12>>2]|0;c[u+0>>2]=c[wa+0>>2];c[u+4>>2]=c[wa+4>>2];c[u+8>>2]=c[wa+8>>2];c[u+12>>2]=c[wa+12>>2];c[J+0>>2]=c[wa+16>>2];c[J+4>>2]=c[wa+20>>2];c[J+8>>2]=c[wa+24>>2];c[J+12>>2]=c[wa+28>>2];c[$+0>>2]=c[wa+32>>2];c[$+4>>2]=c[wa+36>>2];c[$+8>>2]=c[wa+40>>2];c[$+12>>2]=c[wa+44>>2];c[fa+0>>2]=c[wa+48>>2];c[fa+4>>2]=c[wa+52>>2];c[fa+8>>2]=c[wa+56>>2];c[fa+12>>2]=c[wa+60>>2];wa=c[f+20>>2]|0;c[j+480>>2]=17120;c[j+512>>2]=h;c[t+0>>2]=c[j+168>>2];c[t+4>>2]=c[j+172>>2];c[t+8>>2]=c[j+176>>2];c[t+12>>2]=c[j+180>>2];c[s+0>>2]=c[G+0>>2];c[s+4>>2]=c[G+4>>2];c[s+8>>2]=c[G+8>>2];c[s+12>>2]=c[G+12>>2];c[r+0>>2]=c[D+0>>2];c[r+4>>2]=c[D+4>>2];c[r+8>>2]=c[D+8>>2];c[r+12>>2]=c[D+12>>2];c[ha+0>>2]=c[ga+0>>2];c[ha+4>>2]=c[ga+4>>2];c[ha+8>>2]=c[ga+8>>2];c[ha+12>>2]=c[ga+12>>2];c[ma+0>>2]=c[u+0>>2];c[ma+4>>2]=c[u+4>>2];c[ma+8>>2]=c[u+8>>2];c[ma+12>>2]=c[u+12>>2];c[sa+0>>2]=c[J+0>>2];c[sa+4>>2]=c[J+4>>2];c[sa+8>>2]=c[J+8>>2];c[sa+12>>2]=c[J+12>>2];c[ta+0>>2]=c[$+0>>2];c[ta+4>>2]=c[$+4>>2];c[ta+8>>2]=c[$+8>>2];c[ta+12>>2]=c[$+12>>2];c[l+0>>2]=c[fa+0>>2];c[l+4>>2]=c[fa+4>>2];c[l+8>>2]=c[fa+8>>2];c[l+12>>2]=c[fa+12>>2];c[n+0>>2]=c[j+720>>2];c[n+4>>2]=c[j+724>>2];c[n+8>>2]=c[j+728>>2];c[n+12>>2]=c[j+732>>2];c[k+0>>2]=c[na+0>>2];c[k+4>>2]=c[na+4>>2];c[k+8>>2]=c[na+8>>2];c[k+12>>2]=c[na+12>>2];c[pa+0>>2]=c[oa+0>>2];c[pa+4>>2]=c[oa+4>>2];c[pa+8>>2]=c[oa+8>>2];c[pa+12>>2]=c[oa+12>>2];c[ra+0>>2]=c[qa+0>>2];c[ra+4>>2]=c[qa+4>>2];c[ra+8>>2]=c[qa+8>>2];c[ra+12>>2]=c[qa+12>>2];a[j+708>>0]=v>2]=wa;Js(j+88|0,j+168|0,j+480|0,wa,0);ua=c[b+28>>2]|0;va=va+1|0}while((va|0)<(ua|0))}else{va=0;do{W=+(va|0)*(6.2831854820251465/+(ua|0))*.5;ia=+T(+W)/A;W=+S(+W);wa=c[d+12>>2]|0;c[j+168>>2]=c[wa+0>>2];c[j+172>>2]=c[wa+4>>2];c[j+176>>2]=c[wa+8>>2];c[j+180>>2]=c[wa+12>>2];c[G+0>>2]=c[wa+16>>2];c[G+4>>2]=c[wa+20>>2];c[G+8>>2]=c[wa+24>>2];c[G+12>>2]=c[wa+28>>2];c[D+0>>2]=c[wa+32>>2];c[D+4>>2]=c[wa+36>>2];c[D+8>>2]=c[wa+40>>2];c[D+12>>2]=c[wa+44>>2];c[ga+0>>2]=c[wa+48>>2];c[ga+4>>2]=c[wa+52>>2];c[ga+8>>2]=c[wa+56>>2];c[ga+12>>2]=c[wa+60>>2];ba=z*-(o*q*ia)+(x*W+B*-(m*q*ia))-y*-(p*q*ia);ka=x*-(p*q*ia)+(y*W+B*-(o*q*ia))-z*-(m*q*ia);ca=y*-(m*q*ia)+(z*W+B*-(p*q*ia))-x*-(o*q*ia);V=B*W-x*-(m*q*ia)-y*-(o*q*ia)-z*-(p*q*ia);ea=p*q*ia*ka+(m*q*ia*V+W*ba)-o*q*ia*ca;ja=m*q*ia*ca+(W*ka+o*q*ia*V)-p*q*ia*ba;U=o*q*ia*ba+(p*q*ia*V+W*ca)-m*q*ia*ka;ca=W*V-m*q*ia*ba-o*q*ia*ka-p*q*ia*ca;ia=ea*(2.0/(ca*ca+(U*U+(ea*ea+ja*ja))));ka=ja*(2.0/(ca*ca+(U*U+(ea*ea+ja*ja))));ba=U*(2.0/(ca*ca+(U*U+(ea*ea+ja*ja))));wa=c[e+12>>2]|0;V=+g[wa>>2];W=+g[wa+16>>2];X=+g[wa+32>>2];Y=+g[wa+4>>2];Z=+g[wa+20>>2];_=+g[wa+36>>2];aa=+g[wa+8>>2];da=+g[wa+24>>2];la=+g[wa+40>>2];g[j+232>>2]=(ea*ba+ca*ka)*X+(W*(ea*ka-ca*ba)+V*(1.0-(ja*ka+U*ba)));g[j+236>>2]=(1.0-(ja*ka+U*ba))*Y+(ea*ka-ca*ba)*Z+(ea*ba+ca*ka)*_;g[j+240>>2]=(1.0-(ja*ka+U*ba))*aa+(ea*ka-ca*ba)*da+(ea*ba+ca*ka)*la;g[j+244>>2]=0.0;g[j+248>>2]=(ja*ba-ca*ia)*X+(V*(ea*ka+ca*ba)+W*(1.0-(ea*ia+U*ba)));g[j+252>>2]=(ea*ka+ca*ba)*Y+(1.0-(ea*ia+U*ba))*Z+(ja*ba-ca*ia)*_;g[j+256>>2]=(ea*ka+ca*ba)*aa+(1.0-(ea*ia+U*ba))*da+(ja*ba-ca*ia)*la;g[j+260>>2]=0.0;g[j+264>>2]=V*(ea*ba-ca*ka)+W*(ja*ba+ca*ia)+X*(1.0-(ea*ia+ja*ka));g[j+268>>2]=(ea*ba-ca*ka)*Y+(ja*ba+ca*ia)*Z+(1.0-(ea*ia+ja*ka))*_;g[j+272>>2]=(ea*ba-ca*ka)*aa+(ja*ba+ca*ia)*da+(1.0-(ea*ia+ja*ka))*la;g[j+276>>2]=0.0;wa=c[f+20>>2]|0;c[j+480>>2]=17120;c[j+512>>2]=h;c[t+0>>2]=c[j+168>>2];c[t+4>>2]=c[j+172>>2];c[t+8>>2]=c[j+176>>2];c[t+12>>2]=c[j+180>>2];c[s+0>>2]=c[G+0>>2];c[s+4>>2]=c[G+4>>2];c[s+8>>2]=c[G+8>>2];c[s+12>>2]=c[G+12>>2];c[r+0>>2]=c[D+0>>2];c[r+4>>2]=c[D+4>>2];c[r+8>>2]=c[D+8>>2];c[r+12>>2]=c[D+12>>2];c[ha+0>>2]=c[ga+0>>2];c[ha+4>>2]=c[ga+4>>2];c[ha+8>>2]=c[ga+8>>2];c[ha+12>>2]=c[ga+12>>2];c[ma+0>>2]=c[u+0>>2];c[ma+4>>2]=c[u+4>>2];c[ma+8>>2]=c[u+8>>2];c[ma+12>>2]=c[u+12>>2];c[sa+0>>2]=c[J+0>>2];c[sa+4>>2]=c[J+4>>2];c[sa+8>>2]=c[J+8>>2];c[sa+12>>2]=c[J+12>>2];c[ta+0>>2]=c[$+0>>2];c[ta+4>>2]=c[$+4>>2];c[ta+8>>2]=c[$+8>>2];c[ta+12>>2]=c[$+12>>2];c[l+0>>2]=c[fa+0>>2];c[l+4>>2]=c[fa+4>>2];c[l+8>>2]=c[fa+8>>2];c[l+12>>2]=c[fa+12>>2];c[n+0>>2]=c[j+720>>2];c[n+4>>2]=c[j+724>>2];c[n+8>>2]=c[j+728>>2];c[n+12>>2]=c[j+732>>2];c[k+0>>2]=c[na+0>>2];c[k+4>>2]=c[na+4>>2];c[k+8>>2]=c[na+8>>2];c[k+12>>2]=c[na+12>>2];c[pa+0>>2]=c[oa+0>>2];c[pa+4>>2]=c[oa+4>>2];c[pa+8>>2]=c[oa+8>>2];c[pa+12>>2]=c[oa+12>>2];c[ra+0>>2]=c[qa+0>>2];c[ra+4>>2]=c[qa+4>>2];c[ra+8>>2]=c[qa+8>>2];c[ra+12>>2]=c[qa+12>>2];a[j+708>>0]=v>2]=wa;Js(j+88|0,j+168|0,j+480|0,wa,0);ua=c[b+28>>2]|0;va=va+1|0}while((va|0)<(ua|0))}}else{if(v>0]|0)==0){i=j;return}b=c[h+4>>2]|0;if((c[b+748>>2]|0)==0){i=j;return}d=c[b+740>>2]|0;e=c[(c[h+8>>2]|0)+8>>2]|0;if((d|0)==(e|0)){Gt(b,d+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);i=j;return}else{Gt(b,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,e+4|0);i=j;return}}function mw(a){a=a|0;return}function nw(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;f=i;i=i+624|0;p=+g[d+116>>2]- +g[d+52>>2];o=+g[d+120>>2]- +g[d+56>>2];n=+g[d+124>>2]- +g[d+60>>2];l=+g[e+116>>2]- +g[e+52>>2];k=+g[e+120>>2]- +g[e+56>>2];j=+g[e+124>>2]- +g[e+60>>2];m=+g[d+252>>2];if(p*p+o*o+n*n>2],l*l+k*k+j*j>2]|0;p=+g[e+248>>2];c[f+576>>2]=0;g[f+580>>2]=1.0;g[f+584>>2]=1.0;g[f+588>>2]=1.0;g[f+592>>2]=0.0;c[f+568>>2]=15008;c[f+572>>2]=8;g[f+596>>2]=p;g[f+612>>2]=p;c[f+392>>2]=8584;g[f+556>>2]=999999984306749400.0;c[f+560>>2]=0;g[f+564>>2]=0.0;g[f+340>>2]=9999999747378752.0e-20;a[f+364>>0]=0;c[f+16>>2]=11672;c[f+20>>2]=f+32;c[f+24>>2]=b;c[f+28>>2]=f+568;if(Fs(f+16|0,d+4|0,d+68|0,e+4|0,e+68|0,f+392|0)|0){k=+g[f+556>>2];if(+g[d+244>>2]>k){g[d+244>>2]=k}if(+g[e+244>>2]>k){g[e+244>>2]=k}if(!(k<1.0)){k=1.0}}else{k=1.0}b=c[e+192>>2]|0;p=+g[d+248>>2];c[f+576>>2]=0;g[f+580>>2]=1.0;g[f+584>>2]=1.0;g[f+588>>2]=1.0;g[f+592>>2]=0.0;c[f+568>>2]=15008;c[f+572>>2]=8;g[f+596>>2]=p;g[f+612>>2]=p;c[f+392>>2]=8584;g[f+556>>2]=999999984306749400.0;c[f+560>>2]=0;g[f+564>>2]=0.0;g[f+340>>2]=9999999747378752.0e-20;a[f+364>>0]=a[f+364>>0]&-16;c[f>>2]=11672;c[f+4>>2]=f+32;c[f+8>>2]=f+568;c[f+12>>2]=b;if(!(Fs(f,d+4|0,d+68|0,e+4|0,e+68|0,f+392|0)|0)){p=k;i=f;return+p}j=+g[f+556>>2];if(+g[d+244>>2]>j){g[d+244>>2]=j}if(+g[e+244>>2]>j){g[e+244>>2]=j}if(!(k>j)){p=k;i=f;return+p}p=j;i=f;return+p}function ow(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if((c[b+20>>2]|0)==0){i=e;return}if((a[b+16>>0]|0)==0){i=e;return}h=c[d+4>>2]|0;if((h|0)==(c[d+8>>2]|0)?(f=(h|0)==0?1:h<<1,(h|0)<(f|0)):0){if((f|0)==0){g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((f<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[d+4>>2]|0}if((h|0)>0){j=0;do{k=g+(j<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[d+12>>2]|0)+(j<<2)>>2]}j=j+1|0}while((j|0)!=(h|0))}j=c[d+12>>2]|0;if((j|0)!=0){if((a[d+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);h=c[d+4>>2]|0}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=g;c[d+8>>2]=f}f=(c[d+12>>2]|0)+(h<<2)|0;if((f|0)!=0){c[f>>2]=c[b+20>>2]}c[d+4>>2]=h+1;i=e;return}function pw(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;e=i;f=c[d>>2]|0;f=hc[c[(c[f>>2]|0)+56>>2]&31](f,36)|0;if((f|0)==0){f=0;i=e;return f|0}h=c[d+4>>2]|0;k=c[b+12>>2]|0;j=c[b+8>>2]|0;g=c[b+16>>2]|0;b=c[b+20>>2]|0;c[f+4>>2]=c[d>>2];c[f>>2]=16984;c[f+8>>2]=k;c[f+12>>2]=j;a[f+16>>0]=0;c[f+20>>2]=h;a[f+24>>0]=0;c[f+28>>2]=g;c[f+32>>2]=b;i=e;return f|0}function qw(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function rw(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0;l=i;i=i+16|0;n=+g[d>>2];h=+g[d+4>>2];j=+g[d+8>>2];m=+g[e>>2];k=+g[e+4>>2];o=+g[e+8>>2];if((a[b+228>>0]|0)==0){z=+g[b+100>>2];w=+g[b+116>>2];C=+g[b+132>>2];y=+g[b+104>>2];u=+g[b+120>>2];B=+g[b+136>>2];x=+g[b+108>>2];s=+g[b+124>>2];A=+g[b+140>>2];F=-+g[b+148>>2];E=-+g[b+152>>2];D=-+g[b+156>>2];I=+g[b+164>>2];r=+g[b+168>>2];J=+g[b+172>>2];H=+g[b+180>>2];G=+g[b+184>>2];q=+g[b+188>>2];v=+g[b+196>>2];t=+g[b+200>>2];p=+g[b+204>>2];r=o*(C*I+B*r+A*J)+(m*(z*I+y*r+x*J)+k*(w*I+u*r+s*J))+((x*F+s*E+A*D)*J+(I*(z*F+w*E+C*D)+r*(y*F+u*E+B*D))+ +g[b+212>>2]);q=o*(C*H+B*G+A*q)+(m*(z*H+y*G+x*q)+k*(w*H+u*G+s*q))+((z*F+w*E+C*D)*H+(y*F+u*E+B*D)*G+(x*F+s*E+A*D)*q+ +g[b+216>>2]);p=(z*F+w*E+C*D)*v+(y*F+u*E+B*D)*t+(x*F+s*E+A*D)*p+ +g[b+220>>2]+(o*(C*v+B*t+A*p)+(m*(z*v+y*t+x*p)+k*(w*v+u*t+s*p)));g[l>>2]=r;g[l+4>>2]=q;g[l+8>>2]=p;g[l+12>>2]=0.0;o=(n*f+m-r)*+g[d>>2]+(h*f+k-q)*+g[d+4>>2]+(j*f+o-p)*+g[d+8>>2];e=b+32|0;e=c[e>>2]|0;b=c[e>>2]|0;b=b+16|0;b=c[b>>2]|0;rc[b&15](e,d,l,o);i=l;return}else{z=+g[b+36>>2];C=+g[b+52>>2];w=+g[b+68>>2];A=+g[b+40>>2];E=+g[b+56>>2];x=+g[b+72>>2];B=+g[b+44>>2];G=+g[b+60>>2];y=+g[b+76>>2];t=-+g[b+84>>2];u=-+g[b+88>>2];v=-+g[b+92>>2];q=+g[b+164>>2];H=+g[b+168>>2];p=+g[b+172>>2];r=+g[b+180>>2];s=+g[b+184>>2];I=+g[b+188>>2];D=+g[b+196>>2];F=+g[b+200>>2];J=+g[b+204>>2];H=(j*f+o)*(w*q+x*H+y*p)+((n*f+m)*(z*q+A*H+B*p)+(h*f+k)*(C*q+E*H+G*p))+((B*t+G*u+y*v)*p+(q*(z*t+C*u+w*v)+H*(A*t+E*u+x*v))+ +g[b+212>>2]);I=(j*f+o)*(w*r+x*s+y*I)+((n*f+m)*(z*r+A*s+B*I)+(h*f+k)*(C*r+E*s+G*I))+((z*t+C*u+w*v)*r+(A*t+E*u+x*v)*s+(B*t+G*u+y*v)*I+ +g[b+216>>2]);J=(z*t+C*u+w*v)*D+(A*t+E*u+x*v)*F+(B*t+G*u+y*v)*J+ +g[b+220>>2]+((j*f+o)*(w*D+x*F+y*J)+((n*f+m)*(z*D+A*F+B*J)+(h*f+k)*(C*D+E*F+G*J)));g[l>>2]=H+n*(n*(H-m)+h*(I-k)+j*(J-o));g[l+4>>2]=I+h*(n*(H-m)+h*(I-k)+j*(J-o));g[l+8>>2]=J+j*(n*(H-m)+h*(I-k)+j*(J-o));g[l+12>>2]=0.0;J=n*(H-m)+h*(I-k)+j*(J-o);e=b+32|0;e=c[e>>2]|0;b=c[e>>2]|0;b=b+16|0;b=c[b>>2]|0;rc[b&15](e,d,l,J);i=l;return}}function sw(a){a=a|0;return}function tw(a){a=a|0;return}function uw(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function vw(a,b,c){a=a|0;b=b|0;c=c|0;return}function ww(a,b,c){a=a|0;b=b|0;c=c|0;return}function xw(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var h=0,j=0.0,k=0.0,l=0.0;h=i;i=i+16|0;g[b+32>>2]=f;c[b+8>>2]=c[d+0>>2];c[b+12>>2]=c[d+4>>2];c[b+16>>2]=c[d+8>>2];c[b+20>>2]=c[d+12>>2];j=+g[b+28>>2];l=+g[e+4>>2]-j*+g[d+4>>2];k=+g[e+8>>2]-j*+g[d+8>>2];g[h>>2]=+g[e>>2]- +g[d>>2]*j;g[h+4>>2]=l;g[h+8>>2]=k;g[h+12>>2]=0.0;f=+g[b+24>>2]+j+f;g[b+32>>2]=f;if(!(f<0.0)){e=b+4|0;e=c[e>>2]|0;b=c[e>>2]|0;b=b+16|0;b=c[b>>2]|0;rc[b&15](e,d,h,f);i=h;return}a[b+36>>0]=1;e=b+4|0;e=c[e>>2]|0;b=c[e>>2]|0;b=b+16|0;b=c[b>>2]|0;rc[b&15](e,d,h,f);i=h;return}function yw(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function zw(a,b,c){a=a|0;b=b|0;c=c|0;return}function Aw(a,b,c){a=a|0;b=b|0;c=c|0;return}function Bw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return}function Cw(b){b=b|0;var d=0,e=0,f=0;d=i;c[b>>2]=17576;if((a[b+8>>0]|0)!=0){e=c[b+12>>2]|0;if((e|0)!=0){f=c[b+4>>2]|0;Pb[c[(c[f>>2]|0)+16>>2]&127](f,e)}if((b|0)==0){i=d;return}}_x(b);i=d;return}function Dw(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=17576;if((a[b+8>>0]|0)==0){i=d;return}e=c[b+12>>2]|0;if((e|0)==0){i=d;return}b=c[b+4>>2]|0;Pb[c[(c[b>>2]|0)+16>>2]&127](b,e);i=d;return}function Ew(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0.0,R=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0;f=i;i=i+128|0;if((c[b+12>>2]|0)==0){i=f;return}C=(a[b+16>>0]|0)!=0;K=C?e:d;C=C?d:e;o=c[K+4>>2]|0;j=c[C+4>>2]|0;K=c[K+12>>2]|0;q=+g[K>>2];D=+g[K+16>>2];z=+g[K+32>>2];t=+g[K+4>>2];s=+g[K+20>>2];r=+g[K+36>>2];p=+g[K+8>>2];n=+g[K+24>>2];y=+g[K+40>>2];F=+g[K+48>>2];G=+g[K+52>>2];H=+g[K+56>>2];K=c[C+12>>2]|0;O=+g[K>>2];N=+g[K+16>>2];k=+g[K+32>>2];M=+g[K+4>>2];L=+g[K+20>>2];x=+g[K+36>>2];m=+g[K+8>>2];B=+g[K+24>>2];v=+g[K+40>>2];I=-+g[K+48>>2];E=-+g[K+52>>2];u=-+g[K+56>>2];K=c[(c[o>>2]|0)+64>>2]|0;A=-+g[j+48>>2];l=-+g[j+52>>2];w=-+g[j+56>>2];g[f+32>>2]=(q*O+D*N+z*k)*A+(q*M+D*L+z*x)*l+(q*m+D*B+z*v)*w;g[f+36>>2]=(t*O+s*N+r*k)*A+(t*M+s*L+r*x)*l+(t*m+s*B+r*v)*w;g[f+40>>2]=(p*O+n*N+y*k)*A+(p*M+n*L+y*x)*l+(p*m+n*B+y*v)*w;g[f+44>>2]=0.0;sc[K&63](f+48|0,o,f+32|0);w=+g[f+48>>2];l=+g[f+52>>2];A=+g[f+56>>2];k=F*O+G*N+H*k+(O*I+N*E+k*u)+((q*O+D*N+z*k)*w+(t*O+s*N+r*k)*l+(p*O+n*N+y*k)*A);x=F*M+G*L+H*x+(M*I+L*E+x*u)+((q*M+D*L+z*x)*w+(t*M+s*L+r*x)*l+(p*M+n*L+y*x)*A);A=F*m+G*B+H*v+(m*I+B*E+v*u)+((q*m+D*B+z*v)*w+(t*m+s*B+r*v)*l+(p*m+n*B+y*v)*A);v=+g[j+48>>2];y=+g[j+52>>2];B=+g[j+56>>2];n=B*A+(v*k+y*x)- +g[j+64>>2];K=c[C+12>>2]|0;m=+g[K>>2];p=+g[K+4>>2];l=+g[K+8>>2];r=+g[K+16>>2];s=+g[K+20>>2];t=+g[K+24>>2];w=+g[K+32>>2];z=+g[K+36>>2];D=+g[K+40>>2];q=+g[K+48>>2];u=+g[K+52>>2];E=+g[K+56>>2];K=c[b+12>>2]|0;J=n<+g[K+752>>2];c[h+4>>2]=K;if(J){K=c[C+12>>2]|0;N=v*+g[K+16>>2]+y*+g[K+20>>2]+B*+g[K+24>>2];O=v*+g[K+32>>2]+y*+g[K+36>>2]+B*+g[K+40>>2];g[f+16>>2]=+g[K>>2]*v+ +g[K+4>>2]*y+ +g[K+8>>2]*B;g[f+20>>2]=N;g[f+24>>2]=O;g[f+28>>2]=0.0;g[f>>2]=l*(A-B*n)+(m*(k-v*n)+p*(x-y*n))+q;g[f+4>>2]=(k-v*n)*r+(x-y*n)*s+(A-B*n)*t+u;g[f+8>>2]=(k-v*n)*w+(x-y*n)*z+(A-B*n)*D+E;g[f+12>>2]=0.0;rc[c[(c[h>>2]|0)+16>>2]&15](h,f+16|0,f,n)}if((c[o+4>>2]|0)<7?(c[(c[h+4>>2]|0)+748>>2]|0)<(c[b+24>>2]|0):0){l=+g[j+56>>2];if(+P(+l)>.7071067690849304){O=+g[j+52>>2];m=1.0/+Q(+(l*l+O*O));k=0.0;l=-(l*m);m=O*m}else{m=+g[j+48>>2];k=+g[j+52>>2];l=1.0/+Q(+(m*m+k*k));k=-(k*l);l=m*l;m=0.0}O=.019999999552965164/+bc[c[(c[o>>2]|0)+16>>2]&15](o);n=+Q(+(m*m+(l*l+k*k)));O=O>.39269909262657166?.19634954631328583:O*.5;n=+T(+O)/n;k=k*n;l=l*n;n=m*n;m=+S(+O);C=c[b+20>>2]|0;if((C|0)>0){o=0;do{q=+g[j+48>>2];O=+g[j+52>>2];p=+g[j+56>>2];x=+(o|0)*(6.2831854820251465/+(C|0))*.5;N=+T(+x)/+Q(+(q*q+O*O+p*p));x=+S(+x);z=n*-(O*N)+(k*x+m*-(q*N))-l*-(p*N);s=k*-(p*N)+(l*x+m*-(O*N))-n*-(q*N);fa=l*-(q*N)+(n*x+m*-(p*N))-k*-(O*N);A=m*x-k*-(q*N)-l*-(O*N)-n*-(p*N);E=p*N*s+(q*N*A+x*z)-O*N*fa;D=q*N*fa+(x*s+O*N*A)-p*N*z;ba=O*N*z+(p*N*A+x*fa)-q*N*s;fa=x*A-q*N*z-O*N*s-p*N*fa;C=(a[b+16>>0]|0)!=0;$=C?e:d;C=C?d:e;K=c[$+4>>2]|0;J=c[C+4>>2]|0;$=c[$+12>>2]|0;N=+g[$>>2];p=+g[$+4>>2];s=+g[$+8>>2];O=+g[$+16>>2];z=+g[$+20>>2];q=+g[$+24>>2];A=+g[$+32>>2];x=+g[$+36>>2];H=+g[$+40>>2];W=+g[$+48>>2];V=+g[$+52>>2];U=+g[$+56>>2];$=c[C+12>>2]|0;_=+g[$>>2];Z=+g[$+16>>2];u=+g[$+32>>2];Y=+g[$+4>>2];X=+g[$+20>>2];w=+g[$+36>>2];r=+g[$+8>>2];F=+g[$+24>>2];G=+g[$+40>>2];R=-+g[$+48>>2];L=-+g[$+52>>2];M=-+g[$+56>>2];t=E*(2.0/(E*E+D*D+ba*ba+fa*fa));I=D*(2.0/(E*E+D*D+ba*ba+fa*fa));ga=ba*(2.0/(E*E+D*D+ba*ba+fa*fa));da=s*(E*ga-fa*I)+(p*(E*I+fa*ga)+N*(1.0-(D*I+ba*ga)));aa=s*(D*ga+fa*t)+(N*(E*I-fa*ga)+p*(1.0-(E*t+ba*ga)));y=N*(E*ga+fa*I)+p*(D*ga-fa*t)+s*(1.0-(E*t+D*I));ca=q*(E*ga-fa*I)+(z*(E*I+fa*ga)+O*(1.0-(D*I+ba*ga)));B=q*(D*ga+fa*t)+(O*(E*I-fa*ga)+z*(1.0-(E*t+ba*ga)));v=O*(E*ga+fa*I)+z*(D*ga-fa*t)+q*(1.0-(E*t+D*I));ea=H*(E*ga-fa*I)+(x*(E*I+fa*ga)+A*(1.0-(D*I+ba*ga)));ba=H*(D*ga+fa*t)+(A*(E*I-fa*ga)+x*(1.0-(E*t+ba*ga)));I=A*(E*ga+fa*I)+x*(D*ga-fa*t)+H*(1.0-(E*t+D*I));$=c[(c[K>>2]|0)+64>>2]|0;D=-+g[J+48>>2];t=-+g[J+52>>2];E=-+g[J+56>>2];g[f+96>>2]=(G*ea+(r*da+F*ca))*E+((u*ea+(_*da+Z*ca))*D+(w*ea+(Y*da+X*ca))*t);g[f+100>>2]=(G*ba+(r*aa+F*B))*E+((u*ba+(_*aa+Z*B))*D+(w*ba+(Y*aa+X*B))*t);g[f+104>>2]=(G*I+(r*y+F*v))*E+((u*I+(_*y+Z*v))*D+(w*I+(Y*y+X*v))*t);g[f+108>>2]=0.0;sc[$&63](f+112|0,K,f+96|0);t=+g[f+112>>2];v=+g[f+116>>2];y=+g[f+120>>2];I=+g[J+48>>2];D=+g[J+52>>2];E=+g[J+56>>2];B=E*(W*r+V*F+U*G+(r*R+F*L+G*M)+((N*r+O*F+A*G)*t+(p*r+z*F+x*G)*v+(s*r+q*F+H*G)*y))+(I*(W*_+V*Z+U*u+(_*R+Z*L+u*M)+((N*_+O*Z+A*u)*t+(p*_+z*Z+x*u)*v+(s*_+q*Z+H*u)*y))+D*(W*Y+V*X+U*w+(Y*R+X*L+w*M)+((N*Y+O*X+A*w)*t+(p*Y+z*X+x*w)*v+(s*Y+q*X+H*w)*y)))- +g[J+64>>2];u=W*_+V*Z+U*u+(_*R+Z*L+u*M)+((N*_+O*Z+A*u)*t+(p*_+z*Z+x*u)*v+(s*_+q*Z+H*u)*y)-I*B;w=W*Y+V*X+U*w+(Y*R+X*L+w*M)+((N*Y+O*X+A*w)*t+(p*Y+z*X+x*w)*v+(s*Y+q*X+H*w)*y)-D*B;y=W*r+V*F+U*G+(r*R+F*L+G*M)+((N*r+O*F+A*G)*t+(p*r+z*F+x*G)*v+(s*r+q*F+H*G)*y)-E*B;J=c[C+12>>2]|0;G=+g[J>>2];H=+g[J+4>>2];F=+g[J+8>>2];q=+g[J+16>>2];r=+g[J+20>>2];s=+g[J+24>>2];v=+g[J+32>>2];x=+g[J+36>>2];z=+g[J+40>>2];p=+g[J+48>>2];t=+g[J+52>>2];A=+g[J+56>>2];J=c[b+12>>2]|0;K=B<+g[J+752>>2];c[h+4>>2]=J;if(K){$=c[C+12>>2]|0;fa=I*+g[$+16>>2]+D*+g[$+20>>2]+E*+g[$+24>>2];ga=I*+g[$+32>>2]+D*+g[$+36>>2]+E*+g[$+40>>2];g[f+80>>2]=+g[$>>2]*I+ +g[$+4>>2]*D+ +g[$+8>>2]*E;g[f+84>>2]=fa;g[f+88>>2]=ga;g[f+92>>2]=0.0;g[f+64>>2]=F*y+(G*u+H*w)+p;g[f+68>>2]=u*q+w*r+y*s+t;g[f+72>>2]=u*v+w*x+y*z+A;g[f+76>>2]=0.0;rc[c[(c[h>>2]|0)+16>>2]&15](h,f+80|0,f+64|0,B)}o=o+1|0;C=c[b+20>>2]|0}while((o|0)<(C|0))}}if((a[b+8>>0]|0)==0){i=f;return}if((c[(c[b+12>>2]|0)+748>>2]|0)==0){i=f;return}b=c[h+4>>2]|0;if((c[b+748>>2]|0)==0){i=f;return}d=c[b+740>>2]|0;e=c[(c[h+8>>2]|0)+8>>2]|0;if((d|0)==(e|0)){Gt(b,d+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);i=f;return}else{Gt(b,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,e+4|0);i=f;return}}function Fw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function Gw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if((c[b+12>>2]|0)==0){i=e;return}if((a[b+8>>0]|0)==0){i=e;return}h=c[d+4>>2]|0;if((h|0)==(c[d+8>>2]|0)?(f=(h|0)==0?1:h<<1,(h|0)<(f|0)):0){if((f|0)==0){g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((f<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[d+4>>2]|0}if((h|0)>0){j=0;do{k=g+(j<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[d+12>>2]|0)+(j<<2)>>2]}j=j+1|0}while((j|0)!=(h|0))}j=c[d+12>>2]|0;if((j|0)!=0){if((a[d+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);h=c[d+4>>2]|0}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=g;c[d+8>>2]=f}f=(c[d+12>>2]|0)+(h<<2)|0;if((f|0)!=0){c[f>>2]=c[b+12>>2]}c[d+4>>2]=h+1;i=e;return}function Hw(a){a=a|0;var b=0;b=i;Iw(a);if((a|0)==0){i=b;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=b;return}function Iw(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;c[b>>2]=17664;e=c[b+56>>2]|0;if((e|0)!=0){if((a[b+60>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;f=c[b+28>>2]|0;if((f|0)>0){g=0;do{h=c[b+36>>2]|0;l=h+(g*36|0)+4|0;k=h+(g*36|0)+12|0;e=c[k>>2]|0;j=h+(g*36|0)+16|0;if((e|0)!=0){if((a[j>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[k>>2]=0}a[j>>0]=1;c[k>>2]=0;c[l>>2]=0;c[h+(g*36|0)+8>>2]=0;g=g+1|0}while((g|0)!=(f|0))}e=c[b+36>>2]|0;if((e|0)!=0){if((a[b+40>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;e=c[b+16>>2]|0;if((e|0)==0){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;l=b+12|0;c[l>>2]=0;i=d;return}if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;l=b+12|0;c[l>>2]=0;i=d;return}function Jw(a){a=a|0;var b=0,d=0,e=0,f=0,h=0.0,j=0.0,k=0.0,l=0;b=i;d=c[a+28>>2]|0;if((d|0)<=0){a=0;do{a=a+1|0}while((a|0)<8);d=1;i=b;return d|0}e=c[a+36>>2]|0;k=0.0;h=0.0;j=0.0;f=0;a:while(1){switch(f|0){case 3:{k=+g[a+80>>2]+ +g[a+64>>2];h=+g[a+72>>2]- +g[a+88>>2];j=+g[a+68>>2]- +g[a+84>>2];break};case 1:{k=+g[a+80>>2]+ +g[a+64>>2];h=+g[a+72>>2]- +g[a+88>>2];j=+g[a+84>>2]+ +g[a+68>>2];break};case 2:{k=+g[a+80>>2]+ +g[a+64>>2];h=+g[a+88>>2]+ +g[a+72>>2];j=+g[a+68>>2]- +g[a+84>>2];break};case 6:{k=+g[a+64>>2]- +g[a+80>>2];h=+g[a+88>>2]+ +g[a+72>>2];j=+g[a+68>>2]- +g[a+84>>2];break};case 0:{k=+g[a+80>>2]+ +g[a+64>>2];h=+g[a+88>>2]+ +g[a+72>>2];j=+g[a+84>>2]+ +g[a+68>>2];break};case 5:{k=+g[a+64>>2]- +g[a+80>>2];h=+g[a+72>>2]- +g[a+88>>2];j=+g[a+84>>2]+ +g[a+68>>2];break};case 4:{k=+g[a+64>>2]- +g[a+80>>2];h=+g[a+88>>2]+ +g[a+72>>2];j=+g[a+84>>2]+ +g[a+68>>2];break};case 7:{k=+g[a+64>>2]- +g[a+80>>2];h=+g[a+72>>2]- +g[a+88>>2];j=+g[a+68>>2]- +g[a+84>>2];break};default:{}}l=0;do{if(+g[e+(l*36|0)+32>>2]+(k*+g[e+(l*36|0)+20>>2]+j*+g[e+(l*36|0)+24>>2]+h*+g[e+(l*36|0)+28>>2])>0.0){d=0;a=17;break a}l=l+1|0}while((l|0)<(d|0));f=f+1|0;if((f|0)>=8){d=1;a=17;break}}if((a|0)==17){i=b;return d|0}return 0}function Kw(a,b,d,e,f,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;var k=0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0;k=i;i=i+16|0;g[e>>2]=3.4028234663852886e+38;g[f>>2]=-3.4028234663852886e+38;m=c[a+8>>2]|0;if((m|0)>0){n=0;do{s=c[a+16>>2]|0;r=+g[s+(n<<4)>>2];q=+g[s+(n<<4)+4>>2];l=+g[s+(n<<4)+8>>2];p=r*+g[b>>2]+q*+g[b+4>>2]+l*+g[b+8>>2]+ +g[b+48>>2];o=r*+g[b+16>>2]+q*+g[b+20>>2]+l*+g[b+24>>2]+ +g[b+52>>2];l=r*+g[b+32>>2]+q*+g[b+36>>2]+l*+g[b+40>>2]+ +g[b+56>>2];q=p*+g[d>>2]+o*+g[d+4>>2]+l*+g[d+8>>2];if(q<+g[e>>2]){g[e>>2]=q;g[h>>2]=p;g[h+4>>2]=o;g[h+8>>2]=l;g[h+12>>2]=0.0}if(q>+g[f>>2]){g[f>>2]=q;g[j>>2]=p;g[j+4>>2]=o;g[j+8>>2]=l;g[j+12>>2]=0.0}n=n+1|0}while((n|0)!=(m|0));o=+g[f>>2]}else{o=-3.4028234663852886e+38}l=+g[e>>2];if(!(l>o)){i=k;return}g[e>>2]=o;g[f>>2]=l;c[k+0>>2]=c[h+0>>2];c[k+4>>2]=c[h+4>>2];c[k+8>>2]=c[h+8>>2];c[k+12>>2]=c[h+12>>2];c[h+0>>2]=c[j+0>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];c[j+0>>2]=c[k+0>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];i=k;return}function Lw(b,e,f){b=b|0;e=e|0;f=f|0;var h=0,j=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0;h=i;i=i+176|0;c[b+348>>2]=b+220;c[b+352>>2]=b+252;c[b+356>>2]=b+284;c[b+360>>2]=b+316;c[b+364>>2]=4;c[b+368>>2]=0;c[b+376>>2]=0;y=c[e+4>>2]|0;c[b>>2]=c[e>>2];c[b+4>>2]=y;c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];c[b+16>>2]=c[e+16>>2];c[b+20>>2]=c[e+20>>2];c[b+24>>2]=c[e+24>>2];c[b+28>>2]=c[e+28>>2];c[b+32>>2]=c[e+32>>2];c[b+36>>2]=c[e+36>>2];c[b+40>>2]=c[e+40>>2];c[b+44>>2]=c[e+44>>2];c[b+48>>2]=c[e+48>>2];c[b+52>>2]=c[e+52>>2];c[b+56>>2]=c[e+56>>2];c[b+60>>2]=c[e+60>>2];c[b+64>>2]=c[e+64>>2];c[b+68>>2]=c[e+68>>2];c[b+72>>2]=c[e+72>>2];c[b+76>>2]=c[e+76>>2];c[b+80>>2]=c[e+80>>2];c[b+84>>2]=c[e+84>>2];c[b+88>>2]=c[e+88>>2];c[b+92>>2]=c[e+92>>2];c[b+96>>2]=c[e+96>>2];c[b+100>>2]=c[e+100>>2];c[b+104>>2]=c[e+104>>2];c[b+108>>2]=c[e+108>>2];c[b+112>>2]=c[e+112>>2];c[b+116>>2]=c[e+116>>2];y=d[e+120>>0]|d[e+121>>0]<<8|d[e+122>>0]<<16|d[e+123>>0]<<24;A=d[e+124>>0]|d[e+125>>0]<<8|d[e+126>>0]<<16|d[e+127>>0]<<24;a[b+120>>0]=y;a[b+121>>0]=y>>8;a[b+122>>0]=y>>16;a[b+123>>0]=y>>24;a[b+124>>0]=A;a[b+125>>0]=A>>8;a[b+126>>0]=A>>16;a[b+127>>0]=A>>24;g[b+144>>2]=0.0;c[b+180>>2]=0;c[b+128>>2]=c[f+0>>2];c[b+132>>2]=c[f+4>>2];c[b+136>>2]=c[f+8>>2];c[b+140>>2]=c[f+12>>2];t=+g[b+128>>2];s=+g[b+132>>2];r=+g[b+136>>2];if(t*t+s*s+r*r>0.0){v=-t;u=-s;m=-r}else{v=1.0;u=0.0;m=0.0}g[b+164>>2]=0.0;c[b+364>>2]=3;c[b+148>>2]=b+316;c[b+180>>2]=1;Ow(b,v,u,m,b+316|0);g[b+164>>2]=1.0;f=(c[b+148>>2]|0)+16|0;c[b+128>>2]=c[f+0>>2];c[b+132>>2]=c[f+4>>2];c[b+136>>2]=c[f+8>>2];c[b+140>>2]=c[f+12>>2];c[h+72>>2]=c[f+0>>2];c[h+76>>2]=c[f+4>>2];c[h+80>>2]=c[f+8>>2];c[h+84>>2]=c[f+12>>2];c[h+56>>2]=c[f+0>>2];c[h+60>>2]=c[f+4>>2];c[h+64>>2]=c[f+8>>2];c[h+68>>2]=c[f+12>>2];c[h+40>>2]=c[f+0>>2];c[h+44>>2]=c[f+4>>2];c[h+48>>2]=c[f+8>>2];c[h+52>>2]=c[f+12>>2];c[h+24>>2]=c[f+0>>2];c[h+28>>2]=c[f+4>>2];c[h+32>>2]=c[f+8>>2];c[h+36>>2]=c[f+12>>2];m=0.0;f=1;e=1;z=t*t+s*s+r*r;a:while(1){l=c[b+368>>2]|0;s=+g[b+128>>2];u=+g[b+132>>2];t=+g[b+136>>2];r=+Q(+(s*s+u*u+t*t));if(r<9999999747378752.0e-20){j=5;break}g[b+(l*36|0)+(c[b+(l*36|0)+180>>2]<<2)+164>>2]=0.0;n=(c[b+364>>2]|0)+ -1|0;c[b+364>>2]=n;c[b+(l*36|0)+(c[b+(l*36|0)+180>>2]<<2)+148>>2]=c[b+(n<<2)+348>>2];n=c[b+(l*36|0)+180>>2]|0;c[b+(l*36|0)+180>>2]=n+1;Ow(b,-s,-u,-t,c[b+(l*36|0)+(n<<2)+148>>2]|0);n=c[b+(l*36|0)+180>>2]|0;o=c[b+(l*36|0)+(n+ -1<<2)+148>>2]|0;t=+g[o+16>>2];u=+g[o+20>>2];s=+g[o+24>>2];p=0;do{v=t- +g[h+24+(p<<4)>>2];w=u- +g[h+24+(p<<4)+4>>2];x=s- +g[h+24+(p<<4)+8>>2];p=p+1|0;if(v*v+w*w+x*x<9999999747378752.0e-20){j=9;break a}}while(p>>>0<4);A=h+24+(f<<4)|0;c[A+0>>2]=c[o+16>>2];c[A+4>>2]=c[o+20>>2];c[A+8>>2]=c[o+24>>2];c[A+12>>2]=c[o+28>>2];x=(+g[b+128>>2]*t+ +g[b+132>>2]*u+ +g[b+136>>2]*s)/r;m=x>m?x:m;if(r-m-r*9999999747378752.0e-20<=0.0){j=11;break}c[h>>2]=0;if((n|0)==3){z=+Sw((c[b+(l*36|0)+148>>2]|0)+16|0,(c[b+(l*36|0)+152>>2]|0)+16|0,(c[b+(l*36|0)+156>>2]|0)+16|0,h+8|0,h)}else if((n|0)==4){n=c[b+(l*36|0)+148>>2]|0;p=c[b+(l*36|0)+152>>2]|0;o=c[b+(l*36|0)+156>>2]|0;q=c[b+(l*36|0)+160>>2]|0;c[h+152>>2]=n+16;c[h+156>>2]=p+16;c[h+160>>2]=o+16;c[h+164>>2]=q+16;u=+g[n+16>>2];v=+g[q+16>>2];s=+g[n+20>>2];w=+g[q+20>>2];t=+g[n+24>>2];x=+g[q+24>>2];g[h+104>>2]=u-v;g[h+108>>2]=s-w;g[h+112>>2]=t-x;g[h+116>>2]=0.0;C=+g[p+16>>2];E=+g[p+20>>2];z=+g[p+24>>2];g[h+120>>2]=C-v;g[h+124>>2]=E-w;g[h+128>>2]=z-x;g[h+132>>2]=0.0;B=+g[o+16>>2];F=+g[o+20>>2];D=+g[o+24>>2];g[h+136>>2]=B-v;g[h+140>>2]=F-w;g[h+144>>2]=D-x;g[h+148>>2]=0.0;r=(s-w)*(z-x)*(B-v)+(t-x)*(C-v)*(F-w)-(F-w)*(z-x)*(u-v)-(s-w)*(C-v)*(D-x)+(D-x)*(u-v)*(E-w)-(B-v)*(t-x)*(E-w);if(!(!(r*(t*((C-B)*(s-E)-(E-F)*(u-C))+(u*((E-F)*(t-z)-(z-D)*(s-E))+s*((z-D)*(u-C)-(C-B)*(t-z))))<=0.0)|(r!=r|0.0!=0.0|r==0.0))){c[h+92>>2]=0;c[h+96>>2]=0;c[h+100>>2]=0;c[h+88>>2]=0;s=s-w;t=t-x;u=u-v;y=0;z=-1.0;while(1){A=c[17720+(y<<2)>>2]|0;D=+g[h+104+(A<<4)+8>>2];E=+g[h+104+(A<<4)+4>>2];F=+g[h+104+(A<<4)>>2];if(r*((s*D-t*E)*v+w*(t*F-D*u)+(E*u-s*F)*x)>0.0?(k=+Sw(c[h+152+(y<<2)>>2]|0,c[h+152+(A<<2)>>2]|0,q+16|0,h+92|0,h+88|0),z<0.0|k>2]|0;c[h>>2]=((G&2|0)==0?0:1<>2]=+g[h+92>>2];g[h+8+(A<<2)>>2]=+g[h+96>>2];g[h+8+(c[17720+(A<<2)>>2]<<2)>>2]=0.0;g[h+20>>2]=+g[h+100>>2];z=k}y=y+1|0;if((y|0)==3){break}s=+g[h+104+(y<<4)+4>>2];t=+g[h+104+(y<<4)+8>>2];u=+g[h+104+(y<<4)>>2];v=+g[q+16>>2];w=+g[q+20>>2];x=+g[q+24>>2]}if(z<0.0){c[h>>2]=15;z=+g[o+20>>2];s=+g[p+24>>2];E=+g[q+16>>2];w=+g[o+24>>2];t=+g[p+16>>2];v=+g[q+20>>2];B=+g[o+16>>2];C=+g[q+24>>2];u=+g[p+20>>2];g[h+8>>2]=(z*s*E+w*t*v-v*s*B-z*t*C+C*B*u-E*w*u)/r;x=+g[n+20>>2];F=+g[n+24>>2];D=+g[n+16>>2];g[h+12>>2]=(x*w*E+F*B*v-v*w*D-x*B*C+C*D*z-E*F*z)/r;g[h+16>>2]=(u*F*E+s*D*v-v*F*t-u*D*C+C*t*x-E*s*x)/r;g[h+20>>2]=1.0-((u*F*E+s*D*v-v*F*t-u*D*C+C*t*x-E*s*x)/r+((z*s*E+w*t*v-v*s*B-z*t*C+C*B*u-E*w*u)/r+(x*w*E+F*B*v-v*w*D-x*B*C+C*D*z-E*F*z)/r));z=0.0}}else{z=-1.0}}else if((n|0)==2){z=+Rw((c[b+(l*36|0)+148>>2]|0)+16|0,(c[b+(l*36|0)+152>>2]|0)+16|0,h+8|0,h)}if(!(z>=0.0)){j=32;break}c[b+((1-l|0)*36|0)+180>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;c[b+136>>2]=0;c[b+140>>2]=0;c[b+368>>2]=1-l;q=c[b+(l*36|0)+180>>2]|0;y=c[h>>2]|0;if((q|0)!=0){p=0;do{n=b+(l*36|0)+(p<<2)+148|0;o=c[n>>2]|0;if((y&1<>2]|0;c[b+364>>2]=G+1;c[b+(G<<2)+348>>2]=o}else{c[b+((1-l|0)*36|0)+(c[b+((1-l|0)*36|0)+180>>2]<<2)+148>>2]=o;D=+g[h+8+(p<<2)>>2];G=c[b+((1-l|0)*36|0)+180>>2]|0;c[b+((1-l|0)*36|0)+180>>2]=G+1;g[b+((1-l|0)*36|0)+(G<<2)+164>>2]=D;G=c[n>>2]|0;E=D*+g[G+20>>2];F=D*+g[G+24>>2];g[b+128>>2]=+g[G+16>>2]*D+ +g[b+128>>2];g[b+132>>2]=E+ +g[b+132>>2];g[b+136>>2]=F+ +g[b+136>>2]}p=p+1|0}while((p|0)!=(q|0))}if((y|0)==15){c[b+376>>2]=1}if(!(e>>>0<128)){j=34;break}if((c[b+376>>2]|0)!=0){break}f=f+1&3;e=e+1|0}if((j|0)==5){c[b+376>>2]=1}else if((j|0)==9){G=c[b+368>>2]|0;A=(c[b+(G*36|0)+180>>2]|0)+ -1|0;c[b+(G*36|0)+180>>2]=A;A=c[b+(G*36|0)+(A<<2)+148>>2]|0;G=c[b+364>>2]|0;c[b+364>>2]=G+1;c[b+(G<<2)+348>>2]=A}else if((j|0)==11){G=c[b+368>>2]|0;A=(c[b+(G*36|0)+180>>2]|0)+ -1|0;c[b+(G*36|0)+180>>2]=A;A=c[b+(G*36|0)+(A<<2)+148>>2]|0;G=c[b+364>>2]|0;c[b+364>>2]=G+1;c[b+(G<<2)+348>>2]=A}else if((j|0)==32){G=c[b+368>>2]|0;A=(c[b+(G*36|0)+180>>2]|0)+ -1|0;c[b+(G*36|0)+180>>2]=A;A=c[b+(G*36|0)+(A<<2)+148>>2]|0;G=c[b+364>>2]|0;c[b+364>>2]=G+1;c[b+(G<<2)+348>>2]=A}else if((j|0)==34){c[b+376>>2]=2}c[b+372>>2]=b+((c[b+368>>2]|0)*36|0)+148;j=c[b+376>>2]|0;if((j|0)==1){g[b+144>>2]=0.0;i=h;return j|0}else if((j|0)==0){D=+g[b+128>>2];E=+g[b+132>>2];F=+g[b+136>>2];g[b+144>>2]=+Q(+(D*D+E*E+F*F));i=h;return j|0}else{i=h;return j|0}return 0}function Mw(a){a=a|0;var b=0,d=0,e=0.0,f=0.0,h=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0;b=i;i=i+32|0;d=c[a+372>>2]|0;m=c[d+32>>2]|0;a:do{if((m|0)==3){n=c[d+4>>2]|0;m=c[d>>2]|0;k=+g[m+16>>2];l=+g[n+16>>2]-k;j=+g[m+20>>2];e=+g[n+20>>2]-j;f=+g[m+24>>2];h=+g[n+24>>2]-f;n=c[d+8>>2]|0;k=+g[n+16>>2]-k;j=+g[n+20>>2]-j;f=+g[n+24>>2]-f;if((e*f-h*j)*(e*f-h*j)+(h*k-l*f)*(h*k-l*f)+(l*j-e*k)*(l*j-e*k)>0.0){g[d+28>>2]=0.0;n=(c[a+364>>2]|0)+ -1|0;c[a+364>>2]=n;c[d+(c[d+32>>2]<<2)>>2]=c[a+(n<<2)+348>>2];n=c[d+32>>2]|0;c[d+32>>2]=n+1;Ow(a,e*f-h*j,h*k-l*f,l*j-e*k,c[d+(n<<2)>>2]|0);if(Mw(a)|0){n=1;i=b;return n|0}m=c[a+372>>2]|0;n=(c[m+32>>2]|0)+ -1|0;c[m+32>>2]=n;n=c[m+(n<<2)>>2]|0;m=c[a+364>>2]|0;c[a+364>>2]=m+1;c[a+(m<<2)+348>>2]=n;m=c[a+372>>2]|0;g[m+(c[m+32>>2]<<2)+16>>2]=0.0;n=(c[a+364>>2]|0)+ -1|0;c[a+364>>2]=n;c[m+(c[m+32>>2]<<2)>>2]=c[a+(n<<2)+348>>2];n=c[m+32>>2]|0;c[m+32>>2]=n+1;Ow(a,-(e*f-h*j),-(h*k-l*f),-(l*j-e*k),c[m+(n<<2)>>2]|0);if(Mw(a)|0){n=1;i=b;return n|0}else{n=c[a+372>>2]|0;m=(c[n+32>>2]|0)+ -1|0;c[n+32>>2]=m;m=c[n+(m<<2)>>2]|0;n=c[a+364>>2]|0;c[a+364>>2]=n+1;c[a+(n<<2)+348>>2]=m;break}}}else if((m|0)==4){n=c[d>>2]|0;m=c[d+12>>2]|0;l=+g[m+16>>2];q=+g[n+16>>2]-l;o=+g[m+20>>2];e=+g[n+20>>2]-o;h=+g[m+24>>2];j=+g[n+24>>2]-h;n=c[d+4>>2]|0;f=+g[n+16>>2]-l;k=+g[n+20>>2]-o;p=+g[n+24>>2]-h;n=c[d+8>>2]|0;l=+g[n+16>>2]-l;o=+g[n+20>>2]-o;h=+g[n+24>>2]-h;if(!((0.0!=0.0?1:q*k*h+(e*p*l+j*f*o-q*p*o-e*f*h)-j*k*l!=q*k*h+(e*p*l+j*f*o-q*p*o-e*f*h)-j*k*l)|q*k*h+(e*p*l+j*f*o-q*p*o-e*f*h)-j*k*l==0.0)){n=1;i=b;return n|0}}else if((m|0)==2){n=c[d+4>>2]|0;d=c[d>>2]|0;h=+g[n+16>>2]- +g[d+16>>2];e=+g[n+20>>2]- +g[d+20>>2];f=+g[n+24>>2]- +g[d+24>>2];d=0;while(1){n=b+(d<<2)|0;c[b+0>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[n>>2]=1.0;j=+g[b+8>>2];k=+g[b+4>>2];l=+g[b>>2];if((e*j-f*k)*(e*j-f*k)+(f*l-h*j)*(f*l-h*j)+(h*k-e*l)*(h*k-e*l)>0.0){m=c[a+372>>2]|0;g[m+(c[m+32>>2]<<2)+16>>2]=0.0;n=(c[a+364>>2]|0)+ -1|0;c[a+364>>2]=n;c[m+(c[m+32>>2]<<2)>>2]=c[a+(n<<2)+348>>2];n=c[m+32>>2]|0;c[m+32>>2]=n+1;Ow(a,e*j-f*k,f*l-h*j,h*k-e*l,c[m+(n<<2)>>2]|0);if(Mw(a)|0){a=1;d=19;break}m=c[a+372>>2]|0;n=(c[m+32>>2]|0)+ -1|0;c[m+32>>2]=n;n=c[m+(n<<2)>>2]|0;m=c[a+364>>2]|0;c[a+364>>2]=m+1;c[a+(m<<2)+348>>2]=n;m=c[a+372>>2]|0;g[m+(c[m+32>>2]<<2)+16>>2]=0.0;n=(c[a+364>>2]|0)+ -1|0;c[a+364>>2]=n;c[m+(c[m+32>>2]<<2)>>2]=c[a+(n<<2)+348>>2];n=c[m+32>>2]|0;c[m+32>>2]=n+1;Ow(a,-(e*j-f*k),-(f*l-h*j),-(h*k-e*l),c[m+(n<<2)>>2]|0);if(Mw(a)|0){a=1;d=19;break}n=c[a+372>>2]|0;m=(c[n+32>>2]|0)+ -1|0;c[n+32>>2]=m;m=c[n+(m<<2)>>2]|0;n=c[a+364>>2]|0;c[a+364>>2]=n+1;c[a+(n<<2)+348>>2]=m}d=d+1|0;if(!(d>>>0<3)){break a}}if((d|0)==19){i=b;return a|0}}else if((m|0)==1){n=1;m=0;while(1){r=b+16+(m<<2)|0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;g[r>>2]=1.0;r=d+32|0;g[d+(n<<2)+16>>2]=0.0;n=(c[a+364>>2]|0)+ -1|0;c[a+364>>2]=n;c[d+(c[r>>2]<<2)>>2]=c[a+(n<<2)+348>>2];n=c[r>>2]|0;c[r>>2]=n+1;e=+g[b+16>>2];f=+g[b+20>>2];h=+g[b+24>>2];Ow(a,e,f,h,c[d+(n<<2)>>2]|0);if(Mw(a)|0){a=1;d=19;break}n=c[a+372>>2]|0;r=(c[n+32>>2]|0)+ -1|0;c[n+32>>2]=r;r=c[n+(r<<2)>>2]|0;n=c[a+364>>2]|0;c[a+364>>2]=n+1;c[a+(n<<2)+348>>2]=r;n=c[a+372>>2]|0;g[n+(c[n+32>>2]<<2)+16>>2]=0.0;r=(c[a+364>>2]|0)+ -1|0;c[a+364>>2]=r;c[n+(c[n+32>>2]<<2)>>2]=c[a+(r<<2)+348>>2];r=c[n+32>>2]|0;c[n+32>>2]=r+1;Ow(a,-e,-f,-h,c[n+(r<<2)>>2]|0);if(Mw(a)|0){a=1;d=19;break}r=c[a+372>>2]|0;n=(c[r+32>>2]|0)+ -1|0;c[r+32>>2]=n;n=c[r+(n<<2)>>2]|0;r=c[a+364>>2]|0;c[a+364>>2]=r+1;c[a+(r<<2)+348>>2]=n;m=m+1|0;if(!(m>>>0<3)){break a}n=c[a+372>>2]|0;d=n;n=c[n+32>>2]|0}if((d|0)==19){i=b;return a|0}}}while(0);r=0;i=b;return r|0}function Nw(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0;k=i;j=c[b+9288>>2]|0;if((j|0)==0){c[b>>2]=5;s=0;i=k;return s|0}s=c[j+48>>2]|0;if((s|0)!=0){c[s+44>>2]=c[j+44>>2]}s=c[j+44>>2]|0;if((s|0)!=0){c[s+48>>2]=c[j+48>>2]}if((c[b+9288>>2]|0)==(j|0)){c[b+9288>>2]=c[j+48>>2]}c[b+9292>>2]=(c[b+9292>>2]|0)+ -1;c[j+44>>2]=0;c[j+48>>2]=c[b+9280>>2];s=c[b+9280>>2]|0;if((s|0)!=0){c[s+44>>2]=j}c[b+9280>>2]=j;c[b+9284>>2]=(c[b+9284>>2]|0)+1;a[j+55>>0]=0;c[j+20>>2]=d;c[j+24>>2]=e;c[j+28>>2]=f;p=+g[d+16>>2];n=+g[e+16>>2]-p;r=+g[d+20>>2];q=+g[e+20>>2]-r;m=+g[d+24>>2];l=+g[e+24>>2]-m;p=+g[f+16>>2]-p;r=+g[f+20>>2]-r;m=+g[f+24>>2]-m;g[j>>2]=q*m-l*r;g[j+4>>2]=l*p-n*m;g[j+8>>2]=n*r-q*p;g[j+12>>2]=0.0;o=+Q(+((q*m-l*r)*(q*m-l*r)+(l*p-n*m)*(l*p-n*m)+(n*r-q*p)*(n*r-q*p)));do{if(o>9999999747378752.0e-20){if((!(Qw(q*m-l*r,l*p-n*m,n*r-q*p,+g[d+16>>2],+g[d+20>>2],+g[d+24>>2],+g[e+16>>2],+g[e+20>>2],+g[e+24>>2],j+16|0)|0)?!(Qw(+g[j>>2],+g[j+4>>2],+g[j+8>>2],+g[e+16>>2],+g[e+20>>2],+g[e+24>>2],+g[f+16>>2],+g[f+20>>2],+g[f+24>>2],j+16|0)|0):0)?!(Qw(+g[j>>2],+g[j+4>>2],+g[j+8>>2],+g[f+16>>2],+g[f+20>>2],+g[f+24>>2],+g[d+16>>2],+g[d+20>>2],+g[d+24>>2],j+16|0)|0):0){g[j+16>>2]=(+g[d+16>>2]*+g[j>>2]+ +g[d+20>>2]*+g[j+4>>2]+ +g[d+24>>2]*+g[j+8>>2])/o}g[j>>2]=1.0/o*+g[j>>2];g[j+4>>2]=1.0/o*+g[j+4>>2];g[j+8>>2]=1.0/o*+g[j+8>>2];if(h){s=j;i=k;return s|0}if(!(+g[j+16>>2]>=-9999999747378752.0e-21)){c[b>>2]=3;break}else{s=j;i=k;return s|0}}else{c[b>>2]=2}}while(0);h=c[j+48>>2]|0;if((h|0)!=0){c[h+44>>2]=c[j+44>>2]}h=c[j+44>>2]|0;if((h|0)!=0){c[h+48>>2]=c[j+48>>2]}if((c[b+9280>>2]|0)==(j|0)){c[b+9280>>2]=c[j+48>>2]}c[b+9284>>2]=(c[b+9284>>2]|0)+ -1;c[j+44>>2]=0;c[j+48>>2]=c[b+9288>>2];h=c[b+9288>>2]|0;if((h|0)!=0){c[h+44>>2]=j}c[b+9288>>2]=j;c[b+9292>>2]=(c[b+9292>>2]|0)+1;s=0;i=k;return s|0}function Ow(a,b,e,f,h){a=a|0;b=+b;e=+e;f=+f;h=h|0;var j=0,k=0,l=0,m=0,n=0.0,o=0.0;j=i;i=i+48|0;n=1.0/+Q(+(b*b+e*e+f*f));g[h>>2]=n*b;g[h+4>>2]=n*e;g[h+8>>2]=n*f;g[h+12>>2]=0.0;l=d[a+120>>0]|d[a+121>>0]<<8|d[a+122>>0]<<16|d[a+123>>0]<<24;m=d[a+124>>0]|d[a+125>>0]<<8|d[a+126>>0]<<16|d[a+127>>0]<<24;k=(c[a>>2]|0)+(m>>1)|0;if((m&1|0)!=0){l=c[(c[k>>2]|0)+l>>2]|0}sc[l&63](j,k,h);e=-+g[h>>2];f=-+g[h+4>>2];b=-+g[h+8>>2];l=d[a+120>>0]|d[a+121>>0]<<8|d[a+122>>0]<<16|d[a+123>>0]<<24;m=d[a+124>>0]|d[a+125>>0]<<8|d[a+126>>0]<<16|d[a+127>>0]<<24;k=(c[a+4>>2]|0)+(m>>1)|0;if((m&1|0)!=0){l=c[(c[k>>2]|0)+l>>2]|0}n=+g[a+24>>2]*e+ +g[a+28>>2]*f+ +g[a+32>>2]*b;o=+g[a+40>>2]*e+ +g[a+44>>2]*f+ +g[a+48>>2]*b;g[j+16>>2]=+g[a+8>>2]*e+ +g[a+12>>2]*f+ +g[a+16>>2]*b;g[j+20>>2]=n;g[j+24>>2]=o;g[j+28>>2]=0.0;sc[l&63](j+32|0,k,j+16|0);o=+g[j+32>>2];e=+g[j+36>>2];f=+g[j+40>>2];b=+g[j+4>>2]-(o*+g[a+72>>2]+e*+g[a+76>>2]+f*+g[a+80>>2]+ +g[a+108>>2]);n=+g[j+8>>2]-(o*+g[a+88>>2]+e*+g[a+92>>2]+f*+g[a+96>>2]+ +g[a+112>>2]);g[h+16>>2]=+g[j>>2]-(o*+g[a+56>>2]+e*+g[a+60>>2]+f*+g[a+64>>2]+ +g[a+104>>2]);g[h+20>>2]=b;g[h+24>>2]=n;g[h+28>>2]=0.0;i=j;return}function Pw(b,e,f,h,j,k){b=b|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0;l=i;if((d[h+55>>0]|0|0)==(e|0)){j=0;i=l;return j|0}m=c[17720+(j<<2)>>2]|0;if(+g[h>>2]*+g[f+16>>2]+ +g[h+4>>2]*+g[f+20>>2]+ +g[h+8>>2]*+g[f+24>>2]- +g[h+16>>2]<-9999999747378752.0e-21){b=Nw(b,c[h+(m<<2)+20>>2]|0,c[h+(j<<2)+20>>2]|0,f,0)|0;if((b|0)==0){j=0;i=l;return j|0}a[b+52>>0]=j;c[b+32>>2]=h;a[h+j+52>>0]=0;c[h+(j<<2)+32>>2]=b;h=c[k>>2]|0;if((h|0)==0){c[k+4>>2]=b}else{a[h+53>>0]=2;c[h+36>>2]=b;a[b+54>>0]=1;c[b+40>>2]=h}c[k>>2]=b;c[k+8>>2]=(c[k+8>>2]|0)+1;j=1;i=l;return j|0}j=c[17704+(j<<2)>>2]|0;a[h+55>>0]=e;if(!(Pw(b,e,f,c[h+(m<<2)+32>>2]|0,d[h+m+52>>0]|0,k)|0)){j=0;i=l;return j|0}if(!(Pw(b,e,f,c[h+(j<<2)+32>>2]|0,d[h+j+52>>0]|0,k)|0)){j=0;i=l;return j|0}k=c[h+48>>2]|0;if((k|0)!=0){c[k+44>>2]=c[h+44>>2]}k=c[h+44>>2]|0;if((k|0)!=0){c[k+48>>2]=c[h+48>>2]}if((c[b+9280>>2]|0)==(h|0)){c[b+9280>>2]=c[h+48>>2]}c[b+9284>>2]=(c[b+9284>>2]|0)+ -1;c[h+44>>2]=0;c[h+48>>2]=c[b+9288>>2];k=c[b+9288>>2]|0;if((k|0)!=0){c[k+44>>2]=h}c[b+9288>>2]=h;c[b+9292>>2]=(c[b+9292>>2]|0)+1;j=1;i=l;return j|0}function Qw(a,b,c,d,e,f,h,j,k,l){a=+a;b=+b;c=+c;d=+d;e=+e;f=+f;h=+h;j=+j;k=+k;l=l|0;var m=0;m=i;if(!(((h-d)*b-(j-e)*a)*f+(((j-e)*c-(k-f)*b)*d+((k-f)*a-(h-d)*c)*e)<0.0)){l=0;i=m;return l|0}if((h-d)*d+(j-e)*e+(k-f)*f>0.0){g[l>>2]=+Q(+(d*d+e*e+f*f));l=1;i=m;return l|0}if((h-d)*h+(j-e)*j+(k-f)*k<0.0){g[l>>2]=+Q(+(h*h+j*j+k*k));l=1;i=m;return l|0}else{b=((h*h+j*j+k*k)*(d*d+e*e+f*f)-(h*d+j*e+k*f)*(h*d+j*e+k*f))/((h-d)*(h-d)+(j-e)*(j-e)+(k-f)*(k-f));g[l>>2]=+Q(+(b>0.0?b:0.0));l=1;i=m;return l|0}return 0}function Rw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0;k=i;l=+g[a>>2];f=+g[b>>2]-l;m=+g[a+4>>2];h=+g[b+4>>2]-m;n=+g[a+8>>2];j=+g[b+8>>2]-n;if(!(f*f+h*h+j*j>0.0)){n=-1.0;i=k;return+n}l=-(l*f+m*h+n*j)/(f*f+h*h+j*j);if(l>=1.0){g[d>>2]=0.0;g[d+4>>2]=1.0;c[e>>2]=2;l=+g[b>>2];m=+g[b+4>>2];n=+g[b+8>>2];n=l*l+m*m+n*n;i=k;return+n}if(!(l<=0.0)){g[d+4>>2]=l;g[d>>2]=1.0-l;c[e>>2]=3;f=f*l+ +g[a>>2];m=h*l+ +g[a+4>>2];n=j*l+ +g[a+8>>2];n=f*f+m*m+n*n;i=k;return+n}else{g[d>>2]=1.0;g[d+4>>2]=0.0;c[e>>2]=1;l=+g[a>>2];m=+g[a+4>>2];n=+g[a+8>>2];n=l*l+m*m+n*n;i=k;return+n}return 0.0}function Sw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0.0;u=i;i=i+80|0;c[u+64>>2]=a;c[u+68>>2]=b;c[u+72>>2]=d;r=+g[a>>2];l=+g[b>>2];s=+g[a+4>>2];n=+g[b+4>>2];t=+g[a+8>>2];p=+g[b+8>>2];g[u+16>>2]=r-l;g[u+20>>2]=s-n;g[u+24>>2]=t-p;g[u+28>>2]=0.0;m=+g[d>>2];o=+g[d+4>>2];q=+g[d+8>>2];g[u+32>>2]=l-m;g[u+36>>2]=n-o;g[u+40>>2]=p-q;g[u+44>>2]=0.0;g[u+48>>2]=m-r;g[u+52>>2]=o-s;g[u+56>>2]=q-t;g[u+60>>2]=0.0;j=(s-n)*(p-q)-(t-p)*(n-o);k=(t-p)*(l-m)-(p-q)*(r-l);h=(n-o)*(r-l)-(s-n)*(l-m);if(!(h*h+(j*j+k*k)>0.0)){F=-1.0;i=u;return+F}c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;B=s-n;D=t-p;C=r-l;x=r;y=s;A=t;z=a;E=0;F=-1.0;while(1){if(x*(h*B-k*D)+y*(j*D-h*C)+(k*C-j*B)*A>0.0?(v=c[17720+(E<<2)>>2]|0,w=+Rw(z,c[u+64+(v<<2)>>2]|0,u,u+8|0),F<0.0|w>2]|0;c[f>>2]=((z&1|0)==0?0:1<>2]=+g[u>>2];g[e+(v<<2)>>2]=+g[u+4>>2];g[e+(c[17720+(v<<2)>>2]<<2)>>2]=0.0;F=w}E=E+1|0;if((E|0)==3){break}z=c[u+64+(E<<2)>>2]|0;B=+g[u+16+(E<<4)+4>>2];D=+g[u+16+(E<<4)+8>>2];C=+g[u+16+(E<<4)>>2];x=+g[z>>2];y=+g[z+4>>2];A=+g[z+8>>2]}if(!(F<0.0)){i=u;return+F}C=+Q(+(h*h+(j*j+k*k)));F=(j*+g[a>>2]+k*+g[a+4>>2]+h*+g[a+8>>2])/(h*h+(j*j+k*k));c[f>>2]=7;A=+g[b>>2]-j*F;y=+g[b+4>>2]-k*F;D=+g[b+8>>2]-h*F;D=+Q(+((y*(l-m)-A*(n-o))*(y*(l-m)-A*(n-o))+(((n-o)*D-y*(p-q))*((n-o)*D-y*(p-q))+(A*(p-q)-D*(l-m))*(A*(p-q)-D*(l-m)))))/C;g[e>>2]=D;A=+g[d>>2]-j*F;y=+g[d+4>>2]-k*F;B=+g[d+8>>2]-h*F;C=+Q(+((y*(m-r)-A*(o-s))*(y*(m-r)-A*(o-s))+(((o-s)*B-y*(q-t))*((o-s)*B-y*(q-t))+(A*(q-t)-B*(m-r))*(A*(q-t)-B*(m-r)))))/C;g[e+4>>2]=C;g[e+8>>2]=1.0-(C+D);F=h*F*h*F+(j*F*j*F+k*F*k*F);i=u;return+F}function Tw(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;f=c[b+12>>2]|0;d=c[b+32>>2]|0;if((d|0)>=(f|0)){i=e;return}if((d|0)<=(f|0)){if((c[b+36>>2]|0)<(f|0)){if((f|0)==0){h=d;g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((f<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[b+32>>2]|0}if((h|0)>0){j=0;do{k=g+(j<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[b+40>>2]|0)+(j<<2)>>2]}j=j+1|0}while((j|0)!=(h|0))}h=c[b+40>>2]|0;if((h|0)!=0){if((a[b+44>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+40>>2]=0}a[b+44>>0]=1;c[b+40>>2]=g;c[b+36>>2]=f}else{g=c[b+40>>2]|0}h=d;do{j=g+(h<<2)|0;if((j|0)!=0){c[j>>2]=0}h=h+1|0}while((h|0)!=(f|0))}c[b+32>>2]=f;g=c[b+52>>2]|0;if((g|0)<(f|0)){if((c[b+56>>2]|0)<(f|0)){if((f|0)==0){h=g;j=0}else{c[4546]=(c[4546]|0)+1;h=Zx((f<<2|3)+16|0)|0;if((h|0)==0){j=0}else{c[(h+19&-16)+ -4>>2]=h;j=h+19&-16}h=c[b+52>>2]|0}if((h|0)>0){l=0;do{k=j+(l<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[b+60>>2]|0)+(l<<2)>>2]}l=l+1|0}while((l|0)!=(h|0))}h=c[b+60>>2]|0;if((h|0)!=0){if((a[b+64>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=j;c[b+56>>2]=f}else{j=c[b+60>>2]|0}do{h=j+(g<<2)|0;if((h|0)!=0){c[h>>2]=0}g=g+1|0}while((g|0)!=(f|0))}c[b+52>>2]=f;if((f|0)>0){by(c[b+40>>2]|0,-1,f<<2|0)|0;by(c[b+60>>2]|0,-1,f<<2|0)|0}if((d|0)<=0){i=e;return}h=c[b+16>>2]|0;g=c[b+40>>2]|0;f=c[b+60>>2]|0;j=0;do{l=c[h+(j*12|0)+4>>2]<<16|c[h+(j*12|0)>>2];l=(l+~(l<<15)>>10^l+~(l<<15))*9|0;l=g+((((l>>6^l)+~((l>>6^l)<<11)>>16^(l>>6^l)+~((l>>6^l)<<11))&(c[b+12>>2]|0)+ -1)<<2)|0;c[f+(j<<2)>>2]=c[l>>2];c[l>>2]=j;j=j+1|0}while((j|0)!=(d|0));i=e;return}function Uw(a){a=a|0;var b=0;b=i;Vw(a);if((a|0)!=0){_x(a)}i=b;return}function Vw(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=17768;e=c[b+60>>2]|0;if((e|0)!=0){if((a[b+64>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=0;c[b+52>>2]=0;c[b+56>>2]=0;e=c[b+40>>2]|0;if((e|0)!=0){if((a[b+44>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+40>>2]=0}a[b+44>>0]=1;c[b+40>>2]=0;c[b+32>>2]=0;c[b+36>>2]=0;e=c[b+16>>2]|0;if((e|0)==0){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;e=b+12|0;c[e>>2]=0;i=d;return}if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;e=b+12|0;c[e>>2]=0;i=d;return}function Ww(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=c[b+16>>2]|0;if((e|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;e=c[b+40>>2]|0;if((e|0)!=0){if((a[b+44>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+40>>2]=0}a[b+44>>0]=1;c[b+40>>2]=0;c[b+32>>2]=0;c[b+36>>2]=0;e=c[b+60>>2]|0;if((e|0)!=0){if((a[b+64>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=0;c[b+52>>2]=0;c[b+56>>2]=0;if((c[b+12>>2]|0)>=2){Tw(b);i=d;return}c[4546]=(c[4546]|0)+1;e=Zx(43)|0;if((e|0)==0){e=0}else{c[(e+19&-16)+ -4>>2]=e;e=e+19&-16}f=c[b+8>>2]|0;if((f|0)>0){h=0;do{g=e+(h*12|0)|0;if((g|0)!=0){j=(c[b+16>>2]|0)+(h*12|0)|0;c[g+0>>2]=c[j+0>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2]}h=h+1|0}while((h|0)!=(f|0))}f=c[b+16>>2]|0;if((f|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[f+ -4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=e;c[b+12>>2]=2;Tw(b);i=d;return}function Xw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;e=i;c[4434]=(c[4434]|0)+1;k=((d<<16|b)+~((d<<16|b)<<15)>>10^(d<<16|b)+~((d<<16|b)<<15))*9|0;g=c[a+40>>2]|0;k=g+(((c[a+12>>2]|0)+ -1&((k>>6^k)+~((k>>6^k)<<11)>>16^(k>>6^k)+~((k>>6^k)<<11)))<<2)|0;l=c[k>>2]|0;if((l|0)==-1){o=0;i=e;return o|0}h=c[a+16>>2]|0;j=l;while(1){if((c[h+(j*12|0)>>2]|0)==(b|0)?(c[h+(j*12|0)+4>>2]|0)==(d|0):0){break}j=c[(c[a+60>>2]|0)+(j<<2)>>2]|0;if((j|0)==-1){a=0;f=22;break}}if((f|0)==22){i=e;return a|0}if((h+(j*12|0)|0)==0){o=0;i=e;return o|0}b=c[h+(j*12|0)+8>>2]|0;j=(j*12|0)/12|0;d=c[a+60>>2]|0;if((l|0)!=(j|0)){while(1){m=d+(l<<2)|0;n=c[m>>2]|0;if((n|0)==(j|0)){break}else{l=n}}n=c[d+(j<<2)>>2]|0;if((l|0)==-1){f=12}else{c[m>>2]=n}}else{n=c[d+(l<<2)>>2]|0;f=12}if((f|0)==12){c[k>>2]=n}l=(c[a+8>>2]|0)+ -1|0;if((l|0)==(j|0)){c[a+8>>2]=j;o=b;i=e;return o|0}k=c[h+(l*12|0)+4>>2]<<16|c[h+(l*12|0)>>2];k=(k+~(k<<15)>>10^k+~(k<<15))*9|0;k=((k>>6^k)+~((k>>6^k)<<11)>>16^(k>>6^k)+~((k>>6^k)<<11))&(c[a+12>>2]|0)+ -1;n=c[g+(k<<2)>>2]|0;if((n|0)!=(l|0)){while(1){m=d+(n<<2)|0;o=c[m>>2]|0;if((o|0)==(l|0)){break}else{n=o}}d=c[d+(l<<2)>>2]|0;if((n|0)==-1){f=20}else{c[m>>2]=d}}else{d=c[d+(l<<2)>>2]|0;f=20}if((f|0)==20){c[g+(k<<2)>>2]=d}c[h+(j*12|0)+0>>2]=c[h+(l*12|0)+0>>2];c[h+(j*12|0)+4>>2]=c[h+(l*12|0)+4>>2];c[h+(j*12|0)+8>>2]=c[h+(l*12|0)+8>>2];o=(c[a+40>>2]|0)+(k<<2)|0;c[(c[a+60>>2]|0)+(j<<2)>>2]=c[o>>2];c[o>>2]=j;c[a+8>>2]=(c[a+8>>2]|0)+ -1;o=b;i=e;return o|0}function Yw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=i;c[4436]=(c[4436]|0)+1;h=((e<<16|d)+~((e<<16|d)<<15)>>10^(e<<16|d)+~((e<<16|d)<<15))*9|0;h=(h>>6^h)+~((h>>6^h)<<11)>>16^(h>>6^h)+~((h>>6^h)<<11);g=c[b+12>>2]|0;k=c[(c[b+40>>2]|0)+((g+ -1&h)<<2)>>2]|0;a:do{if(!((k|0)==-1)){j=c[b+16>>2]|0;while(1){if((c[j+(k*12|0)>>2]|0)==(d|0)?(c[j+(k*12|0)+4>>2]|0)==(e|0):0){break}k=c[(c[b+60>>2]|0)+(k<<2)>>2]|0;if((k|0)==-1){break a}}j=j+(k*12|0)|0;if((j|0)!=0){o=j;i=f;return o|0}}}while(0);j=c[b+8>>2]|0;if((j|0)==(g|0)){k=(g|0)==0?1:g<<1;if((g|0)<(k|0)){if((k|0)==0){m=g;l=0}else{c[4546]=(c[4546]|0)+1;l=Zx((k*12|3)+16|0)|0;if((l|0)==0){l=0}else{c[(l+19&-16)+ -4>>2]=l;l=l+19&-16}m=c[b+8>>2]|0}if((m|0)>0){o=0;do{n=l+(o*12|0)|0;if((n|0)!=0){p=(c[b+16>>2]|0)+(o*12|0)|0;c[n+0>>2]=c[p+0>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2]}o=o+1|0}while((o|0)!=(m|0))}m=c[b+16>>2]|0;if((m|0)!=0){if((a[b+20>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[m+ -4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=l;c[b+12>>2]=k;l=c[b+8>>2]|0}else{l=g;k=g}}else{l=j;k=g}c[b+8>>2]=l+1;l=c[b+16>>2]|0;if((g|0)<(k|0)){Tw(b);g=(c[b+12>>2]|0)+ -1&h}else{g=g+ -1&h}if((l+(j*12|0)|0)==0){d=0}else{c[l+(j*12|0)>>2]=d;c[l+(j*12|0)+4>>2]=e;c[l+(j*12|0)+8>>2]=0;d=l+(j*12|0)|0}c[d+8>>2]=0;p=(c[b+40>>2]|0)+(g<<2)|0;c[(c[b+60>>2]|0)+(j<<2)>>2]=c[p>>2];c[p>>2]=j;p=d;i=f;return p|0}function Zw(a){a=a|0;return c[a+16>>2]|0}function _w(a,b,c,d,e,f,h,j,k,l,m){a=a|0;b=b|0;c=+c;d=+d;e=+e;f=+f;h=+h;j=+j;k=k|0;l=l|0;m=+m;var n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;p=i;o=+g[a>>2]*f+ +g[a+16>>2]*h+ +g[a+32>>2]*j;n=+g[a+4>>2]*f+ +g[a+20>>2]*h+ +g[a+36>>2]*j;r=+g[a+8>>2]*f+ +g[a+24>>2]*h+ +g[a+40>>2]*j;q=+g[b>>2]*f+ +g[b+16>>2]*h+ +g[b+32>>2]*j;s=+g[b+4>>2]*f+ +g[b+20>>2]*h+ +g[b+36>>2]*j;t=+g[b+8>>2]*f+ +g[b+24>>2]*h+ +g[b+40>>2]*j;u=+g[k+80>>2];if(o<0.0){u=-u}v=+g[k+84>>2];if(n<0.0){v=-v}w=+g[k+88>>2];if(r<0.0){w=-w}x=+g[l+80>>2];if(q<0.0){x=-x}y=+g[l+84>>2];if(s<0.0){y=-y}z=+g[l+88>>2];if(!(t<0.0)){A=z;z=o*u;v=n*v;v=z+v;z=r*w;z=v+z;x=q*x;y=s*y;y=x+y;x=t*A;x=y+x;a=k+96|0;y=+g[a>>2];a=z>y;y=a?z:y;a=l+96|0;z=+g[a>>2];a=x>z;z=a?x:z;z=y+z;y=c*f+d*h+e*j+z;z=z-(c*f+d*h+e*j);a=ym);i=p;return a|0}B=-z;A=o*u;z=n*v;z=A+z;A=r*w;A=z+A;x=q*x;z=s*y;z=x+z;y=t*B;y=z+y;a=k+96|0;z=+g[a>>2];a=A>z;z=a?A:z;a=l+96|0;A=+g[a>>2];a=y>A;A=a?y:A;A=z+A;z=c*f+d*h+e*j+A;A=A-(c*f+d*h+e*j);a=zm);i=p;return a|0} function Cv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0,X=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0.0,na=0.0,oa=0.0,pa=0,qa=0.0,ra=0.0,sa=0,ta=0,ua=0,va=0.0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;e=i;i=i+656|0;g[e+48>>2]=+g[b>>2];g[e>>2]=+g[b+64>>2];f=e+52|0;g[f>>2]=+g[b+4>>2];g[e+4>>2]=+g[b+68>>2];g[e+56>>2]=+g[b+8>>2];g[e+8>>2]=+g[b+72>>2];g[e+64>>2]=+g[b+16>>2];g[e+16>>2]=+g[b+80>>2];g[e+68>>2]=+g[b+20>>2];g[e+20>>2]=+g[b+84>>2];g[e+72>>2]=+g[b+24>>2];g[e+24>>2]=+g[b+88>>2];g[e+80>>2]=+g[b+32>>2];g[e+32>>2]=+g[b+96>>2];g[e+84>>2]=+g[b+36>>2];g[e+36>>2]=+g[b+100>>2];g[e+88>>2]=+g[b+40>>2];g[e+40>>2]=+g[b+104>>2];Da=c[a+4>>2]|0;A=+g[Da+28>>2];D=+g[Da+32>>2];B=+g[Da+36>>2];E=+bc[c[(c[Da>>2]|0)+48>>2]&15](Da);C=+bc[c[(c[Da>>2]|0)+48>>2]&15](Da);B=(B+ +bc[c[(c[Da>>2]|0)+48>>2]&15](Da))*2.0;Da=c[a+8>>2]|0;v=+g[Da+28>>2];u=+g[Da+32>>2];q=+g[Da+36>>2];y=+bc[c[(c[Da>>2]|0)+48>>2]&15](Da);t=+bc[c[(c[Da>>2]|0)+48>>2]&15](Da);q=(q+ +bc[c[(c[Da>>2]|0)+48>>2]&15](Da))*2.0;S=+g[b+112>>2]- +g[b+48>>2];R=+g[b+116>>2]- +g[b+52>>2];O=+g[b+120>>2]- +g[b+56>>2];k=+g[e+48>>2];j=+g[e+64>>2];h=+g[e+80>>2];I=+g[f>>2];J=+g[e+68>>2];H=+g[e+84>>2];G=+g[e+56>>2];F=+g[e+72>>2];z=+g[e+88>>2];g[e+548>>2]=(A+E)*2.0*.5;g[e+552>>2]=(D+C)*2.0*.5;g[e+556>>2]=B*.5;g[e+536>>2]=(v+y)*2.0*.5;g[e+540>>2]=(u+t)*2.0*.5;g[e+544>>2]=q*.5;n=+g[e>>2];w=+g[e+16>>2];s=+g[e+32>>2];p=+g[e+4>>2];x=+g[e+20>>2];r=+g[e+36>>2];o=+g[e+8>>2];m=+g[e+24>>2];l=+g[e+40>>2];Z=+P(+(k*n+j*w+h*s));T=+P(+(k*p+j*x+h*r));N=+P(+(k*o+j*m+h*l));X=+P(+(n*I+w*J+s*H));V=+P(+(p*I+x*J+r*H));K=+P(+(o*I+m*J+l*H));M=+P(+(n*G+w*F+s*z));L=+P(+(p*G+x*F+r*z));U=+P(+(o*G+m*F+l*z));_=+P(+(S*k+R*j+O*h))-(q*.5*N+((A+E)*2.0*.5+Z*(v+y)*2.0*.5+T*(u+t)*2.0*.5));if(_>0.0){i=e;return}if(_>-3.4028234663852886e+38){ga=1;W=S*k+R*j+O*h<0.0&1;a=e+48|0}else{ga=0;W=0;a=0;_=-3.4028234663852886e+38}$=+P(+(S*I+R*J+O*H))-((D+C)*2.0*.5+X*(v+y)*2.0*.5+V*(u+t)*2.0*.5+K*q*.5);if($>0.0){i=e;return}if($>_){ga=2;W=S*I+R*J+O*H<0.0&1;a=f;_=$}$=+P(+(S*G+R*F+O*z))-(B*.5+M*(v+y)*2.0*.5+L*(u+t)*2.0*.5+U*q*.5);if($>0.0){i=e;return}if($>_){ga=3;W=S*G+R*F+O*z<0.0&1;a=e+56|0}else{$=_}_=+P(+(S*n+R*w+O*s))-((v+y)*2.0*.5+(Z*(A+E)*2.0*.5+X*(D+C)*2.0*.5+M*B*.5));if(_>0.0){i=e;return}if(_>$){ga=4;W=S*n+R*w+O*s<0.0&1;a=e}else{_=$}$=+P(+(S*p+R*x+O*r))-((u+t)*2.0*.5+(T*(A+E)*2.0*.5+V*(D+C)*2.0*.5+L*B*.5));if($>0.0){i=e;return}if($>_){ga=5;W=S*p+R*x+O*r<0.0&1;a=e+4|0;_=$}qa=+P(+(S*o+R*m+O*l))-(q*.5+(N*(A+E)*2.0*.5+K*(D+C)*2.0*.5+U*B*.5));if(qa>0.0){i=e;return}if(qa>_){ga=6;W=S*o+R*m+O*l<0.0&1;a=e+8|0}else{qa=_}ba=(S*G+R*F+O*z)*(n*I+w*J+s*H)-(S*I+R*J+O*H)*(n*G+w*F+s*z);_=+P(+ba)-((M+9999999747378752.0e-21)*(D+C)*2.0*.5+(X+9999999747378752.0e-21)*B*.5+(N+9999999747378752.0e-21)*(u+t)*2.0*.5+(T+9999999747378752.0e-21)*q*.5);if(_>1.1920928955078125e-7){i=e;return}da=(n*G+w*F+s*z)*(n*G+w*F+s*z)+0.0;aa=(n*I+w*J+s*H)*(n*I+w*J+s*H);$=+Q(+(aa+da));if($>1.1920928955078125e-7?_/$*1.0499999523162842>qa:0){ga=7;oa=0.0/$;ma=-(n*G+w*F+s*z)/$;na=(n*I+w*J+s*H)/$;W=ba<0.0&1;a=0;qa=_/$}else{oa=0.0;ma=0.0;na=0.0}ca=(S*G+R*F+O*z)*(p*I+x*J+r*H)-(S*I+R*J+O*H)*(p*G+x*F+r*z);$=+P(+ca)-((L+9999999747378752.0e-21)*(D+C)*2.0*.5+(V+9999999747378752.0e-21)*B*.5+(N+9999999747378752.0e-21)*(v+y)*2.0*.5+(Z+9999999747378752.0e-21)*q*.5);if($>1.1920928955078125e-7){i=e;return}ea=(p*G+x*F+r*z)*(p*G+x*F+r*z)+0.0;_=(p*I+x*J+r*H)*(p*I+x*J+r*H);ba=+Q(+(_+ea));if(ba>1.1920928955078125e-7?$/ba*1.0499999523162842>qa:0){ga=8;oa=0.0/ba;ma=-(p*G+x*F+r*z)/ba;na=(p*I+x*J+r*H)/ba;W=ca<0.0&1;a=0;qa=$/ba}va=(S*G+R*F+O*z)*(o*I+m*J+l*H)-(S*I+R*J+O*H)*(o*G+m*F+l*z);ra=+P(+va)-((U+9999999747378752.0e-21)*(D+C)*2.0*.5+(K+9999999747378752.0e-21)*B*.5+(T+9999999747378752.0e-21)*(v+y)*2.0*.5+(Z+9999999747378752.0e-21)*(u+t)*2.0*.5);if(ra>1.1920928955078125e-7){i=e;return}ca=(o*G+m*F+l*z)*(o*G+m*F+l*z)+0.0;$=(o*I+m*J+l*H)*(o*I+m*J+l*H);ba=+Q(+($+ca));if(ba>1.1920928955078125e-7?ra/ba*1.0499999523162842>qa:0){ga=9;oa=0.0/ba;ma=-(o*G+m*F+l*z)/ba;na=(o*I+m*J+l*H)/ba;W=va<0.0&1;a=0;qa=ra/ba}va=(S*k+R*j+O*h)*(n*G+w*F+s*z)-(S*G+R*F+O*z)*(k*n+j*w+h*s);ra=+P(+va)-((M+9999999747378752.0e-21)*(A+E)*2.0*.5+(Z+9999999747378752.0e-21)*B*.5+(K+9999999747378752.0e-21)*(u+t)*2.0*.5+(V+9999999747378752.0e-21)*q*.5);if(ra>1.1920928955078125e-7){i=e;return}ba=(k*n+j*w+h*s)*(k*n+j*w+h*s);da=+Q(+(ba+da));do{if(da>1.1920928955078125e-7){if(!(ra/da*1.0499999523162842>qa)){break}ga=10;oa=(n*G+w*F+s*z)/da;ma=0.0/da;na=-(k*n+j*w+h*s)/da;W=va<0.0&1;a=0;qa=ra/da}}while(0);va=(S*k+R*j+O*h)*(p*G+x*F+r*z)-(S*G+R*F+O*z)*(k*p+j*x+h*r);ra=+P(+va)-((L+9999999747378752.0e-21)*(A+E)*2.0*.5+(T+9999999747378752.0e-21)*B*.5+(K+9999999747378752.0e-21)*(v+y)*2.0*.5+(X+9999999747378752.0e-21)*q*.5);if(ra>1.1920928955078125e-7){i=e;return}da=(k*p+j*x+h*r)*(k*p+j*x+h*r);ea=+Q(+(da+ea));do{if(ea>1.1920928955078125e-7){if(!(ra/ea*1.0499999523162842>qa)){break}ga=11;oa=(p*G+x*F+r*z)/ea;ma=0.0/ea;na=-(k*p+j*x+h*r)/ea;W=va<0.0&1;a=0;qa=ra/ea}}while(0);va=(S*k+R*j+O*h)*(o*G+m*F+l*z)-(S*G+R*F+O*z)*(k*o+j*m+h*l);ra=+P(+va)-((U+9999999747378752.0e-21)*(A+E)*2.0*.5+(N+9999999747378752.0e-21)*B*.5+(V+9999999747378752.0e-21)*(v+y)*2.0*.5+(X+9999999747378752.0e-21)*(u+t)*2.0*.5);if(ra>1.1920928955078125e-7){i=e;return}ea=(k*o+j*m+h*l)*(k*o+j*m+h*l);ca=+Q(+(ea+ca));do{if(ca>1.1920928955078125e-7){if(!(ra/ca*1.0499999523162842>qa)){break}ga=12;oa=(o*G+m*F+l*z)/ca;ma=0.0/ca;na=-(k*o+j*m+h*l)/ca;W=va<0.0&1;a=0;qa=ra/ca}}while(0);ca=(S*I+R*J+O*H)*(k*n+j*w+h*s)-(S*k+R*j+O*h)*(n*I+w*J+s*H);X=+P(+ca)-((X+9999999747378752.0e-21)*(A+E)*2.0*.5+(Z+9999999747378752.0e-21)*(D+C)*2.0*.5+(U+9999999747378752.0e-21)*(u+t)*2.0*.5+(L+9999999747378752.0e-21)*q*.5);if(X>1.1920928955078125e-7){i=e;return}Z=+Q(+(ba+aa+0.0));do{if(Z>1.1920928955078125e-7){if(!(X/Z*1.0499999523162842>qa)){break}ga=13;oa=-(n*I+w*J+s*H)/Z;ma=(k*n+j*w+h*s)/Z;na=0.0/Z;W=ca<0.0&1;a=0;qa=X/Z}}while(0);X=(S*I+R*J+O*H)*(k*p+j*x+h*r)-(S*k+R*j+O*h)*(p*I+x*J+r*H);T=+P(+X)-((V+9999999747378752.0e-21)*(A+E)*2.0*.5+(T+9999999747378752.0e-21)*(D+C)*2.0*.5+(U+9999999747378752.0e-21)*(v+y)*2.0*.5+(M+9999999747378752.0e-21)*q*.5);if(T>1.1920928955078125e-7){i=e;return}U=+Q(+(da+_+0.0));do{if(U>1.1920928955078125e-7){if(!(T/U*1.0499999523162842>qa)){fa=a;break}ga=14;oa=-(p*I+x*J+r*H)/U;ma=(k*p+j*x+h*r)/U;na=0.0/U;W=X<0.0&1;fa=0;qa=T/U}else{fa=a}}while(0);O=(S*I+R*J+O*H)*(k*o+j*m+h*l)-(S*k+R*j+O*h)*(o*I+m*J+l*H);K=+P(+O)-((K+9999999747378752.0e-21)*(A+E)*2.0*.5+(N+9999999747378752.0e-21)*(D+C)*2.0*.5+(L+9999999747378752.0e-21)*(v+y)*2.0*.5+(M+9999999747378752.0e-21)*(u+t)*2.0*.5);if(K>1.1920928955078125e-7){i=e;return}L=+Q(+(ea+$+0.0));do{if(L>1.1920928955078125e-7){if(!(K/L*1.0499999523162842>qa)){a=55;break}ga=15;oa=-(o*I+m*J+l*H)/L;ma=(k*o+j*m+h*l)/L;na=0.0/L;W=O<0.0&1;qa=K/L;a=58}else{a=55}}while(0);do{if((a|0)==55){if((ga|0)==0){i=e;return}if((fa|0)==0){a=58;break}k=+g[fa>>2];h=+g[fa+16>>2];j=+g[fa+32>>2]}}while(0);if((a|0)==58){k=oa*+g[e+48>>2]+ma*+g[f>>2]+na*G;h=oa*+g[e+64>>2]+ma*+g[e+68>>2]+na*F;j=oa*+g[e+80>>2]+ma*+g[e+84>>2]+na*z}if((W|0)!=0){k=-k;h=-h;j=-j}if((ga|0)>6){ca=+g[e+48>>2];da=+g[e+64>>2];na=+g[e+80>>2];ma=(k*ca+h*da+j*na>0.0?1.0:-1.0)*(A+E)*2.0*.5;A=+g[f>>2];ea=+g[e+68>>2];ra=+g[e+84>>2];oa=(k*A+h*ea+j*ra>0.0?1.0:-1.0)*(D+C)*2.0*.5;va=(k*G+h*F+j*z>0.0?1.0:-1.0)*B*.5;A=+g[b+48>>2]+ma*ca+oa*A+va*G;B=+g[b+52>>2]+ma*da+oa*ea+va*F;z=+g[b+56>>2]+ma*na+oa*ra+va*z;c[e+520>>2]=c[b+112>>2];c[e+524>>2]=c[b+116>>2];c[e+528>>2]=c[b+120>>2];va=(k*n+h*w+j*s>0.0?-1.0:1.0)*(v+y)*2.0*.5;v=(k*p+h*x+j*r>0.0?-1.0:1.0)*(u+t)*2.0*.5;t=+g[e+524>>2]+va*w+v*x;r=+g[e+528>>2]+va*s+v*r;q=(k*o+h*m+j*l>0.0?-1.0:1.0)*q*.5;n=+g[e+520>>2]+va*n+v*p+q*o;g[e+520>>2]=n;g[e+524>>2]=t+q*m;g[e+528>>2]=r+q*l;Da=ga+ -7|0;x=+g[e+48+(((Da|0)/3|0)<<2)>>2];w=+g[e+48+(((Da|0)/3|0)+4<<2)>>2];v=+g[e+48+(((Da|0)/3|0)+8<<2)>>2];o=+g[e+(((Da|0)%3|0)<<2)>>2];s=+g[e+(((Da|0)%3|0)+4<<2)>>2];p=+g[e+(((Da|0)%3|0)+8<<2)>>2];u=1.0-(x*o+w*s+v*p)*(x*o+w*s+v*p);if(!(u<=9999999747378752.0e-20)){u=(((n-A)*x+(t+q*m-B)*w+(r+q*l-z)*v)*(x*o+w*s+v*p)-((n-A)*o+(t+q*m-B)*s+(r+q*l-z)*p))*(1.0/u)}else{u=0.0}g[e+520>>2]=n+u*o;g[e+524>>2]=t+q*m+u*s;g[e+528>>2]=r+q*l+u*p;Da=c[(c[d>>2]|0)+16>>2]|0;g[e+504>>2]=-k;g[e+508>>2]=-h;g[e+512>>2]=-j;g[e+516>>2]=0.0;rc[Da&15](d,e+504|0,e+520|0,qa);i=e;return}W=(ga|0)<4;if(W){n=k;l=h;m=j;ha=e+48|0;ta=e;fa=e+548|0;pa=e+536|0;f=b+48|0;b=b+112|0}else{n=-k;l=-h;m=-j;ha=e;ta=e+48|0;fa=e+536|0;pa=e+548|0;f=b+112|0;b=b+48|0}q=n*+g[ta>>2]+l*+g[ta+16>>2]+m*+g[ta+32>>2];g[e+488>>2]=q;p=n*+g[ta+4>>2]+l*+g[ta+20>>2]+m*+g[ta+36>>2];g[e+492>>2]=p;o=n*+g[ta+8>>2]+l*+g[ta+24>>2]+m*+g[ta+40>>2];g[e+496>>2]=o;q=+P(+q);p=+P(+p);o=+P(+o);if(p>q){sa=0;ja=p>o;ia=p>o?1:2}else{sa=q>o&1;ja=q>o;ia=q>o?0:2}ua=ja?2:1;q=+g[pa+(ia<<2)>>2];o=+g[b>>2]- +g[f>>2];p=q*+g[ta+(ia<<2)>>2];if(+g[e+488+(ia<<2)>>2]<0.0){p=o+p;o=+g[b+4>>2]- +g[f+4>>2]+q*+g[ta+((ia|4)<<2)>>2];q=+g[b+8>>2]- +g[f+8>>2]+q*+g[ta+((ia|8)<<2)>>2]}else{p=o-p;o=+g[b+4>>2]- +g[f+4>>2]-q*+g[ta+((ia|4)<<2)>>2];q=+g[b+8>>2]- +g[f+8>>2]-q*+g[ta+((ia|8)<<2)>>2]}ka=(W?-1:-4)+ga|0;if((ka|0)==0){wa=1;xa=2}else if((ka|0)==1){wa=0;xa=2}else{wa=0;xa=1}u=+g[ha+(wa<<2)>>2];v=+g[ha+((wa|4)<<2)>>2];w=+g[ha+((wa|8)<<2)>>2];t=p*u+o*v+q*w;r=+g[ha+(xa<<2)>>2];s=+g[ha+((xa|4)<<2)>>2];z=+g[ha+((xa|8)<<2)>>2];y=p*r+o*s+q*z;la=ta+(sa<<2)|0;x=+g[la>>2];ia=ta+((sa|4)<<2)|0;D=+g[ia>>2];ga=ta+((sa|8)<<2)|0;B=+g[ga>>2];ja=ta+(ua<<2)|0;C=+g[ja>>2];ha=ta+((ua|4)<<2)|0;A=+g[ha>>2];b=ta+((ua|8)<<2)|0;E=+g[b>>2];ra=+g[pa+(sa<<2)>>2];va=+g[pa+(ua<<2)>>2];qa=(u*C+v*A+w*E)*va;va=(r*C+s*A+z*E)*va;g[e+456>>2]=t-(u*x+v*D+w*B)*ra-qa;g[e+460>>2]=y-(r*x+s*D+z*B)*ra-va;g[e+464>>2]=t-(u*x+v*D+w*B)*ra+qa;g[e+468>>2]=y-(r*x+s*D+z*B)*ra+va;g[e+472>>2]=t+(u*x+v*D+w*B)*ra+qa;g[e+476>>2]=y+(r*x+s*D+z*B)*ra+va;g[e+480>>2]=t+(u*x+v*D+w*B)*ra-qa;g[e+484>>2]=y+(r*x+s*D+z*B)*ra-va;g[e+448>>2]=+g[fa+(wa<<2)>>2];g[e+452>>2]=+g[fa+(xa<<2)>>2];ta=0;za=4;xa=e+456|0;sa=e+384|0;a:while(1){pa=e+448+(ta<<2)|0;ua=1-ta|0;wa=-1;while(1){if((za|0)>0){F=+(wa|0);Ba=0;ya=xa;Aa=sa;while(1){Ca=ya+(ta<<2)|0;G=+g[Ca>>2];H=+g[pa>>2];if(F*G>2]=+g[ya>>2];g[Aa+4>>2]=+g[ya+4>>2];Ba=Ba+1|0;if((Ba&8|0)!=0){za=Ba;break a}G=+g[Ca>>2];H=+g[pa>>2];Aa=Aa+8|0}Da=ya;ya=ya+8|0;Ca=(za|0)>1?ya:xa;I=+g[Ca+(ta<<2)>>2];if(F*G>2];g[Aa+(ua<<2)>>2]=va+(F*H-G)*((+g[Ca+(ua<<2)>>2]-va)/(I-G));g[Aa+(ta<<2)>>2]=F*+g[pa>>2];Ba=Ba+1|0;if((Ba&8|0)==0){Aa=Aa+8|0}else{za=Ba;break a}}za=za+ -1|0;if((za|0)<=0){za=Ba;break}}}else{za=0}ya=(sa|0)==(e+384|0)?e+592|0:e+384|0;if((wa|0)<0){xa=sa;sa=ya;wa=wa+2|0}else{break}}ta=ta+1|0;if((ta|0)<2){xa=sa;sa=ya}else{break}}if((sa|0)!=(e+384|0)){ey(e+384|0,sa|0,za<<3|0)|0}if((za|0)<1){i=e;return}F=1.0/((u*x+v*D+w*B)*(r*C+s*A+z*E)-(r*x+s*D+z*B)*(u*C+v*A+w*E));G=+g[fa+(ka<<2)>>2];H=+g[la>>2];I=+g[ja>>2];J=+g[ia>>2];K=+g[ha>>2];L=+g[ga>>2];M=+g[b>>2];b=0;fa=0;do{Da=fa<<1;N=+g[e+384+(Da<<2)>>2];O=+g[e+384+((Da|1)<<2)>>2];oa=(r*C+s*A+z*E)*F*(N-t)-(u*C+v*A+w*E)*F*(O-y);va=(u*x+v*D+w*B)*F*(O-y)-(r*x+s*D+z*B)*F*(N-t);Da=b*3|0;qa=p+oa*H+va*I;g[e+288+(Da<<2)>>2]=qa;ra=o+oa*J+va*K;g[e+288+(Da+1<<2)>>2]=ra;va=q+oa*L+va*M;g[e+288+(Da+2<<2)>>2]=va;va=G-(n*qa+l*ra+m*va);g[e+256+(b<<2)>>2]=va;if(va>=0.0){Da=b<<1;g[e+384+(Da<<2)>>2]=N;g[e+384+((Da|1)<<2)>>2]=O;b=b+1|0}fa=fa+1|0}while((fa|0)!=(za|0));if((b|0)<1){i=e;return}fa=(b|0)<4?b:4;fa=(fa|0)<1?1:fa;if((b|0)<=(fa|0)){a=(b|0)>0;if(W){if(!a){i=e;return}a=f+4|0;W=f+8|0;k=-k;h=-h;j=-j;fa=0;do{Da=fa*3|0;g[e+240>>2]=+g[e+288+(Da<<2)>>2]+ +g[f>>2];g[e+244>>2]=+g[e+288+(Da+1<<2)>>2]+ +g[a>>2];g[e+248>>2]=+g[e+288+(Da+2<<2)>>2]+ +g[W>>2];Da=c[(c[d>>2]|0)+16>>2]|0;g[e+224>>2]=k;g[e+228>>2]=h;g[e+232>>2]=j;g[e+236>>2]=0.0;rc[Da&15](d,e+224|0,e+240|0,-+g[e+256+(fa<<2)>>2]);fa=fa+1|0}while((fa|0)!=(b|0));i=e;return}else{if(!a){i=e;return}a=f+4|0;W=f+8|0;l=-k;m=-h;n=-j;fa=0;do{Da=fa*3|0;va=+g[e+256+(fa<<2)>>2];g[e+208>>2]=+g[e+288+(Da<<2)>>2]+ +g[f>>2]-k*va;g[e+212>>2]=+g[e+288+(Da+1<<2)>>2]+ +g[a>>2]-h*va;g[e+216>>2]=+g[e+288+(Da+2<<2)>>2]+ +g[W>>2]-j*va;Da=c[(c[d>>2]|0)+16>>2]|0;g[e+192>>2]=l;g[e+196>>2]=m;g[e+200>>2]=n;g[e+204>>2]=0.0;rc[Da&15](d,e+192|0,e+208|0,-va);fa=fa+1|0}while((fa|0)!=(b|0));i=e;return}}if((b|0)>1){ha=1;ga=0;l=+g[e+256>>2];while(1){m=+g[e+256+(ha<<2)>>2];ia=m>l;ga=ia?ha:ga;ha=ha+1|0;if((ha|0)==(b|0)){break}else{l=ia?m:l}}}else{ga=0}if((b|0)==2){q=(+g[e+384>>2]+ +g[e+392>>2])*.5;l=(+g[e+388>>2]+ +g[e+396>>2])*.5;a=115}else if((b|0)!=1){ha=b+ -1|0;if((ha|0)>0){r=0.0;q=0.0;p=0.0;ia=0;do{Da=ia<<1;oa=+g[e+384+(Da<<2)>>2];qa=+g[e+384+(Da+3<<2)>>2];ra=+g[e+384+(Da+2<<2)>>2];va=+g[e+384+((Da|1)<<2)>>2];r=r+(oa*qa-ra*va);q=q+(oa+ra)*(oa*qa-ra*va);p=p+(qa+va)*(oa*qa-ra*va);ia=ia+1|0}while((ia|0)!=(ha|0))}else{r=0.0;q=0.0;p=0.0}Da=b<<1;o=+g[e+384+(Da+ -2<<2)>>2];n=+g[e+388>>2];m=+g[e+384>>2];l=+g[e+384+(Da+ -1<<2)>>2];r=r+(o*n-m*l);if(+P(+r)>1.1920928955078125e-7){r=1.0/(r*3.0)}else{r=999999984306749400.0}if((b|0)>0){q=r*(q+(o*n-m*l)*(o+m));l=r*(p+(o*n-m*l)*(l+n));a=115}else{ha=0}}else{q=+g[e+384>>2];l=+g[e+388>>2];a=115}if((a|0)==115){a=0;do{Da=a<<1;g[e+592+(a<<2)>>2]=+Y(+(+g[e+384+((Da|1)<<2)>>2]-l),+(+g[e+384+(Da<<2)>>2]-q));a=a+1|0}while((a|0)!=(b|0));a=0;do{c[e+560+(a<<2)>>2]=1;a=a+1|0}while((a|0)!=(b|0));ha=1}a=e+560+(ga<<2)|0;c[a>>2]=0;c[e+160>>2]=ga;b:do{if((fa|0)>1){l=+g[e+592+(ga<<2)>>2];if(ha){ha=e+164|0;a=1}else{ha=e+164|0;b=1;while(1){c[ha>>2]=ga;c[a>>2]=0;b=b+1|0;if((b|0)==(fa|0)){break b}else{ha=ha+4|0}}}while(1){m=+(a|0)*(6.2831854820251465/+(fa|0))+l;if(m>3.1415927410125732){m=m+-6.2831854820251465}c[ha>>2]=ga;ja=ga;ia=0;n=1.0e9;do{do{if((c[e+560+(ia<<2)>>2]|0)!=0){o=+P(+(+g[e+592+(ia<<2)>>2]-m));if(o>3.1415927410125732){o=6.2831854820251465-o}if(!(o>2]=ia;ja=ia;n=o}}while(0);ia=ia+1|0}while((ia|0)!=(b|0));c[e+560+(ja<<2)>>2]=0;a=a+1|0;if((a|0)==(fa|0)){break}else{ha=ha+4|0}}}}while(0);if((fa|0)<=0){i=e;return}a=f+4|0;b=f+8|0;n=-j;m=-h;l=-k;if(W){W=0;do{Da=c[e+160+(W<<2)>>2]|0;g[e+144>>2]=+g[e+288+(Da*3<<2)>>2]+ +g[f>>2];g[e+148>>2]=+g[e+288+((Da*3|0)+1<<2)>>2]+ +g[a>>2];g[e+152>>2]=+g[e+288+((Da*3|0)+2<<2)>>2]+ +g[b>>2];Ca=c[(c[d>>2]|0)+16>>2]|0;g[e+128>>2]=l;g[e+132>>2]=m;g[e+136>>2]=n;g[e+140>>2]=0.0;rc[Ca&15](d,e+128|0,e+144|0,-+g[e+256+(Da<<2)>>2]);W=W+1|0}while((W|0)<(fa|0));i=e;return}else{W=0;do{Ca=c[e+160+(W<<2)>>2]|0;oa=+g[e+288+(Ca*3<<2)>>2]+ +g[f>>2];g[e+144>>2]=oa;qa=+g[e+288+((Ca*3|0)+1<<2)>>2]+ +g[a>>2];g[e+148>>2]=qa;ra=+g[e+288+((Ca*3|0)+2<<2)>>2]+ +g[b>>2];g[e+152>>2]=ra;Da=c[(c[d>>2]|0)+16>>2]|0;g[e+112>>2]=l;g[e+116>>2]=m;g[e+120>>2]=n;g[e+124>>2]=0.0;va=+g[e+256+(Ca<<2)>>2];g[e+96>>2]=oa-k*va;g[e+100>>2]=qa-va*h;g[e+104>>2]=ra-va*j;g[e+108>>2]=0.0;rc[Da&15](d,e+112|0,e+96|0,-va);W=W+1|0}while((W|0)<(fa|0));i=e;return}}function Dv(a){a=a|0;return}function Ev(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Fv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+32|0;h=(a[b+28>>0]|0)!=0;f=h?e:d;e=h?d:e;d=c[f+4>>2]|0;h=c[d+16>>2]|0;j=c[b+12>>2]|0;if((j|0)<(h|0)){if((c[b+16>>2]|0)<(h|0)){if((h|0)==0){k=j;l=0}else{c[4546]=(c[4546]|0)+1;k=Zx((h<<2|3)+16|0)|0;if((k|0)==0){l=0}else{c[(k+19&-16)+ -4>>2]=k;l=k+19&-16}k=c[b+12>>2]|0}if((k|0)>0){m=0;do{n=l+(m<<2)|0;if((n|0)!=0){c[n>>2]=c[(c[b+20>>2]|0)+(m<<2)>>2]}m=m+1|0}while((m|0)!=(k|0))}k=c[b+20>>2]|0;if((k|0)!=0){if((a[b+24>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[b+20>>2]=0}a[b+24>>0]=1;c[b+20>>2]=l;c[b+16>>2]=h;k=b+20|0}else{k=b+20|0}do{l=(c[k>>2]|0)+(j<<2)|0;if((l|0)!=0){c[l>>2]=0}j=j+1|0}while((j|0)!=(h|0))}c[b+12>>2]=h;if((h|0)<=0){i=g;return}j=0;do{if((c[d+64>>2]|0)==0){l=c[(c[d+24>>2]|0)+(j*80|0)+64>>2]|0;m=c[f+8>>2]|0;n=c[f+12>>2]|0;c[g>>2]=f;c[g+4>>2]=l;c[g+8>>2]=m;c[g+12>>2]=n;c[g+16>>2]=-1;c[g+20>>2]=j;n=c[b+4>>2]|0;n=Vb[c[(c[n>>2]|0)+8>>2]&31](n,g,e,c[b+32>>2]|0)|0;c[(c[b+20>>2]|0)+(j<<2)>>2]=n}else{c[(c[b+20>>2]|0)+(j<<2)>>2]=0}j=j+1|0}while((j|0)!=(h|0));i=g;return}function Gv(a){a=a|0;var b=0;b=i;Hv(a);if((a|0)==0){i=b;return}_x(a);i=b;return}function Hv(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;c[b>>2]=16208;e=c[b+12>>2]|0;if((e|0)>0){f=0;do{g=c[(c[b+20>>2]|0)+(f<<2)>>2]|0;if((g|0)!=0){Nb[c[c[g>>2]>>2]&255](g);g=c[b+4>>2]|0;Pb[c[(c[g>>2]|0)+60>>2]&127](g,c[(c[b+20>>2]|0)+(f<<2)>>2]|0)}f=f+1|0}while((f|0)!=(e|0))}e=c[b+20>>2]|0;if((e|0)==0){a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;g=b+16|0;c[g>>2]=0;i=d;return}if((a[b+24>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+20>>2]=0;a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;g=b+16|0;c[g>>2]=0;i=d;return}function Iv(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0;j=i;i=i+320|0;k=(a[b+28>>0]|0)!=0;m=k?e:d;k=k?d:e;l=c[m+4>>2]|0;if((c[l+68>>2]|0)!=(c[b+40>>2]|0)){p=c[b+12>>2]|0;if((p|0)>0){o=0;do{n=c[(c[b+20>>2]|0)+(o<<2)>>2]|0;if((n|0)!=0){Nb[c[c[n>>2]>>2]&255](n);s=c[b+4>>2]|0;Pb[c[(c[s>>2]|0)+60>>2]&127](s,c[(c[b+20>>2]|0)+(o<<2)>>2]|0)}o=o+1|0}while((o|0)!=(p|0))}Fv(b,d,e)}d=c[l+64>>2]|0;n=c[b+4>>2]|0;q=c[b+20>>2]|0;o=c[b+32>>2]|0;c[j+280>>2]=16288;c[j+284>>2]=m;c[j+288>>2]=k;c[j+292>>2]=n;c[j+296>>2]=f;c[j+300>>2]=h;c[j+304>>2]=q;c[j+308>>2]=o;f=j+272|0;a[f>>0]=1;o=j+268|0;c[o>>2]=0;n=j+260|0;c[n>>2]=0;c[j+264>>2]=0;e=c[b+12>>2]|0;if((e|0)>0){p=0;while(1){q=c[q+(p<<2)>>2]|0;if((q|0)!=0){Pb[c[(c[q>>2]|0)+16>>2]&127](q,j+256|0);e=c[n>>2]|0;if((e|0)>0){r=e;e=0;do{q=c[(c[o>>2]|0)+(e<<2)>>2]|0;if((c[q+748>>2]|0)!=0){c[h+4>>2]=q;s=c[q+740>>2]|0;r=c[(c[h+8>>2]|0)+8>>2]|0;if((s|0)==(r|0)){Gt(q,s+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0)}else{Gt(q,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,r+4|0)}c[h+4>>2]=0;r=c[n>>2]|0}e=e+1|0}while((e|0)<(r|0));e=r}if((e|0)<0){if((c[j+264>>2]|0)<0){r=c[o>>2]|0;if((e|0)>0){q=0;do{if((q|0)!=0){c[0+(q<<2)>>2]=c[r+(q<<2)>>2]}q=q+1|0}while((q|0)!=(e|0))}if((r|0)!=0){if((a[f>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[r+ -4>>2]|0)}c[o>>2]=0}a[f>>0]=1;c[o>>2]=0;c[j+264>>2]=0}do{q=(c[o>>2]|0)+(e<<2)|0;if((q|0)!=0){c[q>>2]=0}e=e+1|0}while((e|0)!=0)}c[n>>2]=0;e=c[b+12>>2]|0}p=p+1|0;if((p|0)>=(e|0)){break}q=c[b+20>>2]|0}h=c[o>>2]|0;if((h|0)!=0){if((a[f>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[h+ -4>>2]|0)}c[o>>2]=0}}a[f>>0]=1;c[o>>2]=0;c[n>>2]=0;c[j+264>>2]=0;if((d|0)==0){h=c[b+12>>2]|0;if((h|0)>0){d=0;do{Jv(j+280|0,c[(c[l+24>>2]|0)+(d*80|0)+64>>2]|0,d);d=d+1|0}while((d|0)<(h|0))}else{i=j;return}}else{s=c[m+12>>2]|0;H=+g[s>>2];G=+g[s+16>>2];F=+g[s+32>>2];E=+g[s+4>>2];D=+g[s+20>>2];C=+g[s+36>>2];y=+g[s+8>>2];w=+g[s+24>>2];u=+g[s+40>>2];B=-+g[s+48>>2];A=-+g[s+52>>2];z=-+g[s+56>>2];s=c[k+12>>2]|0;Q=+g[s>>2];P=+g[s+16>>2];O=+g[s+32>>2];N=+g[s+4>>2];M=+g[s+20>>2];L=+g[s+36>>2];K=+g[s+8>>2];J=+g[s+24>>2];I=+g[s+40>>2];x=+g[s+48>>2];v=+g[s+52>>2];t=+g[s+56>>2];g[j+160>>2]=H*Q+G*P+F*O;g[j+164>>2]=H*N+G*M+F*L;g[j+168>>2]=H*K+G*J+F*I;g[j+172>>2]=0.0;g[j+176>>2]=E*Q+D*P+C*O;g[j+180>>2]=E*N+D*M+C*L;g[j+184>>2]=E*K+D*J+C*I;g[j+188>>2]=0.0;g[j+192>>2]=y*Q+w*P+u*O;g[j+196>>2]=y*N+w*M+u*L;g[j+200>>2]=y*K+w*J+u*I;g[j+204>>2]=0.0;g[j+208>>2]=H*B+G*A+F*z+(H*x+G*v+F*t);g[j+212>>2]=E*B+D*A+C*z+(E*x+D*v+C*t);g[j+216>>2]=y*B+w*A+u*z+(y*x+w*v+u*t);g[j+220>>2]=0.0;s=c[k+4>>2]|0;wc[c[(c[s>>2]|0)+8>>2]&63](s,j+160|0,j+240|0,j+224|0);c[j+128>>2]=c[j+240>>2];c[j+132>>2]=c[j+244>>2];c[j+136>>2]=c[j+248>>2];c[j+140>>2]=c[j+252>>2];c[j+144>>2]=c[j+224>>2];c[j+148>>2]=c[j+228>>2];c[j+152>>2]=c[j+232>>2];c[j+156>>2]=c[j+236>>2];tr(c[d>>2]|0,j+128|0,j+280|0)}h=c[b+12>>2]|0;if((h|0)<=0){i=j;return}d=0;do{do{if((c[(c[b+20>>2]|0)+(d<<2)>>2]|0)!=0){q=c[l+24>>2]|0;s=c[q+(d*80|0)+64>>2]|0;r=c[m+12>>2]|0;w=+g[r>>2];x=+g[r+4>>2];y=+g[r+8>>2];z=+g[r+16>>2];A=+g[r+20>>2];B=+g[r+24>>2];I=+g[r+32>>2];K=+g[r+36>>2];M=+g[r+40>>2];C=+g[q+(d*80|0)>>2];D=+g[q+(d*80|0)+16>>2];E=+g[q+(d*80|0)+32>>2];F=+g[q+(d*80|0)+4>>2];G=+g[q+(d*80|0)+20>>2];H=+g[q+(d*80|0)+36>>2];J=+g[q+(d*80|0)+8>>2];L=+g[q+(d*80|0)+24>>2];N=+g[q+(d*80|0)+40>>2];u=+g[q+(d*80|0)+48>>2];v=+g[q+(d*80|0)+52>>2];Q=+g[q+(d*80|0)+56>>2];O=+g[r+48>>2]+(w*u+x*v+y*Q);P=+g[r+52>>2]+(z*u+A*v+B*Q);Q=+g[r+56>>2]+(I*u+K*v+M*Q);g[j+64>>2]=w*C+x*D+y*E;g[j+68>>2]=w*F+x*G+y*H;g[j+72>>2]=w*J+x*L+y*N;g[j+76>>2]=0.0;g[j+80>>2]=z*C+A*D+B*E;g[j+84>>2]=z*F+A*G+B*H;g[j+88>>2]=z*J+A*L+B*N;g[j+92>>2]=0.0;g[j+96>>2]=I*C+K*D+M*E;g[j+100>>2]=I*F+K*G+M*H;g[j+104>>2]=I*J+K*L+M*N;g[j+108>>2]=0.0;g[j+112>>2]=O;g[j+116>>2]=P;g[j+120>>2]=Q;g[j+124>>2]=0.0;wc[c[(c[s>>2]|0)+8>>2]&63](s,j+64|0,j+48|0,j+32|0);s=c[k+4>>2]|0;wc[c[(c[s>>2]|0)+8>>2]&63](s,c[k+12>>2]|0,j+16|0,j);if(!(+g[j+48>>2]>+g[j>>2])?!(+g[j+32>>2]<+g[j+16>>2]):0){f=1}else{f=0}if(!(!(+g[j+56>>2]>+g[j+8>>2])?!(+g[j+40>>2]<+g[j+24>>2]):0)){f=0}if(!(+g[j+52>>2]>+g[j+4>>2])?!(+g[j+36>>2]<+g[j+20>>2]|f^1):0){break}s=c[(c[b+20>>2]|0)+(d<<2)>>2]|0;Nb[c[c[s>>2]>>2]&255](s);s=c[b+4>>2]|0;Pb[c[(c[s>>2]|0)+60>>2]&127](s,c[(c[b+20>>2]|0)+(d<<2)>>2]|0);c[(c[b+20>>2]|0)+(d<<2)>>2]=0}}while(0);d=d+1|0}while((d|0)<(h|0));i=j;return}function Jv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0;e=i;i=i+160|0;f=c[a+4>>2]|0;h=c[f+12>>2]|0;D=+g[h>>2];C=+g[h+4>>2];B=+g[h+8>>2];A=+g[h+16>>2];z=+g[h+20>>2];y=+g[h+24>>2];r=+g[h+32>>2];p=+g[h+36>>2];n=+g[h+40>>2];f=c[(c[f+4>>2]|0)+24>>2]|0;x=+g[f+(d*80|0)>>2];w=+g[f+(d*80|0)+16>>2];v=+g[f+(d*80|0)+32>>2];u=+g[f+(d*80|0)+4>>2];t=+g[f+(d*80|0)+20>>2];s=+g[f+(d*80|0)+36>>2];q=+g[f+(d*80|0)+8>>2];o=+g[f+(d*80|0)+24>>2];m=+g[f+(d*80|0)+40>>2];F=+g[f+(d*80|0)+48>>2];E=+g[f+(d*80|0)+52>>2];j=+g[f+(d*80|0)+56>>2];l=+g[h+48>>2]+(D*F+C*E+B*j);k=+g[h+52>>2]+(A*F+z*E+y*j);j=+g[h+56>>2]+(r*F+p*E+n*j);g[e+88>>2]=D*x+C*w+B*v;g[e+92>>2]=D*u+C*t+B*s;g[e+96>>2]=D*q+C*o+B*m;g[e+100>>2]=0.0;g[e+104>>2]=A*x+z*w+y*v;g[e+108>>2]=A*u+z*t+y*s;g[e+112>>2]=A*q+z*o+y*m;g[e+116>>2]=0.0;g[e+120>>2]=r*x+p*w+n*v;g[e+124>>2]=r*u+p*t+n*s;g[e+128>>2]=r*q+p*o+n*m;g[e+132>>2]=0.0;g[e+136>>2]=l;g[e+140>>2]=k;g[e+144>>2]=j;g[e+148>>2]=0.0;wc[c[(c[b>>2]|0)+8>>2]&63](b,e+88|0,e+72|0,e+56|0);h=c[a+8>>2]|0;f=c[h+4>>2]|0;wc[c[(c[f>>2]|0)+8>>2]&63](f,c[h+12>>2]|0,e+40|0,e+24|0);if(!(+g[e+72>>2]>+g[e+24>>2])?!(+g[e+56>>2]<+g[e+40>>2]):0){f=1}else{f=0}if(!(!(+g[e+80>>2]>+g[e+32>>2])?!(+g[e+64>>2]<+g[e+48>>2]):0)){f=0}if(+g[e+76>>2]>+g[e+28>>2]){i=e;return}if(+g[e+60>>2]<+g[e+44>>2]|f^1){i=e;return}f=c[a+4>>2]|0;h=c[f+8>>2]|0;c[e>>2]=f;c[e+4>>2]=b;c[e+8>>2]=h;c[e+12>>2]=e+88;c[e+16>>2]=-1;c[e+20>>2]=d;if((c[(c[a+24>>2]|0)+(d<<2)>>2]|0)==0){b=c[a+12>>2]|0;b=Vb[c[(c[b>>2]|0)+8>>2]&31](b,e,c[a+8>>2]|0,c[a+28>>2]|0)|0;c[(c[a+24>>2]|0)+(d<<2)>>2]=b;b=c[a+4>>2]|0}else{b=f}h=c[a+20>>2]|0;f=c[h+8>>2]|0;if((c[f+8>>2]|0)==(c[b+8>>2]|0)){c[h+8>>2]=e;h=c[a+20>>2]|0;sc[c[(c[h>>2]|0)+8>>2]&63](h,-1,d)}else{f=c[h+12>>2]|0;c[h+12>>2]=e;h=c[a+20>>2]|0;sc[c[(c[h>>2]|0)+12>>2]&63](h,-1,d)}d=c[(c[a+24>>2]|0)+(d<<2)>>2]|0;Lb[c[(c[d>>2]|0)+8>>2]&31](d,e,c[a+8>>2]|0,c[a+16>>2]|0,c[a+20>>2]|0);d=c[a+20>>2]|0;if((c[(c[d+8>>2]|0)+8>>2]|0)==(c[(c[a+4>>2]|0)+8>>2]|0)){c[d+8>>2]=f;i=e;return}else{c[d+12>>2]=f;i=e;return}}function Kv(a){a=a|0;return}function Lv(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0;j=i;t=(a[b+28>>0]|0)!=0;k=t?e:d;d=t?d:e;t=c[b+12>>2]|0;if((t|0)<=0){E=1.0;i=j;return+E}n=(c[k+192>>2]|0)+24|0;o=+g[k+4>>2];p=+g[k+8>>2];q=+g[k+12>>2];A=+g[k+16>>2];r=+g[k+20>>2];s=+g[k+24>>2];l=+g[k+28>>2];B=+g[k+32>>2];u=+g[k+36>>2];v=+g[k+40>>2];w=+g[k+44>>2];C=+g[k+48>>2];x=+g[k+52>>2];y=+g[k+56>>2];z=+g[k+60>>2];D=+g[k+64>>2];e=c[k+260>>2]|0;E=1.0;m=0;do{G=c[n>>2]|0;R=+g[G+(m*80|0)>>2];Q=+g[G+(m*80|0)+16>>2];P=+g[G+(m*80|0)+32>>2];O=+g[G+(m*80|0)+4>>2];N=+g[G+(m*80|0)+20>>2];M=+g[G+(m*80|0)+36>>2];L=+g[G+(m*80|0)+8>>2];K=+g[G+(m*80|0)+24>>2];J=+g[G+(m*80|0)+40>>2];I=+g[G+(m*80|0)+48>>2];H=+g[G+(m*80|0)+52>>2];F=+g[G+(m*80|0)+56>>2];c[k+260>>2]=e+1;g[k+4>>2]=o*R+p*Q+q*P;g[k+8>>2]=o*O+p*N+q*M;g[k+12>>2]=o*L+p*K+q*J;g[k+16>>2]=0.0;g[k+20>>2]=r*R+s*Q+l*P;g[k+24>>2]=r*O+s*N+l*M;g[k+28>>2]=r*L+s*K+l*J;g[k+32>>2]=0.0;g[k+36>>2]=u*R+v*Q+w*P;g[k+40>>2]=u*O+v*N+w*M;g[k+44>>2]=u*L+v*K+w*J;g[k+48>>2]=0.0;g[k+52>>2]=x+(o*I+p*H+q*F);g[k+56>>2]=y+(r*I+s*H+l*F);g[k+60>>2]=z+(u*I+v*H+w*F);g[k+64>>2]=0.0;G=c[(c[b+20>>2]|0)+(m<<2)>>2]|0;F=+Zb[c[(c[G>>2]|0)+12>>2]&15](G,k,d,f,h);E=F>2]|0)+1|0;c[k+260>>2]=e;g[k+4>>2]=o;g[k+8>>2]=p;g[k+12>>2]=q;g[k+16>>2]=A;g[k+20>>2]=r;g[k+24>>2]=s;g[k+28>>2]=l;g[k+32>>2]=B;g[k+36>>2]=u;g[k+40>>2]=v;g[k+44>>2]=w;g[k+48>>2]=C;g[k+52>>2]=x;g[k+56>>2]=y;g[k+60>>2]=z;g[k+64>>2]=D;m=m+1|0}while((m|0)!=(t|0));i=j;return+E}function Mv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;f=c[a+12>>2]|0;if((f|0)<=0){i=d;return}e=0;do{g=c[(c[a+20>>2]|0)+(e<<2)>>2]|0;if((g|0)!=0){Pb[c[(c[g>>2]|0)+16>>2]&127](g,b);f=c[a+12>>2]|0}e=e+1|0}while((e|0)<(f|0));i=d;return}function Nv(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Ov(a,b){a=a|0;b=b|0;var d=0;d=i;b=c[b+36>>2]|0;Jv(a,c[(c[(c[(c[a+4>>2]|0)+4>>2]|0)+24>>2]|0)+(b*80|0)+64>>2]|0,b);i=d;return}function Pv(a){a=a|0;var b=0;b=i;Qv(a);if((a|0)==0){i=b;return}_x(a);i=b;return}function Qv(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c[b>>2]=16376;f=c[b+8>>2]|0;e=c[f+8>>2]|0;if((e|0)>0){g=0;do{h=c[(c[f+16>>2]|0)+(g*12|0)+8>>2]|0;if((h|0)!=0){Nb[c[c[h>>2]>>2]&255](h);j=c[b+4>>2]|0;Pb[c[(c[j>>2]|0)+60>>2]&127](j,h)}g=g+1|0}while((g|0)!=(e|0));f=c[b+8>>2]|0}Ww(f);e=c[b+8>>2]|0;Nb[c[c[e>>2]>>2]&255](e);e=c[b+8>>2]|0;if((e|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}e=c[b+24>>2]|0;if((e|0)==0){a[b+28>>0]=1;c[b+24>>2]=0;c[b+16>>2]=0;j=b+20|0;c[j>>2]=0;i=d;return}if((a[b+28>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[e+ -4>>2]|0)}c[b+24>>2]=0;a[b+28>>0]=1;c[b+24>>2]=0;c[b+16>>2]=0;j=b+20|0;c[j>>2]=0;i=d;return}function Rv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;a=c[a+8>>2]|0;f=c[a+8>>2]|0;if((f|0)<=0){i=d;return}e=0;do{g=c[(c[a+16>>2]|0)+(e*12|0)+8>>2]|0;if((g|0)!=0){Pb[c[(c[g>>2]|0)+16>>2]&127](g,b);f=c[a+8>>2]|0}e=e+1|0}while((e|0)<(f|0));i=d;return}function Sv(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0;j=i;i=i+192|0;k=c[d+4>>2]|0;m=c[e+4>>2]|0;if((c[k+68>>2]|0)==(c[b+40>>2]|0)?(c[m+68>>2]|0)==(c[b+44>>2]|0):0){n=b+8|0}else{Y=c[b+8>>2]|0;W=c[Y+8>>2]|0;if((W|0)>0){X=0;do{n=c[(c[Y+16>>2]|0)+(X*12|0)+8>>2]|0;if((n|0)!=0){Nb[c[c[n>>2]>>2]&255](n);ca=c[b+4>>2]|0;Pb[c[(c[ca>>2]|0)+60>>2]&127](ca,n)}X=X+1|0}while((X|0)!=(W|0));Y=c[b+8>>2]|0}Ww(Y);n=b+8|0}W=j+180|0;a[W>>0]=1;Y=j+176|0;c[Y>>2]=0;X=j+168|0;c[X>>2]=0;c[j+172>>2]=0;Z=c[n>>2]|0;$=c[Z+8>>2]|0;if(($|0)>0){_=0;do{aa=c[(c[Z+16>>2]|0)+(_*12|0)+8>>2]|0;if((aa|0)!=0){Pb[c[(c[aa>>2]|0)+16>>2]&127](aa,j+164|0);ba=c[X>>2]|0;if((ba|0)>0){$=0;do{aa=c[(c[Y>>2]|0)+($<<2)>>2]|0;if((c[aa+748>>2]|0)!=0){c[h+4>>2]=aa;ba=c[aa+740>>2]|0;ca=c[(c[h+8>>2]|0)+8>>2]|0;if((ba|0)==(ca|0)){Gt(aa,ba+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0)}else{Gt(aa,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,ca+4|0)}c[h+4>>2]=0;ba=c[X>>2]|0}$=$+1|0}while(($|0)<(ba|0))}if((ba|0)<0){if((c[j+172>>2]|0)<0){$=c[Y>>2]|0;if((ba|0)>0){aa=0;do{if((aa|0)!=0){c[0+(aa<<2)>>2]=c[$+(aa<<2)>>2]}aa=aa+1|0}while((aa|0)!=(ba|0))}if(($|0)!=0){if((a[W>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[$+ -4>>2]|0)}c[Y>>2]=0}a[W>>0]=1;c[Y>>2]=0;c[j+172>>2]=0}do{$=(c[Y>>2]|0)+(ba<<2)|0;if(($|0)!=0){c[$>>2]=0}ba=ba+1|0}while((ba|0)!=0)}c[X>>2]=0;$=c[Z+8>>2]|0}_=_+1|0}while((_|0)<($|0));Z=c[Y>>2]|0;if((Z|0)!=0){if((a[W>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[Z+ -4>>2]|0)}c[Y>>2]=0}}a[W>>0]=1;c[Y>>2]=0;c[X>>2]=0;c[j+172>>2]=0;ba=c[k+64>>2]|0;ca=c[m+64>>2]|0;_=c[b+4>>2]|0;$=c[n>>2]|0;aa=c[b+32>>2]|0;c[j+128>>2]=16464;c[j+132>>2]=0;c[j+136>>2]=d;c[j+140>>2]=e;c[j+144>>2]=_;c[j+148>>2]=f;c[j+152>>2]=h;c[j+156>>2]=$;c[j+160>>2]=aa;f=c[d+12>>2]|0;v=+g[f>>2];x=+g[f+16>>2];z=+g[f+32>>2];t=+g[f+4>>2];s=+g[f+20>>2];r=+g[f+36>>2];q=+g[f+8>>2];p=+g[f+24>>2];o=+g[f+40>>2];w=-+g[f+48>>2];y=-+g[f+52>>2];A=-+g[f+56>>2];f=c[e+12>>2]|0;E=+g[f>>2];F=+g[f+16>>2];G=+g[f+32>>2];H=+g[f+4>>2];I=+g[f+20>>2];J=+g[f+36>>2];K=+g[f+8>>2];L=+g[f+24>>2];u=+g[f+40>>2];B=+g[f+48>>2];C=+g[f+52>>2];D=+g[f+56>>2];f=c[ba>>2]|0;h=c[ca>>2]|0;if(!((f|0)==0|(h|0)==0)){c[4546]=(c[4546]|0)+1;Y=Zx(1043)|0;c[(Y+19&-16)+ -4>>2]=Y;c[(Y+19&-16)>>2]=f;c[(Y+19&-16)+4>>2]=h;V=+P(+(v*E+x*F+z*G));M=+P(+(v*H+x*I+z*J));R=+P(+(v*K+x*L+z*u));Q=+P(+(t*E+s*F+r*G));O=+P(+(t*H+s*I+r*J));U=+P(+(t*K+s*L+r*u));N=+P(+(q*E+p*F+o*G));T=+P(+(q*H+p*I+o*J));S=+P(+(q*K+p*L+o*u));f=1;$=128;Z=128;Y=Y+19&-16;_=124;do{X=f+ -1|0;W=c[Y+(X<<3)>>2]|0;h=c[Y+(X<<3)+4>>2]|0;na=+g[h+16>>2];ma=+g[h>>2];la=+g[h+20>>2];ka=+g[h+4>>2];ja=+g[h+24>>2];da=+g[h+8>>2];ia=v*w+x*y+z*A+(v*B+x*C+z*D)+((v*E+x*F+z*G)*(na+ma)*.5+(v*H+x*I+z*J)*(la+ka)*.5+(v*K+x*L+z*u)*(ja+da)*.5);ga=t*w+s*y+r*A+(t*B+s*C+r*D)+((t*E+s*F+r*G)*(na+ma)*.5+(t*H+s*I+r*J)*(la+ka)*.5+(t*K+s*L+r*u)*(ja+da)*.5);ea=q*w+p*y+o*A+(q*B+p*C+o*D)+((q*E+p*F+o*G)*(na+ma)*.5+(q*H+p*I+o*J)*(la+ka)*.5+(q*K+p*L+o*u)*(ja+da)*.5);ha=((na-ma)*.5+0.0)*V+((la-ka)*.5+0.0)*M+((ja-da)*.5+0.0)*R;fa=((na-ma)*.5+0.0)*Q+((la-ka)*.5+0.0)*O+((ja-da)*.5+0.0)*U;da=((na-ma)*.5+0.0)*N+((la-ka)*.5+0.0)*T+((ja-da)*.5+0.0)*S;do{if(((((+g[W>>2]<=ha+ia?+g[W+16>>2]>=ia-ha:0)?+g[W+4>>2]<=ga+fa:0)?+g[W+20>>2]>=ga-fa:0)?+g[W+8>>2]<=ea+da:0)?+g[W+24>>2]>=ea-da:0){if((X|0)>(_|0)){_=Z<<1;if((Z|0)<(_|0)&($|0)<(_|0)){if((Z|0)!=0){c[4546]=(c[4546]|0)+1;$=Zx((Z<<4|3)+16|0)|0;if(($|0)==0){aa=0}else{c[($+19&-16)+ -4>>2]=$;aa=$+19&-16}if((Z|0)>0){$=0;do{ba=aa+($<<3)|0;if((ba|0)!=0){oa=Y+($<<3)|0;ca=c[oa+4>>2]|0;c[ba>>2]=c[oa>>2];c[ba+4>>2]=ca}$=$+1|0}while(($|0)!=(Z|0))}}else{aa=0}if((Y|0)==0){$=_;Y=aa}else{c[4548]=(c[4548]|0)+1;_x(c[Y+ -4>>2]|0);$=_;Y=aa}}Z=_;_=_+ -4|0}aa=(c[h+40>>2]|0)!=0;if((c[W+40>>2]|0)==0){if(aa){oa=c[h+36>>2]|0;ca=Y+(X<<3)|0;c[ca>>2]=W;c[ca+4>>2]=oa;ca=c[h+40>>2]|0;oa=Y+(f<<3)|0;c[oa>>2]=W;c[oa+4>>2]=ca;f=f+1|0;break}else{sc[c[(c[j+128>>2]|0)+8>>2]&63](j+128|0,W,h);f=X;break}}else{ba=Y+(X<<3)|0;X=c[W+36>>2]|0;if(aa){ca=c[h+36>>2]|0;c[ba>>2]=X;c[ba+4>>2]=ca;ca=c[h+36>>2]|0;oa=Y+(f<<3)|0;c[oa>>2]=c[W+40>>2];c[oa+4>>2]=ca;oa=c[h+40>>2]|0;ca=Y+(f+1<<3)|0;c[ca>>2]=c[W+36>>2];c[ca+4>>2]=oa;ca=c[h+40>>2]|0;oa=Y+(f+2<<3)|0;c[oa>>2]=c[W+40>>2];c[oa+4>>2]=ca;f=f+3|0;break}else{c[ba>>2]=X;c[ba+4>>2]=h;oa=Y+(f<<3)|0;c[oa>>2]=c[W+40>>2];c[oa+4>>2]=h;f=f+1|0;break}}}else{f=X}}while(0)}while((f|0)!=0);if((Y|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[Y+ -4>>2]|0)}}h=c[n>>2]|0;if((c[h+8>>2]|0)>0){f=0;do{X=c[h+16>>2]|0;W=c[X+(f*12|0)+8>>2]|0;do{if((W|0)!=0){oa=c[X+(f*12|0)>>2]|0;ca=c[k+24>>2]|0;ba=c[ca+(oa*80|0)+64>>2]|0;aa=c[d+12>>2]|0;na=+g[aa>>2];K=+g[aa+4>>2];J=+g[aa+8>>2];ka=+g[aa+16>>2];ia=+g[aa+20>>2];ga=+g[aa+24>>2];ja=+g[aa+32>>2];fa=+g[aa+36>>2];Q=+g[aa+40>>2];ea=+g[ca+(oa*80|0)>>2];da=+g[ca+(oa*80|0)+16>>2];V=+g[ca+(oa*80|0)+32>>2];U=+g[ca+(oa*80|0)+4>>2];T=+g[ca+(oa*80|0)+20>>2];S=+g[ca+(oa*80|0)+36>>2];ha=+g[ca+(oa*80|0)+8>>2];R=+g[ca+(oa*80|0)+24>>2];O=+g[ca+(oa*80|0)+40>>2];ma=+g[ca+(oa*80|0)+48>>2];la=+g[ca+(oa*80|0)+52>>2];L=+g[ca+(oa*80|0)+56>>2];N=+g[aa+48>>2]+(na*ma+K*la+J*L);M=+g[aa+52>>2]+(ka*ma+ia*la+ga*L);L=+g[aa+56>>2]+(ja*ma+fa*la+Q*L);g[j>>2]=na*ea+K*da+J*V;g[j+4>>2]=na*U+K*T+J*S;g[j+8>>2]=na*ha+K*R+J*O;g[j+12>>2]=0.0;g[j+16>>2]=ka*ea+ia*da+ga*V;g[j+20>>2]=ka*U+ia*T+ga*S;g[j+24>>2]=ka*ha+ia*R+ga*O;g[j+28>>2]=0.0;g[j+32>>2]=ja*ea+fa*da+Q*V;g[j+36>>2]=ja*U+fa*T+Q*S;g[j+40>>2]=ja*ha+fa*R+Q*O;g[j+44>>2]=0.0;g[j+48>>2]=N;g[j+52>>2]=M;g[j+56>>2]=L;g[j+60>>2]=0.0;wc[c[(c[ba>>2]|0)+8>>2]&63](ba,j,j+112|0,j+96|0);ba=c[(c[h+16>>2]|0)+(f*12|0)+4>>2]|0;aa=c[m+24>>2]|0;oa=c[aa+(ba*80|0)+64>>2]|0;ca=c[e+12>>2]|0;L=+g[ca>>2];M=+g[ca+4>>2];N=+g[ca+8>>2];O=+g[ca+16>>2];Q=+g[ca+20>>2];R=+g[ca+24>>2];fa=+g[ca+32>>2];ha=+g[ca+36>>2];ja=+g[ca+40>>2];S=+g[aa+(ba*80|0)>>2];T=+g[aa+(ba*80|0)+16>>2];U=+g[aa+(ba*80|0)+32>>2];V=+g[aa+(ba*80|0)+4>>2];da=+g[aa+(ba*80|0)+20>>2];ea=+g[aa+(ba*80|0)+36>>2];ga=+g[aa+(ba*80|0)+8>>2];ia=+g[aa+(ba*80|0)+24>>2];ka=+g[aa+(ba*80|0)+40>>2];J=+g[aa+(ba*80|0)+48>>2];K=+g[aa+(ba*80|0)+52>>2];na=+g[aa+(ba*80|0)+56>>2];la=+g[ca+48>>2]+(L*J+M*K+N*na);ma=+g[ca+52>>2]+(O*J+Q*K+R*na);na=+g[ca+56>>2]+(fa*J+ha*K+ja*na);g[j>>2]=L*S+M*T+N*U;g[j+4>>2]=L*V+M*da+N*ea;g[j+8>>2]=L*ga+M*ia+N*ka;g[j+12>>2]=0.0;g[j+16>>2]=O*S+Q*T+R*U;g[j+20>>2]=O*V+Q*da+R*ea;g[j+24>>2]=O*ga+Q*ia+R*ka;g[j+28>>2]=0.0;g[j+32>>2]=fa*S+ha*T+ja*U;g[j+36>>2]=fa*V+ha*da+ja*ea;g[j+40>>2]=fa*ga+ha*ia+ja*ka;g[j+44>>2]=0.0;g[j+48>>2]=la;g[j+52>>2]=ma;g[j+56>>2]=na;g[j+60>>2]=0.0;wc[c[(c[oa>>2]|0)+8>>2]&63](oa,j,j+80|0,j+64|0);if(!(+g[j+112>>2]>+g[j+64>>2])?!(+g[j+96>>2]<+g[j+80>>2]):0){X=1}else{X=0}if(!(!(+g[j+120>>2]>+g[j+72>>2])?!(+g[j+104>>2]<+g[j+88>>2]):0)){X=0}if(!(+g[j+116>>2]>+g[j+68>>2])?!(+g[j+100>>2]<+g[j+84>>2]|X^1):0){break}Nb[c[c[W>>2]>>2]&255](W);X=c[b+4>>2]|0;Pb[c[(c[X>>2]|0)+60>>2]&127](X,W);X=c[h+16>>2]|0;W=c[X+(f*12|0)>>2]|0;X=c[X+(f*12|0)+4>>2]|0;Y=c[b+16>>2]|0;if((Y|0)==(c[b+20>>2]|0)?(l=(Y|0)==0?1:Y<<1,(Y|0)<(l|0)):0){if((l|0)==0){Z=0}else{c[4546]=(c[4546]|0)+1;Y=Zx((l*12|3)+16|0)|0;if((Y|0)==0){Z=0}else{c[(Y+19&-16)+ -4>>2]=Y;Z=Y+19&-16}Y=c[b+16>>2]|0}if((Y|0)>0){$=0;do{_=Z+($*12|0)|0;if((_|0)!=0){oa=(c[b+24>>2]|0)+($*12|0)|0;c[_+0>>2]=c[oa+0>>2];c[_+4>>2]=c[oa+4>>2];c[_+8>>2]=c[oa+8>>2]}$=$+1|0}while(($|0)!=(Y|0))}Y=c[b+24>>2]|0;if((Y|0)!=0){if((a[b+28>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[Y+ -4>>2]|0)}c[b+24>>2]=0}a[b+28>>0]=1;c[b+24>>2]=Z;c[b+20>>2]=l;Y=c[b+16>>2]|0}_=c[b+24>>2]|0;Z=_+(Y*12|0)|0;if((Z|0)!=0){c[Z>>2]=W;c[_+(Y*12|0)+4>>2]=X;c[_+(Y*12|0)+8>>2]=0;Y=c[b+16>>2]|0}c[b+16>>2]=Y+1}}while(0);f=f+1|0}while((f|0)<(c[h+8>>2]|0));e=b+24|0;d=b+16|0}else{e=b+24|0;d=b+16|0}if((c[d>>2]|0)>0){k=0;do{ca=c[n>>2]|0;oa=c[e>>2]|0;_b[c[(c[ca>>2]|0)+8>>2]&31](ca,c[oa+(k*12|0)>>2]|0,c[oa+(k*12|0)+4>>2]|0)|0;k=k+1|0}while((k|0)<(c[d>>2]|0))}k=c[e>>2]|0;if((k|0)==0){a[b+28>>0]=1;c[e>>2]=0;c[d>>2]=0;oa=b+20|0;c[oa>>2]=0;i=j;return}if((a[b+28>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[k+ -4>>2]|0)}c[e>>2]=0;a[b+28>>0]=1;c[e>>2]=0;c[d>>2]=0;oa=b+20|0;c[oa>>2]=0;i=j;return}function Tv(a){a=a|0;return}function Uv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0.0}function Vv(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function Wv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0;f=i;i=i+240|0;c[a+4>>2]=(c[a+4>>2]|0)+1;b=c[b+36>>2]|0;d=c[d+36>>2]|0;l=c[a+8>>2]|0;K=c[(c[l+4>>2]|0)+24>>2]|0;j=c[K+(b*80|0)+64>>2]|0;J=(c[(c[a+12>>2]|0)+4>>2]|0)+24|0;k=c[(c[J>>2]|0)+(d*80|0)+64>>2]|0;l=c[l+12>>2]|0;m=+g[l>>2];H=+g[l+4>>2];I=+g[l+8>>2];p=+g[l+16>>2];r=+g[l+20>>2];t=+g[l+24>>2];q=+g[l+32>>2];u=+g[l+36>>2];C=+g[l+40>>2];v=+g[K+(b*80|0)>>2];w=+g[K+(b*80|0)+16>>2];x=+g[K+(b*80|0)+32>>2];y=+g[K+(b*80|0)+4>>2];z=+g[K+(b*80|0)+20>>2];A=+g[K+(b*80|0)+36>>2];s=+g[K+(b*80|0)+8>>2];B=+g[K+(b*80|0)+24>>2];D=+g[K+(b*80|0)+40>>2];n=+g[K+(b*80|0)+48>>2];o=+g[K+(b*80|0)+52>>2];G=+g[K+(b*80|0)+56>>2];E=+g[l+48>>2]+(m*n+H*o+I*G);F=+g[l+52>>2]+(p*n+r*o+t*G);G=+g[l+56>>2]+(q*n+u*o+C*G);g[f+176>>2]=m*v+H*w+I*x;g[f+180>>2]=m*y+H*z+I*A;g[f+184>>2]=m*s+H*B+I*D;g[f+188>>2]=0.0;g[f+192>>2]=p*v+r*w+t*x;g[f+196>>2]=p*y+r*z+t*A;g[f+200>>2]=p*s+r*B+t*D;g[f+204>>2]=0.0;g[f+208>>2]=q*v+u*w+C*x;g[f+212>>2]=q*y+u*z+C*A;g[f+216>>2]=q*s+u*B+C*D;g[f+220>>2]=0.0;g[f+224>>2]=E;g[f+228>>2]=F;g[f+232>>2]=G;g[f+236>>2]=0.0;l=c[(c[a+12>>2]|0)+12>>2]|0;G=+g[l>>2];F=+g[l+4>>2];E=+g[l+8>>2];D=+g[l+16>>2];C=+g[l+20>>2];B=+g[l+24>>2];u=+g[l+32>>2];s=+g[l+36>>2];q=+g[l+40>>2];J=c[J>>2]|0;A=+g[J+(d*80|0)>>2];z=+g[J+(d*80|0)+16>>2];y=+g[J+(d*80|0)+32>>2];x=+g[J+(d*80|0)+4>>2];w=+g[J+(d*80|0)+20>>2];v=+g[J+(d*80|0)+36>>2];t=+g[J+(d*80|0)+8>>2];r=+g[J+(d*80|0)+24>>2];p=+g[J+(d*80|0)+40>>2];I=+g[J+(d*80|0)+48>>2];H=+g[J+(d*80|0)+52>>2];m=+g[J+(d*80|0)+56>>2];o=+g[l+48>>2]+(G*I+F*H+E*m);n=+g[l+52>>2]+(D*I+C*H+B*m);m=+g[l+56>>2]+(u*I+s*H+q*m);g[f+112>>2]=G*A+F*z+E*y;g[f+116>>2]=G*x+F*w+E*v;g[f+120>>2]=G*t+F*r+E*p;g[f+124>>2]=0.0;g[f+128>>2]=D*A+C*z+B*y;g[f+132>>2]=D*x+C*w+B*v;g[f+136>>2]=D*t+C*r+B*p;g[f+140>>2]=0.0;g[f+144>>2]=u*A+s*z+q*y;g[f+148>>2]=u*x+s*w+q*v;g[f+152>>2]=u*t+s*r+q*p;g[f+156>>2]=0.0;g[f+160>>2]=o;g[f+164>>2]=n;g[f+168>>2]=m;g[f+172>>2]=0.0;wc[c[(c[j>>2]|0)+8>>2]&63](j,f+176|0,f+96|0,f+80|0);wc[c[(c[k>>2]|0)+8>>2]&63](k,f+112|0,f+64|0,f+48|0);if(!(+g[f+96>>2]>+g[f+48>>2])?!(+g[f+80>>2]<+g[f+64>>2]):0){l=1}else{l=0}if(!(!(+g[f+104>>2]>+g[f+56>>2])?!(+g[f+88>>2]<+g[f+72>>2]):0)){l=0}if(+g[f+100>>2]>+g[f+52>>2]){i=f;return}if(+g[f+84>>2]<+g[f+68>>2]|l^1){i=f;return}J=c[a+8>>2]|0;K=c[J+8>>2]|0;c[f+24>>2]=J;c[f+28>>2]=j;c[f+32>>2]=K;c[f+36>>2]=f+176;c[f+40>>2]=-1;c[f+44>>2]=b;K=c[a+12>>2]|0;j=c[K+8>>2]|0;c[f>>2]=K;c[f+4>>2]=k;c[f+8>>2]=j;c[f+12>>2]=f+112;c[f+16>>2]=-1;c[f+20>>2]=d;j=c[a+28>>2]|0;c[4438]=(c[4438]|0)+1;k=((d<<16|b)+~((d<<16|b)<<15)>>10^(d<<16|b)+~((d<<16|b)<<15))*9|0;k=(c[j+12>>2]|0)+ -1&((k>>6^k)+~((k>>6^k)<<11)>>16^(k>>6^k)+~((k>>6^k)<<11));a:do{if((k|0)<(c[j+32>>2]|0)?(h=c[(c[j+40>>2]|0)+(k<<2)>>2]|0,!((h|0)==-1)):0){k=c[j+16>>2]|0;while(1){if((c[k+(h*12|0)>>2]|0)==(b|0)?(c[k+(h*12|0)+4>>2]|0)==(d|0):0){break}h=c[(c[j+60>>2]|0)+(h<<2)>>2]|0;if((h|0)==-1){e=17;break a}}if((k+(h*12|0)|0)!=0){h=c[k+(h*12|0)+8>>2]|0}else{e=17}}else{e=17}}while(0);if((e|0)==17){h=c[a+16>>2]|0;h=Vb[c[(c[h>>2]|0)+8>>2]&31](h,f+24|0,f,c[a+32>>2]|0)|0;K=c[a+28>>2]|0;c[(_b[c[(c[K>>2]|0)+12>>2]&31](K,b,d)|0)+8>>2]=h}l=c[a+24>>2]|0;J=c[l+8>>2]|0;K=c[l+12>>2]|0;c[l+8>>2]=f+24;c[(c[a+24>>2]|0)+12>>2]=f;l=c[a+24>>2]|0;sc[c[(c[l>>2]|0)+8>>2]&63](l,-1,b);l=c[a+24>>2]|0;sc[c[(c[l>>2]|0)+12>>2]&63](l,-1,d);Lb[c[(c[h>>2]|0)+8>>2]&31](h,f+24|0,f,c[a+20>>2]|0,c[a+24>>2]|0);c[(c[a+24>>2]|0)+8>>2]=J;c[(c[a+24>>2]|0)+12>>2]=K;i=f;return}function Xv(a,b){a=a|0;b=b|0;return}function Yv(a){a=a|0;var b=0,d=0;b=i;c[a>>2]=16600;c[a+12>>2]=16632;d=c[a+60>>2]|0;Pb[c[(c[d>>2]|0)+20>>2]&127](d,c[a+76>>2]|0);d=c[a+60>>2]|0;Pb[c[(c[d>>2]|0)+16>>2]&127](d,c[a+76>>2]|0);if((a|0)==0){i=b;return}_x(a);i=b;return}function Zv(a){a=a|0;var b=0,d=0;b=i;c[a>>2]=16600;c[a+12>>2]=16632;d=c[a+60>>2]|0;Pb[c[(c[d>>2]|0)+20>>2]&127](d,c[a+76>>2]|0);d=c[a+60>>2]|0;Pb[c[(c[d>>2]|0)+16>>2]&127](d,c[a+76>>2]|0);i=b;return}function _v(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if((c[b+76>>2]|0)==0){i=e;return}h=c[d+4>>2]|0;if((h|0)==(c[d+8>>2]|0)?(f=(h|0)==0?1:h<<1,(h|0)<(f|0)):0){if((f|0)==0){g=0}else{c[4546]=(c[4546]|0)+1;g=Zx((f<<2|3)+16|0)|0;if((g|0)==0){g=0}else{c[(g+19&-16)+ -4>>2]=g;g=g+19&-16}h=c[d+4>>2]|0}if((h|0)>0){j=0;do{k=g+(j<<2)|0;if((k|0)!=0){c[k>>2]=c[(c[d+12>>2]|0)+(j<<2)>>2]}j=j+1|0}while((j|0)!=(h|0))}j=c[d+12>>2]|0;if((j|0)!=0){if((a[d+16>>0]|0)!=0){c[4548]=(c[4548]|0)+1;_x(c[j+ -4>>2]|0);h=c[d+4>>2]|0}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=g;c[d+8>>2]=f}f=(c[d+12>>2]|0)+(h<<2)|0;if((f|0)!=0){c[f>>2]=c[b+76>>2]}c[d+4>>2]=h+1;i=e;return}function $v(a){a=a|0;var b=0,d=0;b=i;c[a>>2]=16632;d=c[a+48>>2]|0;Pb[c[(c[d>>2]|0)+20>>2]&127](d,c[a+64>>2]|0);d=c[a+48>>2]|0;Pb[c[(c[d>>2]|0)+16>>2]&127](d,c[a+64>>2]|0);if((a|0)==0){i=b;return}_x(a);i=b;return}function aw(a){a=a|0;var b=0,d=0;b=i;c[a>>2]=16632;d=c[a+48>>2]|0;Pb[c[(c[d>>2]|0)+20>>2]&127](d,c[a+64>>2]|0);d=c[a+48>>2]|0;Pb[c[(c[d>>2]|0)+16>>2]&127](d,c[a+64>>2]|0);i=b;return}function bw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0;f=i;i=i+128|0;l=+g[b>>2];j=+g[b+16>>2];o=l>2];if((o+g[a+28>>2]){i=f;return}n=l>j?b:b+16|0;if(+g[(+g[n>>2]>k?n:b+32|0)>>2]<+g[a+12>>2]){i=f;return}j=+g[b+8>>2];k=+g[b+24>>2];o=j>2];if((o+g[a+36>>2]){i=f;return}n=j>k?b+8|0:b+24|0;if(+g[(+g[n>>2]>l?n:b+40|0)>>2]<+g[a+20>>2]){i=f;return}l=+g[b+4>>2];j=+g[b+20>>2];o=l>2];if((o+g[a+32>>2]){i=f;return}n=l>j?b+4|0:b+20|0;if(+g[(+g[n>>2]>k?n:b+36|0)>>2]<+g[a+16>>2]){i=f;return}h=c[a+48>>2]|0;m=c[a+4>>2]|0;if((c[(c[m+4>>2]|0)+4>>2]|0)>=20){i=f;return}c[f+32>>2]=0;g[f+36>>2]=1.0;g[f+40>>2]=1.0;g[f+44>>2]=1.0;g[f+48>>2]=0.0;c[f+76>>2]=0;c[f+24>>2]=14704;c[f+28>>2]=1;c[f+80>>2]=c[b+0>>2];c[f+84>>2]=c[b+4>>2];c[f+88>>2]=c[b+8>>2];c[f+92>>2]=c[b+12>>2];c[f+96>>2]=c[b+16>>2];c[f+100>>2]=c[b+20>>2];c[f+104>>2]=c[b+24>>2];c[f+108>>2]=c[b+28>>2];c[f+112>>2]=c[b+32>>2];c[f+116>>2]=c[b+36>>2];c[f+120>>2]=c[b+40>>2];c[f+124>>2]=c[b+44>>2];g[f+68>>2]=+g[a+56>>2];p=c[a+8>>2]|0;n=c[p+8>>2]|0;b=c[p+12>>2]|0;c[f>>2]=p;c[f+4>>2]=f+24;c[f+8>>2]=n;c[f+12>>2]=b;c[f+16>>2]=d;c[f+20>>2]=e;b=Vb[c[(c[h>>2]|0)+8>>2]&31](h,m,f,c[a+64>>2]|0)|0;m=c[a+44>>2]|0;n=c[m+8>>2]|0;if((c[n+8>>2]|0)==(c[(c[a+8>>2]|0)+8>>2]|0)){c[m+8>>2]=f;p=c[a+44>>2]|0;sc[c[(c[p>>2]|0)+8>>2]&63](p,d,e)}else{n=c[m+12>>2]|0;c[m+12>>2]=f;p=c[a+44>>2]|0;sc[c[(c[p>>2]|0)+12>>2]&63](p,d,e)}Lb[c[(c[b>>2]|0)+8>>2]&31](b,c[a+4>>2]|0,f,c[a+52>>2]|0,c[a+44>>2]|0);d=c[a+44>>2]|0;if((c[(c[d+8>>2]|0)+8>>2]|0)==(c[(c[a+8>>2]|0)+8>>2]|0)){c[d+8>>2]=n}else{c[d+12>>2]=n}Nb[c[c[b>>2]>>2]&255](b);Pb[c[(c[h>>2]|0)+60>>2]&127](h,b);c[f+24>>2]=14224;a=c[f+76>>2]|0;if((a|0)==0){i=f;return}Nb[c[c[a>>2]>>2]&255](a);a=c[f+76>>2]|0;if((a|0)==0){i=f;return}c[4548]=(c[4548]|0)+1;_x(c[a+ -4>>2]|0);i=f;return}function cw(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0;j=i;i=i+64|0;l=(a[b+8>>0]|0)!=0;k=l?e:d;e=l?d:e;d=c[e+4>>2]|0;if(!(((c[d+4>>2]|0)+ -21|0)>>>0<9)){i=j;return}if((c[(c[k+4>>2]|0)+4>>2]|0)>=20){i=j;return}m=+bc[c[(c[d>>2]|0)+48>>2]&15](d);c[h+4>>2]=c[b+76>>2];c[b+16>>2]=k;c[b+20>>2]=e;c[b+64>>2]=f;g[b+68>>2]=m;c[b+56>>2]=h;l=c[e+12>>2]|0;B=+g[l>>2];A=+g[l+16>>2];z=+g[l+32>>2];y=+g[l+4>>2];x=+g[l+20>>2];w=+g[l+36>>2];s=+g[l+8>>2];q=+g[l+24>>2];o=+g[l+40>>2];v=-+g[l+48>>2];u=-+g[l+52>>2];t=-+g[l+56>>2];l=c[k+12>>2]|0;K=+g[l>>2];J=+g[l+16>>2];I=+g[l+32>>2];H=+g[l+4>>2];G=+g[l+20>>2];F=+g[l+36>>2];E=+g[l+8>>2];D=+g[l+24>>2];C=+g[l+40>>2];r=+g[l+48>>2];p=+g[l+52>>2];n=+g[l+56>>2];g[j>>2]=B*K+A*J+z*I;g[j+4>>2]=B*H+A*G+z*F;g[j+8>>2]=B*E+A*D+z*C;g[j+12>>2]=0.0;g[j+16>>2]=y*K+x*J+w*I;g[j+20>>2]=y*H+x*G+w*F;g[j+24>>2]=y*E+x*D+w*C;g[j+28>>2]=0.0;g[j+32>>2]=s*K+q*J+o*I;g[j+36>>2]=s*H+q*G+o*F;g[j+40>>2]=s*E+q*D+o*C;g[j+44>>2]=0.0;g[j+48>>2]=B*v+A*u+z*t+(B*r+A*p+z*n);g[j+52>>2]=y*v+x*u+w*t+(y*r+x*p+w*n);g[j+56>>2]=s*v+q*u+o*t+(s*r+q*p+o*n);g[j+60>>2]=0.0;l=c[(c[b+16>>2]|0)+4>>2]|0;wc[c[(c[l>>2]|0)+8>>2]&63](l,j,b+24|0,b+40|0);g[b+40>>2]=+g[b+40>>2]+m;g[b+44>>2]=+g[b+44>>2]+m;g[b+48>>2]=+g[b+48>>2]+m;g[b+24>>2]=+g[b+24>>2]-m;g[b+28>>2]=+g[b+28>>2]-m;g[b+32>>2]=+g[b+32>>2]-m;l=c[b+76>>2]|0;e=c[e+8>>2]|0;c[l+740>>2]=c[k+8>>2];c[l+744>>2]=e;wc[c[(c[d>>2]|0)+64>>2]&63](d,b+12|0,b+24|0,b+40|0);k=c[h+4>>2]|0;do{if((c[k+748>>2]|0)!=0){f=c[k+740>>2]|0;e=c[(c[h+8>>2]|0)+8>>2]|0;if((f|0)==(e|0)){Gt(k,f+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);break}else{Gt(k,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,e+4|0);break}}}while(0);c[b+16>>2]=0;c[b+20>>2]=0;i=j;return}function dw(b,d,e,f,h){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0;h=i;i=i+240|0;f=(a[b+8>>0]|0)!=0;b=f?e:d;d=f?d:e;S=+g[b+116>>2]- +g[b+52>>2];T=+g[b+120>>2]- +g[b+56>>2];U=+g[b+124>>2]- +g[b+60>>2];V=+g[b+252>>2];if(S*S+T*T+U*U>2];p=+g[d+20>>2];r=+g[d+36>>2];z=+g[d+8>>2];A=+g[d+24>>2];B=+g[d+40>>2];j=+g[d+12>>2];C=+g[d+28>>2];E=+g[d+44>>2];R=-+g[d+52>>2];S=-+g[d+56>>2];T=-+g[d+60>>2];o=+g[b+4>>2];q=+g[b+20>>2];s=+g[b+36>>2];t=+g[b+8>>2];u=+g[b+24>>2];v=+g[b+40>>2];w=+g[b+12>>2];x=+g[b+28>>2];y=+g[b+44>>2];J=+g[b+52>>2];I=+g[b+56>>2];H=+g[b+60>>2];F=n*R+p*S+r*T+(n*J+p*I+r*H);G=z*R+A*S+B*T+(z*J+A*I+B*H);H=j*R+C*S+E*T+(j*J+C*I+E*H);I=+g[b+68>>2];J=+g[b+84>>2];K=+g[b+100>>2];L=+g[b+72>>2];M=+g[b+88>>2];N=+g[b+104>>2];O=+g[b+76>>2];P=+g[b+92>>2];m=+g[b+108>>2];U=+g[b+116>>2];V=+g[b+120>>2];D=+g[b+124>>2];l=n*R+p*S+r*T+(n*U+p*V+r*D);k=z*R+A*S+B*T+(z*U+A*V+B*D);D=j*R+C*S+E*T+(j*U+C*V+E*D);d=c[d+192>>2]|0;if(!(((c[d+4>>2]|0)+ -21|0)>>>0<9)){V=1.0;i=h;return+V}g[h+224>>2]=F;g[h+228>>2]=G;g[h+232>>2]=H;g[h+236>>2]=0.0;if(l>2]=l;T=l}else{T=F}if(k>2]=k;U=k}else{U=G}if(D>2]=D;V=D}else{V=H}g[h+208>>2]=F;g[h+212>>2]=G;g[h+216>>2]=H;g[h+220>>2]=0.0;if(F>2]=l;Q=l}else{Q=F}if(G>2]=k;R=k}else{R=G}if(H>2]=D;S=D}else{S=H}W=+g[b+248>>2];g[h+224>>2]=T-W;g[h+228>>2]=U-W;g[h+232>>2]=V-W;g[h+208>>2]=W+Q;g[h+212>>2]=W+R;g[h+216>>2]=W+S;c[h>>2]=16760;g[h+4>>2]=n*o+p*q+r*s;g[h+8>>2]=n*t+p*u+r*v;g[h+12>>2]=n*w+p*x+r*y;g[h+16>>2]=0.0;g[h+20>>2]=z*o+A*q+B*s;g[h+24>>2]=z*t+A*u+B*v;g[h+28>>2]=z*w+A*x+B*y;g[h+32>>2]=0.0;g[h+36>>2]=j*o+C*q+E*s;g[h+40>>2]=j*t+C*u+E*v;g[h+44>>2]=j*w+C*x+E*y;g[h+48>>2]=0.0;g[h+52>>2]=F;g[h+56>>2]=G;g[h+60>>2]=H;g[h+64>>2]=0.0;g[h+68>>2]=n*I+p*J+r*K;g[h+72>>2]=n*L+p*M+r*N;g[h+76>>2]=n*O+p*P+r*m;g[h+80>>2]=0.0;g[h+84>>2]=z*I+A*J+B*K;g[h+88>>2]=z*L+A*M+B*N;g[h+92>>2]=z*O+A*P+B*m;g[h+96>>2]=0.0;g[h+100>>2]=j*I+C*J+E*K;g[h+104>>2]=j*L+C*M+E*N;g[h+108>>2]=j*O+C*P+E*m;g[h+112>>2]=0.0;g[h+116>>2]=l;g[h+120>>2]=k;g[h+124>>2]=D;g[h+128>>2]=0.0;g[h+196>>2]=W;g[h+200>>2]=+g[b+244>>2];if((d|0)==0){W=1.0;i=h;return+W}wc[c[(c[d>>2]|0)+64>>2]&63](d,h,h+224|0,h+208|0);j=+g[h+200>>2];if(!(j<+g[b+244>>2])){W=1.0;i=h;return+W}g[b+244>>2]=j;W=j;i=h;return+W}function ew(a){a=a|0;return}function fw(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function gw(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,j=0.0;e=i;i=i+784|0;g[e+712>>2]=1.0;c[e+716>>2]=0;c[e+720>>2]=0;c[e+724>>2]=0;c[e+728>>2]=0;g[e+732>>2]=1.0;c[e+736>>2]=0;c[e+740>>2]=0;c[e+744>>2]=0;c[e+748>>2]=0;g[e+752>>2]=1.0;f=e+756|0;c[f+0>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[e+536>>2]=8584;c[e+704>>2]=0;g[e+708>>2]=0.0;g[e+700>>2]=+g[b+200>>2];j=+g[b+196>>2];c[e+488>>2]=0;g[e+492>>2]=1.0;g[e+496>>2]=1.0;g[e+500>>2]=1.0;g[e+504>>2]=0.0;c[e+480>>2]=15008;c[e+484>>2]=8;g[e+508>>2]=j;g[e+524>>2]=j;c[e+384>>2]=0;g[e+388>>2]=1.0;g[e+392>>2]=1.0;g[e+396>>2]=1.0;g[e+400>>2]=0.0;g[e+420>>2]=.03999999910593033;c[e+428>>2]=0;c[e+376>>2]=14704;c[e+380>>2]=1;c[e+432>>2]=c[d+0>>2];c[e+436>>2]=c[d+4>>2];c[e+440>>2]=c[d+8>>2];c[e+444>>2]=c[d+12>>2];c[e+448>>2]=c[d+16>>2];c[e+452>>2]=c[d+20>>2];c[e+456>>2]=c[d+24>>2];c[e+460>>2]=c[d+28>>2];c[e+464>>2]=c[d+32>>2];c[e+468>>2]=c[d+36>>2];c[e+472>>2]=c[d+40>>2];c[e+476>>2]=c[d+44>>2];g[e+324>>2]=9999999747378752.0e-20;a[e+348>>0]=0;c[e>>2]=15320;c[e+4>>2]=e+16;c[e+8>>2]=e+480;c[e+12>>2]=e+376;if(Ou(e,b+4|0,b+68|0,e+712|0,e+712|0,e+536|0)|0?(h=+g[e+700>>2],+g[b+200>>2]>h):0){g[b+200>>2]=h}c[e+376>>2]=14224;b=c[e+428>>2]|0;if((b|0)==0){i=e;return}Nb[c[c[b>>2]>>2]&255](b);b=c[e+428>>2]|0;if((b|0)==0){i=e;return}c[4548]=(c[4548]|0)+1;_x(c[b+ -4>>2]|0);i=e;return}function hw(a){a=a|0;var b=0;b=i;if((a|0)!=0){_x(a)}i=b;return}function iw(a){a=a|0;return}function jw(b){b=b|0;var d=0,e=0,f=0;d=i;c[b>>2]=16984;if((a[b+16>>0]|0)==0){_x(b);i=d;return}e=c[b+20>>2]|0;if((e|0)==0){_x(b);i=d;return}f=c[b+4>>2]|0;Pb[c[(c[f>>2]|0)+16>>2]&127](f,e);_x(b);i=d;return}function kw(b){b=b|0;var d=0,e=0;d=i;c[b>>2]=16984;if((a[b+16>>0]|0)==0){i=d;return}e=c[b+20>>2]|0;if((e|0)==0){i=d;return}b=c[b+4>>2]|0;Pb[c[(c[b>>2]|0)+16>>2]&127](b,e);i=d;return} function Zx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;b=i;do{if(a>>>0<245){if(a>>>0<11){o=16}else{o=a+11&-8}u=o>>>3;p=c[4828]|0;if((p>>>u&3|0)!=0){e=c[19352+(((p>>>u&1^1)+u<<1)+2<<2)>>2]|0;d=c[e+8>>2]|0;do{if((19352+((p>>>u&1^1)+u<<1<<2)|0)!=(d|0)){if(d>>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[d+12>>2]|0)==(e|0)){c[d+12>>2]=19352+((p>>>u&1^1)+u<<1<<2);c[19352+(((p>>>u&1^1)+u<<1)+2<<2)>>2]=d;break}else{Bb()}}else{c[4828]=p&~(1<<(p>>>u&1^1)+u)}}while(0);c[e+4>>2]=(p>>>u&1^1)+u<<3|3;c[e+((p>>>u&1^1)+u<<3|4)>>2]=c[e+((p>>>u&1^1)+u<<3|4)>>2]|1;E=e+8|0;i=b;return E|0}if(o>>>0>(c[19320>>2]|0)>>>0){if((p>>>u|0)!=0){e=(p>>>u<>>u<>>(e>>>12&16)>>>(e>>>(e>>>12&16)>>>5&8);g=d>>>(d>>>2&4)>>>(d>>>(d>>>2&4)>>>1&2);g=(e>>>(e>>>12&16)>>>5&8|e>>>12&16|d>>>2&4|d>>>(d>>>2&4)>>>1&2|g>>>1&1)+(g>>>(g>>>1&1))|0;d=c[19352+((g<<1)+2<<2)>>2]|0;e=c[d+8>>2]|0;do{if((19352+(g<<1<<2)|0)!=(e|0)){if(e>>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[e+12>>2]|0)==(d|0)){c[e+12>>2]=19352+(g<<1<<2);c[19352+((g<<1)+2<<2)>>2]=e;break}else{Bb()}}else{c[4828]=p&~(1<>2]=o|3;e=d+o|0;c[d+(o|4)>>2]=f|1;c[d+(g<<3)>>2]=f;h=c[19320>>2]|0;if((h|0)!=0){g=c[19332>>2]|0;j=c[4828]|0;if((j&1<<(h>>>3)|0)!=0){j=c[19352+((h>>>3<<1)+2<<2)>>2]|0;if(j>>>0<(c[19328>>2]|0)>>>0){Bb()}else{C=19352+((h>>>3<<1)+2<<2)|0;B=j}}else{c[4828]=j|1<<(h>>>3);C=19352+((h>>>3<<1)+2<<2)|0;B=19352+(h>>>3<<1<<2)|0}c[C>>2]=g;c[B+12>>2]=g;c[g+8>>2]=B;c[g+12>>2]=19352+(h>>>3<<1<<2)}c[19320>>2]=f;c[19332>>2]=e;E=d+8|0;i=b;return E|0}p=c[19316>>2]|0;if((p|0)!=0){e=((p&0-p)+ -1|0)>>>(((p&0-p)+ -1|0)>>>12&16);d=e>>>(e>>>5&8)>>>(e>>>(e>>>5&8)>>>2&4);d=c[19616+((e>>>5&8|((p&0-p)+ -1|0)>>>12&16|e>>>(e>>>5&8)>>>2&4|d>>>1&2|d>>>(d>>>1&2)>>>1&1)+(d>>>(d>>>1&2)>>>(d>>>(d>>>1&2)>>>1&1))<<2)>>2]|0;e=(c[d+4>>2]&-8)-o|0;f=d;while(1){g=c[f+16>>2]|0;if((g|0)==0){g=c[f+20>>2]|0;if((g|0)==0){break}}f=(c[g+4>>2]&-8)-o|0;E=f>>>0>>0;e=E?f:e;f=g;d=E?g:d}h=c[19328>>2]|0;if(d>>>0>>0){Bb()}f=d+o|0;if(!(d>>>0>>0)){Bb()}g=c[d+24>>2]|0;j=c[d+12>>2]|0;do{if((j|0)==(d|0)){k=d+20|0;j=c[k>>2]|0;if((j|0)==0){k=d+16|0;j=c[k>>2]|0;if((j|0)==0){A=0;break}}while(1){l=j+20|0;m=c[l>>2]|0;if((m|0)!=0){j=m;k=l;continue}m=j+16|0;l=c[m>>2]|0;if((l|0)==0){break}else{j=l;k=m}}if(k>>>0>>0){Bb()}else{c[k>>2]=0;A=j;break}}else{k=c[d+8>>2]|0;if(k>>>0>>0){Bb()}if((c[k+12>>2]|0)!=(d|0)){Bb()}if((c[j+8>>2]|0)==(d|0)){c[k+12>>2]=j;c[j+8>>2]=k;A=j;break}else{Bb()}}}while(0);do{if((g|0)!=0){h=c[d+28>>2]|0;if((d|0)==(c[19616+(h<<2)>>2]|0)){c[19616+(h<<2)>>2]=A;if((A|0)==0){c[19316>>2]=c[19316>>2]&~(1<>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[g+16>>2]|0)==(d|0)){c[g+16>>2]=A}else{c[g+20>>2]=A}if((A|0)==0){break}}if(A>>>0<(c[19328>>2]|0)>>>0){Bb()}c[A+24>>2]=g;g=c[d+16>>2]|0;do{if((g|0)!=0){if(g>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[A+16>>2]=g;c[g+24>>2]=A;break}}}while(0);g=c[d+20>>2]|0;if((g|0)!=0){if(g>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[A+20>>2]=g;c[g+24>>2]=A;break}}}}while(0);if(e>>>0<16){E=e+o|0;c[d+4>>2]=E|3;E=d+(E+4)|0;c[E>>2]=c[E>>2]|1}else{c[d+4>>2]=o|3;c[d+(o|4)>>2]=e|1;c[d+(e+o)>>2]=e;g=c[19320>>2]|0;if((g|0)!=0){h=c[19332>>2]|0;j=c[4828]|0;if((j&1<<(g>>>3)|0)!=0){j=c[19352+((g>>>3<<1)+2<<2)>>2]|0;if(j>>>0<(c[19328>>2]|0)>>>0){Bb()}else{z=19352+((g>>>3<<1)+2<<2)|0;y=j}}else{c[4828]=j|1<<(g>>>3);z=19352+((g>>>3<<1)+2<<2)|0;y=19352+(g>>>3<<1<<2)|0}c[z>>2]=h;c[y+12>>2]=h;c[h+8>>2]=y;c[h+12>>2]=19352+(g>>>3<<1<<2)}c[19320>>2]=e;c[19332>>2]=f}E=d+8|0;i=b;return E|0}}}else{if(!(a>>>0>4294967231)){o=a+11&-8;A=c[19316>>2]|0;if((A|0)!=0){if(((a+11|0)>>>8|0)!=0){if(o>>>0>16777215){B=31}else{B=(a+11|0)>>>8<<((((a+11|0)>>>8)+1048320|0)>>>16&8);B=14-((B+520192|0)>>>16&4|(((a+11|0)>>>8)+1048320|0)>>>16&8|((B<<((B+520192|0)>>>16&4))+245760|0)>>>16&2)+(B<<((B+520192|0)>>>16&4)<<(((B<<((B+520192|0)>>>16&4))+245760|0)>>>16&2)>>>15)|0;B=o>>>(B+7|0)&1|B<<1}}else{B=0}C=c[19616+(B<<2)>>2]|0;a:do{if((C|0)==0){z=0-o|0;a=0;y=0}else{if((B|0)==31){y=0}else{y=25-(B>>>1)|0}z=0-o|0;a=0;D=o<>2]&-8;if((E-o|0)>>>0>>0){if((E|0)==(o|0)){z=E-o|0;a=C;y=C;break a}else{z=E-o|0;y=C}}E=c[C+20>>2]|0;C=c[C+(D>>>31<<2)+16>>2]|0;a=(E|0)==0|(E|0)==(C|0)?a:E;if((C|0)==0){break}else{D=D<<1}}}}while(0);if((a|0)==0&(y|0)==0){B=2<>>(D>>>12&16)>>>(D>>>(D>>>12&16)>>>5&8);a=E>>>(E>>>2&4)>>>(E>>>(E>>>2&4)>>>1&2);a=c[19616+((D>>>(D>>>12&16)>>>5&8|D>>>12&16|E>>>2&4|E>>>(E>>>2&4)>>>1&2|a>>>1&1)+(a>>>(a>>>1&1))<<2)>>2]|0}if((a|0)!=0){while(1){E=(c[a+4>>2]&-8)-o|0;A=E>>>0>>0;z=A?E:z;y=A?a:y;A=c[a+16>>2]|0;if((A|0)!=0){a=A;continue}a=c[a+20>>2]|0;if((a|0)==0){break}}}if((y|0)!=0?z>>>0<((c[19320>>2]|0)-o|0)>>>0:0){f=c[19328>>2]|0;if(y>>>0>>0){Bb()}d=y+o|0;if(!(y>>>0>>0)){Bb()}e=c[y+24>>2]|0;g=c[y+12>>2]|0;do{if((g|0)==(y|0)){h=y+20|0;g=c[h>>2]|0;if((g|0)==0){h=y+16|0;g=c[h>>2]|0;if((g|0)==0){x=0;break}}while(1){k=g+20|0;j=c[k>>2]|0;if((j|0)!=0){g=j;h=k;continue}k=g+16|0;j=c[k>>2]|0;if((j|0)==0){break}else{g=j;h=k}}if(h>>>0>>0){Bb()}else{c[h>>2]=0;x=g;break}}else{h=c[y+8>>2]|0;if(h>>>0>>0){Bb()}if((c[h+12>>2]|0)!=(y|0)){Bb()}if((c[g+8>>2]|0)==(y|0)){c[h+12>>2]=g;c[g+8>>2]=h;x=g;break}else{Bb()}}}while(0);do{if((e|0)!=0){f=c[y+28>>2]|0;if((y|0)==(c[19616+(f<<2)>>2]|0)){c[19616+(f<<2)>>2]=x;if((x|0)==0){c[19316>>2]=c[19316>>2]&~(1<>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[e+16>>2]|0)==(y|0)){c[e+16>>2]=x}else{c[e+20>>2]=x}if((x|0)==0){break}}if(x>>>0<(c[19328>>2]|0)>>>0){Bb()}c[x+24>>2]=e;e=c[y+16>>2]|0;do{if((e|0)!=0){if(e>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[x+16>>2]=e;c[e+24>>2]=x;break}}}while(0);e=c[y+20>>2]|0;if((e|0)!=0){if(e>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[x+20>>2]=e;c[e+24>>2]=x;break}}}}while(0);b:do{if(!(z>>>0<16)){c[y+4>>2]=o|3;c[y+(o|4)>>2]=z|1;c[y+(z+o)>>2]=z;e=z>>>3;if(z>>>0<256){f=c[4828]|0;do{if((f&1<>2]|0;if(!(f>>>0<(c[19328>>2]|0)>>>0)){v=19352+((e<<1)+2<<2)|0;u=f;break}Bb()}}while(0);c[v>>2]=d;c[u+12>>2]=d;c[y+(o+8)>>2]=u;c[y+(o+12)>>2]=19352+(e<<1<<2);break}e=z>>>8;if((e|0)!=0){if(z>>>0>16777215){e=31}else{E=e<<((e+1048320|0)>>>16&8)<<(((e<<((e+1048320|0)>>>16&8))+520192|0)>>>16&4);e=14-(((e<<((e+1048320|0)>>>16&8))+520192|0)>>>16&4|(e+1048320|0)>>>16&8|(E+245760|0)>>>16&2)+(E<<((E+245760|0)>>>16&2)>>>15)|0;e=z>>>(e+7|0)&1|e<<1}}else{e=0}f=19616+(e<<2)|0;c[y+(o+28)>>2]=e;c[y+(o+20)>>2]=0;c[y+(o+16)>>2]=0;h=c[19316>>2]|0;g=1<>2]=h|g;c[f>>2]=d;c[y+(o+24)>>2]=f;c[y+(o+12)>>2]=d;c[y+(o+8)>>2]=d;break}f=c[f>>2]|0;if((e|0)==31){e=0}else{e=25-(e>>>1)|0}c:do{if((c[f+4>>2]&-8|0)!=(z|0)){e=z<>>31<<2)+16|0;h=c[g>>2]|0;if((h|0)==0){break}if((c[h+4>>2]&-8|0)==(z|0)){p=h;break c}else{e=e<<1;f=h}}if(g>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[g>>2]=d;c[y+(o+24)>>2]=f;c[y+(o+12)>>2]=d;c[y+(o+8)>>2]=d;break b}}else{p=f}}while(0);e=p+8|0;f=c[e>>2]|0;g=c[19328>>2]|0;if(p>>>0>>0){Bb()}if(f>>>0>>0){Bb()}else{c[f+12>>2]=d;c[e>>2]=d;c[y+(o+8)>>2]=f;c[y+(o+12)>>2]=p;c[y+(o+24)>>2]=0;break}}else{E=z+o|0;c[y+4>>2]=E|3;E=y+(E+4)|0;c[E>>2]=c[E>>2]|1}}while(0);E=y+8|0;i=b;return E|0}}}else{o=-1}}}while(0);p=c[19320>>2]|0;if(!(o>>>0>p>>>0)){d=p-o|0;e=c[19332>>2]|0;if(d>>>0>15){c[19332>>2]=e+o;c[19320>>2]=d;c[e+(o+4)>>2]=d|1;c[e+p>>2]=d;c[e+4>>2]=o|3}else{c[19320>>2]=0;c[19332>>2]=0;c[e+4>>2]=p|3;c[e+(p+4)>>2]=c[e+(p+4)>>2]|1}E=e+8|0;i=b;return E|0}p=c[19324>>2]|0;if(o>>>0

>>0){D=p-o|0;c[19324>>2]=D;E=c[19336>>2]|0;c[19336>>2]=E+o;c[E+(o+4)>>2]=D|1;c[E+4>>2]=o|3;E=E+8|0;i=b;return E|0}do{if((c[4946]|0)==0){p=ob(30)|0;if((p+ -1&p|0)==0){c[19792>>2]=p;c[19788>>2]=p;c[19796>>2]=-1;c[19800>>2]=-1;c[19804>>2]=0;c[19756>>2]=0;c[4946]=(Eb(0)|0)&-16^1431655768;break}else{Bb()}}}while(0);v=o+48|0;p=c[19792>>2]|0;x=o+47|0;u=p+x&0-p;if(!(u>>>0>o>>>0)){E=0;i=b;return E|0}y=c[19752>>2]|0;if((y|0)!=0?(E=c[19744>>2]|0,(E+u|0)>>>0<=E>>>0|(E+u|0)>>>0>y>>>0):0){E=0;i=b;return E|0}d:do{if((c[19756>>2]&4|0)==0){y=c[19336>>2]|0;e:do{if((y|0)!=0){z=19760|0;while(1){A=c[z>>2]|0;if(!(A>>>0>y>>>0)?(w=z+4|0,(A+(c[w>>2]|0)|0)>>>0>y>>>0):0){break}z=c[z+8>>2]|0;if((z|0)==0){n=182;break e}}if((z|0)!=0){A=p+x-(c[19324>>2]|0)&0-p;if(A>>>0<2147483647){p=hb(A|0)|0;z=(p|0)==((c[z>>2]|0)+(c[w>>2]|0)|0);w=p;y=A;p=z?p:-1;z=z?A:0;n=191}else{z=0}}else{n=182}}else{n=182}}while(0);do{if((n|0)==182){z=hb(0)|0;if((z|0)!=(-1|0)){p=c[19788>>2]|0;if((p+ -1&z|0)==0){A=u}else{A=u-z+(p+ -1+z&0-p)|0}w=c[19744>>2]|0;p=w+A|0;if(A>>>0>o>>>0&A>>>0<2147483647){E=c[19752>>2]|0;if((E|0)!=0?p>>>0<=w>>>0|p>>>0>E>>>0:0){z=0;break}n=hb(A|0)|0;w=n;y=A;p=(n|0)==(z|0)?z:-1;z=(n|0)==(z|0)?A:0;n=191}else{z=0}}else{z=0}}}while(0);f:do{if((n|0)==191){n=0-y|0;if((p|0)!=(-1|0)){q=z;n=202;break d}do{if((w|0)!=(-1|0)&y>>>0<2147483647&y>>>0>>0?(t=c[19792>>2]|0,t=x-y+t&0-t,t>>>0<2147483647):0){if((hb(t|0)|0)==(-1|0)){hb(n|0)|0;break f}else{y=t+y|0;break}}}while(0);if((w|0)!=(-1|0)){p=w;q=y;n=202;break d}}}while(0);c[19756>>2]=c[19756>>2]|4;n=199}else{z=0;n=199}}while(0);if((((n|0)==199?u>>>0<2147483647:0)?(s=hb(u|0)|0,r=hb(0)|0,(r|0)!=(-1|0)&(s|0)!=(-1|0)&s>>>0>>0):0)?(q=(r-s|0)>>>0>(o+40|0)>>>0,q):0){p=s;q=q?r-s|0:z;n=202}if((n|0)==202){r=(c[19744>>2]|0)+q|0;c[19744>>2]=r;if(r>>>0>(c[19748>>2]|0)>>>0){c[19748>>2]=r}r=c[19336>>2]|0;g:do{if((r|0)!=0){w=19760|0;while(1){t=c[w>>2]|0;u=w+4|0;v=c[u>>2]|0;if((p|0)==(t+v|0)){n=214;break}s=c[w+8>>2]|0;if((s|0)==0){break}else{w=s}}if(((n|0)==214?(c[w+12>>2]&8|0)==0:0)?r>>>0>=t>>>0&r>>>0

>>0:0){c[u>>2]=v+q;e=(c[19324>>2]|0)+q|0;if((r+8&7|0)==0){d=0}else{d=0-(r+8)&7}E=e-d|0;c[19336>>2]=r+d;c[19324>>2]=E;c[r+(d+4)>>2]=E|1;c[r+(e+4)>>2]=40;c[19340>>2]=c[19800>>2];break}if(p>>>0<(c[19328>>2]|0)>>>0){c[19328>>2]=p}t=p+q|0;s=19760|0;while(1){if((c[s>>2]|0)==(t|0)){n=224;break}u=c[s+8>>2]|0;if((u|0)==0){break}else{s=u}}if((n|0)==224?(c[s+12>>2]&8|0)==0:0){c[s>>2]=p;h=s+4|0;c[h>>2]=(c[h>>2]|0)+q;h=p+8|0;if((h&7|0)==0){h=0}else{h=0-h&7}k=p+(q+8)|0;if((k&7|0)==0){r=0}else{r=0-k&7}s=p+(r+q)|0;k=h+o|0;l=p+k|0;m=s-(p+h)-o|0;c[p+(h+4)>>2]=o|3;h:do{if((s|0)!=(c[19336>>2]|0)){if((s|0)==(c[19332>>2]|0)){E=(c[19320>>2]|0)+m|0;c[19320>>2]=E;c[19332>>2]=l;c[p+(k+4)>>2]=E|1;c[p+(E+k)>>2]=E;break}o=q+4|0;n=c[p+(o+r)>>2]|0;if((n&3|0)==1){i:do{if(!(n>>>0<256)){j=c[p+((r|24)+q)>>2]|0;u=c[p+(q+12+r)>>2]|0;do{if((u|0)==(s|0)){v=r|16;u=p+(o+v)|0;t=c[u>>2]|0;if((t|0)==0){u=p+(v+q)|0;t=c[u>>2]|0;if((t|0)==0){g=0;break}}while(1){v=t+20|0;w=c[v>>2]|0;if((w|0)!=0){t=w;u=v;continue}v=t+16|0;w=c[v>>2]|0;if((w|0)==0){break}else{t=w;u=v}}if(u>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[u>>2]=0;g=t;break}}else{t=c[p+((r|8)+q)>>2]|0;if(t>>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[t+12>>2]|0)!=(s|0)){Bb()}if((c[u+8>>2]|0)==(s|0)){c[t+12>>2]=u;c[u+8>>2]=t;g=u;break}else{Bb()}}}while(0);if((j|0)==0){break}t=c[p+(q+28+r)>>2]|0;do{if((s|0)!=(c[19616+(t<<2)>>2]|0)){if(j>>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[j+16>>2]|0)==(s|0)){c[j+16>>2]=g}else{c[j+20>>2]=g}if((g|0)==0){break i}}else{c[19616+(t<<2)>>2]=g;if((g|0)!=0){break}c[19316>>2]=c[19316>>2]&~(1<>>0<(c[19328>>2]|0)>>>0){Bb()}c[g+24>>2]=j;j=r|16;s=c[p+(j+q)>>2]|0;do{if((s|0)!=0){if(s>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[g+16>>2]=s;c[s+24>>2]=g;break}}}while(0);j=c[p+(o+j)>>2]|0;if((j|0)==0){break}if(j>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[g+20>>2]=j;c[j+24>>2]=g;break}}else{g=c[p+((r|8)+q)>>2]|0;o=c[p+(q+12+r)>>2]|0;do{if((g|0)!=(19352+(n>>>3<<1<<2)|0)){if(g>>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[g+12>>2]|0)==(s|0)){break}Bb()}}while(0);if((o|0)==(g|0)){c[4828]=c[4828]&~(1<<(n>>>3));break}do{if((o|0)==(19352+(n>>>3<<1<<2)|0)){j=o+8|0}else{if(o>>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[o+8>>2]|0)==(s|0)){j=o+8|0;break}Bb()}}while(0);c[g+12>>2]=o;c[j>>2]=g}}while(0);s=p+((n&-8|r)+q)|0;m=(n&-8)+m|0}g=s+4|0;c[g>>2]=c[g>>2]&-2;c[p+(k+4)>>2]=m|1;c[p+(m+k)>>2]=m;g=m>>>3;if(m>>>0<256){d=c[4828]|0;do{if((d&1<>2]|0;if(!(d>>>0<(c[19328>>2]|0)>>>0)){f=19352+((g<<1)+2<<2)|0;e=d;break}Bb()}}while(0);c[f>>2]=l;c[e+12>>2]=l;c[p+(k+8)>>2]=e;c[p+(k+12)>>2]=19352+(g<<1<<2);break}e=m>>>8;do{if((e|0)==0){e=0}else{if(m>>>0>16777215){e=31;break}E=e<<((e+1048320|0)>>>16&8)<<(((e<<((e+1048320|0)>>>16&8))+520192|0)>>>16&4);e=14-(((e<<((e+1048320|0)>>>16&8))+520192|0)>>>16&4|(e+1048320|0)>>>16&8|(E+245760|0)>>>16&2)+(E<<((E+245760|0)>>>16&2)>>>15)|0;e=m>>>(e+7|0)&1|e<<1}}while(0);j=19616+(e<<2)|0;c[p+(k+28)>>2]=e;c[p+(k+20)>>2]=0;c[p+(k+16)>>2]=0;f=c[19316>>2]|0;g=1<>2]=f|g;c[j>>2]=l;c[p+(k+24)>>2]=j;c[p+(k+12)>>2]=l;c[p+(k+8)>>2]=l;break}f=c[j>>2]|0;if((e|0)==31){e=0}else{e=25-(e>>>1)|0}j:do{if((c[f+4>>2]&-8|0)!=(m|0)){e=m<>>31<<2)+16|0;j=c[g>>2]|0;if((j|0)==0){break}if((c[j+4>>2]&-8|0)==(m|0)){d=j;break j}else{e=e<<1;f=j}}if(g>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[g>>2]=l;c[p+(k+24)>>2]=f;c[p+(k+12)>>2]=l;c[p+(k+8)>>2]=l;break h}}else{d=f}}while(0);f=d+8|0;e=c[f>>2]|0;g=c[19328>>2]|0;if(d>>>0>>0){Bb()}if(e>>>0>>0){Bb()}else{c[e+12>>2]=l;c[f>>2]=l;c[p+(k+8)>>2]=e;c[p+(k+12)>>2]=d;c[p+(k+24)>>2]=0;break}}else{E=(c[19324>>2]|0)+m|0;c[19324>>2]=E;c[19336>>2]=l;c[p+(k+4)>>2]=E|1}}while(0);E=p+(h|8)|0;i=b;return E|0}d=19760|0;while(1){e=c[d>>2]|0;if(!(e>>>0>r>>>0)?(m=c[d+4>>2]|0,(e+m|0)>>>0>r>>>0):0){break}d=c[d+8>>2]|0}if((e+(m+ -39)&7|0)==0){d=0}else{d=0-(e+(m+ -39))&7}d=e+(m+ -47+d)|0;d=d>>>0<(r+16|0)>>>0?r:d;f=p+8|0;if((f&7|0)==0){f=0}else{f=0-f&7}E=q+ -40-f|0;c[19336>>2]=p+f;c[19324>>2]=E;c[p+(f+4)>>2]=E|1;c[p+(q+ -36)>>2]=40;c[19340>>2]=c[19800>>2];c[d+4>>2]=27;c[d+8>>2]=c[19760>>2];c[d+12>>2]=c[19764>>2];c[d+16>>2]=c[19768>>2];c[d+20>>2]=c[19772>>2];c[19760>>2]=p;c[19764>>2]=q;c[19772>>2]=0;c[19768>>2]=d+8;c[d+28>>2]=7;if((d+32|0)>>>0<(e+m|0)>>>0){f=d+28|0;do{E=f;f=f+4|0;c[f>>2]=7}while((E+8|0)>>>0<(e+m|0)>>>0)}if((d|0)!=(r|0)){c[r+(d-r+4)>>2]=c[r+(d-r+4)>>2]&-2;c[r+4>>2]=d-r|1;c[r+(d-r)>>2]=d-r;if((d-r|0)>>>0<256){e=c[4828]|0;do{if((e&1<<((d-r|0)>>>3)|0)==0){c[4828]=e|1<<((d-r|0)>>>3);l=19352+(((d-r|0)>>>3<<1)+2<<2)|0;k=19352+((d-r|0)>>>3<<1<<2)|0}else{e=c[19352+(((d-r|0)>>>3<<1)+2<<2)>>2]|0;if(!(e>>>0<(c[19328>>2]|0)>>>0)){l=19352+(((d-r|0)>>>3<<1)+2<<2)|0;k=e;break}Bb()}}while(0);c[l>>2]=r;c[k+12>>2]=r;c[r+8>>2]=k;c[r+12>>2]=19352+((d-r|0)>>>3<<1<<2);break}if(((d-r|0)>>>8|0)!=0){if((d-r|0)>>>0>16777215){e=31}else{e=(d-r|0)>>>8<<((((d-r|0)>>>8)+1048320|0)>>>16&8);e=14-((e+520192|0)>>>16&4|(((d-r|0)>>>8)+1048320|0)>>>16&8|((e<<((e+520192|0)>>>16&4))+245760|0)>>>16&2)+(e<<((e+520192|0)>>>16&4)<<(((e<<((e+520192|0)>>>16&4))+245760|0)>>>16&2)>>>15)|0;e=(d-r|0)>>>(e+7|0)&1|e<<1}}else{e=0}j=19616+(e<<2)|0;c[r+28>>2]=e;c[r+20>>2]=0;c[r+16>>2]=0;f=c[19316>>2]|0;g=1<>2]=f|g;c[j>>2]=r;c[r+24>>2]=j;c[r+12>>2]=r;c[r+8>>2]=r;break}g=c[j>>2]|0;if((e|0)==31){e=0}else{e=25-(e>>>1)|0}k:do{if((c[g+4>>2]&-8|0)!=(d-r|0)){e=d-r<>>31<<2)+16|0;j=c[f>>2]|0;if((j|0)==0){break}if((c[j+4>>2]&-8|0)==(d-r|0)){h=j;break k}else{e=e<<1;g=j}}if(f>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[f>>2]=r;c[r+24>>2]=g;c[r+12>>2]=r;c[r+8>>2]=r;break g}}else{h=g}}while(0);e=h+8|0;d=c[e>>2]|0;f=c[19328>>2]|0;if(h>>>0>>0){Bb()}if(d>>>0>>0){Bb()}else{c[d+12>>2]=r;c[e>>2]=r;c[r+8>>2]=d;c[r+12>>2]=h;c[r+24>>2]=0;break}}}else{E=c[19328>>2]|0;if((E|0)==0|p>>>0>>0){c[19328>>2]=p}c[19760>>2]=p;c[19764>>2]=q;c[19772>>2]=0;c[19348>>2]=c[4946];c[19344>>2]=-1;d=0;do{E=d<<1;c[19352+(E+3<<2)>>2]=19352+(E<<2);c[19352+(E+2<<2)>>2]=19352+(E<<2);d=d+1|0}while((d|0)!=32);d=p+8|0;if((d&7|0)==0){d=0}else{d=0-d&7}E=q+ -40-d|0;c[19336>>2]=p+d;c[19324>>2]=E;c[p+(d+4)>>2]=E|1;c[p+(q+ -36)>>2]=40;c[19340>>2]=c[19800>>2]}}while(0);d=c[19324>>2]|0;if(d>>>0>o>>>0){D=d-o|0;c[19324>>2]=D;E=c[19336>>2]|0;c[19336>>2]=E+o;c[E+(o+4)>>2]=D|1;c[E+4>>2]=o|3;E=E+8|0;i=b;return E|0}}c[(xb()|0)>>2]=12;E=0;i=b;return E|0}function _x(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;b=i;if((a|0)==0){i=b;return}r=c[19328>>2]|0;if((a+ -8|0)>>>0>>0){Bb()}h=c[a+ -4>>2]|0;if((h&3|0)==1){Bb()}k=a+((h&-8)+ -8)|0;do{if((h&1|0)==0){o=c[a+ -8>>2]|0;if((h&3|0)==0){i=b;return}m=a+(-8-o)|0;n=o+(h&-8)|0;if(m>>>0>>0){Bb()}if((m|0)==(c[19332>>2]|0)){if((c[a+((h&-8)+ -4)>>2]&3|0)!=3){d=m;p=n;break}c[19320>>2]=n;c[a+((h&-8)+ -4)>>2]=c[a+((h&-8)+ -4)>>2]&-2;c[a+(-8-o+4)>>2]=n|1;c[k>>2]=n;i=b;return}if(o>>>0<256){p=c[a+(-8-o+8)>>2]|0;d=c[a+(-8-o+12)>>2]|0;if((p|0)!=(19352+(o>>>3<<1<<2)|0)){if(p>>>0>>0){Bb()}if((c[p+12>>2]|0)!=(m|0)){Bb()}}if((d|0)==(p|0)){c[4828]=c[4828]&~(1<<(o>>>3));d=m;p=n;break}if((d|0)!=(19352+(o>>>3<<1<<2)|0)){if(d>>>0>>0){Bb()}if((c[d+8>>2]|0)!=(m|0)){Bb()}else{s=d+8|0}}else{s=d+8|0}c[p+12>>2]=d;c[s>>2]=p;d=m;p=n;break}s=c[a+(-8-o+24)>>2]|0;u=c[a+(-8-o+12)>>2]|0;do{if((u|0)==(m|0)){u=c[a+(-8-o+20)>>2]|0;if((u|0)==0){u=c[a+(-8-o+16)>>2]|0;if((u|0)==0){q=0;break}else{t=a+(-8-o+16)|0}}else{t=a+(-8-o+20)|0}while(1){w=u+20|0;v=c[w>>2]|0;if((v|0)!=0){u=v;t=w;continue}w=u+16|0;v=c[w>>2]|0;if((v|0)==0){break}else{u=v;t=w}}if(t>>>0>>0){Bb()}else{c[t>>2]=0;q=u;break}}else{t=c[a+(-8-o+8)>>2]|0;if(t>>>0>>0){Bb()}if((c[t+12>>2]|0)!=(m|0)){Bb()}if((c[u+8>>2]|0)==(m|0)){c[t+12>>2]=u;c[u+8>>2]=t;q=u;break}else{Bb()}}}while(0);if((s|0)!=0){r=c[a+(-8-o+28)>>2]|0;if((m|0)==(c[19616+(r<<2)>>2]|0)){c[19616+(r<<2)>>2]=q;if((q|0)==0){c[19316>>2]=c[19316>>2]&~(1<>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[s+16>>2]|0)==(m|0)){c[s+16>>2]=q}else{c[s+20>>2]=q}if((q|0)==0){d=m;p=n;break}}if(q>>>0<(c[19328>>2]|0)>>>0){Bb()}c[q+24>>2]=s;r=c[a+(-8-o+16)>>2]|0;do{if((r|0)!=0){if(r>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[q+16>>2]=r;c[r+24>>2]=q;break}}}while(0);o=c[a+(-8-o+20)>>2]|0;if((o|0)!=0){if(o>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[q+20>>2]=o;c[o+24>>2]=q;d=m;p=n;break}}else{d=m;p=n}}else{d=m;p=n}}else{d=a+ -8|0;p=h&-8}}while(0);if(!(d>>>0>>0)){Bb()}m=c[a+((h&-8)+ -4)>>2]|0;if((m&1|0)==0){Bb()}if((m&2|0)==0){if((k|0)==(c[19336>>2]|0)){w=(c[19324>>2]|0)+p|0;c[19324>>2]=w;c[19336>>2]=d;c[d+4>>2]=w|1;if((d|0)!=(c[19332>>2]|0)){i=b;return}c[19332>>2]=0;c[19320>>2]=0;i=b;return}if((k|0)==(c[19332>>2]|0)){w=(c[19320>>2]|0)+p|0;c[19320>>2]=w;c[19332>>2]=d;c[d+4>>2]=w|1;c[d+w>>2]=w;i=b;return}p=(m&-8)+p|0;do{if(!(m>>>0<256)){l=c[a+((h&-8)+16)>>2]|0;n=c[a+(h&-8|4)>>2]|0;do{if((n|0)==(k|0)){n=c[a+((h&-8)+12)>>2]|0;if((n|0)==0){n=c[a+((h&-8)+8)>>2]|0;if((n|0)==0){j=0;break}else{m=a+((h&-8)+8)|0}}else{m=a+((h&-8)+12)|0}while(1){o=n+20|0;q=c[o>>2]|0;if((q|0)!=0){n=q;m=o;continue}o=n+16|0;q=c[o>>2]|0;if((q|0)==0){break}else{n=q;m=o}}if(m>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[m>>2]=0;j=n;break}}else{m=c[a+(h&-8)>>2]|0;if(m>>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[m+12>>2]|0)!=(k|0)){Bb()}if((c[n+8>>2]|0)==(k|0)){c[m+12>>2]=n;c[n+8>>2]=m;j=n;break}else{Bb()}}}while(0);if((l|0)!=0){m=c[a+((h&-8)+20)>>2]|0;if((k|0)==(c[19616+(m<<2)>>2]|0)){c[19616+(m<<2)>>2]=j;if((j|0)==0){c[19316>>2]=c[19316>>2]&~(1<>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[l+16>>2]|0)==(k|0)){c[l+16>>2]=j}else{c[l+20>>2]=j}if((j|0)==0){break}}if(j>>>0<(c[19328>>2]|0)>>>0){Bb()}c[j+24>>2]=l;k=c[a+((h&-8)+8)>>2]|0;do{if((k|0)!=0){if(k>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[j+16>>2]=k;c[k+24>>2]=j;break}}}while(0);h=c[a+((h&-8)+12)>>2]|0;if((h|0)!=0){if(h>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[j+20>>2]=h;c[h+24>>2]=j;break}}}}else{j=c[a+(h&-8)>>2]|0;h=c[a+(h&-8|4)>>2]|0;if((j|0)!=(19352+(m>>>3<<1<<2)|0)){if(j>>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[j+12>>2]|0)!=(k|0)){Bb()}}if((h|0)==(j|0)){c[4828]=c[4828]&~(1<<(m>>>3));break}if((h|0)!=(19352+(m>>>3<<1<<2)|0)){if(h>>>0<(c[19328>>2]|0)>>>0){Bb()}if((c[h+8>>2]|0)!=(k|0)){Bb()}else{l=h+8|0}}else{l=h+8|0}c[j+12>>2]=h;c[l>>2]=j}}while(0);c[d+4>>2]=p|1;c[d+p>>2]=p;if((d|0)==(c[19332>>2]|0)){c[19320>>2]=p;i=b;return}}else{c[a+((h&-8)+ -4)>>2]=m&-2;c[d+4>>2]=p|1;c[d+p>>2]=p}h=p>>>3;if(p>>>0<256){e=c[4828]|0;if((e&1<>2]|0;if(e>>>0<(c[19328>>2]|0)>>>0){Bb()}else{f=19352+((h<<1)+2<<2)|0;g=e}}else{c[4828]=e|1<>2]=d;c[g+12>>2]=d;c[d+8>>2]=g;c[d+12>>2]=19352+(h<<1<<2);i=b;return}f=p>>>8;if((f|0)!=0){if(p>>>0>16777215){f=31}else{w=f<<((f+1048320|0)>>>16&8)<<(((f<<((f+1048320|0)>>>16&8))+520192|0)>>>16&4);f=14-(((f<<((f+1048320|0)>>>16&8))+520192|0)>>>16&4|(f+1048320|0)>>>16&8|(w+245760|0)>>>16&2)+(w<<((w+245760|0)>>>16&2)>>>15)|0;f=p>>>(f+7|0)&1|f<<1}}else{f=0}g=19616+(f<<2)|0;c[d+28>>2]=f;c[d+20>>2]=0;c[d+16>>2]=0;a=c[19316>>2]|0;h=1<>2]|0;if((f|0)==31){f=0}else{f=25-(f>>>1)|0}b:do{if((c[g+4>>2]&-8|0)!=(p|0)){f=p<>>31<<2)+16|0;g=c[a>>2]|0;if((g|0)==0){break}if((c[g+4>>2]&-8|0)==(p|0)){e=g;break b}else{f=f<<1;h=g}}if(a>>>0<(c[19328>>2]|0)>>>0){Bb()}else{c[a>>2]=d;c[d+24>>2]=h;c[d+12>>2]=d;c[d+8>>2]=d;break a}}else{e=g}}while(0);f=e+8|0;h=c[f>>2]|0;g=c[19328>>2]|0;if(e>>>0>>0){Bb()}if(h>>>0>>0){Bb()}else{c[h+12>>2]=d;c[f>>2]=d;c[d+8>>2]=h;c[d+12>>2]=e;c[d+24>>2]=0;break}}else{c[19316>>2]=a|h;c[g>>2]=d;c[d+24>>2]=g;c[d+12>>2]=d;c[d+8>>2]=d}}while(0);w=(c[19344>>2]|0)+ -1|0;c[19344>>2]=w;if((w|0)==0){d=19768|0}else{i=b;return}while(1){d=c[d>>2]|0;if((d|0)==0){break}else{d=d+8|0}}c[19344>>2]=-1;i=b;return}function $x(){}function ay(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=b-d-(c>>>0>a>>>0|0)>>>0;return(E=b,a-c>>>0|0)|0}function by(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;g=d|d<<8|d<<16|d<<24;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(f&~3|0)){c[b>>2]=g;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function cy(b){b=b|0;var c=0;c=b;while(a[c>>0]|0){c=c+1|0}return c-b|0}function dy(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return(E=b+d+(a+c>>>0>>>0>>0|0)>>>0,a+c>>>0|0)|0}function ey(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return kb(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if((e|0)==0)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function fy(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else{ey(b,c,d)|0}return b|0}function gy(a){a=a|0;return(a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function hy(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E=b<>>32-c;return a<>>c;return a>>>c|(b&(1<>>c-32|0}function jy(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E=b>>c;return a>>>c|(b&(1<>c-32|0}function ky(b){b=b|0;var c=0;c=a[n+(b>>>24)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)>>0]|0)+24|0}function ly(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)>>0]|0)+24|0}function my(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=aa(b&65535,a&65535)|0;e=(c>>>16)+(aa(b&65535,a>>>16)|0)|0;d=aa(b>>>16,a&65535)|0;return(E=(e>>>16)+(aa(b>>>16,a>>>16)|0)+(((e&65535)+d|0)>>>16)|0,e+d<<16|c&65535|0)|0}function ny(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;g=b>>31|((b|0)<0?-1:0)<<1;e=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;h=d>>31|((d|0)<0?-1:0)<<1;f=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;b=ay(g^a,e^b,g,e)|0;a=E;a=ay((sy(b,a,ay(h^c,f^d,h,f)|0,E,0)|0)^(h^g),E^(f^e),h^g,f^e)|0;return a|0}function oy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+8|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;j=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;b=ay(h^a,g^b,h,g)|0;a=E;sy(b,a,ay(k^d,j^e,k,j)|0,E,f|0)|0;a=ay(c[f>>2]^h,c[f+4>>2]^g,h,g)|0;b=E;i=f;return(E=b,a)|0}function py(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=my(a,c)|0;f=E;return(E=(aa(b,c)|0)+(aa(d,a)|0)+f|f&0,e|0|0)|0}function qy(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=sy(a,b,c,d,0)|0;return a|0}function ry(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;i=i+8|0;sy(a,b,d,e,f|0)|0;i=f;return(E=c[f+4>>2]|0,c[f>>2]|0)|0}function sy(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((b|0)==0){if((e|0)==0){if((f|0)!=0){c[f>>2]=(a>>>0)%(d>>>0);c[f+4>>2]=0}k=0;l=(a>>>0)/(d>>>0)>>>0;return(E=k,l)|0}else{if((f|0)==0){k=0;l=0;return(E=k,l)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;k=0;l=0;return(E=k,l)|0}}do{if((d|0)!=0){if((e|0)!=0){k=(ky(e|0)|0)-(ky(b|0)|0)|0;if(k>>>0<=31){i=k+1|0;g=a>>>((k+1|0)>>>0)&k-31>>31|b<<31-k;h=b>>>((k+1|0)>>>0)&k-31>>31;j=0;l=a<<31-k;break}if((f|0)==0){k=0;l=0;return(E=k,l)|0}c[f>>2]=a|0;c[f+4>>2]=b|b&0;k=0;l=0;return(E=k,l)|0}if((d-1&d|0)!=0){l=(ky(d|0)|0)+33-(ky(b|0)|0)|0;i=l;g=32-l-1>>31&b>>>((l-32|0)>>>0)|(b<<32-l|a>>>(l>>>0))&l-32>>31;h=l-32>>31&b>>>(l>>>0);j=a<<64-l&32-l>>31;l=(b<<64-l|a>>>((l-32|0)>>>0))&32-l>>31|a<<32-l&l-33>>31;break}if((f|0)!=0){c[f>>2]=d-1&a;c[f+4>>2]=0}if((d|0)==1){k=b|b&0;l=a|0|0;return(E=k,l)|0}else{l=ly(d|0)|0;k=b>>>(l>>>0)|0;l=b<<32-l|a>>>(l>>>0)|0;return(E=k,l)|0}}else{if((e|0)==0){if((f|0)!=0){c[f>>2]=(b>>>0)%(d>>>0);c[f+4>>2]=0}k=0;l=(b>>>0)/(d>>>0)>>>0;return(E=k,l)|0}if((a|0)==0){if((f|0)!=0){c[f>>2]=0;c[f+4>>2]=(b>>>0)%(e>>>0)}k=0;l=(b>>>0)/(e>>>0)>>>0;return(E=k,l)|0}if((e-1&e|0)==0){if((f|0)!=0){c[f>>2]=a|0;c[f+4>>2]=e-1&b|b&0}k=0;l=b>>>((ly(e|0)|0)>>>0);return(E=k,l)|0}k=(ky(e|0)|0)-(ky(b|0)|0)|0;if(k>>>0<=30){i=k+1|0;g=b<<31-k|a>>>((k+1|0)>>>0);h=b>>>((k+1|0)>>>0);j=0;l=a<<31-k;break}if((f|0)==0){k=0;l=0;return(E=k,l)|0}c[f>>2]=a|0;c[f+4>>2]=b|b&0;k=0;l=0;return(E=k,l)|0}}while(0);if((i|0)==0){e=l;k=j;d=0;j=0}else{a=dy(d|0|0,e|e&0,-1,-1)|0;b=E;k=j;j=0;do{p=l;l=k>>>31|l<<1;k=j|k<<1;p=g<<1|p>>>31|0;o=g>>>31|h<<1|0;ay(a,b,p,o)|0;m=E;n=m>>31|((m|0)<0?-1:0)<<1;j=n&1;g=ay(p,o,n&(d|0),(((m|0)<0?-1:0)>>31|((m|0)<0?-1:0)<<1)&(e|e&0))|0;h=E;i=i-1|0}while((i|0)!=0);e=l;d=0}if((f|0)!=0){c[f>>2]=g;c[f+4>>2]=h}o=(k|0)>>>31|e<<1|(0<<1|k>>>31)&0|d;p=(k<<1|0>>>31)&-2|j;return(E=o,p)|0}function ty(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Lb[a&31](b|0,c|0,d|0,e|0,f|0)}function uy(a,b,c){a=a|0;b=b|0;c=+c;Mb[a&31](b|0,+c)}function vy(a,b){a=a|0;b=b|0;Nb[a&255](b|0)}function wy(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;g=g|0;Ob[a&0](b|0,c|0,d|0,+e,f|0,g|0)}function xy(a,b,c){a=a|0;b=b|0;c=c|0;Pb[a&127](b|0,c|0)}function yy(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Qb[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)|0}function zy(a,b){a=a|0;b=b|0;return Rb[a&127](b|0)|0}function Ay(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;Sb[a&3](b|0,c|0,+d,e|0)}function By(a,b,c,d,e,f,g){a=a|0;b=b|0;c=+c;d=+d;e=e|0;f=f|0;g=g|0;Tb[a&0](b|0,+c,+d,e|0,f|0,g|0)}function Cy(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;Ub[a&0](b|0,+c,d|0,e|0)}function Dy(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Vb[a&31](b|0,c|0,d|0,e|0)|0}function Ey(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;Wb[a&15](b|0,+c,d|0)}function Fy(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return+Xb[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)}function Gy(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;g=+g;h=+h;i=+i;j=j|0;k=k|0;l=+l;Yb[a&0](b|0,c|0,d|0,e|0,+f,+g,+h,+i,j|0,k|0,+l)}function Hy(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return+Zb[a&15](b|0,c|0,d|0,e|0,f|0)}function Iy(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return _b[a&31](b|0,c|0,d|0)|0}function Jy(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;$b[a&7](b|0,c|0,d|0,e|0,f|0,g|0)}function Ky(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return ac[a&3](b|0,c|0,+d)|0}function Ly(a,b){a=a|0;b=b|0;return+bc[a&15](b|0)}function My(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return cc[a&3](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Ny(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;g=g|0;return+dc[a&3](b|0,c|0,d|0,+e,f|0,g|0)}function Oy(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;ec[a&0](b|0,c|0,+d,e|0,f|0)}function Py(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;fc[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function Qy(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;gc[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function Ry(a,b,c){a=a|0;b=b|0;c=c|0;return hc[a&31](b|0,c|0)|0}function Sy(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return+ic[a&7](b|0,c|0,d|0)}function Ty(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return+jc[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function Uy(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;kc[a&1](b|0,c|0,d|0,e|0,+f)}function Vy(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;return+lc[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function Wy(a,b,c){a=a|0;b=b|0;c=+c;return+mc[a&1](b|0,+c)}function Xy(a,b,c,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;g=+g;h=+h;i=+i;j=+j;k=k|0;l=+l;m=m|0;nc[a&0](b|0,c|0,d|0,e|0,+f,+g,+h,+i,+j,k|0,+l,m|0)}function Yy(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;return+oc[a&3](b|0,c|0,+d,e|0,f|0)}function Zy(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return+pc[a&1](b|0,c|0,d|0,e|0)}function _y(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;return qc[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)|0}function $y(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;rc[a&15](b|0,c|0,d|0,+e)}function az(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;sc[a&63](b|0,c|0,d|0)}function bz(a){a=a|0;tc[a&3]()}function cz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;uc[a&3](b|0,c|0,+d)}function dz(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=+e;return vc[a&1](b|0,+c,d|0,+e)|0}function ez(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;wc[a&63](b|0,c|0,d|0,e|0)}function fz(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(0)}function gz(a,b){a=a|0;b=+b;ba(1)}function hz(a){a=a|0;ba(2)}function iz(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;ba(3)}function jz(a,b){a=a|0;b=b|0;ba(4)}function kz(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;ba(5);return 0}function lz(a){a=a|0;ba(6);return 0}function mz(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;ba(7)}function nz(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;e=e|0;f=f|0;ba(8)}function oz(a,b,c,d){a=a|0;b=+b;c=c|0;d=d|0;ba(9)}function pz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(10);return 0}function qz(a,b,c){a=a|0;b=+b;c=c|0;ba(11)}function rz(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;ba(12);return 0.0}function sz(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=+g;h=+h;i=i|0;j=j|0;k=+k;ba(13)}function tz(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(14);return 0.0}function uz(a,b,c){a=a|0;b=b|0;c=c|0;ba(15);return 0}function vz(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(16)}function wz(a,b,c){a=a|0;b=b|0;c=+c;ba(17);return 0}function xz(a){a=a|0;ba(18);return 0.0}function yz(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(19);return 0}function zz(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;ba(20);return 0.0}function Az(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;ba(21)}function Bz(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;ba(22)}function Cz(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;ba(23)}function Dz(a,b){a=a|0;b=b|0;ba(24);return 0}function Ez(a,b,c){a=a|0;b=b|0;c=c|0;ba(25);return 0.0}function Fz(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;ba(26);return 0.0}function Gz(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;ba(27)}function Hz(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;ba(28);return 0.0}function Iz(a,b){a=a|0;b=+b;ba(29);return 0.0}function Jz(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=+g;h=+h;i=+i;j=j|0;k=+k;l=l|0;ba(30)}function Kz(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;ba(31);return 0.0}function Lz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(32);return 0.0}function Mz(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;ba(33);return 0}function Nz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;ba(34)}function Oz(a,b,c){a=a|0;b=b|0;c=c|0;ba(35)}function Pz(){ba(36)}function Qz(){Jb()}function Rz(a,b,c){a=a|0;b=b|0;c=+c;ba(37)}function Sz(a,b,c,d){a=a|0;b=+b;c=c|0;d=+d;ba(38);return 0}function Tz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(39)} // EMSCRIPTEN_END_FUNCS var Lb=[fz,jm,Iq,Cr,As,Js,Gu,Lu,uv,zv,Cv,Iv,Sv,cw,lw,Ew,Tx,Sx,Rx,fz,fz,fz,fz,fz,fz,fz,fz,fz,fz,fz,fz,fz];var Mb=[gz,vk,uk,gk,_j,Uj,Gk,pl,ql,Ym,vn,Rn,Kp,Zp,lq,Zq,Mk,gz,gz,gz,gz,gz,gz,gz,gz,gz,gz,gz,gz,gz,gz,gz];var Nb=[hz,hj,ij,jj,oj,pj,tj,uj,yj,zj,Mj,Nj,Fj,Tj,Sj,Ho,Io,Vj,Jo,Yj,Wj,rk,Xj,tk,Sk,Xk,Yk,Zk,_k,gl,hl,bl,ml,ll,vl,wl,kl,xl,Jl,Il,_l,fm,gm,sm,zm,Am,Bm,Cm,Um,Vm,on,nn,zn,An,Cn,Dn,Fn,Gn,Ln,Mn,Un,Vn,Xn,Yn,bo,ao,ko,so,Fo,Eo,Wo,Vo,$o,_o,cp,To,ep,Ro,gp,ip,jp,mp,np,pp,qp,up,vp,tp,yp,Ep,Fp,Hp,Ip,Mo,Np,Qp,Pp,Sp,fq,gq,oq,pq,sq,tq,zq,Aq,yq,Bq,Uq,Vq,cr,dr,gr,hr,rr,qr,Jr,Br,Kr,zr,Mr,ur,Or,Tr,Sr,Yr,Zr,$r,as,cs,ds,fs,gs,is,js,ls,ms,os,ps,rs,ss,us,vs,xs,ys,Cs,Ds,Gs,Hs,Po,sp,Ks,Ls,$n,uo,Ps,Qs,Rs,Ss,Xs,Ws,$s,at,ct,dt,it,ht,zt,At,Ct,Dt,It,Ht,Tt,St,cu,du,bu,eu,vu,uu,sk,Ik,Fu,Eu,Ku,Ju,Pu,Qu,Wu,Xu,cv,bv,jv,lv,nv,ov,vv,wv,yv,xv,Dv,Ev,Hv,Gv,Kv,Nv,Qv,Pv,Tv,Vv,Zv,Yv,aw,$v,ew,fw,iw,hw,kw,jw,mw,qw,tw,uw,sw,yw,Dw,Cw,Iw,Hw,Vw,Uw,dx,cx,Cx,Bx,Gx,Jx,Hx,Ix,Kx,Lx,Ax,hz,hz,hz,hz,hz,hz,hz,hz,hz,hz,hz,hz];var Ob=[iz];var Pb=[jz,vj,wj,Cj,Ej,Ck,ck,Bk,ik,jk,kk,$j,ak,ek,dk,wk,lk,mk,nk,ok,pk,Fk,cl,dl,rl,yl,Hl,nm,rm,Mm,Qm,Rm,Wm,Lk,Co,qn,sn,tn,On,Qn,fo,eo,mo,Ko,Yo,Ap,Lp,Vp,Rp,eq,kq,rq,vq,Wq,Yq,Er,Ir,Lr,Nr,Qr,Es,Yt,Zt,wt,yt,qt,Fq,xu,Iu,Nu,Yu,Zu,Uu,Vu,ev,Bv,Mv,Ov,Rv,Xv,_v,ow,Gw,jx,kx,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz,jz];var Qb=[kz,Is,Ns,kz];var Rb=[lz,Fc,Oj,Dk,xk,yk,Ek,il,Fl,bm,om,pm,Gm,Hm,Im,Km,Pm,Jk,Xm,Ok,bn,dn,en,hn,fv,un,xn,Pn,Sn,Qk,Wn,Zn,no,po,qo,ro,Xp,Yp,$p,jq,mq,qq,uq,Xq,_q,er,ir,Fr,Gr,Vr,Wr,Xr,Zs,st,tt,ut,vt,xt,hu,ku,mu,nu,qu,Kk,_u,gx,$u,kv,Do,Zw,Dx,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz,lz];var Sb=[mz,Jj,el,mz];var Tb=[nz];var Ub=[oz];var Vb=[pz,sl,Em,go,_r,bs,es,hs,ks,ns,qs,ts,ws,zs,Xt,_s,ot,pw,pz,pz,pz,pz,pz,pz,pz,pz,pz,pz,pz,pz,pz,pz];var Wb=[qz,Tm,hv,Kn,Up,iq,Nq,Mt,gu,Du,qz,qz,qz,qz,qz,qz];var Xb=[rz,Bj];var Yb=[sz];var Zb=[tz,Bs,Hu,Mu,Av,Lv,Uv,dw,nw,Fw,tz,tz,tz,tz,tz,tz];var _b=[uz,dm,Pj,jl,Gl,Dm,Om,Pk,rn,Tn,co,io,ho,Wp,nq,$q,Ur,_t,rt,mt,bx,Bo,Xw,Yw,Mx,uz,uz,uz,uz,uz,uz,uz];var $b=[vz,$k,lm,xr,Wx,Vx,Ux,vz];var ac=[wz,kn,su,wz];var bc=[xz,Ao,Zm,wn,_p,br,fr,jr,Nk,xz,xz,xz,xz,xz,xz,xz];var cc=[yz,xq,Fs,Ou];var dc=[zz,op,rp,zz];var ec=[Az];var fc=[Bz,Wl];var gc=[Cz,ex,fx,Cz];var hc=[Dz,qj,Aj,zk,Ak,Tk,Wk,Dl,Jt,oo,lo,to,fp,hp,kp,wp,Cp,Dp,Bt,Et,Dz,Dz,Dz,Dz,Dz,Dz,Dz,Dz,Dz,Dz,Dz,Dz];var ic=[Ez,rj,Kj,Uk,Vk,fl,lp,xp];var jc=[Fz,Zl,Vl,Fz];var kc=[Gz,kj];var lc=[Hz,Ul,Xl,Hz];var mc=[Iz,zo];var nc=[Jz];var oc=[Kz,Gp,Jp,Kz];var pc=[Lz,Yl];var qc=[Mz,hm,sr,Mz];var rc=[Nz,lj,Gj,Eq,Ms,Vs,rw,xw,Bw,Nz,Nz,Nz,Nz,Nz,Nz,Nz];var sc=[Oz,Lj,hk,$l,am,im,qm,Fm,Jm,Lm,Nm,yo,_m,$m,cn,gn,ln,iv,yn,Bn,En,Hn,Hq,In,Rk,zp,Mp,dq,bq,Cq,Dq,ar,Qq,Oq,Pq,vr,Hr,Pr,vo,wo,Ts,Us,lt,jt,kt,pt,Kt,iu,lu,pu,wu,Bu,zu,hx,ix,Wv,vw,ww,zw,Aw,_n,Kq,Jq,Oz];var tc=[Pz,Qz,yx,zx];var uc=[Rz,tl,Bp,Rz];var vc=[Sz,Zj];var wc=[Tz,Uo,Qo,bk,fk,ul,Tl,km,mm,Sm,an,Gq,fn,jn,dv,pn,Nn,Jn,jo,Go,ap,bp,dp,au,$t,Tp,hq,cq,Mq,Rq,Tq,Sq,wr,Ar,bt,et,Lt,fu,ju,ou,ru,tu,Cu,Au,ax,gv,mv,pv,bw,gw,Nx,Ox,Px,Tz,Tz,Tz,Tz,Tz,Tz,Tz,Tz,Tz,Tz,Tz];return{_emscripten_bind_btCylinderShape___destroy___0:fj,_emscripten_bind_btCollisionObject_isActive_0:Yd,_emscripten_bind_btDiscreteDynamicsWorld_btDiscreteDynamicsWorld_4:de,_emscripten_bind_ClosestRayResultCallback_get_m_hitPointWorld_0:Xf,_emscripten_bind_btQuaternion_setX_1:og,_emscripten_bind_btQuaternion_setZ_1:qg,_emscripten_bind_btQuadWord_z_0:Xi,_emscripten_bind_btWheelInfo_get_m_suspensionStiffness_0:Dg,_emscripten_bind_btRigidBodyConstructionInfo_get_m_angularDamping_0:gd,_emscripten_bind_btCollisionDispatcher___destroy___0:tf,_emscripten_bind_btDefaultMotionState_getWorldTransform_1:Gf,_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_1:me,_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_3:oe,_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_2:ne,_emscripten_bind_btVector3_op_mul_1:oh,_emscripten_bind_btDynamicsWorld_rayTest_3:cg,_emscripten_bind_btRaycastVehicle_updateWheelTransform_2:Nh,_emscripten_bind_btQuadWord_x_0:Vi,_emscripten_bind_btBroadphaseInterface___destroy___0:Rd,_emscripten_bind_btRigidBody_getCenterOfMassTransform_0:Wh,_emscripten_bind_btCapsuleShape___destroy___0:Yc,_emscripten_bind_btCollisionObject_activate_1:Xd,_emscripten_bind_btCollisionObject_activate_0:Wd,_emscripten_bind_btCollisionDispatcher_btCollisionDispatcher_1:qf,_emscripten_bind_btVector3_setX_1:kh,_emscripten_bind_btCollisionConfiguration___destroy___0:ef,_emscripten_bind_btQuaternion_btQuaternion_4:ig,_emscripten_bind_btManifoldPoint_set_m_positionWorldOnB_1:Kd,_emscripten_bind_btManifoldPoint_set_m_localPointB_1:Id,_emscripten_bind_btVector3_setZ_1:mh,_emscripten_bind_btQuaternion_setValue_4:jg,_emscripten_bind_btPoint2PointConstraint_get_m_setting_0:ze,_emscripten_bind_btQuadWord_setY_1:_i,_emscripten_bind_btRigidBodyConstructionInfo_set_m_restitution_1:nd,_emscripten_bind_btCollisionWorld___destroy___0:Ui,_emscripten_bind_btBoxShape_btBoxShape_1:mf,_emscripten_bind_btPersistentManifold_getBody1_0:hf,_emscripten_bind_ClosestRayResultCallback_set_m_collisionObject_1:_f,_emscripten_bind_btConstraintSetting_set_m_impulseClamp_1:Gh,_emscripten_bind_btWheelInfo_get_m_rollInfluence_0:Lg,_emscripten_bind_btVector4_setValue_4:Ug,_emscripten_bind_btBvhTriangleMeshShape_setLocalScaling_1:Oc,_emscripten_bind_btVector3_length_0:gh,_emscripten_bind_btDefaultMotionState___destroy___0:If,_emscripten_bind_btWheelInfo_set_m_frictionSlip_1:Kg,_emscripten_bind_btRigidBodyConstructionInfo_set_m_angularDamping_1:hd,_emscripten_bind_btQuadWord_setW_1:aj,_emscripten_bind_btRigidBodyConstructionInfo_get_m_friction_0:id,_emscripten_bind_btCapsuleShapeX_btCapsuleShapeX_2:eg,_emscripten_bind_btRigidBody_setLinearFactor_1:$h,_emscripten_bind_btRaycastVehicle_setSteeringValue_2:Lh,_emscripten_bind_btPoint2PointConstraint___destroy___0:Be,_emscripten_bind_btDiscreteDynamicsWorld_addConstraint_2:ke,_emscripten_bind_btDiscreteDynamicsWorld_addConstraint_1:je,_emscripten_bind_btRigidBodyConstructionInfo_set_m_angularSleepingThreshold_1:rd,_malloc:Zx,_emscripten_bind_btTransform_btTransform_2:Ji,_emscripten_bind_btTransform_btTransform_0:Ii,_emscripten_bind_btWheelInfo_set_m_wheelsDampingCompression_1:Ig,_emscripten_bind_btCollisionObject_setActivationState_1:Ud,_emscripten_bind_btPersistentManifold___destroy___0:lf,_emscripten_bind_btConstraintSetting_get_m_impulseClamp_0:Fh,_emscripten_bind_btCylinderShapeZ___destroy___0:Hi,_emscripten_bind_btMatrix3x3___destroy___0:Hc,_emscripten_bind_btCollisionShape_calculateLocalInertia_2:yh,_emscripten_bind_ClosestRayResultCallback_set_m_hitPointWorld_1:Yf,_emscripten_bind_btRigidBody_upcast_1:mi,_emscripten_bind_btConstraintSetting_set_m_damping_1:Eh,_emscripten_bind_btVehicleRaycaster___destroy___0:qh,_emscripten_bind_btRigidBody_applyForce_2:bi,_emscripten_bind_btConeShapeZ_calculateLocalInertia_2:Ue,_emscripten_bind_btConstraintSetting_set_m_tau_1:Ch,_emscripten_bind_btSphereShape_calculateLocalInertia_2:th,_emscripten_bind_btCollisionDispatcher_getManifoldByIndexInternal_1:sf,_emscripten_bind_btCollisionWorld_rayTest_3:Ti,_emscripten_bind_btRigidBody_setFriction_1:vi,_emscripten_bind_btDiscreteDynamicsWorld_removeRigidBody_1:ie,_emscripten_bind_btVector4_setX_1:Zg,_emscripten_bind_btCapsuleShapeX_calculateLocalInertia_2:gg,_emscripten_bind_btTransform_setOrigin_1:Mi,_emscripten_bind_btVector4_setZ_1:$g,_emscripten_bind_btQuadWord_y_0:Wi,_emscripten_bind_btTransform_getBasis_0:Qi,_emscripten_bind_btCollisionDispatcher_getNumManifolds_0:rf,_emscripten_bind_ClosestRayResultCallback___destroy___0:$f,_emscripten_bind_btQuadWord_w_0:Yi,_emscripten_bind_btCompoundShape___destroy___0:Af,_emscripten_bind_btBvhTriangleMeshShape_calculateLocalInertia_2:Pc,_emscripten_bind_btConeShape_btConeShape_2:Je,_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingFactor_1:Bd,_emscripten_bind_btManifoldPoint_set_m_localPointA_1:Gd,_emscripten_bind_btWheelInfo___destroy___0:Ng,_emscripten_bind_btTransform_setRotation_1:Ni,_emscripten_bind_btRigidBody_setMassProps_2:_h,_emscripten_bind_btQuadWord_setZ_1:$i,_emscripten_bind_btAxisSweep3_btAxisSweep3_2:Zc,_emscripten_bind_btAxisSweep3_btAxisSweep3_3:_c,_emscripten_bind_btBoxShape_calculateLocalInertia_2:of,_emscripten_bind_btVector3_setY_1:lh,_emscripten_bind_btAxisSweep3_btAxisSweep3_4:$c,_emscripten_bind_btAxisSweep3_btAxisSweep3_5:ad,_emscripten_bind_btQuadWord_setX_1:Zi,_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalLinearDampingThresholdSqr_0:wd,_emscripten_bind_btOverlappingPairCache___destroy___0:dh,_emscripten_bind_btConstraintSetting___destroy___0:Hh,_emscripten_bind_RayResultCallback___destroy___0:Cg,_emscripten_bind_btPersistentManifold_getBody0_0:gf,_emscripten_bind_btConeShapeX_btConeShapeX_2:We,_emscripten_bind_btCapsuleShapeZ_setLocalScaling_1:ug,_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_2:Fe,_emscripten_bind_btConcaveShape___destroy___0:Qg,_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_4:Ge,_emscripten_bind_btQuaternion_x_0:kg,_emscripten_bind_btConcaveShape_setLocalScaling_1:Og,_emscripten_bind_btConeShapeX_setLocalScaling_1:Xe,_emscripten_bind_btQuaternion_z_0:mg,_emscripten_bind_btDefaultMotionState_btDefaultMotionState_2:Ff,_emscripten_bind_btDefaultMotionState_btDefaultMotionState_0:Bf,_emscripten_bind_btDefaultMotionState_btDefaultMotionState_1:Ef,_emscripten_bind_btRigidBody_isActive_0:ti,_emscripten_bind_btRaycastVehicle_btRaycastVehicle_3:Jh,_emscripten_bind_btMotionState_setWorldTransform_1:De,_emscripten_bind_btCylinderShape_setLocalScaling_1:dj,_emscripten_bind_btCompoundShape_calculateLocalInertia_2:zf,_emscripten_bind_btConeShapeX___destroy___0:Ze,_emscripten_bind_btCollisionObject_getCollisionFlags_0:ae,_emscripten_bind_btRaycastVehicle_setCoordinateSystem_3:Th,_emscripten_bind_btSphereShape___destroy___0:uh,_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDampingFactor_1:vd,_emscripten_bind_btCollisionObject_setContactProcessingThreshold_1:Td,_emscripten_bind_btPersistentManifold_getNumContacts_0:jf,_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingFactor_0:Ad,_emscripten_bind_btSequentialImpulseConstraintSolver___destroy___0:Uc,_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalLinearDampingThresholdSqr_1:xd,_emscripten_bind_btRigidBody_getCollisionFlags_0:xi,_emscripten_bind_btCollisionShape_setLocalScaling_1:xh,_emscripten_bind_btRigidBody_applyTorque_1:ai,_emscripten_bind_btMatrix3x3_setEulerZYX_3:Gc,_emscripten_bind_btCollisionWorld_getDispatcher_0:Si,_i64Subtract:ay,_emscripten_bind_btRaycastVehicle_getWheelTransformWS_1:Mh,_emscripten_bind_btRigidBody_setDamping_2:Zh,_emscripten_bind_btRigidBody_btRigidBody_1:Vh,_emscripten_bind_btCylinderShapeX_setLocalScaling_1:Bi,_emscripten_bind_btDbvtBroadphase_btDbvtBroadphase_0:Rc,_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDamping_0:sd,_emscripten_bind_btCompoundShape_setLocalScaling_1:yf,_emscripten_bind_btManifoldPoint_get_m_positionWorldOnB_0:Jd,_emscripten_bind_btVector4_setY_1:_g,_emscripten_bind_btRigidBody_setContactProcessingThreshold_1:oi,_emscripten_bind_btRigidBody_getLinearVelocity_0:gi,_emscripten_bind_btRigidBody_applyImpulse_2:di,_emscripten_bind_btConcaveShape_calculateLocalInertia_2:Pg,_emscripten_bind_btRigidBody_setAngularVelocity_1:ji,_emscripten_bind_btRigidBody_setCenterOfMassTransform_1:Xh,_free:_x,_emscripten_bind_RayResultCallback_hasHit_0:zg,_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingThresholdSqr_0:yd,_emscripten_bind_btQuaternion___destroy___0:sg,_emscripten_bind_btWheelInfo_get_m_frictionSlip_0:Jg,_emscripten_bind_btConeShapeZ_setLocalScaling_1:Te,_emscripten_bind_btRaycastVehicle_getNumWheels_0:Ph,_emscripten_bind_btCylinderShapeZ_btCylinderShapeZ_1:Ei,_emscripten_bind_btRigidBody_getAngularVelocity_0:hi,_emscripten_bind_btCompoundShape_btCompoundShape_0:vf,_emscripten_bind_btCompoundShape_btCompoundShape_1:wf,_emscripten_bind_btDynamicsWorld_getDispatcher_0:bg,_emscripten_bind_btRigidBody_updateInertiaTensor_0:fi,_emscripten_bind_btCollisionObject_getWorldTransform_0:$d,_emscripten_bind_ClosestRayResultCallback_hasHit_0:Qf,_emscripten_bind_btCompoundShape_addChildShape_2:xf,_emscripten_bind_btDispatcher___destroy___0:Of,_emscripten_bind_btDiscreteDynamicsWorld___destroy___0:se,_memmove:fy,_emscripten_bind_btCapsuleShapeX_setLocalScaling_1:fg,_emscripten_bind_btCollisionObject_setRestitution_1:Zd,_emscripten_bind_btWheelInfo_get_m_wheelsDampingCompression_0:Hg,_strlen:cy,_emscripten_bind_btQuaternion_w_0:ng,_emscripten_bind_btTransform_getRotation_0:Pi,_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingThresholdSqr_1:zd,_emscripten_bind_btTypedConstraint___destroy___0:gj,_emscripten_bind_btCylinderShapeX_btCylinderShapeX_1:Ai,_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_3:he,_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_1:ge,_emscripten_bind_btVector4_length_0:Vg,_emscripten_bind_btSphereShape_btSphereShape_1:rh,_emscripten_bind_btQuaternion_y_0:lg,_emscripten_bind_btRigidBody_setRestitution_1:ui,_emscripten_bind_btDefaultVehicleRaycaster_btDefaultVehicleRaycaster_1:xg,_emscripten_bind_ConcreteContactResultCallback_addSingleResult_7:Jc,_emscripten_bind_btSequentialImpulseConstraintSolver_btSequentialImpulseConstraintSolver_0:Tc,_emscripten_bind_btActionInterface___destroy___0:ch,_emscripten_bind_btDefaultMotionState_setWorldTransform_1:Hf,_emscripten_bind_RayResultCallback_get_m_collisionObject_0:Ag,_emscripten_bind_btPoint2PointConstraint_getPivotInA_0:xe,_emscripten_bind_btCylinderShape_calculateLocalInertia_2:ej,___cxa_can_catch:Xx,_emscripten_bind_btDiscreteDynamicsWorld_getDispatcher_0:pe,_emscripten_bind_btVector4_op_mul_1:ah,_emscripten_bind_btCylinderShape_btCylinderShape_1:cj,_emscripten_bind_btVector3___destroy___0:ph,_emscripten_bind_btRigidBody_setAngularFactor_1:li,_emscripten_bind_btCylinderShapeZ_calculateLocalInertia_2:Gi,_emscripten_bind_btMotionState_getWorldTransform_1:Ce,_emscripten_bind_btVector3_x_0:hh,___cxa_is_pointer_type:Yx,_emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_3:cd,_emscripten_bind_btCollisionObject_getCollisionShape_0:Sd,_emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_4:dd,_emscripten_bind_btManifoldPoint___destroy___0:Pd,_emscripten_bind_btRigidBodyConstructionInfo_set_m_rollingFriction_1:ld,_emscripten_bind_btVector3_z_0:jh,_emscripten_bind_btCollisionObject_setFriction_1:_d,_emscripten_bind_btDefaultCollisionConfiguration___destroy___0:Pe,_emscripten_bind_btVector3_setValue_3:nh,_emscripten_bind_btCapsuleShapeX___destroy___0:hg,_emscripten_bind_btConeShape_setLocalScaling_1:Ke,_emscripten_bind_btBoxShape___destroy___0:pf,_emscripten_bind_btPersistentManifold_getContactPoint_1:kf,_emscripten_bind_btManifoldPoint_getPositionWorldOnB_0:Ed,_emscripten_bind_btManifoldPoint_get_m_positionWorldOnA_0:Ld,_emscripten_bind_btConeShapeZ_btConeShapeZ_2:Se,_emscripten_bind_btWheelInfo_set_m_rollInfluence_1:Mg,_emscripten_bind_btDefaultCollisionConstructionInfo_btDefaultCollisionConstructionInfo_0:vh,_emscripten_bind_btVector4_y_0:Xg,_emscripten_bind_btTriangleMeshShape_calculateLocalInertia_2:Kf,_emscripten_bind_RayResultCallback_set_m_collisionObject_1:Bg,_emscripten_bind_ClosestRayResultCallback_get_m_rayFromWorld_0:Rf,_emscripten_bind_btRaycastVehicle_getRigidBody_0:Qh,_emscripten_bind_btConstraintSetting_get_m_tau_0:Bh,_emscripten_bind_btCollisionShape___destroy___0:zh,_emscripten_bind_btRigidBodyConstructionInfo_get_m_rollingFriction_0:kd,_emscripten_bind_btAxisSweep3___destroy___0:bd,_emscripten_bind_btTriangleMesh___destroy___0:df,_emscripten_bind_btRaycastVehicle_applyEngineForce_2:Kh,_emscripten_bind_btRaycastVehicle_setBrake_2:Sh,_emscripten_bind_ConcreteContactResultCallback___destroy___0:Kc,_emscripten_bind_btCollisionObject___destroy___0:ce,_emscripten_bind_btRigidBodyConstructionInfo_set_m_linearSleepingThreshold_1:pd,_emscripten_bind_btVector3_btVector3_3:fh,_emscripten_bind_btVector3_btVector3_0:eh,_emscripten_bind_btRigidBodyConstructionInfo_set_m_friction_1:jd,_emscripten_bind_btDiscreteDynamicsWorld_getGravity_0:fe,_emscripten_bind_btConeTwistConstraint___destroy___0:Ie,_emscripten_bind_btQuadWord___destroy___0:bj,_emscripten_bind_ClosestRayResultCallback_set_m_rayFromWorld_1:Sf,_emscripten_bind_btConstraintSolver___destroy___0:Ih,_emscripten_bind_btDbvtBroadphase___destroy___0:Sc,_emscripten_bind_btCapsuleShape_btCapsuleShape_2:Vc,_emscripten_bind_btCapsuleShape_setLocalScaling_1:Wc,_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDampingFactor_0:ud,_emscripten_bind_btTriangleMeshShape_setLocalScaling_1:Jf,_emscripten_bind_btPersistentManifold_btPersistentManifold_0:ff,_emscripten_bind_ClosestRayResultCallback_ClosestRayResultCallback_2:Pf,_emscripten_bind_btVector4___destroy___0:bh,_emscripten_bind_btConstraintSetting_get_m_damping_0:Dh,_i64Add:dy,_emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_0:Ne,_emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_1:Oe,_emscripten_bind_btRigidBodyConstructionInfo_get_m_angularSleepingThreshold_0:qd,_emscripten_bind_btPoint2PointConstraint_getPivotInB_0:ye,_emscripten_bind_ContactResultCallback_addSingleResult_7:Qe,_emscripten_bind_btCapsuleShapeZ_calculateLocalInertia_2:vg,_emscripten_bind_btDynamicsWorld___destroy___0:dg,_emscripten_bind_btMotionState___destroy___0:Ee,_emscripten_bind_btCollisionObject_setCollisionFlags_1:be,_emscripten_bind_btRigidBody_getMotionState_0:ki,_emscripten_bind_btWheelInfo_set_m_suspensionStiffness_1:Eg,_emscripten_bind_btDispatcher_getManifoldByIndexInternal_1:Nf,_emscripten_bind_btDefaultCollisionConstructionInfo___destroy___0:wh,_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_4:ue,_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_2:te,_emscripten_bind_btConeShapeX_calculateLocalInertia_2:Ye,_emscripten_bind_btRigidBodyConstructionInfo___destroy___0:Cd,_emscripten_bind_btRigidBody_getWorldTransform_0:wi,_emscripten_bind_btPoint2PointConstraint_setPivotA_1:ve,_memcpy:ey,_emscripten_bind_btCapsuleShape_calculateLocalInertia_2:Xc,_emscripten_bind_btVector3_y_0:ih,_emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_2:Lc,_emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_3:Nc,_emscripten_bind_btQuaternion_setW_1:rg,_emscripten_bind_btDiscreteDynamicsWorld_setGravity_1:ee,_emscripten_bind_btVector4_z_0:Yg,_emscripten_bind_btCollisionObject_forceActivationState_1:Vd,_emscripten_bind_btRaycastVehicle_getWheelInfo_1:Rh,_emscripten_bind_btConeTwistConstraint_setLimit_2:He,_emscripten_bind_btRigidBody___destroy___0:zi,_emscripten_bind_btStridingMeshInterface___destroy___0:Qd,_emscripten_bind_btRigidBody_setSleepingThresholds_2:Yh,_emscripten_bind_btManifoldPoint_get_m_localPointA_0:Fd,_emscripten_bind_btRigidBodyConstructionInfo_get_m_linearDamping_0:ed,_emscripten_bind_btDispatcher_getNumManifolds_0:Mf,_emscripten_bind_btRigidBodyConstructionInfo_get_m_linearSleepingThreshold_0:od,_emscripten_bind_btRigidBody_activate_1:si,_emscripten_bind_btRigidBody_activate_0:ri,_emscripten_bind_btRaycastVehicle___destroy___0:Uh,_emscripten_bind_btCylinderShapeX___destroy___0:Di,_emscripten_bind_btManifoldPoint_getPositionWorldOnA_0:Dd,_emscripten_bind_ContactResultCallback___destroy___0:Re,_emscripten_bind_btVector4_x_0:Wg,_emscripten_bind_btConstraintSetting_btConstraintSetting_0:Ah,_emscripten_bind_btTriangleMeshShape___destroy___0:Lf,_emscripten_bind_btRigidBodyConstructionInfo_get_m_restitution_0:md,_emscripten_bind_btTransform_setIdentity_0:Ki,_emscripten_bind_btManifoldPoint_set_m_normalWorldOnB_1:Od,_emscripten_bind_btDiscreteDynamicsWorld_addAction_1:re,_emscripten_bind_btQuaternion_setY_1:pg,_emscripten_bind_btConeShape_calculateLocalInertia_2:Le,_emscripten_bind_btCylinderShapeX_calculateLocalInertia_2:Ci,_llvm_bswap_i32:gy,_emscripten_bind_btSphereShape_setLocalScaling_1:sh,_emscripten_bind_btVector4_w_0:Tg,_emscripten_bind_btManifoldPoint_get_m_normalWorldOnB_0:Nd,_emscripten_bind_btBvhTriangleMeshShape___destroy___0:Qc,_emscripten_bind_ClosestRayResultCallback_get_m_rayToWorld_0:Tf,_emscripten_bind_btDiscreteDynamicsWorld_removeConstraint_1:le,_emscripten_bind_ConcreteContactResultCallback_ConcreteContactResultCallback_0:Ic,_emscripten_bind_btTransform_getOrigin_0:Oi,_memset:by,_emscripten_bind_ClosestRayResultCallback_get_m_hitNormalWorld_0:Vf,_emscripten_bind_btTriangleMesh_btTriangleMesh_0:_e,_emscripten_bind_btTriangleMesh_btTriangleMesh_1:$e,_emscripten_bind_btTriangleMesh_btTriangleMesh_2:af,_emscripten_bind_btRigidBody_getCollisionShape_0:ni,_emscripten_bind_btManifoldPoint_set_m_positionWorldOnA_1:Md,_emscripten_bind_btWheelInfo_get_m_wheelsDampingRelaxation_0:Fg,_emscripten_bind_btManifoldPoint_get_m_localPointB_0:Hd,_emscripten_bind_btPoint2PointConstraint_set_m_setting_1:Ae,_emscripten_bind_btRigidBody_setLinearVelocity_1:ii,_emscripten_bind_btVehicleTuning_btVehicleTuning_0:uf,_emscripten_bind_ClosestRayResultCallback_set_m_rayToWorld_1:Uf,_emscripten_bind_btWheelInfo_set_m_wheelsDampingRelaxation_1:Gg,_emscripten_bind_btDynamicsWorld_addAction_1:ag,_emscripten_bind_btDefaultVehicleRaycaster___destroy___0:yg,_emscripten_bind_btRigidBodyConstructionInfo_set_m_linearDamping_1:fd,_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDamping_1:td,_emscripten_bind_btRigidBody_setActivationState_1:pi,_emscripten_bind_btCapsuleShapeZ___destroy___0:wg,_emscripten_bind_ClosestRayResultCallback_get_m_collisionObject_0:Zf,_emscripten_bind_btTriangleMesh_addTriangle_3:bf,_emscripten_bind_btTriangleMesh_addTriangle_4:cf,_emscripten_bind_btRigidBody_applyTorqueImpulse_1:ci,_emscripten_bind_btRigidBody_setCollisionFlags_1:yi,_emscripten_bind_btConeShape___destroy___0:Me,_emscripten_bind_btCapsuleShapeZ_btCapsuleShapeZ_2:tg,_emscripten_bind_btTransform___destroy___0:Ri,_emscripten_bind_btRigidBody_forceActivationState_1:qi,_emscripten_bind_btPoint2PointConstraint_setPivotB_1:we,_emscripten_bind_btRaycastVehicle_addWheel_7:Oh,_emscripten_bind_btCylinderShapeZ_setLocalScaling_1:Fi,_emscripten_bind_btBoxShape_setLocalScaling_1:nf,_emscripten_bind_btConeShapeZ___destroy___0:Ve,_emscripten_bind_btVector4_btVector4_0:Rg,_emscripten_bind_btVector4_btVector4_4:Sg,_emscripten_bind_btDiscreteDynamicsWorld_rayTest_3:qe,_emscripten_bind_ClosestRayResultCallback_set_m_hitNormalWorld_1:Wf,__GLOBAL__I_a:wx,runPostSets:$x,stackAlloc:xc,stackSave:yc,stackRestore:zc,setThrew:Ac,setTempRet0:Dc,getTempRet0:Ec,dynCall_viiiii:ty,dynCall_vid:uy,dynCall_vi:vy,dynCall_viiidii:wy,dynCall_vii:xy,dynCall_iiiiiiiiiii:yy,dynCall_ii:zy,dynCall_viidi:Ay,dynCall_viddiii:By,dynCall_vidii:Cy,dynCall_iiiii:Dy,dynCall_vidi:Ey,dynCall_diiiiiiii:Fy,dynCall_viiiiddddiid:Gy,dynCall_diiiii:Hy,dynCall_iiii:Iy,dynCall_viiiiii:Jy,dynCall_iiid:Ky,dynCall_di:Ly,dynCall_iiiiiii:My,dynCall_diiidii:Ny,dynCall_viidii:Oy,dynCall_viiiiiiiii:Py,dynCall_viiiiiiiiii:Qy,dynCall_iii:Ry,dynCall_diii:Sy,dynCall_diiiiiiiiii:Ty,dynCall_viiiid:Uy,dynCall_diiiiiiiii:Vy,dynCall_did:Wy,dynCall_viiiidddddidi:Xy,dynCall_diidii:Yy,dynCall_diiii:Zy,dynCall_iiiiiiiiii:_y,dynCall_viiid:$y,dynCall_viii:az,dynCall_v:bz,dynCall_viid:cz,dynCall_iidid:dz,dynCall_viiii:ez} // EMSCRIPTEN_END_ASM })({"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array},{"abort":abort,"assert":assert,"asmPrintInt":asmPrintInt,"asmPrintFloat":asmPrintFloat,"min":Math_min,"invoke_viiiii":invoke_viiiii,"invoke_vid":invoke_vid,"invoke_vi":invoke_vi,"invoke_viiidii":invoke_viiidii,"invoke_vii":invoke_vii,"invoke_iiiiiiiiiii":invoke_iiiiiiiiiii,"invoke_ii":invoke_ii,"invoke_viidi":invoke_viidi,"invoke_viddiii":invoke_viddiii,"invoke_vidii":invoke_vidii,"invoke_iiiii":invoke_iiiii,"invoke_vidi":invoke_vidi,"invoke_diiiiiiii":invoke_diiiiiiii,"invoke_viiiiddddiid":invoke_viiiiddddiid,"invoke_diiiii":invoke_diiiii,"invoke_iiii":invoke_iiii,"invoke_viiiiii":invoke_viiiiii,"invoke_iiid":invoke_iiid,"invoke_di":invoke_di,"invoke_iiiiiii":invoke_iiiiiii,"invoke_diiidii":invoke_diiidii,"invoke_viidii":invoke_viidii,"invoke_viiiiiiiii":invoke_viiiiiiiii,"invoke_viiiiiiiiii":invoke_viiiiiiiiii,"invoke_iii":invoke_iii,"invoke_diii":invoke_diii,"invoke_diiiiiiiiii":invoke_diiiiiiiiii,"invoke_viiiid":invoke_viiiid,"invoke_diiiiiiiii":invoke_diiiiiiiii,"invoke_did":invoke_did,"invoke_viiiidddddidi":invoke_viiiidddddidi,"invoke_diidii":invoke_diidii,"invoke_diiii":invoke_diiii,"invoke_iiiiiiiiii":invoke_iiiiiiiiii,"invoke_viiid":invoke_viiid,"invoke_viii":invoke_viii,"invoke_v":invoke_v,"invoke_viid":invoke_viid,"invoke_iidid":invoke_iidid,"invoke_viiii":invoke_viiii,"_cosf":_cosf,"_send":_send,"_sqrtf":_sqrtf,"_fmod":_fmod,"___cxa_guard_acquire":___cxa_guard_acquire,"__reallyNegative":__reallyNegative,"_vfprintf":_vfprintf,"_atan2f":_atan2f,"___cxa_find_matching_catch":___cxa_find_matching_catch,"_fflush":_fflush,"___cxa_guard_release":___cxa_guard_release,"_pwrite":_pwrite,"_emscripten_asm_const_double":_emscripten_asm_const_double,"___setErrNo":___setErrNo,"_fabsf":_fabsf,"_sbrk":_sbrk,"_llvm_pow_f32":_llvm_pow_f32,"___cxa_begin_catch":___cxa_begin_catch,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_fileno":_fileno,"___resumeException":___resumeException,"_fmodf":_fmodf,"_sysconf":_sysconf,"_pthread_getspecific":_pthread_getspecific,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"_acosf":_acosf,"_sinf":_sinf,"_pthread_once":_pthread_once,"_mkport":_mkport,"_pthread_key_create":_pthread_key_create,"_write":_write,"___errno_location":___errno_location,"_pthread_setspecific":_pthread_setspecific,"_fputc":_fputc,"___cxa_throw":___cxa_throw,"_abort":_abort,"___cxa_allocate_exception":___cxa_allocate_exception,"_fwrite":_fwrite,"_time":_time,"_fprintf":_fprintf,"_gettimeofday":_gettimeofday,"__formatString":__formatString,"_llvm_trap":_llvm_trap,"___cxa_pure_virtual":___cxa_pure_virtual,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"cttz_i8":cttz_i8,"ctlz_i8":ctlz_i8,"NaN":NaN,"Infinity":Infinity,"_stderr":_stderr},buffer);var _emscripten_bind_btCylinderShape___destroy___0=Module["_emscripten_bind_btCylinderShape___destroy___0"]=asm["_emscripten_bind_btCylinderShape___destroy___0"];var _emscripten_bind_btCollisionObject_isActive_0=Module["_emscripten_bind_btCollisionObject_isActive_0"]=asm["_emscripten_bind_btCollisionObject_isActive_0"];var _emscripten_bind_btDiscreteDynamicsWorld_btDiscreteDynamicsWorld_4=Module["_emscripten_bind_btDiscreteDynamicsWorld_btDiscreteDynamicsWorld_4"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_btDiscreteDynamicsWorld_4"];var _emscripten_bind_ClosestRayResultCallback_get_m_hitPointWorld_0=Module["_emscripten_bind_ClosestRayResultCallback_get_m_hitPointWorld_0"]=asm["_emscripten_bind_ClosestRayResultCallback_get_m_hitPointWorld_0"];var _emscripten_bind_btQuaternion_setX_1=Module["_emscripten_bind_btQuaternion_setX_1"]=asm["_emscripten_bind_btQuaternion_setX_1"];var _emscripten_bind_btQuaternion_setZ_1=Module["_emscripten_bind_btQuaternion_setZ_1"]=asm["_emscripten_bind_btQuaternion_setZ_1"];var _emscripten_bind_btQuadWord_z_0=Module["_emscripten_bind_btQuadWord_z_0"]=asm["_emscripten_bind_btQuadWord_z_0"];var _emscripten_bind_btWheelInfo_get_m_suspensionStiffness_0=Module["_emscripten_bind_btWheelInfo_get_m_suspensionStiffness_0"]=asm["_emscripten_bind_btWheelInfo_get_m_suspensionStiffness_0"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_angularDamping_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_angularDamping_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_angularDamping_0"];var _emscripten_bind_btCollisionDispatcher___destroy___0=Module["_emscripten_bind_btCollisionDispatcher___destroy___0"]=asm["_emscripten_bind_btCollisionDispatcher___destroy___0"];var _emscripten_bind_btDefaultMotionState_getWorldTransform_1=Module["_emscripten_bind_btDefaultMotionState_getWorldTransform_1"]=asm["_emscripten_bind_btDefaultMotionState_getWorldTransform_1"];var _emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_1=Module["_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_1"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_1"];var _emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_3=Module["_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_3"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_3"];var _emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_2=Module["_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_2"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_2"];var _emscripten_bind_btVector3_op_mul_1=Module["_emscripten_bind_btVector3_op_mul_1"]=asm["_emscripten_bind_btVector3_op_mul_1"];var _emscripten_bind_btDynamicsWorld_rayTest_3=Module["_emscripten_bind_btDynamicsWorld_rayTest_3"]=asm["_emscripten_bind_btDynamicsWorld_rayTest_3"];var _emscripten_bind_btRaycastVehicle_updateWheelTransform_2=Module["_emscripten_bind_btRaycastVehicle_updateWheelTransform_2"]=asm["_emscripten_bind_btRaycastVehicle_updateWheelTransform_2"];var _emscripten_bind_btQuadWord_x_0=Module["_emscripten_bind_btQuadWord_x_0"]=asm["_emscripten_bind_btQuadWord_x_0"];var _emscripten_bind_btBroadphaseInterface___destroy___0=Module["_emscripten_bind_btBroadphaseInterface___destroy___0"]=asm["_emscripten_bind_btBroadphaseInterface___destroy___0"];var _emscripten_bind_btRigidBody_getCenterOfMassTransform_0=Module["_emscripten_bind_btRigidBody_getCenterOfMassTransform_0"]=asm["_emscripten_bind_btRigidBody_getCenterOfMassTransform_0"];var _emscripten_bind_btCapsuleShape___destroy___0=Module["_emscripten_bind_btCapsuleShape___destroy___0"]=asm["_emscripten_bind_btCapsuleShape___destroy___0"];var _emscripten_bind_btCollisionObject_activate_1=Module["_emscripten_bind_btCollisionObject_activate_1"]=asm["_emscripten_bind_btCollisionObject_activate_1"];var _emscripten_bind_btCollisionObject_activate_0=Module["_emscripten_bind_btCollisionObject_activate_0"]=asm["_emscripten_bind_btCollisionObject_activate_0"];var _emscripten_bind_btCollisionDispatcher_btCollisionDispatcher_1=Module["_emscripten_bind_btCollisionDispatcher_btCollisionDispatcher_1"]=asm["_emscripten_bind_btCollisionDispatcher_btCollisionDispatcher_1"];var _emscripten_bind_btVector3_setX_1=Module["_emscripten_bind_btVector3_setX_1"]=asm["_emscripten_bind_btVector3_setX_1"];var _emscripten_bind_btCollisionConfiguration___destroy___0=Module["_emscripten_bind_btCollisionConfiguration___destroy___0"]=asm["_emscripten_bind_btCollisionConfiguration___destroy___0"];var _emscripten_bind_btQuaternion_btQuaternion_4=Module["_emscripten_bind_btQuaternion_btQuaternion_4"]=asm["_emscripten_bind_btQuaternion_btQuaternion_4"];var _emscripten_bind_btManifoldPoint_set_m_positionWorldOnB_1=Module["_emscripten_bind_btManifoldPoint_set_m_positionWorldOnB_1"]=asm["_emscripten_bind_btManifoldPoint_set_m_positionWorldOnB_1"];var _emscripten_bind_btManifoldPoint_set_m_localPointB_1=Module["_emscripten_bind_btManifoldPoint_set_m_localPointB_1"]=asm["_emscripten_bind_btManifoldPoint_set_m_localPointB_1"];var _emscripten_bind_btVector3_setZ_1=Module["_emscripten_bind_btVector3_setZ_1"]=asm["_emscripten_bind_btVector3_setZ_1"];var _emscripten_bind_btQuaternion_setValue_4=Module["_emscripten_bind_btQuaternion_setValue_4"]=asm["_emscripten_bind_btQuaternion_setValue_4"];var _emscripten_bind_btPoint2PointConstraint_get_m_setting_0=Module["_emscripten_bind_btPoint2PointConstraint_get_m_setting_0"]=asm["_emscripten_bind_btPoint2PointConstraint_get_m_setting_0"];var _emscripten_bind_btQuadWord_setY_1=Module["_emscripten_bind_btQuadWord_setY_1"]=asm["_emscripten_bind_btQuadWord_setY_1"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_restitution_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_restitution_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_restitution_1"];var _emscripten_bind_btCollisionWorld___destroy___0=Module["_emscripten_bind_btCollisionWorld___destroy___0"]=asm["_emscripten_bind_btCollisionWorld___destroy___0"];var _emscripten_bind_btBoxShape_btBoxShape_1=Module["_emscripten_bind_btBoxShape_btBoxShape_1"]=asm["_emscripten_bind_btBoxShape_btBoxShape_1"];var _emscripten_bind_btPersistentManifold_getBody1_0=Module["_emscripten_bind_btPersistentManifold_getBody1_0"]=asm["_emscripten_bind_btPersistentManifold_getBody1_0"];var _emscripten_bind_ClosestRayResultCallback_set_m_collisionObject_1=Module["_emscripten_bind_ClosestRayResultCallback_set_m_collisionObject_1"]=asm["_emscripten_bind_ClosestRayResultCallback_set_m_collisionObject_1"];var _emscripten_bind_btConstraintSetting_set_m_impulseClamp_1=Module["_emscripten_bind_btConstraintSetting_set_m_impulseClamp_1"]=asm["_emscripten_bind_btConstraintSetting_set_m_impulseClamp_1"];var _emscripten_bind_btWheelInfo_get_m_rollInfluence_0=Module["_emscripten_bind_btWheelInfo_get_m_rollInfluence_0"]=asm["_emscripten_bind_btWheelInfo_get_m_rollInfluence_0"];var _emscripten_bind_btVector4_setValue_4=Module["_emscripten_bind_btVector4_setValue_4"]=asm["_emscripten_bind_btVector4_setValue_4"];var _emscripten_bind_btBvhTriangleMeshShape_setLocalScaling_1=Module["_emscripten_bind_btBvhTriangleMeshShape_setLocalScaling_1"]=asm["_emscripten_bind_btBvhTriangleMeshShape_setLocalScaling_1"];var _emscripten_bind_btVector3_length_0=Module["_emscripten_bind_btVector3_length_0"]=asm["_emscripten_bind_btVector3_length_0"];var _emscripten_bind_btDefaultMotionState___destroy___0=Module["_emscripten_bind_btDefaultMotionState___destroy___0"]=asm["_emscripten_bind_btDefaultMotionState___destroy___0"];var _emscripten_bind_btWheelInfo_set_m_frictionSlip_1=Module["_emscripten_bind_btWheelInfo_set_m_frictionSlip_1"]=asm["_emscripten_bind_btWheelInfo_set_m_frictionSlip_1"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_angularDamping_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_angularDamping_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_angularDamping_1"];var _emscripten_bind_btQuadWord_setW_1=Module["_emscripten_bind_btQuadWord_setW_1"]=asm["_emscripten_bind_btQuadWord_setW_1"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_friction_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_friction_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_friction_0"];var _emscripten_bind_btCapsuleShapeX_btCapsuleShapeX_2=Module["_emscripten_bind_btCapsuleShapeX_btCapsuleShapeX_2"]=asm["_emscripten_bind_btCapsuleShapeX_btCapsuleShapeX_2"];var _emscripten_bind_btRigidBody_setLinearFactor_1=Module["_emscripten_bind_btRigidBody_setLinearFactor_1"]=asm["_emscripten_bind_btRigidBody_setLinearFactor_1"];var _emscripten_bind_btRaycastVehicle_setSteeringValue_2=Module["_emscripten_bind_btRaycastVehicle_setSteeringValue_2"]=asm["_emscripten_bind_btRaycastVehicle_setSteeringValue_2"];var _emscripten_bind_btPoint2PointConstraint___destroy___0=Module["_emscripten_bind_btPoint2PointConstraint___destroy___0"]=asm["_emscripten_bind_btPoint2PointConstraint___destroy___0"];var _emscripten_bind_btDiscreteDynamicsWorld_addConstraint_2=Module["_emscripten_bind_btDiscreteDynamicsWorld_addConstraint_2"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_addConstraint_2"];var _emscripten_bind_btDiscreteDynamicsWorld_addConstraint_1=Module["_emscripten_bind_btDiscreteDynamicsWorld_addConstraint_1"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_addConstraint_1"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_angularSleepingThreshold_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_angularSleepingThreshold_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_angularSleepingThreshold_1"];var _malloc=Module["_malloc"]=asm["_malloc"];var _emscripten_bind_btTransform_btTransform_2=Module["_emscripten_bind_btTransform_btTransform_2"]=asm["_emscripten_bind_btTransform_btTransform_2"];var _emscripten_bind_btTransform_btTransform_0=Module["_emscripten_bind_btTransform_btTransform_0"]=asm["_emscripten_bind_btTransform_btTransform_0"];var _emscripten_bind_btWheelInfo_set_m_wheelsDampingCompression_1=Module["_emscripten_bind_btWheelInfo_set_m_wheelsDampingCompression_1"]=asm["_emscripten_bind_btWheelInfo_set_m_wheelsDampingCompression_1"];var _emscripten_bind_btCollisionObject_setActivationState_1=Module["_emscripten_bind_btCollisionObject_setActivationState_1"]=asm["_emscripten_bind_btCollisionObject_setActivationState_1"];var _emscripten_bind_btPersistentManifold___destroy___0=Module["_emscripten_bind_btPersistentManifold___destroy___0"]=asm["_emscripten_bind_btPersistentManifold___destroy___0"];var _emscripten_bind_btConstraintSetting_get_m_impulseClamp_0=Module["_emscripten_bind_btConstraintSetting_get_m_impulseClamp_0"]=asm["_emscripten_bind_btConstraintSetting_get_m_impulseClamp_0"];var _emscripten_bind_btCylinderShapeZ___destroy___0=Module["_emscripten_bind_btCylinderShapeZ___destroy___0"]=asm["_emscripten_bind_btCylinderShapeZ___destroy___0"];var _emscripten_bind_btMatrix3x3___destroy___0=Module["_emscripten_bind_btMatrix3x3___destroy___0"]=asm["_emscripten_bind_btMatrix3x3___destroy___0"];var _emscripten_bind_btCollisionShape_calculateLocalInertia_2=Module["_emscripten_bind_btCollisionShape_calculateLocalInertia_2"]=asm["_emscripten_bind_btCollisionShape_calculateLocalInertia_2"];var _emscripten_bind_ClosestRayResultCallback_set_m_hitPointWorld_1=Module["_emscripten_bind_ClosestRayResultCallback_set_m_hitPointWorld_1"]=asm["_emscripten_bind_ClosestRayResultCallback_set_m_hitPointWorld_1"];var _emscripten_bind_btRigidBody_upcast_1=Module["_emscripten_bind_btRigidBody_upcast_1"]=asm["_emscripten_bind_btRigidBody_upcast_1"];var _emscripten_bind_btConstraintSetting_set_m_damping_1=Module["_emscripten_bind_btConstraintSetting_set_m_damping_1"]=asm["_emscripten_bind_btConstraintSetting_set_m_damping_1"];var _emscripten_bind_btVehicleRaycaster___destroy___0=Module["_emscripten_bind_btVehicleRaycaster___destroy___0"]=asm["_emscripten_bind_btVehicleRaycaster___destroy___0"];var _emscripten_bind_btRigidBody_applyForce_2=Module["_emscripten_bind_btRigidBody_applyForce_2"]=asm["_emscripten_bind_btRigidBody_applyForce_2"];var _emscripten_bind_btConeShapeZ_calculateLocalInertia_2=Module["_emscripten_bind_btConeShapeZ_calculateLocalInertia_2"]=asm["_emscripten_bind_btConeShapeZ_calculateLocalInertia_2"];var _emscripten_bind_btConstraintSetting_set_m_tau_1=Module["_emscripten_bind_btConstraintSetting_set_m_tau_1"]=asm["_emscripten_bind_btConstraintSetting_set_m_tau_1"];var _emscripten_bind_btSphereShape_calculateLocalInertia_2=Module["_emscripten_bind_btSphereShape_calculateLocalInertia_2"]=asm["_emscripten_bind_btSphereShape_calculateLocalInertia_2"];var _emscripten_bind_btCollisionDispatcher_getManifoldByIndexInternal_1=Module["_emscripten_bind_btCollisionDispatcher_getManifoldByIndexInternal_1"]=asm["_emscripten_bind_btCollisionDispatcher_getManifoldByIndexInternal_1"];var _emscripten_bind_btCollisionWorld_rayTest_3=Module["_emscripten_bind_btCollisionWorld_rayTest_3"]=asm["_emscripten_bind_btCollisionWorld_rayTest_3"];var _emscripten_bind_btRigidBody_setFriction_1=Module["_emscripten_bind_btRigidBody_setFriction_1"]=asm["_emscripten_bind_btRigidBody_setFriction_1"];var _emscripten_bind_btDiscreteDynamicsWorld_removeRigidBody_1=Module["_emscripten_bind_btDiscreteDynamicsWorld_removeRigidBody_1"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_removeRigidBody_1"];var _emscripten_bind_btVector4_setX_1=Module["_emscripten_bind_btVector4_setX_1"]=asm["_emscripten_bind_btVector4_setX_1"];var _emscripten_bind_btCapsuleShapeX_calculateLocalInertia_2=Module["_emscripten_bind_btCapsuleShapeX_calculateLocalInertia_2"]=asm["_emscripten_bind_btCapsuleShapeX_calculateLocalInertia_2"];var _emscripten_bind_btTransform_setOrigin_1=Module["_emscripten_bind_btTransform_setOrigin_1"]=asm["_emscripten_bind_btTransform_setOrigin_1"];var _emscripten_bind_btVector4_setZ_1=Module["_emscripten_bind_btVector4_setZ_1"]=asm["_emscripten_bind_btVector4_setZ_1"];var _emscripten_bind_btQuadWord_y_0=Module["_emscripten_bind_btQuadWord_y_0"]=asm["_emscripten_bind_btQuadWord_y_0"];var _emscripten_bind_btTransform_getBasis_0=Module["_emscripten_bind_btTransform_getBasis_0"]=asm["_emscripten_bind_btTransform_getBasis_0"];var _emscripten_bind_btCollisionDispatcher_getNumManifolds_0=Module["_emscripten_bind_btCollisionDispatcher_getNumManifolds_0"]=asm["_emscripten_bind_btCollisionDispatcher_getNumManifolds_0"];var _emscripten_bind_ClosestRayResultCallback___destroy___0=Module["_emscripten_bind_ClosestRayResultCallback___destroy___0"]=asm["_emscripten_bind_ClosestRayResultCallback___destroy___0"];var _emscripten_bind_btQuadWord_w_0=Module["_emscripten_bind_btQuadWord_w_0"]=asm["_emscripten_bind_btQuadWord_w_0"];var _emscripten_bind_btCompoundShape___destroy___0=Module["_emscripten_bind_btCompoundShape___destroy___0"]=asm["_emscripten_bind_btCompoundShape___destroy___0"];var _emscripten_bind_btBvhTriangleMeshShape_calculateLocalInertia_2=Module["_emscripten_bind_btBvhTriangleMeshShape_calculateLocalInertia_2"]=asm["_emscripten_bind_btBvhTriangleMeshShape_calculateLocalInertia_2"];var _emscripten_bind_btConeShape_btConeShape_2=Module["_emscripten_bind_btConeShape_btConeShape_2"]=asm["_emscripten_bind_btConeShape_btConeShape_2"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingFactor_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingFactor_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingFactor_1"];var _emscripten_bind_btManifoldPoint_set_m_localPointA_1=Module["_emscripten_bind_btManifoldPoint_set_m_localPointA_1"]=asm["_emscripten_bind_btManifoldPoint_set_m_localPointA_1"];var _emscripten_bind_btWheelInfo___destroy___0=Module["_emscripten_bind_btWheelInfo___destroy___0"]=asm["_emscripten_bind_btWheelInfo___destroy___0"];var _emscripten_bind_btTransform_setRotation_1=Module["_emscripten_bind_btTransform_setRotation_1"]=asm["_emscripten_bind_btTransform_setRotation_1"];var _emscripten_bind_btRigidBody_setMassProps_2=Module["_emscripten_bind_btRigidBody_setMassProps_2"]=asm["_emscripten_bind_btRigidBody_setMassProps_2"];var _emscripten_bind_btQuadWord_setZ_1=Module["_emscripten_bind_btQuadWord_setZ_1"]=asm["_emscripten_bind_btQuadWord_setZ_1"];var _emscripten_bind_btAxisSweep3_btAxisSweep3_2=Module["_emscripten_bind_btAxisSweep3_btAxisSweep3_2"]=asm["_emscripten_bind_btAxisSweep3_btAxisSweep3_2"];var _emscripten_bind_btAxisSweep3_btAxisSweep3_3=Module["_emscripten_bind_btAxisSweep3_btAxisSweep3_3"]=asm["_emscripten_bind_btAxisSweep3_btAxisSweep3_3"];var _emscripten_bind_btBoxShape_calculateLocalInertia_2=Module["_emscripten_bind_btBoxShape_calculateLocalInertia_2"]=asm["_emscripten_bind_btBoxShape_calculateLocalInertia_2"];var _emscripten_bind_btVector3_setY_1=Module["_emscripten_bind_btVector3_setY_1"]=asm["_emscripten_bind_btVector3_setY_1"];var _emscripten_bind_btAxisSweep3_btAxisSweep3_4=Module["_emscripten_bind_btAxisSweep3_btAxisSweep3_4"]=asm["_emscripten_bind_btAxisSweep3_btAxisSweep3_4"];var _emscripten_bind_btAxisSweep3_btAxisSweep3_5=Module["_emscripten_bind_btAxisSweep3_btAxisSweep3_5"]=asm["_emscripten_bind_btAxisSweep3_btAxisSweep3_5"];var _emscripten_bind_btQuadWord_setX_1=Module["_emscripten_bind_btQuadWord_setX_1"]=asm["_emscripten_bind_btQuadWord_setX_1"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalLinearDampingThresholdSqr_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalLinearDampingThresholdSqr_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalLinearDampingThresholdSqr_0"];var _emscripten_bind_btOverlappingPairCache___destroy___0=Module["_emscripten_bind_btOverlappingPairCache___destroy___0"]=asm["_emscripten_bind_btOverlappingPairCache___destroy___0"];var _emscripten_bind_btConstraintSetting___destroy___0=Module["_emscripten_bind_btConstraintSetting___destroy___0"]=asm["_emscripten_bind_btConstraintSetting___destroy___0"];var _emscripten_bind_RayResultCallback___destroy___0=Module["_emscripten_bind_RayResultCallback___destroy___0"]=asm["_emscripten_bind_RayResultCallback___destroy___0"];var _emscripten_bind_btPersistentManifold_getBody0_0=Module["_emscripten_bind_btPersistentManifold_getBody0_0"]=asm["_emscripten_bind_btPersistentManifold_getBody0_0"];var _emscripten_bind_btConeShapeX_btConeShapeX_2=Module["_emscripten_bind_btConeShapeX_btConeShapeX_2"]=asm["_emscripten_bind_btConeShapeX_btConeShapeX_2"];var _emscripten_bind_btCapsuleShapeZ_setLocalScaling_1=Module["_emscripten_bind_btCapsuleShapeZ_setLocalScaling_1"]=asm["_emscripten_bind_btCapsuleShapeZ_setLocalScaling_1"];var _emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_2=Module["_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_2"]=asm["_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_2"];var _emscripten_bind_btConcaveShape___destroy___0=Module["_emscripten_bind_btConcaveShape___destroy___0"]=asm["_emscripten_bind_btConcaveShape___destroy___0"];var _emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_4=Module["_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_4"]=asm["_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_4"];var _emscripten_bind_btQuaternion_x_0=Module["_emscripten_bind_btQuaternion_x_0"]=asm["_emscripten_bind_btQuaternion_x_0"];var _emscripten_bind_btConcaveShape_setLocalScaling_1=Module["_emscripten_bind_btConcaveShape_setLocalScaling_1"]=asm["_emscripten_bind_btConcaveShape_setLocalScaling_1"];var _emscripten_bind_btConeShapeX_setLocalScaling_1=Module["_emscripten_bind_btConeShapeX_setLocalScaling_1"]=asm["_emscripten_bind_btConeShapeX_setLocalScaling_1"];var _emscripten_bind_btQuaternion_z_0=Module["_emscripten_bind_btQuaternion_z_0"]=asm["_emscripten_bind_btQuaternion_z_0"];var _emscripten_bind_btDefaultMotionState_btDefaultMotionState_2=Module["_emscripten_bind_btDefaultMotionState_btDefaultMotionState_2"]=asm["_emscripten_bind_btDefaultMotionState_btDefaultMotionState_2"];var _emscripten_bind_btDefaultMotionState_btDefaultMotionState_0=Module["_emscripten_bind_btDefaultMotionState_btDefaultMotionState_0"]=asm["_emscripten_bind_btDefaultMotionState_btDefaultMotionState_0"];var _emscripten_bind_btDefaultMotionState_btDefaultMotionState_1=Module["_emscripten_bind_btDefaultMotionState_btDefaultMotionState_1"]=asm["_emscripten_bind_btDefaultMotionState_btDefaultMotionState_1"];var _emscripten_bind_btRigidBody_isActive_0=Module["_emscripten_bind_btRigidBody_isActive_0"]=asm["_emscripten_bind_btRigidBody_isActive_0"];var _emscripten_bind_btRaycastVehicle_btRaycastVehicle_3=Module["_emscripten_bind_btRaycastVehicle_btRaycastVehicle_3"]=asm["_emscripten_bind_btRaycastVehicle_btRaycastVehicle_3"];var _emscripten_bind_btMotionState_setWorldTransform_1=Module["_emscripten_bind_btMotionState_setWorldTransform_1"]=asm["_emscripten_bind_btMotionState_setWorldTransform_1"];var _emscripten_bind_btCylinderShape_setLocalScaling_1=Module["_emscripten_bind_btCylinderShape_setLocalScaling_1"]=asm["_emscripten_bind_btCylinderShape_setLocalScaling_1"];var _emscripten_bind_btCompoundShape_calculateLocalInertia_2=Module["_emscripten_bind_btCompoundShape_calculateLocalInertia_2"]=asm["_emscripten_bind_btCompoundShape_calculateLocalInertia_2"];var _emscripten_bind_btConeShapeX___destroy___0=Module["_emscripten_bind_btConeShapeX___destroy___0"]=asm["_emscripten_bind_btConeShapeX___destroy___0"];var _emscripten_bind_btCollisionObject_getCollisionFlags_0=Module["_emscripten_bind_btCollisionObject_getCollisionFlags_0"]=asm["_emscripten_bind_btCollisionObject_getCollisionFlags_0"];var _emscripten_bind_btRaycastVehicle_setCoordinateSystem_3=Module["_emscripten_bind_btRaycastVehicle_setCoordinateSystem_3"]=asm["_emscripten_bind_btRaycastVehicle_setCoordinateSystem_3"];var _emscripten_bind_btSphereShape___destroy___0=Module["_emscripten_bind_btSphereShape___destroy___0"]=asm["_emscripten_bind_btSphereShape___destroy___0"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDampingFactor_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDampingFactor_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDampingFactor_1"];var _emscripten_bind_btCollisionObject_setContactProcessingThreshold_1=Module["_emscripten_bind_btCollisionObject_setContactProcessingThreshold_1"]=asm["_emscripten_bind_btCollisionObject_setContactProcessingThreshold_1"];var _emscripten_bind_btPersistentManifold_getNumContacts_0=Module["_emscripten_bind_btPersistentManifold_getNumContacts_0"]=asm["_emscripten_bind_btPersistentManifold_getNumContacts_0"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingFactor_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingFactor_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingFactor_0"];var _emscripten_bind_btSequentialImpulseConstraintSolver___destroy___0=Module["_emscripten_bind_btSequentialImpulseConstraintSolver___destroy___0"]=asm["_emscripten_bind_btSequentialImpulseConstraintSolver___destroy___0"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalLinearDampingThresholdSqr_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalLinearDampingThresholdSqr_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalLinearDampingThresholdSqr_1"];var _emscripten_bind_btRigidBody_getCollisionFlags_0=Module["_emscripten_bind_btRigidBody_getCollisionFlags_0"]=asm["_emscripten_bind_btRigidBody_getCollisionFlags_0"];var _emscripten_bind_btCollisionShape_setLocalScaling_1=Module["_emscripten_bind_btCollisionShape_setLocalScaling_1"]=asm["_emscripten_bind_btCollisionShape_setLocalScaling_1"];var _emscripten_bind_btRigidBody_applyTorque_1=Module["_emscripten_bind_btRigidBody_applyTorque_1"]=asm["_emscripten_bind_btRigidBody_applyTorque_1"];var _emscripten_bind_btMatrix3x3_setEulerZYX_3=Module["_emscripten_bind_btMatrix3x3_setEulerZYX_3"]=asm["_emscripten_bind_btMatrix3x3_setEulerZYX_3"];var _emscripten_bind_btCollisionWorld_getDispatcher_0=Module["_emscripten_bind_btCollisionWorld_getDispatcher_0"]=asm["_emscripten_bind_btCollisionWorld_getDispatcher_0"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _emscripten_bind_btRaycastVehicle_getWheelTransformWS_1=Module["_emscripten_bind_btRaycastVehicle_getWheelTransformWS_1"]=asm["_emscripten_bind_btRaycastVehicle_getWheelTransformWS_1"];var _emscripten_bind_btRigidBody_setDamping_2=Module["_emscripten_bind_btRigidBody_setDamping_2"]=asm["_emscripten_bind_btRigidBody_setDamping_2"];var _emscripten_bind_btRigidBody_btRigidBody_1=Module["_emscripten_bind_btRigidBody_btRigidBody_1"]=asm["_emscripten_bind_btRigidBody_btRigidBody_1"];var _emscripten_bind_btCylinderShapeX_setLocalScaling_1=Module["_emscripten_bind_btCylinderShapeX_setLocalScaling_1"]=asm["_emscripten_bind_btCylinderShapeX_setLocalScaling_1"];var _emscripten_bind_btDbvtBroadphase_btDbvtBroadphase_0=Module["_emscripten_bind_btDbvtBroadphase_btDbvtBroadphase_0"]=asm["_emscripten_bind_btDbvtBroadphase_btDbvtBroadphase_0"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDamping_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDamping_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDamping_0"];var _emscripten_bind_btCompoundShape_setLocalScaling_1=Module["_emscripten_bind_btCompoundShape_setLocalScaling_1"]=asm["_emscripten_bind_btCompoundShape_setLocalScaling_1"];var _emscripten_bind_btManifoldPoint_get_m_positionWorldOnB_0=Module["_emscripten_bind_btManifoldPoint_get_m_positionWorldOnB_0"]=asm["_emscripten_bind_btManifoldPoint_get_m_positionWorldOnB_0"];var _emscripten_bind_btVector4_setY_1=Module["_emscripten_bind_btVector4_setY_1"]=asm["_emscripten_bind_btVector4_setY_1"];var _emscripten_bind_btRigidBody_setContactProcessingThreshold_1=Module["_emscripten_bind_btRigidBody_setContactProcessingThreshold_1"]=asm["_emscripten_bind_btRigidBody_setContactProcessingThreshold_1"];var _emscripten_bind_btRigidBody_getLinearVelocity_0=Module["_emscripten_bind_btRigidBody_getLinearVelocity_0"]=asm["_emscripten_bind_btRigidBody_getLinearVelocity_0"];var _emscripten_bind_btRigidBody_applyImpulse_2=Module["_emscripten_bind_btRigidBody_applyImpulse_2"]=asm["_emscripten_bind_btRigidBody_applyImpulse_2"];var _emscripten_bind_btConcaveShape_calculateLocalInertia_2=Module["_emscripten_bind_btConcaveShape_calculateLocalInertia_2"]=asm["_emscripten_bind_btConcaveShape_calculateLocalInertia_2"];var _emscripten_bind_btRigidBody_setAngularVelocity_1=Module["_emscripten_bind_btRigidBody_setAngularVelocity_1"]=asm["_emscripten_bind_btRigidBody_setAngularVelocity_1"];var _emscripten_bind_btRigidBody_setCenterOfMassTransform_1=Module["_emscripten_bind_btRigidBody_setCenterOfMassTransform_1"]=asm["_emscripten_bind_btRigidBody_setCenterOfMassTransform_1"];var _free=Module["_free"]=asm["_free"];var _emscripten_bind_RayResultCallback_hasHit_0=Module["_emscripten_bind_RayResultCallback_hasHit_0"]=asm["_emscripten_bind_RayResultCallback_hasHit_0"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingThresholdSqr_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingThresholdSqr_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingThresholdSqr_0"];var _emscripten_bind_btQuaternion___destroy___0=Module["_emscripten_bind_btQuaternion___destroy___0"]=asm["_emscripten_bind_btQuaternion___destroy___0"];var _emscripten_bind_btWheelInfo_get_m_frictionSlip_0=Module["_emscripten_bind_btWheelInfo_get_m_frictionSlip_0"]=asm["_emscripten_bind_btWheelInfo_get_m_frictionSlip_0"];var _emscripten_bind_btConeShapeZ_setLocalScaling_1=Module["_emscripten_bind_btConeShapeZ_setLocalScaling_1"]=asm["_emscripten_bind_btConeShapeZ_setLocalScaling_1"];var _emscripten_bind_btRaycastVehicle_getNumWheels_0=Module["_emscripten_bind_btRaycastVehicle_getNumWheels_0"]=asm["_emscripten_bind_btRaycastVehicle_getNumWheels_0"];var _emscripten_bind_btCylinderShapeZ_btCylinderShapeZ_1=Module["_emscripten_bind_btCylinderShapeZ_btCylinderShapeZ_1"]=asm["_emscripten_bind_btCylinderShapeZ_btCylinderShapeZ_1"];var _emscripten_bind_btRigidBody_getAngularVelocity_0=Module["_emscripten_bind_btRigidBody_getAngularVelocity_0"]=asm["_emscripten_bind_btRigidBody_getAngularVelocity_0"];var _emscripten_bind_btCompoundShape_btCompoundShape_0=Module["_emscripten_bind_btCompoundShape_btCompoundShape_0"]=asm["_emscripten_bind_btCompoundShape_btCompoundShape_0"];var _emscripten_bind_btCompoundShape_btCompoundShape_1=Module["_emscripten_bind_btCompoundShape_btCompoundShape_1"]=asm["_emscripten_bind_btCompoundShape_btCompoundShape_1"];var _emscripten_bind_btDynamicsWorld_getDispatcher_0=Module["_emscripten_bind_btDynamicsWorld_getDispatcher_0"]=asm["_emscripten_bind_btDynamicsWorld_getDispatcher_0"];var _emscripten_bind_btRigidBody_updateInertiaTensor_0=Module["_emscripten_bind_btRigidBody_updateInertiaTensor_0"]=asm["_emscripten_bind_btRigidBody_updateInertiaTensor_0"];var _emscripten_bind_btCollisionObject_getWorldTransform_0=Module["_emscripten_bind_btCollisionObject_getWorldTransform_0"]=asm["_emscripten_bind_btCollisionObject_getWorldTransform_0"];var _emscripten_bind_ClosestRayResultCallback_hasHit_0=Module["_emscripten_bind_ClosestRayResultCallback_hasHit_0"]=asm["_emscripten_bind_ClosestRayResultCallback_hasHit_0"];var _emscripten_bind_btCompoundShape_addChildShape_2=Module["_emscripten_bind_btCompoundShape_addChildShape_2"]=asm["_emscripten_bind_btCompoundShape_addChildShape_2"];var _emscripten_bind_btDispatcher___destroy___0=Module["_emscripten_bind_btDispatcher___destroy___0"]=asm["_emscripten_bind_btDispatcher___destroy___0"];var _emscripten_bind_btDiscreteDynamicsWorld___destroy___0=Module["_emscripten_bind_btDiscreteDynamicsWorld___destroy___0"]=asm["_emscripten_bind_btDiscreteDynamicsWorld___destroy___0"];var _memmove=Module["_memmove"]=asm["_memmove"];var _emscripten_bind_btCapsuleShapeX_setLocalScaling_1=Module["_emscripten_bind_btCapsuleShapeX_setLocalScaling_1"]=asm["_emscripten_bind_btCapsuleShapeX_setLocalScaling_1"];var _emscripten_bind_btCollisionObject_setRestitution_1=Module["_emscripten_bind_btCollisionObject_setRestitution_1"]=asm["_emscripten_bind_btCollisionObject_setRestitution_1"];var _emscripten_bind_btWheelInfo_get_m_wheelsDampingCompression_0=Module["_emscripten_bind_btWheelInfo_get_m_wheelsDampingCompression_0"]=asm["_emscripten_bind_btWheelInfo_get_m_wheelsDampingCompression_0"];var _strlen=Module["_strlen"]=asm["_strlen"];var _emscripten_bind_btQuaternion_w_0=Module["_emscripten_bind_btQuaternion_w_0"]=asm["_emscripten_bind_btQuaternion_w_0"];var _emscripten_bind_btTransform_getRotation_0=Module["_emscripten_bind_btTransform_getRotation_0"]=asm["_emscripten_bind_btTransform_getRotation_0"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingThresholdSqr_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingThresholdSqr_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingThresholdSqr_1"];var _emscripten_bind_btTypedConstraint___destroy___0=Module["_emscripten_bind_btTypedConstraint___destroy___0"]=asm["_emscripten_bind_btTypedConstraint___destroy___0"];var _emscripten_bind_btCylinderShapeX_btCylinderShapeX_1=Module["_emscripten_bind_btCylinderShapeX_btCylinderShapeX_1"]=asm["_emscripten_bind_btCylinderShapeX_btCylinderShapeX_1"];var _emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_3=Module["_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_3"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_3"];var _emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_1=Module["_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_1"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_1"];var _emscripten_bind_btVector4_length_0=Module["_emscripten_bind_btVector4_length_0"]=asm["_emscripten_bind_btVector4_length_0"];var _emscripten_bind_btSphereShape_btSphereShape_1=Module["_emscripten_bind_btSphereShape_btSphereShape_1"]=asm["_emscripten_bind_btSphereShape_btSphereShape_1"];var _emscripten_bind_btQuaternion_y_0=Module["_emscripten_bind_btQuaternion_y_0"]=asm["_emscripten_bind_btQuaternion_y_0"];var _emscripten_bind_btRigidBody_setRestitution_1=Module["_emscripten_bind_btRigidBody_setRestitution_1"]=asm["_emscripten_bind_btRigidBody_setRestitution_1"];var _emscripten_bind_btDefaultVehicleRaycaster_btDefaultVehicleRaycaster_1=Module["_emscripten_bind_btDefaultVehicleRaycaster_btDefaultVehicleRaycaster_1"]=asm["_emscripten_bind_btDefaultVehicleRaycaster_btDefaultVehicleRaycaster_1"];var _emscripten_bind_ConcreteContactResultCallback_addSingleResult_7=Module["_emscripten_bind_ConcreteContactResultCallback_addSingleResult_7"]=asm["_emscripten_bind_ConcreteContactResultCallback_addSingleResult_7"];var _emscripten_bind_btSequentialImpulseConstraintSolver_btSequentialImpulseConstraintSolver_0=Module["_emscripten_bind_btSequentialImpulseConstraintSolver_btSequentialImpulseConstraintSolver_0"]=asm["_emscripten_bind_btSequentialImpulseConstraintSolver_btSequentialImpulseConstraintSolver_0"];var _emscripten_bind_btActionInterface___destroy___0=Module["_emscripten_bind_btActionInterface___destroy___0"]=asm["_emscripten_bind_btActionInterface___destroy___0"];var _emscripten_bind_btDefaultMotionState_setWorldTransform_1=Module["_emscripten_bind_btDefaultMotionState_setWorldTransform_1"]=asm["_emscripten_bind_btDefaultMotionState_setWorldTransform_1"];var _emscripten_bind_RayResultCallback_get_m_collisionObject_0=Module["_emscripten_bind_RayResultCallback_get_m_collisionObject_0"]=asm["_emscripten_bind_RayResultCallback_get_m_collisionObject_0"];var _emscripten_bind_btPoint2PointConstraint_getPivotInA_0=Module["_emscripten_bind_btPoint2PointConstraint_getPivotInA_0"]=asm["_emscripten_bind_btPoint2PointConstraint_getPivotInA_0"];var _emscripten_bind_btCylinderShape_calculateLocalInertia_2=Module["_emscripten_bind_btCylinderShape_calculateLocalInertia_2"]=asm["_emscripten_bind_btCylinderShape_calculateLocalInertia_2"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _emscripten_bind_btDiscreteDynamicsWorld_getDispatcher_0=Module["_emscripten_bind_btDiscreteDynamicsWorld_getDispatcher_0"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_getDispatcher_0"];var _emscripten_bind_btVector4_op_mul_1=Module["_emscripten_bind_btVector4_op_mul_1"]=asm["_emscripten_bind_btVector4_op_mul_1"];var _emscripten_bind_btCylinderShape_btCylinderShape_1=Module["_emscripten_bind_btCylinderShape_btCylinderShape_1"]=asm["_emscripten_bind_btCylinderShape_btCylinderShape_1"];var _emscripten_bind_btVector3___destroy___0=Module["_emscripten_bind_btVector3___destroy___0"]=asm["_emscripten_bind_btVector3___destroy___0"];var _emscripten_bind_btRigidBody_setAngularFactor_1=Module["_emscripten_bind_btRigidBody_setAngularFactor_1"]=asm["_emscripten_bind_btRigidBody_setAngularFactor_1"];var _emscripten_bind_btCylinderShapeZ_calculateLocalInertia_2=Module["_emscripten_bind_btCylinderShapeZ_calculateLocalInertia_2"]=asm["_emscripten_bind_btCylinderShapeZ_calculateLocalInertia_2"];var _emscripten_bind_btMotionState_getWorldTransform_1=Module["_emscripten_bind_btMotionState_getWorldTransform_1"]=asm["_emscripten_bind_btMotionState_getWorldTransform_1"];var _emscripten_bind_btVector3_x_0=Module["_emscripten_bind_btVector3_x_0"]=asm["_emscripten_bind_btVector3_x_0"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_3=Module["_emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_3"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_3"];var _emscripten_bind_btCollisionObject_getCollisionShape_0=Module["_emscripten_bind_btCollisionObject_getCollisionShape_0"]=asm["_emscripten_bind_btCollisionObject_getCollisionShape_0"];var _emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_4=Module["_emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_4"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_4"];var _emscripten_bind_btManifoldPoint___destroy___0=Module["_emscripten_bind_btManifoldPoint___destroy___0"]=asm["_emscripten_bind_btManifoldPoint___destroy___0"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_rollingFriction_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_rollingFriction_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_rollingFriction_1"];var _emscripten_bind_btVector3_z_0=Module["_emscripten_bind_btVector3_z_0"]=asm["_emscripten_bind_btVector3_z_0"];var _emscripten_bind_btCollisionObject_setFriction_1=Module["_emscripten_bind_btCollisionObject_setFriction_1"]=asm["_emscripten_bind_btCollisionObject_setFriction_1"];var _emscripten_bind_btDefaultCollisionConfiguration___destroy___0=Module["_emscripten_bind_btDefaultCollisionConfiguration___destroy___0"]=asm["_emscripten_bind_btDefaultCollisionConfiguration___destroy___0"];var _emscripten_bind_btVector3_setValue_3=Module["_emscripten_bind_btVector3_setValue_3"]=asm["_emscripten_bind_btVector3_setValue_3"];var _emscripten_bind_btCapsuleShapeX___destroy___0=Module["_emscripten_bind_btCapsuleShapeX___destroy___0"]=asm["_emscripten_bind_btCapsuleShapeX___destroy___0"];var _emscripten_bind_btConeShape_setLocalScaling_1=Module["_emscripten_bind_btConeShape_setLocalScaling_1"]=asm["_emscripten_bind_btConeShape_setLocalScaling_1"];var _emscripten_bind_btBoxShape___destroy___0=Module["_emscripten_bind_btBoxShape___destroy___0"]=asm["_emscripten_bind_btBoxShape___destroy___0"];var _emscripten_bind_btPersistentManifold_getContactPoint_1=Module["_emscripten_bind_btPersistentManifold_getContactPoint_1"]=asm["_emscripten_bind_btPersistentManifold_getContactPoint_1"];var _emscripten_bind_btManifoldPoint_getPositionWorldOnB_0=Module["_emscripten_bind_btManifoldPoint_getPositionWorldOnB_0"]=asm["_emscripten_bind_btManifoldPoint_getPositionWorldOnB_0"];var _emscripten_bind_btManifoldPoint_get_m_positionWorldOnA_0=Module["_emscripten_bind_btManifoldPoint_get_m_positionWorldOnA_0"]=asm["_emscripten_bind_btManifoldPoint_get_m_positionWorldOnA_0"];var _emscripten_bind_btConeShapeZ_btConeShapeZ_2=Module["_emscripten_bind_btConeShapeZ_btConeShapeZ_2"]=asm["_emscripten_bind_btConeShapeZ_btConeShapeZ_2"];var _emscripten_bind_btWheelInfo_set_m_rollInfluence_1=Module["_emscripten_bind_btWheelInfo_set_m_rollInfluence_1"]=asm["_emscripten_bind_btWheelInfo_set_m_rollInfluence_1"];var _emscripten_bind_btDefaultCollisionConstructionInfo_btDefaultCollisionConstructionInfo_0=Module["_emscripten_bind_btDefaultCollisionConstructionInfo_btDefaultCollisionConstructionInfo_0"]=asm["_emscripten_bind_btDefaultCollisionConstructionInfo_btDefaultCollisionConstructionInfo_0"];var _emscripten_bind_btVector4_y_0=Module["_emscripten_bind_btVector4_y_0"]=asm["_emscripten_bind_btVector4_y_0"];var _emscripten_bind_btTriangleMeshShape_calculateLocalInertia_2=Module["_emscripten_bind_btTriangleMeshShape_calculateLocalInertia_2"]=asm["_emscripten_bind_btTriangleMeshShape_calculateLocalInertia_2"];var _emscripten_bind_RayResultCallback_set_m_collisionObject_1=Module["_emscripten_bind_RayResultCallback_set_m_collisionObject_1"]=asm["_emscripten_bind_RayResultCallback_set_m_collisionObject_1"];var _emscripten_bind_ClosestRayResultCallback_get_m_rayFromWorld_0=Module["_emscripten_bind_ClosestRayResultCallback_get_m_rayFromWorld_0"]=asm["_emscripten_bind_ClosestRayResultCallback_get_m_rayFromWorld_0"];var _emscripten_bind_btRaycastVehicle_getRigidBody_0=Module["_emscripten_bind_btRaycastVehicle_getRigidBody_0"]=asm["_emscripten_bind_btRaycastVehicle_getRigidBody_0"];var _emscripten_bind_btConstraintSetting_get_m_tau_0=Module["_emscripten_bind_btConstraintSetting_get_m_tau_0"]=asm["_emscripten_bind_btConstraintSetting_get_m_tau_0"];var _emscripten_bind_btCollisionShape___destroy___0=Module["_emscripten_bind_btCollisionShape___destroy___0"]=asm["_emscripten_bind_btCollisionShape___destroy___0"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_rollingFriction_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_rollingFriction_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_rollingFriction_0"];var _emscripten_bind_btAxisSweep3___destroy___0=Module["_emscripten_bind_btAxisSweep3___destroy___0"]=asm["_emscripten_bind_btAxisSweep3___destroy___0"];var _emscripten_bind_btTriangleMesh___destroy___0=Module["_emscripten_bind_btTriangleMesh___destroy___0"]=asm["_emscripten_bind_btTriangleMesh___destroy___0"];var _emscripten_bind_btRaycastVehicle_applyEngineForce_2=Module["_emscripten_bind_btRaycastVehicle_applyEngineForce_2"]=asm["_emscripten_bind_btRaycastVehicle_applyEngineForce_2"];var _emscripten_bind_btRaycastVehicle_setBrake_2=Module["_emscripten_bind_btRaycastVehicle_setBrake_2"]=asm["_emscripten_bind_btRaycastVehicle_setBrake_2"];var _emscripten_bind_ConcreteContactResultCallback___destroy___0=Module["_emscripten_bind_ConcreteContactResultCallback___destroy___0"]=asm["_emscripten_bind_ConcreteContactResultCallback___destroy___0"];var _emscripten_bind_btCollisionObject___destroy___0=Module["_emscripten_bind_btCollisionObject___destroy___0"]=asm["_emscripten_bind_btCollisionObject___destroy___0"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_linearSleepingThreshold_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_linearSleepingThreshold_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_linearSleepingThreshold_1"];var _emscripten_bind_btVector3_btVector3_3=Module["_emscripten_bind_btVector3_btVector3_3"]=asm["_emscripten_bind_btVector3_btVector3_3"];var _emscripten_bind_btVector3_btVector3_0=Module["_emscripten_bind_btVector3_btVector3_0"]=asm["_emscripten_bind_btVector3_btVector3_0"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_friction_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_friction_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_friction_1"];var _emscripten_bind_btDiscreteDynamicsWorld_getGravity_0=Module["_emscripten_bind_btDiscreteDynamicsWorld_getGravity_0"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_getGravity_0"];var _emscripten_bind_btConeTwistConstraint___destroy___0=Module["_emscripten_bind_btConeTwistConstraint___destroy___0"]=asm["_emscripten_bind_btConeTwistConstraint___destroy___0"];var _emscripten_bind_btQuadWord___destroy___0=Module["_emscripten_bind_btQuadWord___destroy___0"]=asm["_emscripten_bind_btQuadWord___destroy___0"];var _emscripten_bind_ClosestRayResultCallback_set_m_rayFromWorld_1=Module["_emscripten_bind_ClosestRayResultCallback_set_m_rayFromWorld_1"]=asm["_emscripten_bind_ClosestRayResultCallback_set_m_rayFromWorld_1"];var _emscripten_bind_btConstraintSolver___destroy___0=Module["_emscripten_bind_btConstraintSolver___destroy___0"]=asm["_emscripten_bind_btConstraintSolver___destroy___0"];var _emscripten_bind_btDbvtBroadphase___destroy___0=Module["_emscripten_bind_btDbvtBroadphase___destroy___0"]=asm["_emscripten_bind_btDbvtBroadphase___destroy___0"];var _emscripten_bind_btCapsuleShape_btCapsuleShape_2=Module["_emscripten_bind_btCapsuleShape_btCapsuleShape_2"]=asm["_emscripten_bind_btCapsuleShape_btCapsuleShape_2"];var _emscripten_bind_btCapsuleShape_setLocalScaling_1=Module["_emscripten_bind_btCapsuleShape_setLocalScaling_1"]=asm["_emscripten_bind_btCapsuleShape_setLocalScaling_1"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDampingFactor_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDampingFactor_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDampingFactor_0"];var _emscripten_bind_btTriangleMeshShape_setLocalScaling_1=Module["_emscripten_bind_btTriangleMeshShape_setLocalScaling_1"]=asm["_emscripten_bind_btTriangleMeshShape_setLocalScaling_1"];var _emscripten_bind_btPersistentManifold_btPersistentManifold_0=Module["_emscripten_bind_btPersistentManifold_btPersistentManifold_0"]=asm["_emscripten_bind_btPersistentManifold_btPersistentManifold_0"];var _emscripten_bind_ClosestRayResultCallback_ClosestRayResultCallback_2=Module["_emscripten_bind_ClosestRayResultCallback_ClosestRayResultCallback_2"]=asm["_emscripten_bind_ClosestRayResultCallback_ClosestRayResultCallback_2"];var _emscripten_bind_btVector4___destroy___0=Module["_emscripten_bind_btVector4___destroy___0"]=asm["_emscripten_bind_btVector4___destroy___0"];var _emscripten_bind_btConstraintSetting_get_m_damping_0=Module["_emscripten_bind_btConstraintSetting_get_m_damping_0"]=asm["_emscripten_bind_btConstraintSetting_get_m_damping_0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_0=Module["_emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_0"]=asm["_emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_0"];var _emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_1=Module["_emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_1"]=asm["_emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_1"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_angularSleepingThreshold_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_angularSleepingThreshold_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_angularSleepingThreshold_0"];var _emscripten_bind_btPoint2PointConstraint_getPivotInB_0=Module["_emscripten_bind_btPoint2PointConstraint_getPivotInB_0"]=asm["_emscripten_bind_btPoint2PointConstraint_getPivotInB_0"];var _emscripten_bind_ContactResultCallback_addSingleResult_7=Module["_emscripten_bind_ContactResultCallback_addSingleResult_7"]=asm["_emscripten_bind_ContactResultCallback_addSingleResult_7"];var _emscripten_bind_btCapsuleShapeZ_calculateLocalInertia_2=Module["_emscripten_bind_btCapsuleShapeZ_calculateLocalInertia_2"]=asm["_emscripten_bind_btCapsuleShapeZ_calculateLocalInertia_2"];var _emscripten_bind_btDynamicsWorld___destroy___0=Module["_emscripten_bind_btDynamicsWorld___destroy___0"]=asm["_emscripten_bind_btDynamicsWorld___destroy___0"];var _emscripten_bind_btMotionState___destroy___0=Module["_emscripten_bind_btMotionState___destroy___0"]=asm["_emscripten_bind_btMotionState___destroy___0"];var _emscripten_bind_btCollisionObject_setCollisionFlags_1=Module["_emscripten_bind_btCollisionObject_setCollisionFlags_1"]=asm["_emscripten_bind_btCollisionObject_setCollisionFlags_1"];var _emscripten_bind_btRigidBody_getMotionState_0=Module["_emscripten_bind_btRigidBody_getMotionState_0"]=asm["_emscripten_bind_btRigidBody_getMotionState_0"];var _emscripten_bind_btWheelInfo_set_m_suspensionStiffness_1=Module["_emscripten_bind_btWheelInfo_set_m_suspensionStiffness_1"]=asm["_emscripten_bind_btWheelInfo_set_m_suspensionStiffness_1"];var _emscripten_bind_btDispatcher_getManifoldByIndexInternal_1=Module["_emscripten_bind_btDispatcher_getManifoldByIndexInternal_1"]=asm["_emscripten_bind_btDispatcher_getManifoldByIndexInternal_1"];var _emscripten_bind_btDefaultCollisionConstructionInfo___destroy___0=Module["_emscripten_bind_btDefaultCollisionConstructionInfo___destroy___0"]=asm["_emscripten_bind_btDefaultCollisionConstructionInfo___destroy___0"];var _emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_4=Module["_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_4"]=asm["_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_4"];var _emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_2=Module["_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_2"]=asm["_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_2"];var _emscripten_bind_btConeShapeX_calculateLocalInertia_2=Module["_emscripten_bind_btConeShapeX_calculateLocalInertia_2"]=asm["_emscripten_bind_btConeShapeX_calculateLocalInertia_2"];var _emscripten_bind_btRigidBodyConstructionInfo___destroy___0=Module["_emscripten_bind_btRigidBodyConstructionInfo___destroy___0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo___destroy___0"];var _emscripten_bind_btRigidBody_getWorldTransform_0=Module["_emscripten_bind_btRigidBody_getWorldTransform_0"]=asm["_emscripten_bind_btRigidBody_getWorldTransform_0"];var _emscripten_bind_btPoint2PointConstraint_setPivotA_1=Module["_emscripten_bind_btPoint2PointConstraint_setPivotA_1"]=asm["_emscripten_bind_btPoint2PointConstraint_setPivotA_1"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _emscripten_bind_btCapsuleShape_calculateLocalInertia_2=Module["_emscripten_bind_btCapsuleShape_calculateLocalInertia_2"]=asm["_emscripten_bind_btCapsuleShape_calculateLocalInertia_2"];var _emscripten_bind_btVector3_y_0=Module["_emscripten_bind_btVector3_y_0"]=asm["_emscripten_bind_btVector3_y_0"];var _emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_2=Module["_emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_2"]=asm["_emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_2"];var _emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_3=Module["_emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_3"]=asm["_emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_3"];var _emscripten_bind_btQuaternion_setW_1=Module["_emscripten_bind_btQuaternion_setW_1"]=asm["_emscripten_bind_btQuaternion_setW_1"];var _emscripten_bind_btDiscreteDynamicsWorld_setGravity_1=Module["_emscripten_bind_btDiscreteDynamicsWorld_setGravity_1"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_setGravity_1"];var _emscripten_bind_btVector4_z_0=Module["_emscripten_bind_btVector4_z_0"]=asm["_emscripten_bind_btVector4_z_0"];var _emscripten_bind_btCollisionObject_forceActivationState_1=Module["_emscripten_bind_btCollisionObject_forceActivationState_1"]=asm["_emscripten_bind_btCollisionObject_forceActivationState_1"];var _emscripten_bind_btRaycastVehicle_getWheelInfo_1=Module["_emscripten_bind_btRaycastVehicle_getWheelInfo_1"]=asm["_emscripten_bind_btRaycastVehicle_getWheelInfo_1"];var _emscripten_bind_btConeTwistConstraint_setLimit_2=Module["_emscripten_bind_btConeTwistConstraint_setLimit_2"]=asm["_emscripten_bind_btConeTwistConstraint_setLimit_2"];var _emscripten_bind_btRigidBody___destroy___0=Module["_emscripten_bind_btRigidBody___destroy___0"]=asm["_emscripten_bind_btRigidBody___destroy___0"];var _emscripten_bind_btStridingMeshInterface___destroy___0=Module["_emscripten_bind_btStridingMeshInterface___destroy___0"]=asm["_emscripten_bind_btStridingMeshInterface___destroy___0"];var _emscripten_bind_btRigidBody_setSleepingThresholds_2=Module["_emscripten_bind_btRigidBody_setSleepingThresholds_2"]=asm["_emscripten_bind_btRigidBody_setSleepingThresholds_2"];var _emscripten_bind_btManifoldPoint_get_m_localPointA_0=Module["_emscripten_bind_btManifoldPoint_get_m_localPointA_0"]=asm["_emscripten_bind_btManifoldPoint_get_m_localPointA_0"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_linearDamping_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_linearDamping_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_linearDamping_0"];var _emscripten_bind_btDispatcher_getNumManifolds_0=Module["_emscripten_bind_btDispatcher_getNumManifolds_0"]=asm["_emscripten_bind_btDispatcher_getNumManifolds_0"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_linearSleepingThreshold_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_linearSleepingThreshold_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_linearSleepingThreshold_0"];var _emscripten_bind_btRigidBody_activate_1=Module["_emscripten_bind_btRigidBody_activate_1"]=asm["_emscripten_bind_btRigidBody_activate_1"];var _emscripten_bind_btRigidBody_activate_0=Module["_emscripten_bind_btRigidBody_activate_0"]=asm["_emscripten_bind_btRigidBody_activate_0"];var _emscripten_bind_btRaycastVehicle___destroy___0=Module["_emscripten_bind_btRaycastVehicle___destroy___0"]=asm["_emscripten_bind_btRaycastVehicle___destroy___0"];var _emscripten_bind_btCylinderShapeX___destroy___0=Module["_emscripten_bind_btCylinderShapeX___destroy___0"]=asm["_emscripten_bind_btCylinderShapeX___destroy___0"];var _emscripten_bind_btManifoldPoint_getPositionWorldOnA_0=Module["_emscripten_bind_btManifoldPoint_getPositionWorldOnA_0"]=asm["_emscripten_bind_btManifoldPoint_getPositionWorldOnA_0"];var _emscripten_bind_ContactResultCallback___destroy___0=Module["_emscripten_bind_ContactResultCallback___destroy___0"]=asm["_emscripten_bind_ContactResultCallback___destroy___0"];var _emscripten_bind_btVector4_x_0=Module["_emscripten_bind_btVector4_x_0"]=asm["_emscripten_bind_btVector4_x_0"];var _emscripten_bind_btConstraintSetting_btConstraintSetting_0=Module["_emscripten_bind_btConstraintSetting_btConstraintSetting_0"]=asm["_emscripten_bind_btConstraintSetting_btConstraintSetting_0"];var _emscripten_bind_btTriangleMeshShape___destroy___0=Module["_emscripten_bind_btTriangleMeshShape___destroy___0"]=asm["_emscripten_bind_btTriangleMeshShape___destroy___0"];var _emscripten_bind_btRigidBodyConstructionInfo_get_m_restitution_0=Module["_emscripten_bind_btRigidBodyConstructionInfo_get_m_restitution_0"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_get_m_restitution_0"];var _emscripten_bind_btTransform_setIdentity_0=Module["_emscripten_bind_btTransform_setIdentity_0"]=asm["_emscripten_bind_btTransform_setIdentity_0"];var _emscripten_bind_btManifoldPoint_set_m_normalWorldOnB_1=Module["_emscripten_bind_btManifoldPoint_set_m_normalWorldOnB_1"]=asm["_emscripten_bind_btManifoldPoint_set_m_normalWorldOnB_1"];var _emscripten_bind_btDiscreteDynamicsWorld_addAction_1=Module["_emscripten_bind_btDiscreteDynamicsWorld_addAction_1"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_addAction_1"];var _emscripten_bind_btQuaternion_setY_1=Module["_emscripten_bind_btQuaternion_setY_1"]=asm["_emscripten_bind_btQuaternion_setY_1"];var _emscripten_bind_btConeShape_calculateLocalInertia_2=Module["_emscripten_bind_btConeShape_calculateLocalInertia_2"]=asm["_emscripten_bind_btConeShape_calculateLocalInertia_2"];var _emscripten_bind_btCylinderShapeX_calculateLocalInertia_2=Module["_emscripten_bind_btCylinderShapeX_calculateLocalInertia_2"]=asm["_emscripten_bind_btCylinderShapeX_calculateLocalInertia_2"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _emscripten_bind_btSphereShape_setLocalScaling_1=Module["_emscripten_bind_btSphereShape_setLocalScaling_1"]=asm["_emscripten_bind_btSphereShape_setLocalScaling_1"];var _emscripten_bind_btVector4_w_0=Module["_emscripten_bind_btVector4_w_0"]=asm["_emscripten_bind_btVector4_w_0"];var _emscripten_bind_btManifoldPoint_get_m_normalWorldOnB_0=Module["_emscripten_bind_btManifoldPoint_get_m_normalWorldOnB_0"]=asm["_emscripten_bind_btManifoldPoint_get_m_normalWorldOnB_0"];var _emscripten_bind_btBvhTriangleMeshShape___destroy___0=Module["_emscripten_bind_btBvhTriangleMeshShape___destroy___0"]=asm["_emscripten_bind_btBvhTriangleMeshShape___destroy___0"];var _emscripten_bind_ClosestRayResultCallback_get_m_rayToWorld_0=Module["_emscripten_bind_ClosestRayResultCallback_get_m_rayToWorld_0"]=asm["_emscripten_bind_ClosestRayResultCallback_get_m_rayToWorld_0"];var _emscripten_bind_btDiscreteDynamicsWorld_removeConstraint_1=Module["_emscripten_bind_btDiscreteDynamicsWorld_removeConstraint_1"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_removeConstraint_1"];var _emscripten_bind_ConcreteContactResultCallback_ConcreteContactResultCallback_0=Module["_emscripten_bind_ConcreteContactResultCallback_ConcreteContactResultCallback_0"]=asm["_emscripten_bind_ConcreteContactResultCallback_ConcreteContactResultCallback_0"];var _emscripten_bind_btTransform_getOrigin_0=Module["_emscripten_bind_btTransform_getOrigin_0"]=asm["_emscripten_bind_btTransform_getOrigin_0"];var _memset=Module["_memset"]=asm["_memset"];var _emscripten_bind_ClosestRayResultCallback_get_m_hitNormalWorld_0=Module["_emscripten_bind_ClosestRayResultCallback_get_m_hitNormalWorld_0"]=asm["_emscripten_bind_ClosestRayResultCallback_get_m_hitNormalWorld_0"];var _emscripten_bind_btTriangleMesh_btTriangleMesh_0=Module["_emscripten_bind_btTriangleMesh_btTriangleMesh_0"]=asm["_emscripten_bind_btTriangleMesh_btTriangleMesh_0"];var _emscripten_bind_btTriangleMesh_btTriangleMesh_1=Module["_emscripten_bind_btTriangleMesh_btTriangleMesh_1"]=asm["_emscripten_bind_btTriangleMesh_btTriangleMesh_1"];var _emscripten_bind_btTriangleMesh_btTriangleMesh_2=Module["_emscripten_bind_btTriangleMesh_btTriangleMesh_2"]=asm["_emscripten_bind_btTriangleMesh_btTriangleMesh_2"];var _emscripten_bind_btRigidBody_getCollisionShape_0=Module["_emscripten_bind_btRigidBody_getCollisionShape_0"]=asm["_emscripten_bind_btRigidBody_getCollisionShape_0"];var _emscripten_bind_btManifoldPoint_set_m_positionWorldOnA_1=Module["_emscripten_bind_btManifoldPoint_set_m_positionWorldOnA_1"]=asm["_emscripten_bind_btManifoldPoint_set_m_positionWorldOnA_1"];var _emscripten_bind_btWheelInfo_get_m_wheelsDampingRelaxation_0=Module["_emscripten_bind_btWheelInfo_get_m_wheelsDampingRelaxation_0"]=asm["_emscripten_bind_btWheelInfo_get_m_wheelsDampingRelaxation_0"];var _emscripten_bind_btManifoldPoint_get_m_localPointB_0=Module["_emscripten_bind_btManifoldPoint_get_m_localPointB_0"]=asm["_emscripten_bind_btManifoldPoint_get_m_localPointB_0"];var _emscripten_bind_btPoint2PointConstraint_set_m_setting_1=Module["_emscripten_bind_btPoint2PointConstraint_set_m_setting_1"]=asm["_emscripten_bind_btPoint2PointConstraint_set_m_setting_1"];var _emscripten_bind_btRigidBody_setLinearVelocity_1=Module["_emscripten_bind_btRigidBody_setLinearVelocity_1"]=asm["_emscripten_bind_btRigidBody_setLinearVelocity_1"];var _emscripten_bind_btVehicleTuning_btVehicleTuning_0=Module["_emscripten_bind_btVehicleTuning_btVehicleTuning_0"]=asm["_emscripten_bind_btVehicleTuning_btVehicleTuning_0"];var _emscripten_bind_ClosestRayResultCallback_set_m_rayToWorld_1=Module["_emscripten_bind_ClosestRayResultCallback_set_m_rayToWorld_1"]=asm["_emscripten_bind_ClosestRayResultCallback_set_m_rayToWorld_1"];var _emscripten_bind_btWheelInfo_set_m_wheelsDampingRelaxation_1=Module["_emscripten_bind_btWheelInfo_set_m_wheelsDampingRelaxation_1"]=asm["_emscripten_bind_btWheelInfo_set_m_wheelsDampingRelaxation_1"];var _emscripten_bind_btDynamicsWorld_addAction_1=Module["_emscripten_bind_btDynamicsWorld_addAction_1"]=asm["_emscripten_bind_btDynamicsWorld_addAction_1"];var _emscripten_bind_btDefaultVehicleRaycaster___destroy___0=Module["_emscripten_bind_btDefaultVehicleRaycaster___destroy___0"]=asm["_emscripten_bind_btDefaultVehicleRaycaster___destroy___0"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_linearDamping_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_linearDamping_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_linearDamping_1"];var _emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDamping_1=Module["_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDamping_1"]=asm["_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDamping_1"];var _emscripten_bind_btRigidBody_setActivationState_1=Module["_emscripten_bind_btRigidBody_setActivationState_1"]=asm["_emscripten_bind_btRigidBody_setActivationState_1"];var _emscripten_bind_btCapsuleShapeZ___destroy___0=Module["_emscripten_bind_btCapsuleShapeZ___destroy___0"]=asm["_emscripten_bind_btCapsuleShapeZ___destroy___0"];var _emscripten_bind_ClosestRayResultCallback_get_m_collisionObject_0=Module["_emscripten_bind_ClosestRayResultCallback_get_m_collisionObject_0"]=asm["_emscripten_bind_ClosestRayResultCallback_get_m_collisionObject_0"];var _emscripten_bind_btTriangleMesh_addTriangle_3=Module["_emscripten_bind_btTriangleMesh_addTriangle_3"]=asm["_emscripten_bind_btTriangleMesh_addTriangle_3"];var _emscripten_bind_btTriangleMesh_addTriangle_4=Module["_emscripten_bind_btTriangleMesh_addTriangle_4"]=asm["_emscripten_bind_btTriangleMesh_addTriangle_4"];var _emscripten_bind_btRigidBody_applyTorqueImpulse_1=Module["_emscripten_bind_btRigidBody_applyTorqueImpulse_1"]=asm["_emscripten_bind_btRigidBody_applyTorqueImpulse_1"];var _emscripten_bind_btRigidBody_setCollisionFlags_1=Module["_emscripten_bind_btRigidBody_setCollisionFlags_1"]=asm["_emscripten_bind_btRigidBody_setCollisionFlags_1"];var _emscripten_bind_btConeShape___destroy___0=Module["_emscripten_bind_btConeShape___destroy___0"]=asm["_emscripten_bind_btConeShape___destroy___0"];var _emscripten_bind_btCapsuleShapeZ_btCapsuleShapeZ_2=Module["_emscripten_bind_btCapsuleShapeZ_btCapsuleShapeZ_2"]=asm["_emscripten_bind_btCapsuleShapeZ_btCapsuleShapeZ_2"];var _emscripten_bind_btTransform___destroy___0=Module["_emscripten_bind_btTransform___destroy___0"]=asm["_emscripten_bind_btTransform___destroy___0"];var _emscripten_bind_btRigidBody_forceActivationState_1=Module["_emscripten_bind_btRigidBody_forceActivationState_1"]=asm["_emscripten_bind_btRigidBody_forceActivationState_1"];var _emscripten_bind_btPoint2PointConstraint_setPivotB_1=Module["_emscripten_bind_btPoint2PointConstraint_setPivotB_1"]=asm["_emscripten_bind_btPoint2PointConstraint_setPivotB_1"];var _emscripten_bind_btRaycastVehicle_addWheel_7=Module["_emscripten_bind_btRaycastVehicle_addWheel_7"]=asm["_emscripten_bind_btRaycastVehicle_addWheel_7"];var _emscripten_bind_btCylinderShapeZ_setLocalScaling_1=Module["_emscripten_bind_btCylinderShapeZ_setLocalScaling_1"]=asm["_emscripten_bind_btCylinderShapeZ_setLocalScaling_1"];var _emscripten_bind_btBoxShape_setLocalScaling_1=Module["_emscripten_bind_btBoxShape_setLocalScaling_1"]=asm["_emscripten_bind_btBoxShape_setLocalScaling_1"];var _emscripten_bind_btConeShapeZ___destroy___0=Module["_emscripten_bind_btConeShapeZ___destroy___0"]=asm["_emscripten_bind_btConeShapeZ___destroy___0"];var _emscripten_bind_btVector4_btVector4_0=Module["_emscripten_bind_btVector4_btVector4_0"]=asm["_emscripten_bind_btVector4_btVector4_0"];var _emscripten_bind_btVector4_btVector4_4=Module["_emscripten_bind_btVector4_btVector4_4"]=asm["_emscripten_bind_btVector4_btVector4_4"];var _emscripten_bind_btDiscreteDynamicsWorld_rayTest_3=Module["_emscripten_bind_btDiscreteDynamicsWorld_rayTest_3"]=asm["_emscripten_bind_btDiscreteDynamicsWorld_rayTest_3"];var _emscripten_bind_ClosestRayResultCallback_set_m_hitNormalWorld_1=Module["_emscripten_bind_ClosestRayResultCallback_set_m_hitNormalWorld_1"]=asm["_emscripten_bind_ClosestRayResultCallback_set_m_hitNormalWorld_1"];var __GLOBAL__I_a=Module["__GLOBAL__I_a"]=asm["__GLOBAL__I_a"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vid=Module["dynCall_vid"]=asm["dynCall_vid"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_viiidii=Module["dynCall_viiidii"]=asm["dynCall_viiidii"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=asm["dynCall_iiiiiiiiiii"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_viidi=Module["dynCall_viidi"]=asm["dynCall_viidi"];var dynCall_viddiii=Module["dynCall_viddiii"]=asm["dynCall_viddiii"];var dynCall_vidii=Module["dynCall_vidii"]=asm["dynCall_vidii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_vidi=Module["dynCall_vidi"]=asm["dynCall_vidi"];var dynCall_diiiiiiii=Module["dynCall_diiiiiiii"]=asm["dynCall_diiiiiiii"];var dynCall_viiiiddddiid=Module["dynCall_viiiiddddiid"]=asm["dynCall_viiiiddddiid"];var dynCall_diiiii=Module["dynCall_diiiii"]=asm["dynCall_diiiii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iiid=Module["dynCall_iiid"]=asm["dynCall_iiid"];var dynCall_di=Module["dynCall_di"]=asm["dynCall_di"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_diiidii=Module["dynCall_diiidii"]=asm["dynCall_diiidii"];var dynCall_viidii=Module["dynCall_viidii"]=asm["dynCall_viidii"];var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=asm["dynCall_viiiiiiiii"];var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=asm["dynCall_viiiiiiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_diii=Module["dynCall_diii"]=asm["dynCall_diii"];var dynCall_diiiiiiiiii=Module["dynCall_diiiiiiiiii"]=asm["dynCall_diiiiiiiiii"];var dynCall_viiiid=Module["dynCall_viiiid"]=asm["dynCall_viiiid"];var dynCall_diiiiiiiii=Module["dynCall_diiiiiiiii"]=asm["dynCall_diiiiiiiii"];var dynCall_did=Module["dynCall_did"]=asm["dynCall_did"];var dynCall_viiiidddddidi=Module["dynCall_viiiidddddidi"]=asm["dynCall_viiiidddddidi"];var dynCall_diidii=Module["dynCall_diidii"]=asm["dynCall_diidii"];var dynCall_diiii=Module["dynCall_diiii"]=asm["dynCall_diiii"];var dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=asm["dynCall_iiiiiiiiii"];var dynCall_viiid=Module["dynCall_viiid"]=asm["dynCall_viiid"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_iidid=Module["dynCall_iidid"]=asm["dynCall_iidid"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];var i64Math=(function(){var goog={math:{}};goog.math.Long=(function(low,high){this.low_=low|0;this.high_=high|0});goog.math.Long.IntCache_={};goog.math.Long.fromInt=(function(value){if(-128<=value&&value<128){var cachedObj=goog.math.Long.IntCache_[value];if(cachedObj){return cachedObj}}var obj=new goog.math.Long(value|0,value<0?-1:0);if(-128<=value&&value<128){goog.math.Long.IntCache_[value]=obj}return obj});goog.math.Long.fromNumber=(function(value){if(isNaN(value)||!isFinite(value)){return goog.math.Long.ZERO}else if(value<=-goog.math.Long.TWO_PWR_63_DBL_){return goog.math.Long.MIN_VALUE}else if(value+1>=goog.math.Long.TWO_PWR_63_DBL_){return goog.math.Long.MAX_VALUE}else if(value<0){return goog.math.Long.fromNumber(-value).negate()}else{return new goog.math.Long(value%goog.math.Long.TWO_PWR_32_DBL_|0,value/goog.math.Long.TWO_PWR_32_DBL_|0)}});goog.math.Long.fromBits=(function(lowBits,highBits){return new goog.math.Long(lowBits,highBits)});goog.math.Long.fromString=(function(str,opt_radix){if(str.length==0){throw Error("number format error: empty string")}var radix=opt_radix||10;if(radix<2||36=0){throw Error('number format error: interior "-" character: '+str)}var radixToPower=goog.math.Long.fromNumber(Math.pow(radix,8));var result=goog.math.Long.ZERO;for(var i=0;i=0?this.low_:goog.math.Long.TWO_PWR_32_DBL_+this.low_});goog.math.Long.prototype.getNumBitsAbs=(function(){if(this.isNegative()){if(this.equals(goog.math.Long.MIN_VALUE)){return 64}else{return this.negate().getNumBitsAbs()}}else{var val=this.high_!=0?this.high_:this.low_;for(var bit=31;bit>0;bit--){if((val&1<0});goog.math.Long.prototype.greaterThanOrEqual=(function(other){return this.compare(other)>=0});goog.math.Long.prototype.compare=(function(other){if(this.equals(other)){return 0}var thisNeg=this.isNegative();var otherNeg=other.isNegative();if(thisNeg&&!otherNeg){return-1}if(!thisNeg&&otherNeg){return 1}if(this.subtract(other).isNegative()){return-1}else{return 1}});goog.math.Long.prototype.negate=(function(){if(this.equals(goog.math.Long.MIN_VALUE)){return goog.math.Long.MIN_VALUE}else{return this.not().add(goog.math.Long.ONE)}});goog.math.Long.prototype.add=(function(other){var a48=this.high_>>>16;var a32=this.high_&65535;var a16=this.low_>>>16;var a00=this.low_&65535;var b48=other.high_>>>16;var b32=other.high_&65535;var b16=other.low_>>>16;var b00=other.low_&65535;var c48=0,c32=0,c16=0,c00=0;c00+=a00+b00;c16+=c00>>>16;c00&=65535;c16+=a16+b16;c32+=c16>>>16;c16&=65535;c32+=a32+b32;c48+=c32>>>16;c32&=65535;c48+=a48+b48;c48&=65535;return goog.math.Long.fromBits(c16<<16|c00,c48<<16|c32)});goog.math.Long.prototype.subtract=(function(other){return this.add(other.negate())});goog.math.Long.prototype.multiply=(function(other){if(this.isZero()){return goog.math.Long.ZERO}else if(other.isZero()){return goog.math.Long.ZERO}if(this.equals(goog.math.Long.MIN_VALUE)){return other.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO}else if(other.equals(goog.math.Long.MIN_VALUE)){return this.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO}if(this.isNegative()){if(other.isNegative()){return this.negate().multiply(other.negate())}else{return this.negate().multiply(other).negate()}}else if(other.isNegative()){return this.multiply(other.negate()).negate()}if(this.lessThan(goog.math.Long.TWO_PWR_24_)&&other.lessThan(goog.math.Long.TWO_PWR_24_)){return goog.math.Long.fromNumber(this.toNumber()*other.toNumber())}var a48=this.high_>>>16;var a32=this.high_&65535;var a16=this.low_>>>16;var a00=this.low_&65535;var b48=other.high_>>>16;var b32=other.high_&65535;var b16=other.low_>>>16;var b00=other.low_&65535;var c48=0,c32=0,c16=0,c00=0;c00+=a00*b00;c16+=c00>>>16;c00&=65535;c16+=a16*b00;c32+=c16>>>16;c16&=65535;c16+=a00*b16;c32+=c16>>>16;c16&=65535;c32+=a32*b00;c48+=c32>>>16;c32&=65535;c32+=a16*b16;c48+=c32>>>16;c32&=65535;c32+=a00*b32;c48+=c32>>>16;c32&=65535;c48+=a48*b00+a32*b16+a16*b32+a00*b48;c48&=65535;return goog.math.Long.fromBits(c16<<16|c00,c48<<16|c32)});goog.math.Long.prototype.div=(function(other){if(other.isZero()){throw Error("division by zero")}else if(this.isZero()){return goog.math.Long.ZERO}if(this.equals(goog.math.Long.MIN_VALUE)){if(other.equals(goog.math.Long.ONE)||other.equals(goog.math.Long.NEG_ONE)){return goog.math.Long.MIN_VALUE}else if(other.equals(goog.math.Long.MIN_VALUE)){return goog.math.Long.ONE}else{var halfThis=this.shiftRight(1);var approx=halfThis.div(other).shiftLeft(1);if(approx.equals(goog.math.Long.ZERO)){return other.isNegative()?goog.math.Long.ONE:goog.math.Long.NEG_ONE}else{var rem=this.subtract(other.multiply(approx));var result=approx.add(rem.div(other));return result}}}else if(other.equals(goog.math.Long.MIN_VALUE)){return goog.math.Long.ZERO}if(this.isNegative()){if(other.isNegative()){return this.negate().div(other.negate())}else{return this.negate().div(other).negate()}}else if(other.isNegative()){return this.div(other.negate()).negate()}var res=goog.math.Long.ZERO;var rem=this;while(rem.greaterThanOrEqual(other)){var approx=Math.max(1,Math.floor(rem.toNumber()/other.toNumber()));var log2=Math.ceil(Math.log(approx)/Math.LN2);var delta=log2<=48?1:Math.pow(2,log2-48);var approxRes=goog.math.Long.fromNumber(approx);var approxRem=approxRes.multiply(other);while(approxRem.isNegative()||approxRem.greaterThan(rem)){approx-=delta;approxRes=goog.math.Long.fromNumber(approx);approxRem=approxRes.multiply(other)}if(approxRes.isZero()){approxRes=goog.math.Long.ONE}res=res.add(approxRes);rem=rem.subtract(approxRem)}return res});goog.math.Long.prototype.modulo=(function(other){return this.subtract(this.div(other).multiply(other))});goog.math.Long.prototype.not=(function(){return goog.math.Long.fromBits(~this.low_,~this.high_)});goog.math.Long.prototype.and=(function(other){return goog.math.Long.fromBits(this.low_&other.low_,this.high_&other.high_)});goog.math.Long.prototype.or=(function(other){return goog.math.Long.fromBits(this.low_|other.low_,this.high_|other.high_)});goog.math.Long.prototype.xor=(function(other){return goog.math.Long.fromBits(this.low_^other.low_,this.high_^other.high_)});goog.math.Long.prototype.shiftLeft=(function(numBits){numBits&=63;if(numBits==0){return this}else{var low=this.low_;if(numBits<32){var high=this.high_;return goog.math.Long.fromBits(low<>>32-numBits)}else{return goog.math.Long.fromBits(0,low<>>numBits|high<<32-numBits,high>>numBits)}else{return goog.math.Long.fromBits(high>>numBits-32,high>=0?0:-1)}}});goog.math.Long.prototype.shiftRightUnsigned=(function(numBits){numBits&=63;if(numBits==0){return this}else{var high=this.high_;if(numBits<32){var low=this.low_;return goog.math.Long.fromBits(low>>>numBits|high<<32-numBits,high>>>numBits)}else if(numBits==32){return goog.math.Long.fromBits(high,0)}else{return goog.math.Long.fromBits(high>>>numBits-32,0)}}});var navigator={appName:"Modern Browser"};var dbits;var canary=0xdeadbeefcafe;var j_lm=(canary&16777215)==15715070;function BigInteger(a,b,c){if(a!=null)if("number"==typeof a)this.fromNumber(a,b,c);else if(b==null&&"string"!=typeof a)this.fromString(a,256);else this.fromString(a,b)}function nbi(){return new BigInteger(null)}function am1(i,x,w,j,c,n){while(--n>=0){var v=x*this[i++]+w[j]+c;c=Math.floor(v/67108864);w[j++]=v&67108863}return c}function am2(i,x,w,j,c,n){var xl=x&32767,xh=x>>15;while(--n>=0){var l=this[i]&32767;var h=this[i++]>>15;var m=xh*l+h*xl;l=xl*l+((m&32767)<<15)+w[j]+(c&1073741823);c=(l>>>30)+(m>>>15)+xh*h+(c>>>30);w[j++]=l&1073741823}return c}function am3(i,x,w,j,c,n){var xl=x&16383,xh=x>>14;while(--n>=0){var l=this[i]&16383;var h=this[i++]>>14;var m=xh*l+h*xl;l=xl*l+((m&16383)<<14)+w[j]+c;c=(l>>28)+(m>>14)+xh*h;w[j++]=l&268435455}return c}if(j_lm&&navigator.appName=="Microsoft Internet Explorer"){BigInteger.prototype.am=am2;dbits=30}else if(j_lm&&navigator.appName!="Netscape"){BigInteger.prototype.am=am1;dbits=26}else{BigInteger.prototype.am=am3;dbits=28}BigInteger.prototype.DB=dbits;BigInteger.prototype.DM=(1<=0;--i)r[i]=this[i];r.t=this.t;r.s=this.s}function bnpFromInt(x){this.t=1;this.s=x<0?-1:0;if(x>0)this[0]=x;else if(x<-1)this[0]=x+DV;else this.t=0}function nbv(i){var r=nbi();r.fromInt(i);return r}function bnpFromString(s,b){var k;if(b==16)k=4;else if(b==8)k=3;else if(b==256)k=8;else if(b==2)k=1;else if(b==32)k=5;else if(b==4)k=2;else{this.fromRadix(s,b);return}this.t=0;this.s=0;var i=s.length,mi=false,sh=0;while(--i>=0){var x=k==8?s[i]&255:intAt(s,i);if(x<0){if(s.charAt(i)=="-")mi=true;continue}mi=false;if(sh==0)this[this.t++]=x;else if(sh+k>this.DB){this[this.t-1]|=(x&(1<>this.DB-sh}else this[this.t-1]|=x<=this.DB)sh-=this.DB}if(k==8&&(s[0]&128)!=0){this.s=-1;if(sh>0)this[this.t-1]|=(1<0&&this[this.t-1]==c)--this.t}function bnToString(b){if(this.s<0)return"-"+this.negate().toString(b);var k;if(b==16)k=4;else if(b==8)k=3;else if(b==2)k=1;else if(b==32)k=5;else if(b==4)k=2;else return this.toRadix(b);var km=(1<0){if(p>p)>0){m=true;r=int2char(d)}while(i>=0){if(p>(p+=this.DB-k)}else{d=this[i]>>(p-=k)&km;if(p<=0){p+=this.DB;--i}}if(d>0)m=true;if(m)r+=int2char(d)}}return m?r:"0"}function bnNegate(){var r=nbi();BigInteger.ZERO.subTo(this,r);return r}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(a){var r=this.s-a.s;if(r!=0)return r;var i=this.t;r=i-a.t;if(r!=0)return this.s<0?-r:r;while(--i>=0)if((r=this[i]-a[i])!=0)return r;return 0}function nbits(x){var r=1,t;if((t=x>>>16)!=0){x=t;r+=16}if((t=x>>8)!=0){x=t;r+=8}if((t=x>>4)!=0){x=t;r+=4}if((t=x>>2)!=0){x=t;r+=2}if((t=x>>1)!=0){x=t;r+=1}return r}function bnBitLength(){if(this.t<=0)return 0;return this.DB*(this.t-1)+nbits(this[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(n,r){var i;for(i=this.t-1;i>=0;--i)r[i+n]=this[i];for(i=n-1;i>=0;--i)r[i]=0;r.t=this.t+n;r.s=this.s}function bnpDRShiftTo(n,r){for(var i=n;i=0;--i){r[i+ds+1]=this[i]>>cbs|c;c=(this[i]&bm)<=0;--i)r[i]=0;r[ds]=c;r.t=this.t+ds+1;r.s=this.s;r.clamp()}function bnpRShiftTo(n,r){r.s=this.s;var ds=Math.floor(n/this.DB);if(ds>=this.t){r.t=0;return}var bs=n%this.DB;var cbs=this.DB-bs;var bm=(1<>bs;for(var i=ds+1;i>bs}if(bs>0)r[this.t-ds-1]|=(this.s&bm)<>=this.DB}if(a.t>=this.DB}c+=this.s}else{c+=this.s;while(i>=this.DB}c-=a.s}r.s=c<0?-1:0;if(c<-1)r[i++]=this.DV+c;else if(c>0)r[i++]=c;r.t=i;r.clamp()}function bnpMultiplyTo(a,r){var x=this.abs(),y=a.abs();var i=x.t;r.t=i+y.t;while(--i>=0)r[i]=0;for(i=0;i=0)r[i]=0;for(i=0;i=x.DV){r[i+x.t]-=x.DV;r[i+x.t+1]=1}}if(r.t>0)r[r.t-1]+=x.am(i,x[i],r,2*i,0,1);r.s=0;r.clamp()}function bnpDivRemTo(m,q,r){var pm=m.abs();if(pm.t<=0)return;var pt=this.abs();if(pt.t0){pm.lShiftTo(nsh,y);pt.lShiftTo(nsh,r)}else{pm.copyTo(y);pt.copyTo(r)}var ys=y.t;var y0=y[ys-1];if(y0==0)return;var yt=y0*(1<1?y[ys-2]>>this.F2:0);var d1=this.FV/yt,d2=(1<=0){r[r.t++]=1;r.subTo(t,r)}BigInteger.ONE.dlShiftTo(ys,t);t.subTo(y,y);while(y.t=0){var qd=r[--i]==y0?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);if((r[i]+=y.am(0,qd,r,j,0,ys))0)r.rShiftTo(nsh,r);if(ts<0)BigInteger.ZERO.subTo(r,r)}function bnMod(a){var r=nbi();this.abs().divRemTo(a,null,r);if(this.s<0&&r.compareTo(BigInteger.ZERO)>0)a.subTo(r,r);return r}function Classic(m){this.m=m}function cConvert(x){if(x.s<0||x.compareTo(this.m)>=0)return x.mod(this.m);else return x}function cRevert(x){return x}function cReduce(x){x.divRemTo(this.m,null,x)}function cMulTo(x,y,r){x.multiplyTo(y,r);this.reduce(r)}function cSqrTo(x,r){x.squareTo(r);this.reduce(r)}Classic.prototype.convert=cConvert;Classic.prototype.revert=cRevert;Classic.prototype.reduce=cReduce;Classic.prototype.mulTo=cMulTo;Classic.prototype.sqrTo=cSqrTo;function bnpInvDigit(){if(this.t<1)return 0;var x=this[0];if((x&1)==0)return 0;var y=x&3;y=y*(2-(x&15)*y)&15;y=y*(2-(x&255)*y)&255;y=y*(2-((x&65535)*y&65535))&65535;y=y*(2-x*y%this.DV)%this.DV;return y>0?this.DV-y:-y}function Montgomery(m){this.m=m;this.mp=m.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<0)this.m.subTo(r,r);return r}function montRevert(x){var r=nbi();x.copyTo(r);this.reduce(r);return r}function montReduce(x){while(x.t<=this.mt2)x[x.t++]=0;for(var i=0;i>15)*this.mpl&this.um)<<15)&x.DM;j=i+this.m.t;x[j]+=this.m.am(0,u0,x,i,0,this.m.t);while(x[j]>=x.DV){x[j]-=x.DV;x[++j]++}}x.clamp();x.drShiftTo(this.m.t,x);if(x.compareTo(this.m)>=0)x.subTo(this.m,x)}function montSqrTo(x,r){x.squareTo(r);this.reduce(r)}function montMulTo(x,y,r){x.multiplyTo(y,r);this.reduce(r)}Montgomery.prototype.convert=montConvert;Montgomery.prototype.revert=montRevert;Montgomery.prototype.reduce=montReduce;Montgomery.prototype.mulTo=montMulTo;Montgomery.prototype.sqrTo=montSqrTo;function bnpIsEven(){return(this.t>0?this[0]&1:this.s)==0}function bnpExp(e,z){if(e>4294967295||e<1)return BigInteger.ONE;var r=nbi(),r2=nbi(),g=z.convert(this),i=nbits(e)-1;g.copyTo(r);while(--i>=0){z.sqrTo(r,r2);if((e&1<0)z.mulTo(r2,g,r);else{var t=r;r=r2;r2=t}}return z.revert(r)}function bnModPowInt(e,m){var z;if(e<256||m.isEven())z=new Classic(m);else z=new Montgomery(m);return this.exp(e,z)}BigInteger.prototype.copyTo=bnpCopyTo;BigInteger.prototype.fromInt=bnpFromInt;BigInteger.prototype.fromString=bnpFromString;BigInteger.prototype.clamp=bnpClamp;BigInteger.prototype.dlShiftTo=bnpDLShiftTo;BigInteger.prototype.drShiftTo=bnpDRShiftTo;BigInteger.prototype.lShiftTo=bnpLShiftTo;BigInteger.prototype.rShiftTo=bnpRShiftTo;BigInteger.prototype.subTo=bnpSubTo;BigInteger.prototype.multiplyTo=bnpMultiplyTo;BigInteger.prototype.squareTo=bnpSquareTo;BigInteger.prototype.divRemTo=bnpDivRemTo;BigInteger.prototype.invDigit=bnpInvDigit;BigInteger.prototype.isEven=bnpIsEven;BigInteger.prototype.exp=bnpExp;BigInteger.prototype.toString=bnToString;BigInteger.prototype.negate=bnNegate;BigInteger.prototype.abs=bnAbs;BigInteger.prototype.compareTo=bnCompareTo;BigInteger.prototype.bitLength=bnBitLength;BigInteger.prototype.mod=bnMod;BigInteger.prototype.modPowInt=bnModPowInt;BigInteger.ZERO=nbv(0);BigInteger.ONE=nbv(1);function bnpFromRadix(s,b){this.fromInt(0);if(b==null)b=10;var cs=this.chunkSize(b);var d=Math.pow(b,cs),mi=false,j=0,w=0;for(var i=0;i=cs){this.dMultiply(d);this.dAddOffset(w,0);j=0;w=0}}if(j>0){this.dMultiply(Math.pow(b,j));this.dAddOffset(w,0)}if(mi)BigInteger.ZERO.subTo(this,this)}function bnpChunkSize(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function bnSigNum(){if(this.s<0)return-1;else if(this.t<=0||this.t==1&&this[0]<=0)return 0;else return 1}function bnpDMultiply(n){this[this.t]=this.am(0,n-1,this,0,0,this.t);++this.t;this.clamp()}function bnpDAddOffset(n,w){if(n==0)return;while(this.t<=w)this[this.t++]=0;this[w]+=n;while(this[w]>=this.DV){this[w]-=this.DV;if(++w>=this.t)this[this.t++]=0;++this[w]}}function bnpToRadix(b){if(b==null)b=10;if(this.signum()==0||b<2||b>36)return"0";var cs=this.chunkSize(b);var a=Math.pow(b,cs);var d=nbv(a),y=nbi(),z=nbi(),r="";this.divRemTo(d,y,z);while(y.signum()>0){r=(a+z.intValue()).toString(b).substr(1)+r;y.divRemTo(d,y,z)}return z.intValue().toString(b)+r}function bnIntValue(){if(this.s<0){if(this.t==1)return this[0]-this.DV;else if(this.t==0)return-1}else if(this.t==1)return this[0];else if(this.t==0)return 0;return(this[1]&(1<<32-this.DB)-1)<>=this.DB}if(a.t>=this.DB}c+=this.s}else{c+=this.s;while(i>=this.DB}c+=a.s}r.s=c<0?-1:0;if(c>0)r[i++]=c;else if(c<-1)r[i++]=this.DV+c;r.t=i;r.clamp()}BigInteger.prototype.fromRadix=bnpFromRadix;BigInteger.prototype.chunkSize=bnpChunkSize;BigInteger.prototype.signum=bnSigNum;BigInteger.prototype.dMultiply=bnpDMultiply;BigInteger.prototype.dAddOffset=bnpDAddOffset;BigInteger.prototype.toRadix=bnpToRadix;BigInteger.prototype.intValue=bnIntValue;BigInteger.prototype.addTo=bnpAddTo;var Wrapper={abs:(function(l,h){var x=new goog.math.Long(l,h);var ret;if(x.isNegative()){ret=x.negate()}else{ret=x}HEAP32[tempDoublePtr>>2]=ret.low_;HEAP32[tempDoublePtr+4>>2]=ret.high_}),ensureTemps:(function(){if(Wrapper.ensuredTemps)return;Wrapper.ensuredTemps=true;Wrapper.two32=new BigInteger;Wrapper.two32.fromString("4294967296",10);Wrapper.two64=new BigInteger;Wrapper.two64.fromString("18446744073709551616",10);Wrapper.temp1=new BigInteger;Wrapper.temp2=new BigInteger}),lh2bignum:(function(l,h){var a=new BigInteger;a.fromString(h.toString(),10);var b=new BigInteger;a.multiplyTo(Wrapper.two32,b);var c=new BigInteger;c.fromString(l.toString(),10);var d=new BigInteger;c.addTo(b,d);return d}),stringify:(function(l,h,unsigned){var ret=(new goog.math.Long(l,h)).toString();if(unsigned&&ret[0]=="-"){Wrapper.ensureTemps();var bignum=new BigInteger;bignum.fromString(ret,10);ret=new BigInteger;Wrapper.two64.addTo(bignum,ret);ret=ret.toString(10)}return ret}),fromString:(function(str,base,min,max,unsigned){Wrapper.ensureTemps();var bignum=new BigInteger;bignum.fromString(str,base);var bigmin=new BigInteger;bigmin.fromString(min,10);var bigmax=new BigInteger;bigmax.fromString(max,10);if(unsigned&&bignum.compareTo(BigInteger.ZERO)<0){var temp=new BigInteger;bignum.addTo(Wrapper.two64,temp);bignum=temp}var error=false;if(bignum.compareTo(bigmin)<0){bignum=bigmin;error=true}else if(bignum.compareTo(bigmax)>0){bignum=bigmax;error=true}var ret=goog.math.Long.fromString(bignum.toString());HEAP32[tempDoublePtr>>2]=ret.low_;HEAP32[tempDoublePtr+4>>2]=ret.high_;if(error)throw"range error"})};return Wrapper})();if(memoryInitializer){if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,STATIC_BASE)}else{addRunDependency("memory initializer");Browser.asyncLoad(memoryInitializer,(function(data){HEAPU8.set(data,STATIC_BASE);removeRunDependency("memory initializer")}),(function(data){throw"could not load memory initializer "+memoryInitializer}))}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"]&&shouldRunNow)run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){Module.printErr("run() called, but dependencies remain, so not running");return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(ENVIRONMENT_IS_WEB&&preloadStartTime!==null){Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms")}if(Module["_main"]&&shouldRunNow){Module["callMain"](args)}postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status){if(Module["noExitRuntime"]){return}ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}else{throw new ExitStatus(status)}}Module["exit"]=Module.exit=exit;function abort(text){if(text){Module.print(text);Module.printErr(text)}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";throw"abort() at "+stackTrace()+extra}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;function ensureString(value){if(typeof value=="string")return allocate(intArrayFromString(value),"i8",ALLOC_STACK);return value}function btMatrix3x3(){throw"cannot construct a btMatrix3x3, no constructor in IDL"}btMatrix3x3.prototype=Object.create(WrapperObject.prototype);btMatrix3x3.prototype.constructor=btMatrix3x3;btMatrix3x3.prototype.__class__=btMatrix3x3;btMatrix3x3.__cache__={};Module["btMatrix3x3"]=btMatrix3x3;btMatrix3x3.prototype.setEulerZYX=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);_emscripten_bind_btMatrix3x3_setEulerZYX_3(self,arg0,arg1,arg2)});btMatrix3x3.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btMatrix3x3___destroy___0(self)});function ConcreteContactResultCallback(){this.ptr=_emscripten_bind_ConcreteContactResultCallback_ConcreteContactResultCallback_0();getCache(ConcreteContactResultCallback)[this.ptr]=this}ConcreteContactResultCallback.prototype=Object.create(ContactResultCallback.prototype);ConcreteContactResultCallback.prototype.constructor=ConcreteContactResultCallback;ConcreteContactResultCallback.prototype.__class__=ConcreteContactResultCallback;ConcreteContactResultCallback.__cache__={};Module["ConcreteContactResultCallback"]=ConcreteContactResultCallback;ConcreteContactResultCallback.prototype.addSingleResult=(function(arg0,arg1,arg2,arg3,arg4,arg5,arg6){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);if(arg4&&typeof arg4==="object")arg4=arg4.ptr;else arg4=ensureString(arg4);if(arg5&&typeof arg5==="object")arg5=arg5.ptr;else arg5=ensureString(arg5);if(arg6&&typeof arg6==="object")arg6=arg6.ptr;else arg6=ensureString(arg6);return _emscripten_bind_ConcreteContactResultCallback_addSingleResult_7(self,arg0,arg1,arg2,arg3,arg4,arg5,arg6)});ConcreteContactResultCallback.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_ConcreteContactResultCallback___destroy___0(self)});function btBvhTriangleMeshShape(arg0,arg1,arg2){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg2===undefined){this.ptr=_emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_2(arg0,arg1);getCache(btBvhTriangleMeshShape)[this.ptr]=this;return}this.ptr=_emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_3(arg0,arg1,arg2);getCache(btBvhTriangleMeshShape)[this.ptr]=this}btBvhTriangleMeshShape.prototype=Object.create(btTriangleMeshShape.prototype);btBvhTriangleMeshShape.prototype.constructor=btBvhTriangleMeshShape;btBvhTriangleMeshShape.prototype.__class__=btBvhTriangleMeshShape;btBvhTriangleMeshShape.__cache__={};Module["btBvhTriangleMeshShape"]=btBvhTriangleMeshShape;btBvhTriangleMeshShape.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btBvhTriangleMeshShape_setLocalScaling_1(self,arg0)});btBvhTriangleMeshShape.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btBvhTriangleMeshShape_calculateLocalInertia_2(self,arg0,arg1)});btBvhTriangleMeshShape.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btBvhTriangleMeshShape___destroy___0(self)});function btDbvtBroadphase(){this.ptr=_emscripten_bind_btDbvtBroadphase_btDbvtBroadphase_0();getCache(btDbvtBroadphase)[this.ptr]=this}btDbvtBroadphase.prototype=Object.create(WrapperObject.prototype);btDbvtBroadphase.prototype.constructor=btDbvtBroadphase;btDbvtBroadphase.prototype.__class__=btDbvtBroadphase;btDbvtBroadphase.__cache__={};Module["btDbvtBroadphase"]=btDbvtBroadphase;btDbvtBroadphase.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btDbvtBroadphase___destroy___0(self)});function btSequentialImpulseConstraintSolver(){this.ptr=_emscripten_bind_btSequentialImpulseConstraintSolver_btSequentialImpulseConstraintSolver_0();getCache(btSequentialImpulseConstraintSolver)[this.ptr]=this}btSequentialImpulseConstraintSolver.prototype=Object.create(WrapperObject.prototype);btSequentialImpulseConstraintSolver.prototype.constructor=btSequentialImpulseConstraintSolver;btSequentialImpulseConstraintSolver.prototype.__class__=btSequentialImpulseConstraintSolver;btSequentialImpulseConstraintSolver.__cache__={};Module["btSequentialImpulseConstraintSolver"]=btSequentialImpulseConstraintSolver;btSequentialImpulseConstraintSolver.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btSequentialImpulseConstraintSolver___destroy___0(self)});function btCapsuleShape(arg0,arg1){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);this.ptr=_emscripten_bind_btCapsuleShape_btCapsuleShape_2(arg0,arg1);getCache(btCapsuleShape)[this.ptr]=this}btCapsuleShape.prototype=Object.create(btCollisionShape.prototype);btCapsuleShape.prototype.constructor=btCapsuleShape;btCapsuleShape.prototype.__class__=btCapsuleShape;btCapsuleShape.__cache__={};Module["btCapsuleShape"]=btCapsuleShape;btCapsuleShape.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCapsuleShape_setLocalScaling_1(self,arg0)});btCapsuleShape.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btCapsuleShape_calculateLocalInertia_2(self,arg0,arg1)});btCapsuleShape.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCapsuleShape___destroy___0(self)});function btAxisSweep3(arg0,arg1,arg2,arg3,arg4){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);if(arg4&&typeof arg4==="object")arg4=arg4.ptr;else arg4=ensureString(arg4);if(arg2===undefined){this.ptr=_emscripten_bind_btAxisSweep3_btAxisSweep3_2(arg0,arg1);getCache(btAxisSweep3)[this.ptr]=this;return}if(arg3===undefined){this.ptr=_emscripten_bind_btAxisSweep3_btAxisSweep3_3(arg0,arg1,arg2);getCache(btAxisSweep3)[this.ptr]=this;return}if(arg4===undefined){this.ptr=_emscripten_bind_btAxisSweep3_btAxisSweep3_4(arg0,arg1,arg2,arg3);getCache(btAxisSweep3)[this.ptr]=this;return}this.ptr=_emscripten_bind_btAxisSweep3_btAxisSweep3_5(arg0,arg1,arg2,arg3,arg4);getCache(btAxisSweep3)[this.ptr]=this}btAxisSweep3.prototype=Object.create(WrapperObject.prototype);btAxisSweep3.prototype.constructor=btAxisSweep3;btAxisSweep3.prototype.__class__=btAxisSweep3;btAxisSweep3.__cache__={};Module["btAxisSweep3"]=btAxisSweep3;btAxisSweep3.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btAxisSweep3___destroy___0(self)});function btRigidBodyConstructionInfo(arg0,arg1,arg2,arg3){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);if(arg3===undefined){this.ptr=_emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_3(arg0,arg1,arg2);getCache(btRigidBodyConstructionInfo)[this.ptr]=this;return}this.ptr=_emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_4(arg0,arg1,arg2,arg3);getCache(btRigidBodyConstructionInfo)[this.ptr]=this}btRigidBodyConstructionInfo.prototype=Object.create(WrapperObject.prototype);btRigidBodyConstructionInfo.prototype.constructor=btRigidBodyConstructionInfo;btRigidBodyConstructionInfo.prototype.__class__=btRigidBodyConstructionInfo;btRigidBodyConstructionInfo.__cache__={};Module["btRigidBodyConstructionInfo"]=btRigidBodyConstructionInfo;btRigidBodyConstructionInfo.prototype.get_m_linearDamping=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_linearDamping_0(self)});btRigidBodyConstructionInfo.prototype.set_m_linearDamping=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_linearDamping_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_angularDamping=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_angularDamping_0(self)});btRigidBodyConstructionInfo.prototype.set_m_angularDamping=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_angularDamping_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_friction=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_friction_0(self)});btRigidBodyConstructionInfo.prototype.set_m_friction=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_friction_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_rollingFriction=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_rollingFriction_0(self)});btRigidBodyConstructionInfo.prototype.set_m_rollingFriction=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_rollingFriction_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_restitution=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_restitution_0(self)});btRigidBodyConstructionInfo.prototype.set_m_restitution=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_restitution_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_linearSleepingThreshold=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_linearSleepingThreshold_0(self)});btRigidBodyConstructionInfo.prototype.set_m_linearSleepingThreshold=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_linearSleepingThreshold_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_angularSleepingThreshold=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_angularSleepingThreshold_0(self)});btRigidBodyConstructionInfo.prototype.set_m_angularSleepingThreshold=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_angularSleepingThreshold_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_additionalDamping=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDamping_0(self)});btRigidBodyConstructionInfo.prototype.set_m_additionalDamping=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDamping_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_additionalDampingFactor=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDampingFactor_0(self)});btRigidBodyConstructionInfo.prototype.set_m_additionalDampingFactor=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDampingFactor_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_additionalLinearDampingThresholdSqr=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalLinearDampingThresholdSqr_0(self)});btRigidBodyConstructionInfo.prototype.set_m_additionalLinearDampingThresholdSqr=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalLinearDampingThresholdSqr_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_additionalAngularDampingThresholdSqr=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingThresholdSqr_0(self)});btRigidBodyConstructionInfo.prototype.set_m_additionalAngularDampingThresholdSqr=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingThresholdSqr_1(self,arg0)});btRigidBodyConstructionInfo.prototype.get_m_additionalAngularDampingFactor=(function(){var self=this.ptr;return _emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingFactor_0(self)});btRigidBodyConstructionInfo.prototype.set_m_additionalAngularDampingFactor=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingFactor_1(self,arg0)});btRigidBodyConstructionInfo.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btRigidBodyConstructionInfo___destroy___0(self)});function btManifoldPoint(){throw"cannot construct a btManifoldPoint, no constructor in IDL"}btManifoldPoint.prototype=Object.create(WrapperObject.prototype);btManifoldPoint.prototype.constructor=btManifoldPoint;btManifoldPoint.prototype.__class__=btManifoldPoint;btManifoldPoint.__cache__={};Module["btManifoldPoint"]=btManifoldPoint;btManifoldPoint.prototype.getPositionWorldOnA=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btManifoldPoint_getPositionWorldOnA_0(self),btVector3)});btManifoldPoint.prototype.getPositionWorldOnB=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btManifoldPoint_getPositionWorldOnB_0(self),btVector3)});btManifoldPoint.prototype.get_m_localPointA=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btManifoldPoint_get_m_localPointA_0(self),btVector3)});btManifoldPoint.prototype.set_m_localPointA=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btManifoldPoint_set_m_localPointA_1(self,arg0)});btManifoldPoint.prototype.get_m_localPointB=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btManifoldPoint_get_m_localPointB_0(self),btVector3)});btManifoldPoint.prototype.set_m_localPointB=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btManifoldPoint_set_m_localPointB_1(self,arg0)});btManifoldPoint.prototype.get_m_positionWorldOnB=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btManifoldPoint_get_m_positionWorldOnB_0(self),btVector3)});btManifoldPoint.prototype.set_m_positionWorldOnB=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btManifoldPoint_set_m_positionWorldOnB_1(self,arg0)});btManifoldPoint.prototype.get_m_positionWorldOnA=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btManifoldPoint_get_m_positionWorldOnA_0(self),btVector3)});btManifoldPoint.prototype.set_m_positionWorldOnA=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btManifoldPoint_set_m_positionWorldOnA_1(self,arg0)});btManifoldPoint.prototype.get_m_normalWorldOnB=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btManifoldPoint_get_m_normalWorldOnB_0(self),btVector3)});btManifoldPoint.prototype.set_m_normalWorldOnB=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btManifoldPoint_set_m_normalWorldOnB_1(self,arg0)});btManifoldPoint.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btManifoldPoint___destroy___0(self)});function btStridingMeshInterface(){throw"cannot construct a btStridingMeshInterface, no constructor in IDL"}btStridingMeshInterface.prototype=Object.create(WrapperObject.prototype);btStridingMeshInterface.prototype.constructor=btStridingMeshInterface;btStridingMeshInterface.prototype.__class__=btStridingMeshInterface;btStridingMeshInterface.__cache__={};Module["btStridingMeshInterface"]=btStridingMeshInterface;btStridingMeshInterface.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btStridingMeshInterface___destroy___0(self)});function btBroadphaseInterface(){throw"cannot construct a btBroadphaseInterface, no constructor in IDL"}btBroadphaseInterface.prototype=Object.create(WrapperObject.prototype);btBroadphaseInterface.prototype.constructor=btBroadphaseInterface;btBroadphaseInterface.prototype.__class__=btBroadphaseInterface;btBroadphaseInterface.__cache__={};Module["btBroadphaseInterface"]=btBroadphaseInterface;btBroadphaseInterface.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btBroadphaseInterface___destroy___0(self)});function btCollisionObject(){throw"cannot construct a btCollisionObject, no constructor in IDL"}btCollisionObject.prototype=Object.create(WrapperObject.prototype);btCollisionObject.prototype.constructor=btCollisionObject;btCollisionObject.prototype.__class__=btCollisionObject;btCollisionObject.__cache__={};Module["btCollisionObject"]=btCollisionObject;btCollisionObject.prototype.getCollisionShape=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btCollisionObject_getCollisionShape_0(self),btCollisionShape)});btCollisionObject.prototype.setContactProcessingThreshold=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCollisionObject_setContactProcessingThreshold_1(self,arg0)});btCollisionObject.prototype.setActivationState=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCollisionObject_setActivationState_1(self,arg0)});btCollisionObject.prototype.forceActivationState=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCollisionObject_forceActivationState_1(self,arg0)});btCollisionObject.prototype.activate=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg0===undefined){_emscripten_bind_btCollisionObject_activate_0(self);return}_emscripten_bind_btCollisionObject_activate_1(self,arg0)});btCollisionObject.prototype.isActive=(function(){var self=this.ptr;return _emscripten_bind_btCollisionObject_isActive_0(self)});btCollisionObject.prototype.setRestitution=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCollisionObject_setRestitution_1(self,arg0)});btCollisionObject.prototype.setFriction=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCollisionObject_setFriction_1(self,arg0)});btCollisionObject.prototype.getWorldTransform=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btCollisionObject_getWorldTransform_0(self),btTransform)});btCollisionObject.prototype.getCollisionFlags=(function(){var self=this.ptr;return _emscripten_bind_btCollisionObject_getCollisionFlags_0(self)});btCollisionObject.prototype.setCollisionFlags=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCollisionObject_setCollisionFlags_1(self,arg0)});btCollisionObject.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCollisionObject___destroy___0(self)});function btDiscreteDynamicsWorld(arg0,arg1,arg2,arg3){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);this.ptr=_emscripten_bind_btDiscreteDynamicsWorld_btDiscreteDynamicsWorld_4(arg0,arg1,arg2,arg3);getCache(btDiscreteDynamicsWorld)[this.ptr]=this}btDiscreteDynamicsWorld.prototype=Object.create(btDynamicsWorld.prototype);btDiscreteDynamicsWorld.prototype.constructor=btDiscreteDynamicsWorld;btDiscreteDynamicsWorld.prototype.__class__=btDiscreteDynamicsWorld;btDiscreteDynamicsWorld.__cache__={};Module["btDiscreteDynamicsWorld"]=btDiscreteDynamicsWorld;btDiscreteDynamicsWorld.prototype.setGravity=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btDiscreteDynamicsWorld_setGravity_1(self,arg0)});btDiscreteDynamicsWorld.prototype.getGravity=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btDiscreteDynamicsWorld_getGravity_0(self),btVector3)});btDiscreteDynamicsWorld.prototype.addRigidBody=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg1===undefined){_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_1(self,arg0);return}if(arg2===undefined){_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_2(self,arg0,arg1);return}_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_3(self,arg0,arg1,arg2)});btDiscreteDynamicsWorld.prototype.removeRigidBody=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btDiscreteDynamicsWorld_removeRigidBody_1(self,arg0)});btDiscreteDynamicsWorld.prototype.addConstraint=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg1===undefined){_emscripten_bind_btDiscreteDynamicsWorld_addConstraint_1(self,arg0);return}_emscripten_bind_btDiscreteDynamicsWorld_addConstraint_2(self,arg0,arg1)});btDiscreteDynamicsWorld.prototype.removeConstraint=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btDiscreteDynamicsWorld_removeConstraint_1(self,arg0)});btDiscreteDynamicsWorld.prototype.stepSimulation=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg1===undefined){return _emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_1(self,arg0)}if(arg2===undefined){return _emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_2(self,arg0,arg1)}return _emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_3(self,arg0,arg1,arg2)});btDiscreteDynamicsWorld.prototype.getDispatcher=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btDiscreteDynamicsWorld_getDispatcher_0(self),btDispatcher)});btDiscreteDynamicsWorld.prototype.rayTest=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);_emscripten_bind_btDiscreteDynamicsWorld_rayTest_3(self,arg0,arg1,arg2)});btDiscreteDynamicsWorld.prototype.addAction=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btDiscreteDynamicsWorld_addAction_1(self,arg0)});btDiscreteDynamicsWorld.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btDiscreteDynamicsWorld___destroy___0(self)});function btPoint2PointConstraint(arg0,arg1,arg2,arg3){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);if(arg2===undefined){this.ptr=_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_2(arg0,arg1);getCache(btPoint2PointConstraint)[this.ptr]=this;return}if(arg3===undefined){this.ptr=_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_3(arg0,arg1,arg2);getCache(btPoint2PointConstraint)[this.ptr]=this;return}this.ptr=_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_4(arg0,arg1,arg2,arg3);getCache(btPoint2PointConstraint)[this.ptr]=this}btPoint2PointConstraint.prototype=Object.create(WrapperObject.prototype);btPoint2PointConstraint.prototype.constructor=btPoint2PointConstraint;btPoint2PointConstraint.prototype.__class__=btPoint2PointConstraint;btPoint2PointConstraint.__cache__={};Module["btPoint2PointConstraint"]=btPoint2PointConstraint;btPoint2PointConstraint.prototype.setPivotA=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btPoint2PointConstraint_setPivotA_1(self,arg0)});btPoint2PointConstraint.prototype.setPivotB=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btPoint2PointConstraint_setPivotB_1(self,arg0)});btPoint2PointConstraint.prototype.getPivotInA=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btPoint2PointConstraint_getPivotInA_0(self),btVector3)});btPoint2PointConstraint.prototype.getPivotInB=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btPoint2PointConstraint_getPivotInB_0(self),btVector3)});btPoint2PointConstraint.prototype.get_m_setting=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btPoint2PointConstraint_get_m_setting_0(self),btConstraintSetting)});btPoint2PointConstraint.prototype.set_m_setting=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btPoint2PointConstraint_set_m_setting_1(self,arg0)});btPoint2PointConstraint.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btPoint2PointConstraint___destroy___0(self)});function btMotionState(){throw"cannot construct a btMotionState, no constructor in IDL"}btMotionState.prototype=Object.create(WrapperObject.prototype);btMotionState.prototype.constructor=btMotionState;btMotionState.prototype.__class__=btMotionState;btMotionState.__cache__={};Module["btMotionState"]=btMotionState;btMotionState.prototype.getWorldTransform=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btMotionState_getWorldTransform_1(self,arg0)});btMotionState.prototype.setWorldTransform=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btMotionState_setWorldTransform_1(self,arg0)});btMotionState.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btMotionState___destroy___0(self)});function btConeTwistConstraint(arg0,arg1,arg2,arg3){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);if(arg2===undefined){this.ptr=_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_2(arg0,arg1);getCache(btConeTwistConstraint)[this.ptr]=this;return}if(arg3===undefined){this.ptr=_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_3(arg0,arg1,arg2);getCache(btConeTwistConstraint)[this.ptr]=this;return}this.ptr=_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_4(arg0,arg1,arg2,arg3);getCache(btConeTwistConstraint)[this.ptr]=this}btConeTwistConstraint.prototype=Object.create(btTypedConstraint.prototype);btConeTwistConstraint.prototype.constructor=btConeTwistConstraint;btConeTwistConstraint.prototype.__class__=btConeTwistConstraint;btConeTwistConstraint.__cache__={};Module["btConeTwistConstraint"]=btConeTwistConstraint;btConeTwistConstraint.prototype.setLimit=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btConeTwistConstraint_setLimit_2(self,arg0,arg1)});btConeTwistConstraint.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btConeTwistConstraint___destroy___0(self)});function btConeShape(arg0,arg1){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);this.ptr=_emscripten_bind_btConeShape_btConeShape_2(arg0,arg1);getCache(btConeShape)[this.ptr]=this}btConeShape.prototype=Object.create(btCollisionShape.prototype);btConeShape.prototype.constructor=btConeShape;btConeShape.prototype.__class__=btConeShape;btConeShape.__cache__={};Module["btConeShape"]=btConeShape;btConeShape.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btConeShape_setLocalScaling_1(self,arg0)});btConeShape.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btConeShape_calculateLocalInertia_2(self,arg0,arg1)});btConeShape.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btConeShape___destroy___0(self)});function btDefaultCollisionConfiguration(arg0){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg0===undefined){this.ptr=_emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_0();getCache(btDefaultCollisionConfiguration)[this.ptr]=this;return}this.ptr=_emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_1(arg0);getCache(btDefaultCollisionConfiguration)[this.ptr]=this}btDefaultCollisionConfiguration.prototype=Object.create(WrapperObject.prototype);btDefaultCollisionConfiguration.prototype.constructor=btDefaultCollisionConfiguration;btDefaultCollisionConfiguration.prototype.__class__=btDefaultCollisionConfiguration;btDefaultCollisionConfiguration.__cache__={};Module["btDefaultCollisionConfiguration"]=btDefaultCollisionConfiguration;btDefaultCollisionConfiguration.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btDefaultCollisionConfiguration___destroy___0(self)});function ContactResultCallback(){throw"cannot construct a ContactResultCallback, no constructor in IDL"}ContactResultCallback.prototype=Object.create(WrapperObject.prototype);ContactResultCallback.prototype.constructor=ContactResultCallback;ContactResultCallback.prototype.__class__=ContactResultCallback;ContactResultCallback.__cache__={};Module["ContactResultCallback"]=ContactResultCallback;ContactResultCallback.prototype.addSingleResult=(function(arg0,arg1,arg2,arg3,arg4,arg5,arg6){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);if(arg4&&typeof arg4==="object")arg4=arg4.ptr;else arg4=ensureString(arg4);if(arg5&&typeof arg5==="object")arg5=arg5.ptr;else arg5=ensureString(arg5);if(arg6&&typeof arg6==="object")arg6=arg6.ptr;else arg6=ensureString(arg6);return _emscripten_bind_ContactResultCallback_addSingleResult_7(self,arg0,arg1,arg2,arg3,arg4,arg5,arg6)});ContactResultCallback.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_ContactResultCallback___destroy___0(self)});function btConeShapeZ(arg0,arg1){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);this.ptr=_emscripten_bind_btConeShapeZ_btConeShapeZ_2(arg0,arg1);getCache(btConeShapeZ)[this.ptr]=this}btConeShapeZ.prototype=Object.create(btConeShape.prototype);btConeShapeZ.prototype.constructor=btConeShapeZ;btConeShapeZ.prototype.__class__=btConeShapeZ;btConeShapeZ.__cache__={};Module["btConeShapeZ"]=btConeShapeZ;btConeShapeZ.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btConeShapeZ_setLocalScaling_1(self,arg0)});btConeShapeZ.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btConeShapeZ_calculateLocalInertia_2(self,arg0,arg1)});btConeShapeZ.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btConeShapeZ___destroy___0(self)});function btConeShapeX(arg0,arg1){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);this.ptr=_emscripten_bind_btConeShapeX_btConeShapeX_2(arg0,arg1);getCache(btConeShapeX)[this.ptr]=this}btConeShapeX.prototype=Object.create(btConeShape.prototype);btConeShapeX.prototype.constructor=btConeShapeX;btConeShapeX.prototype.__class__=btConeShapeX;btConeShapeX.__cache__={};Module["btConeShapeX"]=btConeShapeX;btConeShapeX.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btConeShapeX_setLocalScaling_1(self,arg0)});btConeShapeX.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btConeShapeX_calculateLocalInertia_2(self,arg0,arg1)});btConeShapeX.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btConeShapeX___destroy___0(self)});function btTriangleMesh(arg0,arg1){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg0===undefined){this.ptr=_emscripten_bind_btTriangleMesh_btTriangleMesh_0();getCache(btTriangleMesh)[this.ptr]=this;return}if(arg1===undefined){this.ptr=_emscripten_bind_btTriangleMesh_btTriangleMesh_1(arg0);getCache(btTriangleMesh)[this.ptr]=this;return}this.ptr=_emscripten_bind_btTriangleMesh_btTriangleMesh_2(arg0,arg1);getCache(btTriangleMesh)[this.ptr]=this}btTriangleMesh.prototype=Object.create(btStridingMeshInterface.prototype);btTriangleMesh.prototype.constructor=btTriangleMesh;btTriangleMesh.prototype.__class__=btTriangleMesh;btTriangleMesh.__cache__={};Module["btTriangleMesh"]=btTriangleMesh;btTriangleMesh.prototype.addTriangle=(function(arg0,arg1,arg2,arg3){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);if(arg3===undefined){_emscripten_bind_btTriangleMesh_addTriangle_3(self,arg0,arg1,arg2);return}_emscripten_bind_btTriangleMesh_addTriangle_4(self,arg0,arg1,arg2,arg3)});btTriangleMesh.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btTriangleMesh___destroy___0(self)});function btCollisionConfiguration(){throw"cannot construct a btCollisionConfiguration, no constructor in IDL"}btCollisionConfiguration.prototype=Object.create(WrapperObject.prototype);btCollisionConfiguration.prototype.constructor=btCollisionConfiguration;btCollisionConfiguration.prototype.__class__=btCollisionConfiguration;btCollisionConfiguration.__cache__={};Module["btCollisionConfiguration"]=btCollisionConfiguration;btCollisionConfiguration.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCollisionConfiguration___destroy___0(self)});function btPersistentManifold(){this.ptr=_emscripten_bind_btPersistentManifold_btPersistentManifold_0();getCache(btPersistentManifold)[this.ptr]=this}btPersistentManifold.prototype=Object.create(WrapperObject.prototype);btPersistentManifold.prototype.constructor=btPersistentManifold;btPersistentManifold.prototype.__class__=btPersistentManifold;btPersistentManifold.__cache__={};Module["btPersistentManifold"]=btPersistentManifold;btPersistentManifold.prototype.getBody0=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btPersistentManifold_getBody0_0(self),btCollisionObject)});btPersistentManifold.prototype.getBody1=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btPersistentManifold_getBody1_0(self),btCollisionObject)});btPersistentManifold.prototype.getNumContacts=(function(){var self=this.ptr;return _emscripten_bind_btPersistentManifold_getNumContacts_0(self)});btPersistentManifold.prototype.getContactPoint=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);return wrapPointer(_emscripten_bind_btPersistentManifold_getContactPoint_1(self,arg0),btManifoldPoint)});btPersistentManifold.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btPersistentManifold___destroy___0(self)});function btBoxShape(arg0){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);this.ptr=_emscripten_bind_btBoxShape_btBoxShape_1(arg0);getCache(btBoxShape)[this.ptr]=this}btBoxShape.prototype=Object.create(btCollisionShape.prototype);btBoxShape.prototype.constructor=btBoxShape;btBoxShape.prototype.__class__=btBoxShape;btBoxShape.__cache__={};Module["btBoxShape"]=btBoxShape;btBoxShape.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btBoxShape_setLocalScaling_1(self,arg0)});btBoxShape.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btBoxShape_calculateLocalInertia_2(self,arg0,arg1)});btBoxShape.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btBoxShape___destroy___0(self)});function btCollisionDispatcher(arg0){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);this.ptr=_emscripten_bind_btCollisionDispatcher_btCollisionDispatcher_1(arg0);getCache(btCollisionDispatcher)[this.ptr]=this}btCollisionDispatcher.prototype=Object.create(btDispatcher.prototype);btCollisionDispatcher.prototype.constructor=btCollisionDispatcher;btCollisionDispatcher.prototype.__class__=btCollisionDispatcher;btCollisionDispatcher.__cache__={};Module["btCollisionDispatcher"]=btCollisionDispatcher;btCollisionDispatcher.prototype.getNumManifolds=(function(){var self=this.ptr;return _emscripten_bind_btCollisionDispatcher_getNumManifolds_0(self)});btCollisionDispatcher.prototype.getManifoldByIndexInternal=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);return wrapPointer(_emscripten_bind_btCollisionDispatcher_getManifoldByIndexInternal_1(self,arg0),btPersistentManifold)});btCollisionDispatcher.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCollisionDispatcher___destroy___0(self)});function btVehicleTuning(){this.ptr=_emscripten_bind_btVehicleTuning_btVehicleTuning_0();getCache(btVehicleTuning)[this.ptr]=this}btVehicleTuning.prototype=Object.create(WrapperObject.prototype);btVehicleTuning.prototype.constructor=btVehicleTuning;btVehicleTuning.prototype.__class__=btVehicleTuning;btVehicleTuning.__cache__={};Module["btVehicleTuning"]=btVehicleTuning;function btCompoundShape(arg0){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg0===undefined){this.ptr=_emscripten_bind_btCompoundShape_btCompoundShape_0();getCache(btCompoundShape)[this.ptr]=this;return}this.ptr=_emscripten_bind_btCompoundShape_btCompoundShape_1(arg0);getCache(btCompoundShape)[this.ptr]=this}btCompoundShape.prototype=Object.create(btCollisionShape.prototype);btCompoundShape.prototype.constructor=btCompoundShape;btCompoundShape.prototype.__class__=btCompoundShape;btCompoundShape.__cache__={};Module["btCompoundShape"]=btCompoundShape;btCompoundShape.prototype.addChildShape=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btCompoundShape_addChildShape_2(self,arg0,arg1)});btCompoundShape.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCompoundShape_setLocalScaling_1(self,arg0)});btCompoundShape.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btCompoundShape_calculateLocalInertia_2(self,arg0,arg1)});btCompoundShape.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCompoundShape___destroy___0(self)});function btCollisionObjectWrapper(){throw"cannot construct a btCollisionObjectWrapper, no constructor in IDL"}btCollisionObjectWrapper.prototype=Object.create(WrapperObject.prototype);btCollisionObjectWrapper.prototype.constructor=btCollisionObjectWrapper;btCollisionObjectWrapper.prototype.__class__=btCollisionObjectWrapper;btCollisionObjectWrapper.__cache__={};Module["btCollisionObjectWrapper"]=btCollisionObjectWrapper;function btDefaultMotionState(arg0,arg1){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg0===undefined){this.ptr=_emscripten_bind_btDefaultMotionState_btDefaultMotionState_0();getCache(btDefaultMotionState)[this.ptr]=this;return}if(arg1===undefined){this.ptr=_emscripten_bind_btDefaultMotionState_btDefaultMotionState_1(arg0);getCache(btDefaultMotionState)[this.ptr]=this;return}this.ptr=_emscripten_bind_btDefaultMotionState_btDefaultMotionState_2(arg0,arg1);getCache(btDefaultMotionState)[this.ptr]=this}btDefaultMotionState.prototype=Object.create(btMotionState.prototype);btDefaultMotionState.prototype.constructor=btDefaultMotionState;btDefaultMotionState.prototype.__class__=btDefaultMotionState;btDefaultMotionState.__cache__={};Module["btDefaultMotionState"]=btDefaultMotionState;btDefaultMotionState.prototype.getWorldTransform=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btDefaultMotionState_getWorldTransform_1(self,arg0)});btDefaultMotionState.prototype.setWorldTransform=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btDefaultMotionState_setWorldTransform_1(self,arg0)});btDefaultMotionState.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btDefaultMotionState___destroy___0(self)});function btTriangleMeshShape(){throw"cannot construct a btTriangleMeshShape, no constructor in IDL"}btTriangleMeshShape.prototype=Object.create(btConcaveShape.prototype);btTriangleMeshShape.prototype.constructor=btTriangleMeshShape;btTriangleMeshShape.prototype.__class__=btTriangleMeshShape;btTriangleMeshShape.__cache__={};Module["btTriangleMeshShape"]=btTriangleMeshShape;btTriangleMeshShape.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btTriangleMeshShape_setLocalScaling_1(self,arg0)});btTriangleMeshShape.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btTriangleMeshShape_calculateLocalInertia_2(self,arg0,arg1)});btTriangleMeshShape.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btTriangleMeshShape___destroy___0(self)});function btDispatcher(){throw"cannot construct a btDispatcher, no constructor in IDL"}btDispatcher.prototype=Object.create(WrapperObject.prototype);btDispatcher.prototype.constructor=btDispatcher;btDispatcher.prototype.__class__=btDispatcher;btDispatcher.__cache__={};Module["btDispatcher"]=btDispatcher;btDispatcher.prototype.getNumManifolds=(function(){var self=this.ptr;return _emscripten_bind_btDispatcher_getNumManifolds_0(self)});btDispatcher.prototype.getManifoldByIndexInternal=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);return wrapPointer(_emscripten_bind_btDispatcher_getManifoldByIndexInternal_1(self,arg0),btPersistentManifold)});btDispatcher.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btDispatcher___destroy___0(self)});function ClosestRayResultCallback(arg0,arg1){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);this.ptr=_emscripten_bind_ClosestRayResultCallback_ClosestRayResultCallback_2(arg0,arg1);getCache(ClosestRayResultCallback)[this.ptr]=this}ClosestRayResultCallback.prototype=Object.create(RayResultCallback.prototype);ClosestRayResultCallback.prototype.constructor=ClosestRayResultCallback;ClosestRayResultCallback.prototype.__class__=ClosestRayResultCallback;ClosestRayResultCallback.__cache__={};Module["ClosestRayResultCallback"]=ClosestRayResultCallback;ClosestRayResultCallback.prototype.hasHit=(function(){var self=this.ptr;return _emscripten_bind_ClosestRayResultCallback_hasHit_0(self)});ClosestRayResultCallback.prototype.get_m_rayFromWorld=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_ClosestRayResultCallback_get_m_rayFromWorld_0(self),btVector3)});ClosestRayResultCallback.prototype.set_m_rayFromWorld=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_ClosestRayResultCallback_set_m_rayFromWorld_1(self,arg0)});ClosestRayResultCallback.prototype.get_m_rayToWorld=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_ClosestRayResultCallback_get_m_rayToWorld_0(self),btVector3)});ClosestRayResultCallback.prototype.set_m_rayToWorld=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_ClosestRayResultCallback_set_m_rayToWorld_1(self,arg0)});ClosestRayResultCallback.prototype.get_m_hitNormalWorld=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_ClosestRayResultCallback_get_m_hitNormalWorld_0(self),btVector3)});ClosestRayResultCallback.prototype.set_m_hitNormalWorld=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_ClosestRayResultCallback_set_m_hitNormalWorld_1(self,arg0)});ClosestRayResultCallback.prototype.get_m_hitPointWorld=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_ClosestRayResultCallback_get_m_hitPointWorld_0(self),btVector3)});ClosestRayResultCallback.prototype.set_m_hitPointWorld=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_ClosestRayResultCallback_set_m_hitPointWorld_1(self,arg0)});ClosestRayResultCallback.prototype.get_m_collisionObject=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_ClosestRayResultCallback_get_m_collisionObject_0(self),btCollisionObject)});ClosestRayResultCallback.prototype.set_m_collisionObject=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_ClosestRayResultCallback_set_m_collisionObject_1(self,arg0)});ClosestRayResultCallback.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_ClosestRayResultCallback___destroy___0(self)});function btDynamicsWorld(){throw"cannot construct a btDynamicsWorld, no constructor in IDL"}btDynamicsWorld.prototype=Object.create(btCollisionWorld.prototype);btDynamicsWorld.prototype.constructor=btDynamicsWorld;btDynamicsWorld.prototype.__class__=btDynamicsWorld;btDynamicsWorld.__cache__={};Module["btDynamicsWorld"]=btDynamicsWorld;btDynamicsWorld.prototype.addAction=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btDynamicsWorld_addAction_1(self,arg0)});btDynamicsWorld.prototype.getDispatcher=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btDynamicsWorld_getDispatcher_0(self),btDispatcher)});btDynamicsWorld.prototype.rayTest=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);_emscripten_bind_btDynamicsWorld_rayTest_3(self,arg0,arg1,arg2)});btDynamicsWorld.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btDynamicsWorld___destroy___0(self)});function btCapsuleShapeX(arg0,arg1){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);this.ptr=_emscripten_bind_btCapsuleShapeX_btCapsuleShapeX_2(arg0,arg1);getCache(btCapsuleShapeX)[this.ptr]=this}btCapsuleShapeX.prototype=Object.create(btCapsuleShape.prototype);btCapsuleShapeX.prototype.constructor=btCapsuleShapeX;btCapsuleShapeX.prototype.__class__=btCapsuleShapeX;btCapsuleShapeX.__cache__={};Module["btCapsuleShapeX"]=btCapsuleShapeX;btCapsuleShapeX.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCapsuleShapeX_setLocalScaling_1(self,arg0)});btCapsuleShapeX.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btCapsuleShapeX_calculateLocalInertia_2(self,arg0,arg1)});btCapsuleShapeX.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCapsuleShapeX___destroy___0(self)});function btQuaternion(arg0,arg1,arg2,arg3){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);this.ptr=_emscripten_bind_btQuaternion_btQuaternion_4(arg0,arg1,arg2,arg3);getCache(btQuaternion)[this.ptr]=this}btQuaternion.prototype=Object.create(btQuadWord.prototype);btQuaternion.prototype.constructor=btQuaternion;btQuaternion.prototype.__class__=btQuaternion;btQuaternion.__cache__={};Module["btQuaternion"]=btQuaternion;btQuaternion.prototype.setValue=(function(arg0,arg1,arg2,arg3){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);_emscripten_bind_btQuaternion_setValue_4(self,arg0,arg1,arg2,arg3)});btQuaternion.prototype.x=(function(){var self=this.ptr;return _emscripten_bind_btQuaternion_x_0(self)});btQuaternion.prototype.y=(function(){var self=this.ptr;return _emscripten_bind_btQuaternion_y_0(self)});btQuaternion.prototype.z=(function(){var self=this.ptr;return _emscripten_bind_btQuaternion_z_0(self)});btQuaternion.prototype.w=(function(){var self=this.ptr;return _emscripten_bind_btQuaternion_w_0(self)});btQuaternion.prototype.setX=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btQuaternion_setX_1(self,arg0)});btQuaternion.prototype.setY=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btQuaternion_setY_1(self,arg0)});btQuaternion.prototype.setZ=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btQuaternion_setZ_1(self,arg0)});btQuaternion.prototype.setW=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btQuaternion_setW_1(self,arg0)});btQuaternion.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btQuaternion___destroy___0(self)});function btCapsuleShapeZ(arg0,arg1){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);this.ptr=_emscripten_bind_btCapsuleShapeZ_btCapsuleShapeZ_2(arg0,arg1);getCache(btCapsuleShapeZ)[this.ptr]=this}btCapsuleShapeZ.prototype=Object.create(btCapsuleShape.prototype);btCapsuleShapeZ.prototype.constructor=btCapsuleShapeZ;btCapsuleShapeZ.prototype.__class__=btCapsuleShapeZ;btCapsuleShapeZ.__cache__={};Module["btCapsuleShapeZ"]=btCapsuleShapeZ;btCapsuleShapeZ.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCapsuleShapeZ_setLocalScaling_1(self,arg0)});btCapsuleShapeZ.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btCapsuleShapeZ_calculateLocalInertia_2(self,arg0,arg1)});btCapsuleShapeZ.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCapsuleShapeZ___destroy___0(self)});function btDefaultVehicleRaycaster(arg0){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);this.ptr=_emscripten_bind_btDefaultVehicleRaycaster_btDefaultVehicleRaycaster_1(arg0);getCache(btDefaultVehicleRaycaster)[this.ptr]=this}btDefaultVehicleRaycaster.prototype=Object.create(btVehicleRaycaster.prototype);btDefaultVehicleRaycaster.prototype.constructor=btDefaultVehicleRaycaster;btDefaultVehicleRaycaster.prototype.__class__=btDefaultVehicleRaycaster;btDefaultVehicleRaycaster.__cache__={};Module["btDefaultVehicleRaycaster"]=btDefaultVehicleRaycaster;btDefaultVehicleRaycaster.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btDefaultVehicleRaycaster___destroy___0(self)});function RayResultCallback(){throw"cannot construct a RayResultCallback, no constructor in IDL"}RayResultCallback.prototype=Object.create(WrapperObject.prototype);RayResultCallback.prototype.constructor=RayResultCallback;RayResultCallback.prototype.__class__=RayResultCallback;RayResultCallback.__cache__={};Module["RayResultCallback"]=RayResultCallback;RayResultCallback.prototype.hasHit=(function(){var self=this.ptr;return _emscripten_bind_RayResultCallback_hasHit_0(self)});RayResultCallback.prototype.get_m_collisionObject=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_RayResultCallback_get_m_collisionObject_0(self),btCollisionObject)});RayResultCallback.prototype.set_m_collisionObject=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_RayResultCallback_set_m_collisionObject_1(self,arg0)});RayResultCallback.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_RayResultCallback___destroy___0(self)});function btWheelInfo(){throw"cannot construct a btWheelInfo, no constructor in IDL"}btWheelInfo.prototype=Object.create(WrapperObject.prototype);btWheelInfo.prototype.constructor=btWheelInfo;btWheelInfo.prototype.__class__=btWheelInfo;btWheelInfo.__cache__={};Module["btWheelInfo"]=btWheelInfo;btWheelInfo.prototype.get_m_suspensionStiffness=(function(){var self=this.ptr;return _emscripten_bind_btWheelInfo_get_m_suspensionStiffness_0(self)});btWheelInfo.prototype.set_m_suspensionStiffness=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btWheelInfo_set_m_suspensionStiffness_1(self,arg0)});btWheelInfo.prototype.get_m_wheelsDampingRelaxation=(function(){var self=this.ptr;return _emscripten_bind_btWheelInfo_get_m_wheelsDampingRelaxation_0(self)});btWheelInfo.prototype.set_m_wheelsDampingRelaxation=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btWheelInfo_set_m_wheelsDampingRelaxation_1(self,arg0)});btWheelInfo.prototype.get_m_wheelsDampingCompression=(function(){var self=this.ptr;return _emscripten_bind_btWheelInfo_get_m_wheelsDampingCompression_0(self)});btWheelInfo.prototype.set_m_wheelsDampingCompression=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btWheelInfo_set_m_wheelsDampingCompression_1(self,arg0)});btWheelInfo.prototype.get_m_frictionSlip=(function(){var self=this.ptr;return _emscripten_bind_btWheelInfo_get_m_frictionSlip_0(self)});btWheelInfo.prototype.set_m_frictionSlip=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btWheelInfo_set_m_frictionSlip_1(self,arg0)});btWheelInfo.prototype.get_m_rollInfluence=(function(){var self=this.ptr;return _emscripten_bind_btWheelInfo_get_m_rollInfluence_0(self)});btWheelInfo.prototype.set_m_rollInfluence=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btWheelInfo_set_m_rollInfluence_1(self,arg0)});btWheelInfo.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btWheelInfo___destroy___0(self)});function btConcaveShape(){throw"cannot construct a btConcaveShape, no constructor in IDL"}btConcaveShape.prototype=Object.create(btCollisionShape.prototype);btConcaveShape.prototype.constructor=btConcaveShape;btConcaveShape.prototype.__class__=btConcaveShape;btConcaveShape.__cache__={};Module["btConcaveShape"]=btConcaveShape;btConcaveShape.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btConcaveShape_setLocalScaling_1(self,arg0)});btConcaveShape.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btConcaveShape_calculateLocalInertia_2(self,arg0,arg1)});btConcaveShape.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btConcaveShape___destroy___0(self)});function btVector4(arg0,arg1,arg2,arg3){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);if(arg0===undefined){this.ptr=_emscripten_bind_btVector4_btVector4_0();getCache(btVector4)[this.ptr]=this;return}if(arg1===undefined){this.ptr=_emscripten_bind_btVector4_btVector4_1(arg0);getCache(btVector4)[this.ptr]=this;return}if(arg2===undefined){this.ptr=_emscripten_bind_btVector4_btVector4_2(arg0,arg1);getCache(btVector4)[this.ptr]=this;return}if(arg3===undefined){this.ptr=_emscripten_bind_btVector4_btVector4_3(arg0,arg1,arg2);getCache(btVector4)[this.ptr]=this;return}this.ptr=_emscripten_bind_btVector4_btVector4_4(arg0,arg1,arg2,arg3);getCache(btVector4)[this.ptr]=this}btVector4.prototype=Object.create(btVector3.prototype);btVector4.prototype.constructor=btVector4;btVector4.prototype.__class__=btVector4;btVector4.__cache__={};Module["btVector4"]=btVector4;btVector4.prototype.w=(function(){var self=this.ptr;return _emscripten_bind_btVector4_w_0(self)});btVector4.prototype.setValue=(function(arg0,arg1,arg2,arg3){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);_emscripten_bind_btVector4_setValue_4(self,arg0,arg1,arg2,arg3)});btVector4.prototype.length=(function(){var self=this.ptr;return _emscripten_bind_btVector4_length_0(self)});btVector4.prototype.x=(function(){var self=this.ptr;return _emscripten_bind_btVector4_x_0(self)});btVector4.prototype.y=(function(){var self=this.ptr;return _emscripten_bind_btVector4_y_0(self)});btVector4.prototype.z=(function(){var self=this.ptr;return _emscripten_bind_btVector4_z_0(self)});btVector4.prototype.setX=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btVector4_setX_1(self,arg0)});btVector4.prototype.setY=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btVector4_setY_1(self,arg0)});btVector4.prototype.setZ=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btVector4_setZ_1(self,arg0)});btVector4.prototype.op_mul=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);return wrapPointer(_emscripten_bind_btVector4_op_mul_1(self,arg0),btVector3)});btVector4.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btVector4___destroy___0(self)});function btActionInterface(){throw"cannot construct a btActionInterface, no constructor in IDL"}btActionInterface.prototype=Object.create(WrapperObject.prototype);btActionInterface.prototype.constructor=btActionInterface;btActionInterface.prototype.__class__=btActionInterface;btActionInterface.__cache__={};Module["btActionInterface"]=btActionInterface;btActionInterface.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btActionInterface___destroy___0(self)});function btOverlappingPairCache(){throw"cannot construct a btOverlappingPairCache, no constructor in IDL"}btOverlappingPairCache.prototype=Object.create(WrapperObject.prototype);btOverlappingPairCache.prototype.constructor=btOverlappingPairCache;btOverlappingPairCache.prototype.__class__=btOverlappingPairCache;btOverlappingPairCache.__cache__={};Module["btOverlappingPairCache"]=btOverlappingPairCache;btOverlappingPairCache.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btOverlappingPairCache___destroy___0(self)});function btVector3(arg0,arg1,arg2){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg0===undefined){this.ptr=_emscripten_bind_btVector3_btVector3_0();getCache(btVector3)[this.ptr]=this;return}if(arg1===undefined){this.ptr=_emscripten_bind_btVector3_btVector3_1(arg0);getCache(btVector3)[this.ptr]=this;return}if(arg2===undefined){this.ptr=_emscripten_bind_btVector3_btVector3_2(arg0,arg1);getCache(btVector3)[this.ptr]=this;return}this.ptr=_emscripten_bind_btVector3_btVector3_3(arg0,arg1,arg2);getCache(btVector3)[this.ptr]=this}btVector3.prototype=Object.create(WrapperObject.prototype);btVector3.prototype.constructor=btVector3;btVector3.prototype.__class__=btVector3;btVector3.__cache__={};Module["btVector3"]=btVector3;btVector3.prototype.length=(function(){var self=this.ptr;return _emscripten_bind_btVector3_length_0(self)});btVector3.prototype.x=(function(){var self=this.ptr;return _emscripten_bind_btVector3_x_0(self)});btVector3.prototype.y=(function(){var self=this.ptr;return _emscripten_bind_btVector3_y_0(self)});btVector3.prototype.z=(function(){var self=this.ptr;return _emscripten_bind_btVector3_z_0(self)});btVector3.prototype.setX=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btVector3_setX_1(self,arg0)});btVector3.prototype.setY=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btVector3_setY_1(self,arg0)});btVector3.prototype.setZ=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btVector3_setZ_1(self,arg0)});btVector3.prototype.setValue=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);_emscripten_bind_btVector3_setValue_3(self,arg0,arg1,arg2)});btVector3.prototype.op_mul=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);return wrapPointer(_emscripten_bind_btVector3_op_mul_1(self,arg0),btVector3)});btVector3.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btVector3___destroy___0(self)});function btVehicleRaycaster(){throw"cannot construct a btVehicleRaycaster, no constructor in IDL"}btVehicleRaycaster.prototype=Object.create(WrapperObject.prototype);btVehicleRaycaster.prototype.constructor=btVehicleRaycaster;btVehicleRaycaster.prototype.__class__=btVehicleRaycaster;btVehicleRaycaster.__cache__={};Module["btVehicleRaycaster"]=btVehicleRaycaster;btVehicleRaycaster.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btVehicleRaycaster___destroy___0(self)});function btSphereShape(arg0){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);this.ptr=_emscripten_bind_btSphereShape_btSphereShape_1(arg0);getCache(btSphereShape)[this.ptr]=this}btSphereShape.prototype=Object.create(btCollisionShape.prototype);btSphereShape.prototype.constructor=btSphereShape;btSphereShape.prototype.__class__=btSphereShape;btSphereShape.__cache__={};Module["btSphereShape"]=btSphereShape;btSphereShape.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btSphereShape_setLocalScaling_1(self,arg0)});btSphereShape.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btSphereShape_calculateLocalInertia_2(self,arg0,arg1)});btSphereShape.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btSphereShape___destroy___0(self)});function btDefaultCollisionConstructionInfo(){this.ptr=_emscripten_bind_btDefaultCollisionConstructionInfo_btDefaultCollisionConstructionInfo_0();getCache(btDefaultCollisionConstructionInfo)[this.ptr]=this}btDefaultCollisionConstructionInfo.prototype=Object.create(WrapperObject.prototype);btDefaultCollisionConstructionInfo.prototype.constructor=btDefaultCollisionConstructionInfo;btDefaultCollisionConstructionInfo.prototype.__class__=btDefaultCollisionConstructionInfo;btDefaultCollisionConstructionInfo.__cache__={};Module["btDefaultCollisionConstructionInfo"]=btDefaultCollisionConstructionInfo;btDefaultCollisionConstructionInfo.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btDefaultCollisionConstructionInfo___destroy___0(self)});function btCollisionShape(){throw"cannot construct a btCollisionShape, no constructor in IDL"}btCollisionShape.prototype=Object.create(WrapperObject.prototype);btCollisionShape.prototype.constructor=btCollisionShape;btCollisionShape.prototype.__class__=btCollisionShape;btCollisionShape.__cache__={};Module["btCollisionShape"]=btCollisionShape;btCollisionShape.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCollisionShape_setLocalScaling_1(self,arg0)});btCollisionShape.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btCollisionShape_calculateLocalInertia_2(self,arg0,arg1)});btCollisionShape.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCollisionShape___destroy___0(self)});function btConstraintSetting(){this.ptr=_emscripten_bind_btConstraintSetting_btConstraintSetting_0();getCache(btConstraintSetting)[this.ptr]=this}btConstraintSetting.prototype=Object.create(WrapperObject.prototype);btConstraintSetting.prototype.constructor=btConstraintSetting;btConstraintSetting.prototype.__class__=btConstraintSetting;btConstraintSetting.__cache__={};Module["btConstraintSetting"]=btConstraintSetting;btConstraintSetting.prototype.get_m_tau=(function(){var self=this.ptr;return _emscripten_bind_btConstraintSetting_get_m_tau_0(self)});btConstraintSetting.prototype.set_m_tau=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btConstraintSetting_set_m_tau_1(self,arg0)});btConstraintSetting.prototype.get_m_damping=(function(){var self=this.ptr;return _emscripten_bind_btConstraintSetting_get_m_damping_0(self)});btConstraintSetting.prototype.set_m_damping=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btConstraintSetting_set_m_damping_1(self,arg0)});btConstraintSetting.prototype.get_m_impulseClamp=(function(){var self=this.ptr;return _emscripten_bind_btConstraintSetting_get_m_impulseClamp_0(self)});btConstraintSetting.prototype.set_m_impulseClamp=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btConstraintSetting_set_m_impulseClamp_1(self,arg0)});btConstraintSetting.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btConstraintSetting___destroy___0(self)});function btConstraintSolver(){throw"cannot construct a btConstraintSolver, no constructor in IDL"}btConstraintSolver.prototype=Object.create(WrapperObject.prototype);btConstraintSolver.prototype.constructor=btConstraintSolver;btConstraintSolver.prototype.__class__=btConstraintSolver;btConstraintSolver.__cache__={};Module["btConstraintSolver"]=btConstraintSolver;btConstraintSolver.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btConstraintSolver___destroy___0(self)});function btRaycastVehicle(arg0,arg1,arg2){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);this.ptr=_emscripten_bind_btRaycastVehicle_btRaycastVehicle_3(arg0,arg1,arg2);getCache(btRaycastVehicle)[this.ptr]=this}btRaycastVehicle.prototype=Object.create(btActionInterface.prototype);btRaycastVehicle.prototype.constructor=btRaycastVehicle;btRaycastVehicle.prototype.__class__=btRaycastVehicle;btRaycastVehicle.__cache__={};Module["btRaycastVehicle"]=btRaycastVehicle;btRaycastVehicle.prototype.applyEngineForce=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btRaycastVehicle_applyEngineForce_2(self,arg0,arg1)});btRaycastVehicle.prototype.setSteeringValue=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btRaycastVehicle_setSteeringValue_2(self,arg0,arg1)});btRaycastVehicle.prototype.getWheelTransformWS=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);return wrapPointer(_emscripten_bind_btRaycastVehicle_getWheelTransformWS_1(self,arg0),btTransform)});btRaycastVehicle.prototype.updateWheelTransform=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btRaycastVehicle_updateWheelTransform_2(self,arg0,arg1)});btRaycastVehicle.prototype.addWheel=(function(arg0,arg1,arg2,arg3,arg4,arg5,arg6){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);if(arg3&&typeof arg3==="object")arg3=arg3.ptr;else arg3=ensureString(arg3);if(arg4&&typeof arg4==="object")arg4=arg4.ptr;else arg4=ensureString(arg4);if(arg5&&typeof arg5==="object")arg5=arg5.ptr;else arg5=ensureString(arg5);if(arg6&&typeof arg6==="object")arg6=arg6.ptr;else arg6=ensureString(arg6);return wrapPointer(_emscripten_bind_btRaycastVehicle_addWheel_7(self,arg0,arg1,arg2,arg3,arg4,arg5,arg6),btWheelInfo)});btRaycastVehicle.prototype.getNumWheels=(function(){var self=this.ptr;return _emscripten_bind_btRaycastVehicle_getNumWheels_0(self)});btRaycastVehicle.prototype.getRigidBody=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btRaycastVehicle_getRigidBody_0(self),btRigidBody)});btRaycastVehicle.prototype.getWheelInfo=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);return wrapPointer(_emscripten_bind_btRaycastVehicle_getWheelInfo_1(self,arg0),btWheelInfo)});btRaycastVehicle.prototype.setBrake=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btRaycastVehicle_setBrake_2(self,arg0,arg1)});btRaycastVehicle.prototype.setCoordinateSystem=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);_emscripten_bind_btRaycastVehicle_setCoordinateSystem_3(self,arg0,arg1,arg2)});btRaycastVehicle.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btRaycastVehicle___destroy___0(self)});function btRigidBody(arg0){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);this.ptr=_emscripten_bind_btRigidBody_btRigidBody_1(arg0);getCache(btRigidBody)[this.ptr]=this}btRigidBody.prototype=Object.create(btCollisionObject.prototype);btRigidBody.prototype.constructor=btRigidBody;btRigidBody.prototype.__class__=btRigidBody;btRigidBody.__cache__={};Module["btRigidBody"]=btRigidBody;btRigidBody.prototype.getCenterOfMassTransform=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btRigidBody_getCenterOfMassTransform_0(self),btTransform)});btRigidBody.prototype.setCenterOfMassTransform=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_setCenterOfMassTransform_1(self,arg0)});btRigidBody.prototype.setSleepingThresholds=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btRigidBody_setSleepingThresholds_2(self,arg0,arg1)});btRigidBody.prototype.setDamping=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btRigidBody_setDamping_2(self,arg0,arg1)});btRigidBody.prototype.setMassProps=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btRigidBody_setMassProps_2(self,arg0,arg1)});btRigidBody.prototype.setLinearFactor=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_setLinearFactor_1(self,arg0)});btRigidBody.prototype.applyTorque=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_applyTorque_1(self,arg0)});btRigidBody.prototype.applyForce=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btRigidBody_applyForce_2(self,arg0,arg1)});btRigidBody.prototype.applyTorqueImpulse=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_applyTorqueImpulse_1(self,arg0)});btRigidBody.prototype.applyImpulse=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btRigidBody_applyImpulse_2(self,arg0,arg1)});btRigidBody.prototype.updateInertiaTensor=(function(){var self=this.ptr;_emscripten_bind_btRigidBody_updateInertiaTensor_0(self)});btRigidBody.prototype.getLinearVelocity=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btRigidBody_getLinearVelocity_0(self),btVector3)});btRigidBody.prototype.getAngularVelocity=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btRigidBody_getAngularVelocity_0(self),btVector3)});btRigidBody.prototype.setLinearVelocity=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_setLinearVelocity_1(self,arg0)});btRigidBody.prototype.setAngularVelocity=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_setAngularVelocity_1(self,arg0)});btRigidBody.prototype.getMotionState=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btRigidBody_getMotionState_0(self),btMotionState)});btRigidBody.prototype.setAngularFactor=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_setAngularFactor_1(self,arg0)});btRigidBody.prototype.upcast=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);return wrapPointer(_emscripten_bind_btRigidBody_upcast_1(self,arg0),btRigidBody)});btRigidBody.prototype.getCollisionShape=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btRigidBody_getCollisionShape_0(self),btCollisionShape)});btRigidBody.prototype.setContactProcessingThreshold=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_setContactProcessingThreshold_1(self,arg0)});btRigidBody.prototype.setActivationState=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_setActivationState_1(self,arg0)});btRigidBody.prototype.forceActivationState=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_forceActivationState_1(self,arg0)});btRigidBody.prototype.activate=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg0===undefined){_emscripten_bind_btRigidBody_activate_0(self);return}_emscripten_bind_btRigidBody_activate_1(self,arg0)});btRigidBody.prototype.isActive=(function(){var self=this.ptr;return _emscripten_bind_btRigidBody_isActive_0(self)});btRigidBody.prototype.setRestitution=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_setRestitution_1(self,arg0)});btRigidBody.prototype.setFriction=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_setFriction_1(self,arg0)});btRigidBody.prototype.getWorldTransform=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btRigidBody_getWorldTransform_0(self),btTransform)});btRigidBody.prototype.getCollisionFlags=(function(){var self=this.ptr;return _emscripten_bind_btRigidBody_getCollisionFlags_0(self)});btRigidBody.prototype.setCollisionFlags=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btRigidBody_setCollisionFlags_1(self,arg0)});btRigidBody.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btRigidBody___destroy___0(self)});function btCylinderShapeX(arg0){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);this.ptr=_emscripten_bind_btCylinderShapeX_btCylinderShapeX_1(arg0);getCache(btCylinderShapeX)[this.ptr]=this}btCylinderShapeX.prototype=Object.create(btCylinderShape.prototype);btCylinderShapeX.prototype.constructor=btCylinderShapeX;btCylinderShapeX.prototype.__class__=btCylinderShapeX;btCylinderShapeX.__cache__={};Module["btCylinderShapeX"]=btCylinderShapeX;btCylinderShapeX.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCylinderShapeX_setLocalScaling_1(self,arg0)});btCylinderShapeX.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btCylinderShapeX_calculateLocalInertia_2(self,arg0,arg1)});btCylinderShapeX.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCylinderShapeX___destroy___0(self)});function btCylinderShapeZ(arg0){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);this.ptr=_emscripten_bind_btCylinderShapeZ_btCylinderShapeZ_1(arg0);getCache(btCylinderShapeZ)[this.ptr]=this}btCylinderShapeZ.prototype=Object.create(btCylinderShape.prototype);btCylinderShapeZ.prototype.constructor=btCylinderShapeZ;btCylinderShapeZ.prototype.__class__=btCylinderShapeZ;btCylinderShapeZ.__cache__={};Module["btCylinderShapeZ"]=btCylinderShapeZ;btCylinderShapeZ.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCylinderShapeZ_setLocalScaling_1(self,arg0)});btCylinderShapeZ.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btCylinderShapeZ_calculateLocalInertia_2(self,arg0,arg1)});btCylinderShapeZ.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCylinderShapeZ___destroy___0(self)});function btTransform(arg0,arg1){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg0===undefined){this.ptr=_emscripten_bind_btTransform_btTransform_0();getCache(btTransform)[this.ptr]=this;return}if(arg1===undefined){this.ptr=_emscripten_bind_btTransform_btTransform_1(arg0);getCache(btTransform)[this.ptr]=this;return}this.ptr=_emscripten_bind_btTransform_btTransform_2(arg0,arg1);getCache(btTransform)[this.ptr]=this}btTransform.prototype=Object.create(WrapperObject.prototype);btTransform.prototype.constructor=btTransform;btTransform.prototype.__class__=btTransform;btTransform.__cache__={};Module["btTransform"]=btTransform;btTransform.prototype.setIdentity=(function(){var self=this.ptr;_emscripten_bind_btTransform_setIdentity_0(self)});btTransform.prototype.setOrigin=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btTransform_setOrigin_1(self,arg0)});btTransform.prototype.setRotation=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btTransform_setRotation_1(self,arg0)});btTransform.prototype.getOrigin=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btTransform_getOrigin_0(self),btVector3)});btTransform.prototype.getRotation=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btTransform_getRotation_0(self),btQuaternion)});btTransform.prototype.getBasis=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btTransform_getBasis_0(self),btMatrix3x3)});btTransform.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btTransform___destroy___0(self)});function btCollisionWorld(){throw"cannot construct a btCollisionWorld, no constructor in IDL"}btCollisionWorld.prototype=Object.create(WrapperObject.prototype);btCollisionWorld.prototype.constructor=btCollisionWorld;btCollisionWorld.prototype.__class__=btCollisionWorld;btCollisionWorld.__cache__={};Module["btCollisionWorld"]=btCollisionWorld;btCollisionWorld.prototype.getDispatcher=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_btCollisionWorld_getDispatcher_0(self),btDispatcher)});btCollisionWorld.prototype.rayTest=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);_emscripten_bind_btCollisionWorld_rayTest_3(self,arg0,arg1,arg2)});btCollisionWorld.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCollisionWorld___destroy___0(self)});function btQuadWord(){throw"cannot construct a btQuadWord, no constructor in IDL"}btQuadWord.prototype=Object.create(WrapperObject.prototype);btQuadWord.prototype.constructor=btQuadWord;btQuadWord.prototype.__class__=btQuadWord;btQuadWord.__cache__={};Module["btQuadWord"]=btQuadWord;btQuadWord.prototype.x=(function(){var self=this.ptr;return _emscripten_bind_btQuadWord_x_0(self)});btQuadWord.prototype.y=(function(){var self=this.ptr;return _emscripten_bind_btQuadWord_y_0(self)});btQuadWord.prototype.z=(function(){var self=this.ptr;return _emscripten_bind_btQuadWord_z_0(self)});btQuadWord.prototype.w=(function(){var self=this.ptr;return _emscripten_bind_btQuadWord_w_0(self)});btQuadWord.prototype.setX=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btQuadWord_setX_1(self,arg0)});btQuadWord.prototype.setY=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btQuadWord_setY_1(self,arg0)});btQuadWord.prototype.setZ=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btQuadWord_setZ_1(self,arg0)});btQuadWord.prototype.setW=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btQuadWord_setW_1(self,arg0)});btQuadWord.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btQuadWord___destroy___0(self)});function btCylinderShape(arg0){if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);this.ptr=_emscripten_bind_btCylinderShape_btCylinderShape_1(arg0);getCache(btCylinderShape)[this.ptr]=this}btCylinderShape.prototype=Object.create(btCollisionShape.prototype);btCylinderShape.prototype.constructor=btCylinderShape;btCylinderShape.prototype.__class__=btCylinderShape;btCylinderShape.__cache__={};Module["btCylinderShape"]=btCylinderShape;btCylinderShape.prototype.setLocalScaling=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);_emscripten_bind_btCylinderShape_setLocalScaling_1(self,arg0)});btCylinderShape.prototype.calculateLocalInertia=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;else arg0=ensureString(arg0);if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);_emscripten_bind_btCylinderShape_calculateLocalInertia_2(self,arg0,arg1)});btCylinderShape.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btCylinderShape___destroy___0(self)});function btTypedConstraint(){throw"cannot construct a btTypedConstraint, no constructor in IDL"}btTypedConstraint.prototype=Object.create(WrapperObject.prototype);btTypedConstraint.prototype.constructor=btTypedConstraint;btTypedConstraint.prototype.__class__=btTypedConstraint;btTypedConstraint.__cache__={};Module["btTypedConstraint"]=btTypedConstraint;btTypedConstraint.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_btTypedConstraint___destroy___0(self)});this["Ammo"]=Module return this; }).call({});