-
Notifications
You must be signed in to change notification settings - Fork 4
/
decoder.js
17 lines (10 loc) · 206 KB
/
decoder.js
1
2
3
4
5
6
7
8
9
10
11
12
13
var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=(function(status,toThrow){throw toThrow});Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename)}return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",(function(reason,p){process["exit"](1)}));Module["quit"]=(function(status){process["exit"](status)});Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){var currentScript=document.currentScript;if(currentScript.src.indexOf("blob:")!==0){scriptDirectory=currentScript.src.split("/").slice(0,-1).join("/")+"/"}}else if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href.split("/").slice(0,-1).join("/")+"/"}Module["read"]=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=(function(title){document.title=title})}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}function getNativeTypeSize(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 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var GLOBAL_BASE=8;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}var JSfuncs={"stackSave":(function(){stackSave()}),"stackRestore":(function(){stackRestore()}),"arrayToC":(function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};function ccall(ident,returnType,argTypes,args,opts){function convertReturnValue(ret){if(returnType==="string")return Pointer_stringify(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}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 getValue: "+type)}return null}var ALLOC_STATIC=2;var ALLOC_NONE=4;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)err("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}Module["buffer"]=buffer}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_exp=Math.exp;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}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["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}STATIC_BASE=GLOBAL_BASE;STATICTOP=STATIC_BASE+25840;__ATINIT__.push();memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAAAAAQEBAgMDAwIDAwMCAwMDAAMMDzAzPD/Aw8zP8PP8/wEAAAAAAAAAAwAAAAAAAAACAAAAAQAAAAcAAAAAAAAABAAAAAMAAAAGAAAAAQAAAAUAAAACAAAADwAAAAAAAAAIAAAABwAAAAwAAAADAAAACwAAAAQAAAAOAAAAAQAAAAkAAAAGAAAADQAAAAIAAAAKAAAABQAAAAAAAAAAAAAAAEDKRRtM/1KCWrNiomtgdQD/AP8A/wD/AP8A/gEAAf8A/gD9AgAB/wD+AP0DAAH/AACdPgBAXj4AwAQ+AIDtPgBAiT4AAAAAAMBMPwAAzT0AAAAAAAAAAAAAAAAAAAAAUAEAABAEAADMBgAAhAkAADgMAADoDgAAlBEAAPwSAAC4EwAALBQAAHgUAACwFAAA0BQAAOgUAAD0FAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAUAAAAHAAAACQAAAAsAAAANAAAADwAAABEAAAATAAAAFQAAABcAAAAZAAAAGwAAAB0AAAAfAAAAIQAAACMAAAAlAAAAJwAAACkAAAArAAAALQAAAC8AAAAxAAAAMwAAADUAAAA3AAAAOQAAADsAAAA9AAAAPwAAAEEAAABDAAAARQAAAEcAAABJAAAASwAAAE0AAABPAAAAUQAAAFMAAABVAAAAVwAAAFkAAABbAAAAXQAAAF8AAABhAAAAYwAAAGUAAABnAAAAaQAAAGsAAABtAAAAbwAAAHEAAABzAAAAdQAAAHcAAAB5AAAAewAAAH0AAAB/AAAAgQAAAIMAAACFAAAAhwAAAIkAAACLAAAAjQAAAI8AAACRAAAAkwAAAJUAAACXAAAAmQAAAJsAAACdAAAAnwAAAKEAAACjAAAApQAAAKcAAACpAAAAqwAAAK0AAACvAAAAsQAAALMAAAC1AAAAtwAAALkAAAC7AAAAvQAAAL8AAADBAAAAwwAAAMUAAADHAAAAyQAAAMsAAADNAAAAzwAAANEAAADTAAAA1QAAANcAAADZAAAA2wAAAN0AAADfAAAA4QAAAOMAAADlAAAA5wAAAOkAAADrAAAA7QAAAO8AAADxAAAA8wAAAPUAAAD3AAAA+QAAAPsAAAD9AAAA/wAAAAEBAAADAQAABQEAAAcBAAAJAQAACwEAAA0BAAAPAQAAEQEAABMBAAAVAQAAFwEAABkBAAAbAQAAHQEAAB8BAAAhAQAAIwEAACUBAAAnAQAAKQEAACsBAAAtAQAALwEAADEBAAAzAQAANQEAADcBAAA5AQAAOwEAAD0BAAA/AQAAQQEAAEMBAABFAQAARwEAAEkBAABLAQAATQEAAE8BAABRAQAAUwEAAFUBAABXAQAAWQEAAFsBAABdAQAAXwEAAA0AAAAZAAAAKQAAAD0AAABVAAAAcQAAAJEAAAC1AAAA3QAAAAkBAAA5AQAAbQEAAKUBAADhAQAAIQIAAGUCAACtAgAA+QIAAEkDAACdAwAA9QMAAFEEAACxBAAAFQUAAH0FAADpBQAAWQYAAM0GAABFBwAAwQcAAEEIAADFCAAATQkAANkJAABpCgAA/QoAAJULAAAxDAAA0QwAAHUNAAAdDgAAyQ4AAHkPAAAtEAAA5RAAAKERAABhEgAAJRMAAO0TAAC5FAAAiRUAAF0WAAA1FwAAERgAAPEYAADVGQAAvRoAAKkbAACZHAAAjR0AAIUeAACBHwAAgSAAAIUhAACNIgAAmSMAAKkkAAC9JQAA1SYAAPEnAAARKQAANSoAAF0rAACJLAAAuS0AAO0uAAAlMAAAYTEAAKEyAADlMwAALTUAAHk2AADJNwAAHTkAAHU6AADROwAAMT0AAJU+AAD9PwAAaUEAANlCAABNRAAAxUUAAEFHAADBSAAARUoAAM1LAABZTQAA6U4AAH1QAAAVUgAAsVMAAFFVAAD1VgAAnVgAAElaAAD5WwAArV0AAGVfAAAhYQAA4WIAAKVkAABtZgAAOWgAAAlqAADdawAAtW0AAJFvAABxcQAAVXMAAD11AAApdwAAGXkAAA17AAAFfQAAAX8AAAGBAAAFgwAADYUAABmHAAApiQAAPYsAAFWNAABxjwAAkZEAALWTAADdlQAACZgAADmaAABtnAAApZ4AAOGgAAAhowAAZaUAAK2nAAD5qQAASawAAJ2uAAD1sAAAUbMAALG1AAAVuAAAfboAAOm8AABZvwAAzcEAAEXEAADBxgAAQckAAMXLAABNzgAA2dAAAGnTAAD91QAAldgAADHbAADR3QAAdeAAAB3jAADJ5QAAeegAAC3rAADl7QAAofAAAD8AAACBAAAA5wAAAHkBAAA/AgAAQQMAAIcEAAAZBgAA/wcAAEEKAADnDAAA+Q8AAH8TAACBFwAABxwAABkhAAC/JgAAAS0AAOczAAB5OwAAv0MAAMFMAACHVgAAGWEAAH9sAADBeAAA54UAAPmTAAD/ogAAAbMAAAfEAAAZ1gAAP+kAAIH9AADnEgEAeSkBAD9BAQBBWgEAh3QBABmQAQD/rAEAQcsBAOfqAQD5CwIAfy4CAIFSAgAHeAIAGZ8CAL/HAgAB8gIA5x0DAHlLAwC/egMAwasDAIfeAwAZEwQAf0kEAMGBBADnuwQA+fcEAP81BQABdgUAB7gFABn8BQA/QgYAgYoGAOfUBgB5IQcAP3AHAEHBBwCHFAgAGWoIAP/BCABBHAkA53gJAPnXCQB/OQoAgZ0KAAcECwAZbQsAv9gLAAFHDADntwwAeSsNAL+hDQDBGg4Ah5YOABkVDwB/lg8AwRoQAOehEAD5KxEA/7gRAAFJEgAH3BIAGXITAD8LFACBpxQA50YVAHnpFQA/jxYAQTgXAIfkFwAZlBgA/0YZAEH9GQDnthoA+XMbAH80HACB+BwAB8AdABmLHgC/WR8AASwgAOcBIQB52yEAv7giAMGZIwCHfiQAGWclAH9TJgDBQycA5zcoAPkvKQD/KyoAASwrAAcwLAAZOC0AP0QuAIFULwDnaDAAeYExAD+eMgBBvzMAh+Q0ABkONgD/OzcAQW44AOekOQD53zoAfx88AIFjPQAHrD4AGfk/AL9KQQABoUIA5/tDAHlbRQC/v0YAwShIAIeWSQAZCUsAf4BMAMH8TQDnfU8A+QNRAP+OUgABH1QAB7RVABlOVwA/7VgAgZFaAOc6XAB56V0AP51fAEFWYQCHFGMAGdhkAP+gZgBBb2gA50JqAPkbbAB/+m0AQQEAAKkCAAAJBQAAwQgAAEEOAAAJFgAAqSAAAMEuAAABQQAAKVgAAAl1AACBmAAAgcMAAAn3AAApNAEAAXwBAMHPAQCpMAIACaACAEEfAwDBrwMACVMEAKkKBQBB2AUAgb0GACm8BwAJ1ggAAQ0KAAFjCwAJ2gwAKXQOAIEzEABBGhIAqSoUAAlnFgDB0RgAQW0bAAk8HgCpQCEAwX0kAAH2JwAprCsACaMvAIHdMwCBXjgACSk9AClAQgABp0cAwWBNAKlwUwAJ2lkAQaBgAMHGZwAJUW8AqUJ3AEGffwCBaogAKaiRAAlcmwABiqUAATawAAlkuwApGMcAgVbTAEEj4ACpgu0ACXn7AMEKCgFBPBkBCRIpAamQOQHBvEoBAZtcASkwbwEJgYIBgZKWAYFpqwEJC8EBKXzXAQHC7gHB4QYCqeAfAgnEOQJBkVQCwU1wAgn/jAKpqqoCQVbJAoEH6QIpxAkDCZIrAwF3TgMBeXIDCZ6XAynsvQOBaeUDQRwOBKkKOAQJO2MEwbOPBEF7vQQJmOwEqRAdBcHrTgUBMIIFKeS2BQkP7QWBtyQGgeRdBgmdmAYp6NQGAc0SB8FSUgepgJMHCV7WB0HyGgjBRGEICV2pCKlC8whB/T4JgZSMCSkQ3AkJeC0KAdSACgEs1goJiC0LKfCGC4Fs4gtBBUAMqcKfDAmtAQ3BzGUNQSrMDQnONA6pwJ8OwQoNDwG1fA8pyO4PCU1jEIFM2hCBz1MRCd/PESmEThIByM8SwbNTE6lQ2hMJqGMUQcPvFMGrfhUJaxAWqQqlFkGUPBeBEdcXKYx0GAkOFRkBobgZAU9fGgkiCRspJLYbgV9mHEHeGR2pqtAdCc+KHsFVSB9BSQkgCbTNIKmglSHBGWEiASowIyncAiQJO9kkgVGzJZMGAABFDgAADxwAABEzAABbVwAADY4AAHfdAAA5TQEAY+YBAJWzAgAfwQMAIR0FAKvXBgDdAgkAB7MLAMn+DgAz/xIA5c8XAC+PHQAxXiQA+2AsAK2+NQCXoUAAWTdNAAOxWwA1Q2wAPyZ/AEGWlABL06wAfSHIACfJ5gDpFgkB01svAYXtWQFPJokBUWW9AZsO9wFNizYCt0l8Anm9yAKjXxwD1a53A18v2wNha0cE6/K8BB1cPAVHQ8YFCUtbBnMc/AYlZ6kHb+FjCHFILAk7YAMK7fPpCtfV4AuZ3+gMQ/ICDnX2Lw9/3HAQgZzGEYs2MhO9srQUZyFPFimbAhgTQdAZxTy5G4/Avh2RB+If21UkIo34hiT3RQsnuZ2yKeNofiwVGnAvny2JMqEpyzUrnjc5XSXQPIdjlkBJB4xEs8mySGVuDE2vw5pRsaJfVnvvXFstmZRgF5oIZtn3umuDw61xtRnjd78iXX4dIwAAcU0AAJGcAAD9JgEAZQwCAOl3AwCZogUANdYIAC1wDQDh5BMAIcMcAO23KAB1kjgAWUhNACn6ZwAl+IkAPce0AFEm6gCxEywB3dJ8AYXy3gHJUlUCuSvjAhUUjANNCFQEwXE/BUEuUwbNl5QHlYwJCTl3uApJV6gMBcrgDl0TahExJ00U0bKTF70mSBulwHUfqZUoJNmcbSn1uVIvbcjmNaGmOT1hQVxFrZ9gTrXuWVgZjlxjaRx+b+WD1Xz/vQAAAagBAI9rAwDxngYAPyMMAME9FQCPtiMA8fw5AP9RWwAB+osAD3XRAHG/MgE/mrgBwdxtAg/PXwNxjp4E/3s9BgG2UwiPnPwK8WFYDj+njBLBJcUXj2U0HvGBFCb/+6cvAZw6Ow9iIklxhsBZP4qCbcFY44QBDgQAkSEJABEsEwBB7iUAQU9HAJFDgAAR990AAUZzAQGSWgIRAbgDkTW8BUGPpwhBBs4MEbKbEpEPmhoBGnYlAUwHNJGeV0cRnaxgQaaRgSNRFgDFnjIAF7lrAJn22ABriaABDcT+Ah8BUAUh2R0JM2wwD9WipBinZwgnKf19PHu151sddx2Jr6Atya2OewCJ5hkBOZZeAj0W2AS1Y3cJ4SjGESEDNCB1SII4fVdXYL9brwKB2CcG94ReDen+rRt/i+s2gbflaBcDnMHBDP8OOWqFIhnukUuBeCueM+EJVJWLAAA3mAAA/6UAAAS1AABnxQAARdcAAMHqAAD//wAAAAABAAIAAwAEAAUABgAHAAgACgAMAA4AEAAUABgAHAAiACgAMAA8AE4AZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlBLRT84MSgiHRQSCgAAAAAAAAAAbmRaVE5HQTozLScgGhQMAAAAAAAAdm5nXVZQS0ZBOzUvKB8XDwQAAAAAfndwaF9ZU05IQjw2LycgGREMAQAAhn94cmdhW1VOSEI8Ni8pIx0XEAoBkImCfHFrZV9YUkxGQDkzLSchGg8BmJGKhHt1b2liXFZQSkM9NzErJBQBopuUjoV/eXNsZmBaVE1HQTs1Lh4BrKWemI+Jg312cGpkXldRS0U/OC0UyMjIyMjIyMjGwby3sq2oo56ZlIFoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgAEAAQABAAFQAVABgAHQAiACQAAAAAAAAAahyNOFK7HjoIadw6gu1XO4ljsjsDKgU8MNw5PLQ+dzwco5480fLFPP6G8TybqxA9Ba0qPYTCRj1T5mQ9EYmCPYefkz3LsqU90b64PTq/zD1Ur+E9FIr3PQ4lBz7Z9BI+XzEfPmjXKz6K4zg+MFJGPpQfVD6/R2I+jsZwPrCXfz5SW4c+YA+PPpjllj55254+cO6mPtgbrz77YLc+Ebu/PkYnyD63otA+eCrZPpS74T4MU+o+3u3yPgaJ+z6+EAI/H1oGPySfCj9Q3g4/KxYTP0FFFz8lahs/c4MfP86PIz/mjSc/dHwrPz9aLz8ZJjM/5942P5mDOj8zEz4/xYxBP3fvRD9/Okg/J21LP86GTj/lhlE/8WxUP444Vz9p6Vk/RX9cP/r5Xj9zWWE/r51jP8HGZT/P1Gc/EchpP9Kgaz9uX20/UARvP/SPcD/mAnI/vV1zPx+hdD+/zXU/V+R2P7Dldz+X0ng/46t5P3Nyej8nJ3s/58p7P51efD8143w/nFl9P73CfT+GH34/3nB+P6u3fj/P9H4/Jil/P4ZVfz++en8/lpl/P8yyfz8Ux38/HNd/P4Ljfz/d7H8/tvN/P4r4fz/I+38/1v1/Pwf/fz+l/38/6P9/P/3/fz8AAIA///9/P47/fz9q/n8/k/x/Pwf6fz/I9n8/1vJ/PzDufz/W6H8/yOJ/Pwfcfz+T1H8/a8x/P4/Dfz8Aun8/va9/P8ekfz8dmX8/wIx/P7B/fz/scX8/dmN/P0tUfz9uRH8/3jN/P5oifz+jEH8/+v1+P53qfj+N1n4/y8F+P1asfj8uln4/U39+P8Znfj+GT34/lDZ+P+8cfj+YAn4/j+d9P9PLfT9mr30/RpJ9P3R0fT/xVX0/vDZ9P9UWfT889nw/8tR8P/ayfD9JkHw/62x8P9tIfD8bJHw/qf57P4fYez+0sXs/MIp7P/xhez8XOXs/gg97Pz3lej9Iuno/oo56P01iej9INXo/lAd6PzDZeT8dqnk/Wnp5P+lJeT/IGHk/+eZ4P3u0eD9OgXg/c014P+oYeD+y43c/za13Pzp3dz/5P3c/Cgh3P27Pdj8llnY/L1x2P4whdj885nU/QKp1P5dtdT9CMHU/QfJ0P5SzdD87dHQ/NzR0P4fzcz8ssnM/JnBzP3Ytcz8a6nI/FKZyP2Rhcj8KHHI/BdZxP1ePcT8ASHE///9wP1W3cD8CbnA/BiRwP2LZbz8Vjm8/IEJvP4T1bj8/qG4/U1puP8ALbj+GvG0/pWxtPx0cbT/vymw/G3lsP6EmbD+A02s/u39rP1Araz9A1mo/jIBqPzIqaj8102k/k3tpP00jaT9kymg/2HBoP6gWaD/Vu2c/YGBnP0gEZz+Pp2Y/M0pmPzbsZT+XjWU/Vy5lP3fOZD/1bWQ/1AxkPxKrYz+xSGM/sOViPxCCYj/RHWI/87hhP3dTYT9c7WA/pIZgP04fYD9bt18/y05fP57lXj/Ve14/cBFeP26mXT/SOl0/ms5cP8ZhXD9Z9Fs/UYZbP64XWz9yqFo/nThaPy7IWT8nV1k/h+VYP09zWD9/AFg/F41XPxgZVz+CpFY/Vi9WP5O5VT86Q1U/S8xUP8dUVD+u3FM/AWRTP7/qUj/pcFI/f/ZRP4J7UT/y/1A/z4NQPxoHUD/SiU8/+gtPP5CNTj+UDk4/CY9NP+0OTT9Bjkw/BQ1MPzuLSz/hCEs/+YVKP4MCSj9/fkk/7vlIP890SD8k70c/7WhHPyniRj/aWkY/ANNFP5tKRT+swUQ/MjhEPy+uQz+iI0M/jZhCP+8MQj/IgEE/GvRAP+VmQD8o2T8/5Uo/Pxu8Pj/MLD4/95w9P50MPT++ezw/XOo7P3VYOz8Kxjo/HTM6P62fOT+7Czk/R3c4P1HiNz/aTDc/47Y2P2sgNj90iTU//fE0PwdaND+TwTM/oCgzPzCPMj9C9TE/2FoxP/G/MD+OJDA/r4gvP1XsLj+BTy4/MrItP2kULT8ndiw/a9crPzc4Kz+LmCo/Z/gpP8xXKT+6tig/MhUoPzNzJz+/0CY/1i0mP3mKJT+n5iQ/YUIkP6mdIz99+CI/31IiP8+sIT9NBiE/W18gP/i3Hz8lEB8/4mcePzC/HT8QFh0/gWwcP4TCGz8aGBs/Q20aPwDCGT9RFhk/NmoYP7G9Fz/BEBc/Z2MWP6O1FT92BxU/4VgUP+SpEz9/+hI/s0oSP4CaET/n6RA/6DgQP4SHDz+71Q4/jiMOP/5wDT8Kvgw/swoMP/pWCz/fogo/Y+4JP4Y5CT9JhAg/rM4HP68YBz9UYgY/m6sFP4P0BD8PPQQ/PYUDPw/NAj+GFAI/oVsBP2GiAD+P0f8+p13+Pg7p/D7Cc/s+xv35PhuH+D7BD/c+upf1PgYf9D6opfI+nivxPuyw7z6RNe4+kLnsPug86z6av+k+qUHoPhXD5j7fQ+U+CMTjPpFD4j58wuA+yEDfPni+3T6MO9w+BrjaPuYz2T4ur9c+3ynWPvmj1D59HdM+bpbRPswO0D6Xhs4+0v3MPn10yz6Z6sk+J2DIPijVxj6fScU+ir3DPuwwwj7Go8A+GRa/PuaHvT4t+bs+8Wm6PjLauD7xSbc+L7m1Pu4ntD4vlrI+8gOxPjlxrz4E3q0+VkqsPi+2qj6QIak+eoynPu/2pT7vYKQ+fMqiPpczoT5AnJ8+egSePkRsnD6h05o+kTqZPhahlz4wB5Y+4WyUPinSkj4LN5E+h5uPPp7/jT5RY4w+osaKPpEpiT4gjIc+UO6FPiJQhD6XsYI+sBKBPt7mfj6pp3s+w2d4Pi8ndT7u5XE+BKRuPnNhaz48Hmg+YtpkPuiVYT7PUF4+GgtbPszEVz7mfVQ+azZRPl3uTT6/pUo+klxHPtoSRD6XyEA+zn09PoAyOj6u5jY+XZozPo1NMD5CAC0+fbIpPkJkJj6RFSM+bsYfPtt2HD7aJhk+bdYVPpiFEj5bNA8+uuILPreQCD5UPgU+lOsBPvAw/T0GivY9ceLvPTM66T1PkeI9z+fbPbU91T0Dk849wOfHPfI7wT2cj7o9w+KzPWw1rT2bh6Y9VdmfPZ8qmT1+e5I99suLPQschT2H13w9RnZvPV0UYj3WsVQ9uU5HPRDrOT3lhiw9QCIfPSy9ET2yVwQ9tePtPGAX0zx2Srg8C32dPDKvgjz6wU88/iQaPCoPyTuZpzs7Ln3WudJGcbur3uO7pownvIEpXbzhYom8oDCkvOz9vryzytm84Jb0vDGxB72TFhW9jHsivRPgL70eRD29padKvZ0KWL3+bGW9vs5yveoXgL0byIa97XeNvVwnlL1j1pq9/YShvSYzqL3Z4K69EY61vco6vL3+5sK9qpLJvcg90L1U6Na9SpLdvaQ75L1d5Oq9cozxvd0z+L2a2v69UsACvvwSBr5HZQm+MrcMvroIEL7dWRO+mKoWvur6Gb7QSh2+R5ogvk7pI77hNye+AIYqvqbTLb7TIDG+g200vrW5N75lBTu+k1A+vjqbQb5a5US+8C5Ivvl3S750wE6+XQhSvrNPVb5zlli+nNxbvioiX74bZ2K+batlvh/vaL4sMmy+lHRvvlS2cr5q93W+0zd5vo13fL6Wtn++dXqBvkUZg765t4S+0FWGvojzh77hkIm+2i2LvnDKjL6kZo6+dAKQvt+dkb7kOJO+gdOUvrZtlr6BB5i+4qCZvtc5m75f0py+eWqeviMCoL5emaG+JjCjvn3GpL5gXKa+zvGnvsaGqb5HG6u+UK+svuBCrr711a++j2ixvq36sr5NjLS+bh22vhCut74wPrm+z826vupcvL6C672+lHm/vh8Hwb4jlMK+nyDEvpGsxb74N8e+08LIviJNyr7i1su+E2DNvrXozr7FcNC+QvjRvi1/076DBdW+Q4vWvm0Q2L7/lNm++Rjbvlmc3L4dH96+RqHfvtMi4b7Bo+K+ECTkvr6j5b7MIue+OKHovgAf6r4knOu+ohjtvnqU7r6rD/C+M4rxvhIE875GffS+z/X1vqpt977Z5Pi+WFv6vijR+75HRv2+tbr+vjgXAL+70AC/5IkBv7JCAr8l+wK/O7MDv/ZqBL9TIgW/U9kFv/WPBr84Rge/HfwHv6KxCL/HZgm/jBsKv/DPCr/zgwu/kzcMv9HqDL+snQ2/JFAOvzgCD7/osw+/MmUQvxgWEb+XxhG/sHYSv2MmE7+u1RO/kYQUvw0zFb8f4RW/yI4Wvwg8F7/d6Be/SJUYv0hBGb/c7Bm/BJgav8BCG78P7Ru/8JYcv2NAHb9o6R2//pEevyU6H7/c4R+/I4kgv/ovIb9f1iG/Unwiv9QhI7/jxiO/f2skv6cPJb9csyW/nVYmv2j5Jr+/mye/oD0ovwvfKL//fym/fSAqv4PAKr8RYCu/J/8rv8SdLL/oOy2/ktktv8N2Lr95Ey+/tK8vv3NLML+35jC/f4Exv8sbMr+ZtTK/6k4zv73nM78SgDS/6Bc1vz+vNb8WRja/btw2v0VyN7+cBzi/cZw4v8UwOb+WxDm/5lc6v7LqOr/8fDu/wg48vwOgPL/BMD2/+sA9v61QPr/b3z6/g24/v6X8P79AikC/UxdBv+CjQb/kL0K/YLtCv1NGQ7++0EO/nlpEv/bjRL/CbEW/BfVFv7x8Rr/oA0e/iYpHv50QSL8llki/IBtJv46fSb9vI0q/waZKv4YpS7+8q0u/Yy1Mv3quTL8CL02/+q5Nv2IuTr85rU6/fitPvzOpT79VJlC/5qJQv+QeUb9QmlG/KBVSv22PUr8eCVO/O4JTv8P6U7+3clS/FupUv99gVb8S11W/sExWv7fBVr8nNle/AKpXv0IdWL/sj1i//gFZv3hzWb9Z5Fm/olRav1HEWr9mM1u/4qFbv8MPXL8KfVy/t+lcv8hVXb8+wV2/GCxev1eWXr/5/16//2hfv2jRX78zOWC/YqBgv/MGYb/lbGG/OtJhv/A2Yr8Im2K/gP5iv1lhY7+Sw2O/LCVkvyWGZL9+5mS/N0Zlv06lZb/FA2a/mmFmv82+Zr9eG2e/TXdnv5rSZ79ELWi/S4dov67gaL9vOWm/i5FpvwTpab/ZP2q/CZZqv5Trar97QGu/vJRrv1noa79PO2y/oI1sv0vfbL9PMG2/rYBtv2XQbb91H26/321uv6G7br+7CG+/LlVvv/igb78b7G+/lTZwv2eAcL+QyXC/DxJxv+ZZcb8ToXG/l+dxv3Etcr+gcnK/JrdyvwH7cr8yPnO/uIBzv5TCc7/EA3S/SUR0vyKEdL9Qw3S/0gF1v6g/db/SfHW/ULl1vyH1db9FMHa/vWp2v4ikdr+m3Xa/FhZ3v9lNd7/vhHe/V7t3vxHxd78dJni/elp4vyqOeL8rwXi/ffN4vyEleb8WVnm/XIZ5v/K1eb/a5Hm/EhN6v5pAer9zbXq/nZl6vxbFer/f73q/+Bl7v2FDe78abHu/IpR7v3q7e78g4nu/Fwh8v1wtfL/wUXy/03V8vwWZfL+Gu3y/Vd18v3P+fL/fHn2/mj59v6Ndfb/6e32/n5l9v5K2fb/T0n2/Yu59vz8Jfr9pI36/4Tx+v6dVfr+6bX6/G4V+v8mbfr/EsX6/Dcd+v6Lbfr+F736/tQJ/vzIVf7/8Jn+/Ezh/v3ZIf78nWH+/JGd/v251f78Fg3+/6I9/vxmcf7+Vp3+/X7J/v3S8f7/XxX+/hc5/v4HWf7/I3X+/XeR/vz3qf79q73+/4/N/v6n3f7+7+n+/Gf1/v8T+f7+7/3+/+v9/Pzn+fz+p+X8/S/J/Px7ofz8j238/Wct/P8G4fz9bo38/KIt/Pydwfz9aUn8/vzF/P1gOfz8l6H4/Jr9+P1yTfj/IZH4/aTN+P0H/fT9PyH0/lo59PxRSfT/LEn0/vNB8P+eLfD9NRHw/7/l7P82sez/pXHs/Qwp7P920ej+2XHo/0QF6Py6keT/OQ3k/suB4P9x6eD9MEng/BKd3PwQ5dz9PyHY/5FR2P8bedT/2ZXU/dep0P0RsdD9l63M/2mdzP6Phcj/CWHI/Oc1xPwk/cT80rnA/uxpwP6CEbz/k624/ilBuP5OybT8BEm0/1W5sPxHJaz+3IGs/yXVqP0nIaT85GGk/m2VoP2+wZz+6+GY/fD5mP7iBZT9vwmQ/pABkP1o8Yz+RdWI/TKxhP47gYD9ZEmA/rkFfP5FuXj8DmV0/CMFcP6DmWz/PCVs/mCpaP/tIWT/9ZFg/n35XP+WVVj/QqlU/Y71UP6HNUz+M21I/J+dRP3XwUD95908/NPxOP6v+TT/f/kw/1PxLP4z4Sj8K8kk/UulIP2XeRz9H0UY/+8FFP4SwRD/lnEM/IIdCPzpvQT80VUA/Ezk/P9gaPj+I+jw/Jtg7P7SzOj82jTk/r2Q4PyI6Nz+TDTY/Bd80P3yuMz/5ezI/gkcxPxkRMD/C2C4/f54tP1ZiLD9IJCs/WuQpP5CiKD/rXic/cRkmPyXSJD8JiSM/Iz4iP3XxID8Eox8/0lIeP+QAHT89rRs/4VcaP9MAGT8ZqBc/tE0WP6rxFD/9kxM/sjQSP8zTED9QcQ8/Qg0OP6SnDD98QAs/zdcJP5ptCD/pAQc/vZQFPxkmBD8DtgI/fkQBPxyj/z5uuvw++s75Psrg9j7k7/M+UfzwPhoG7j5HDes+4BHoPu0T5T53E+I+hxDfPiQL3D5YA9k+KvnVPqTs0j7N3c8+r8zMPlK5yT6/o8Y+/ovDPhhywD4WVr0+ADi6PuAXtz699bM+odGwPpWrrT6ig6o+z1mnPicupD6yAKE+edGdPoWgmj7fbZc+jzmUPqADkT4azI0+BZOKPmtYhz5WHIQ+zd6APrY/ez4Qv3Q+uztuPsm1Zz5NLWE+WaJaPv8UVD5RhU0+Y/NGPkZfQD4NyTk+yjAzPpCWLD5y+iU+glwfPtK8GD52GxI+f3gLPgHUBD4dXPw9cg3vPSm84T1maNQ9ThLHPQi6uT24X6w9hAOfPZKlkT0HRoQ9EsptPXoFUz2RPjg9pHUdPfyqAj3Kvc88ViOaPGEOSTzFp7s7PXpWuglG8bsS3WO8UIqnvEEk3bzjXQm9IygkvZbwPr3ytlm96np0vRqeh71C/ZS9yFqivYa2r71XEL29FmjKvZu9173DEOW9aWHyvWWv/71KfQa+aCENvvrDE77tZBq+LgQhvqyhJ75TPS6+ENc0vtJuO76GBEK+GZhIvnkpT76UuFW+VkVcvq7PYr6JV2m+1txvvoBfdr5433y+VK6BvoHrhL44J4i+cmGLviSajr5F0ZG+zQaVvrM6mL7ubJu+dJ2evj3Mob5A+aS+cySovs9Nq75Jda6+2pqxvni+tL4b4Le+uv+6vksdvr7HOMG+JVLEvltpx75hfsq+MJHNvryh0L4AsNO+8bvWvofF2b66zNy+gdHfvtPT4r6p0+W++tDovr3L677qw+6+eLnxvmCs9L6anPe+HIr6vt90/b5tLgC/A6EBvy0SA7/mgQS/LPAFv/pcB79MyAi/HjIKv2yaC78yAQ2/bGYOvxfKD78tLBG/rIwSv5DrE7/VSBW/dqQWv3H+F7/AVhm/Yq0av1ECHL+KVR2/Cacev8v2H7/MRCG/CZEiv3zbI78kJCW//WomvwKwJ78w8yi/hDQqv/pzK7+PsSy/P+0tvwcnL7/jXjC/0JQxv8rIMr/O+jO/2io1v+hYNr/3hDe/Aq84vwfXOb8D/Tq/8SA8v89CPb+aYj6/T4A/v+mbQL9otUG/xsxCvwHiQ78X9US/AwZGv8QUR79WIUi/titJv+EzSr/UOUu/jT1Mvwk/Tb9EPk6/PTtPv/A1UL9aLlG/eSRSv0oYU7/KCVS/9/hUv87lVb9N0Fa/cLhXvzeeWL+cgVm/oGJavz5BW791HVy/Qfdcv6LOXb+Uo16/FHZfvyJGYL+6E2G/2d5hv3+nYr+pbWO/VDFkv37yZL8msWW/SW1mv+UmZ7/43We/gJJov3tEab/o82m/w6BqvwxLa7/A8mu/3pdsv2Q6bb9Q2m2/oHduv1MSb79mqm+/2T9wv6nScL/VYnG/W/Bxvzp7cr9xA3O//Yhzv94LdL8RjHS/lgl1v2uEdb+P/HW/AHJ2v73kdr/GVHe/GMJ3v7IseL+TlHi/u/l4vyhceb/Zu3m/zRh6vwJzer95ynq/Lx97vyRxe79YwHu/yQx8v3ZWfL9fnXy/guF8v+Aifb93YX2/R519v0/Wfb+ODH6/BEB+v7Bwfr+Snn6/qcl+v/Xxfr91F3+/KTp/vxBaf78rd3+/eJF/v/iof7+qvX+/j89/v6Xef7/t6n+/ZvR/vxH7f7/t/n+/6v9/P+X4fz+m5n8/Lcl/P3ygfz+VbH8/eS1/Pyzjfj+xjX4/Cy1+Pz/BfT9SSn0/SMh8Pyg7fD/3ons/vf96P4BRej9ImHk/HtR4PwkFeD8TK3c/RkZ2P6xWdT9OXHQ/OFdzP3ZHcj8TLXE/HAhwP57Ybj+lnm0/QFpsP34Laz9rsmk/GU9oP5bhZj/yaWU/PuhjP4tcYj/qxmA/bSdfPyZ+XT8oy1s/hQ5aP1NIWD+jeFY/i59UPyC9Uj920VA/o9xOP73eTD/b10o/E8hIP3yvRj8ujkQ/QWRCP84xQD/s9j0/tLM7P0JoOT+tFDc/ELk0P4ZVMj8p6i8/FXctP2X8Kj81eig/ofAlP8ZfIz/AxyA/rCgeP6mCGz/U1Rg/SiIWPypoEz+TpxA/pOANP3sTCz85QAg//WYFP+eHAj8tRv8+W3H5PpeR8z4kp+0+RbLnPjyz4T5Mqts+upfVPsl7zz6+Vsk+3yjDPnDyvD63s7Y++2ywPoEeqj6SyKM+c2udPmwHlz7FnJA+xyuKPrm0gz7Hb3o+IWttPhFcYD4pQ1M+/SBGPiD2OD4mwys+pIgePi1HET5X/wM+bmPtPcK90j3aDrg93ledPfuZgj28rE89ZRwaPZkKyTwqpzs8wXjWui1EcbxX1+O8TIEnvZQPXb0VSom9WgakvW27vr0iaNm9Tgv0veNRB74vmBS+99chvqUQL76mQTy+ZGpJvk2KVr7NoGO+UK1wvkWvfb4NU4W+nsiLvg04kr4SoZi+ZgOfvr9epb7Ysqu+af+xvitEuL7YgL6+KrXEvtvgyr6lA9G+RR3XvnUt3b7xM+O+djDpvsAi776NCvW+m+f6vtNcAL84QAO/2x0Gv5v1CL9axwu/95IOv1RYEb9QFxS/zc8Wv6yBGb/QLBy/GtEev21uIb+rBCS/t5Mmv3QbKb/Hmyu/kxQuv7uFML8m7zK/t1A1v1WqN7/j+zm/SkU8v26GPr83v0C/i+9Cv1MXRb91Nke/2kxJv2taS78QX02/s1pPvz5NUb+aNlO/sxZVv3LtVr/Fuli/lX5av9A4XL9i6V2/OJBfv0AtYb9nwGK/nElkv87IZb/rPWe/46hov6cJar8nYGu/VKxsvx/ubb96JW+/WFJwv6t0cb9njHK/f5lzv+ebdL+Vk3W/foB2v5Zid7/UOXi/LwZ5v57Heb8Xfnq/lCl7vw3Ke796X3y/1el8vxhpfb8+3X2/QEZ+vxykfr/M9n6/TT5/v5x6f7+2q3+/mdF/v0Psf7+0+3+/pv9/P5Tjfz+cmn8/zCR/PziCfj/9sn0/P7d8PyqPez/zOno/1Lp4PxEPdz/2N3U/1TVzPwgJcT/xsW4/+TBsP5CGaT8vs2Y/U7djP4STYD9OSF0/RdZZPwM+Vj8rgFI/ZZ1OP16WSj/Ma0Y/ah5CP/muPT9AHjk/DW00PzKcLz+HrCo/654lPz90ID9tLRs/YcsVPw1PED9ouQo/awsFPy6M/j7d1PI+8fLmPn/o2j6mt84+iGLCPk7rtT4qVKk+UZ+cPv3Ojz5t5YI+zslrPmKfUT4wUDc+0+AcPvFVAj5iaM89fACaPST7SD0bpLs883dWu2Q98by7wGO9Z12nvRS93L0D+wi+c38jvjTnPb6kLVi+Jk5yvhIihr6JBZO+NM+fvtV8rL4zDLm+GnvFvlvH0b7N7t2+UO/pvsfG9b6QuQC/JnkGvyQhDL+NsBG/ZiYXv7qBHL+YwSG/FeUmv0rrK79W0zC/W5w1v4NFOr/9zT6//DRDv7x5R799m0u/hJlPvx9zU7+hJ1e/Y7Zav8YeXr8wYGG/D3pkv9hrZ78HNWq/H9Vsv6lLb783mHG/Yrpzv8mxdb8Wfne/9h55vyGUer9V3Xu/Wfp8v/rqfb8Or36/dEZ/vw+xf7/O7n+//////////////////////wAAAAAAAAAAKQApACkAUgBSAHsApADIAN4AAAAAAAAAAAAAAAAAAAAAACkAKQApACkAewB7AHsApACkAPAACgEbAScBKQApACkAKQApACkAKQApAHsAewB7AHsA8ADwAPAACgEKATEBPgFIAVABewB7AHsAewB7AHsAewB7APAA8ADwAPAAMQExATEBPgE+AVcBXwFmAWwB8ADwAPAA8ADwAPAA8ADwADEBMQExATEBVwFXAVcBXwFfAXIBeAF+AYMBAAAAAAAAAAAAAAAAAAAoBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBygPFxwfIiQmJykqKywtLi8vMTIzNDU2Nzc5Ojs8PT4/P0FCQ0RFRkdHKBQhKTA1OT1AQkVHSUtMTlBSVVdZW1xeYGJlZ2lrbG5wcnV3eXt8foAoFyczPENJT1NXW15hZGZpa29zdnl8foGDh4uOkZSWmZufo6aprK6xsyMcMUFOWWNrcnh+hIiNkZWZn6WrsLS5vcDHzdPY3OHl6O/1+xUhOk9hcH2JlJ2mrra9w8nP2ePr8/sRIz9WanuLmKWxu8XO1t7m7foZHzdLW2l1gIqSmqGorrS5vsjQ197l6/D1/xAkQVlugJCfrbnEz9ni6vL6CylKZ4CXrL/R4fH/CStPboqjus/j9gwnR2N7kKS2xtbk8f0JLFFxjqjA1uv/BzFaf6C/3PcGM1+GqsvqBy9Xe5u41O0GNGGJrtDwBTlql8DnBTtvnsrzBTdnk7vgBTxxoc74BEF6r+AEQ3+26gAAAAAAAAAA4ODg4ODg4OCgoKCgubm5srKohj0l4ODg4ODg4ODw8PDwz8/Pxsa3kEIooKCgoKCgoKC5ubm5wcHBt7esikAm8PDw8PDw8PDPz8/PzMzMwcG0j0Ioubm5ubm5ubnBwcHBwcHBt7esikEnz8/Pz8/Pz8/MzMzMycnJvLywjUIowcHBwcHBwcHBwcHBwsLCuLiti0EnzMzMzMzMzMzJycnJxsbGu7uvjEIoAAAAAAAAAAAAAAwAGAAkADAABAAQABwAKAA0AAgAFAAgACwAOAABAA0AGQAlADEABQARAB0AKQA1AAkAFQAhAC0AOQACAA4AGgAmADIABgASAB4AKgA2AAoAFgAiAC4AOgADAA8AGwAnADMABwATAB8AKwA3AAsAFwAjAC8AOwAAAAAAAAAAAAAAgD8AAACAY/p/P791VryL6X8/CnHWvHnNfz/nziC9L6Z/PzpeVr2vc38/E/KFvfk1fz8qr6C9Eu1+PzNlu739mH4/BBPWvbw5fj9zt/C9Vc99P6ioBb7LWX0/u+8SviXZfD9cMCC+Z018P/VpLb6Ytns/85s6vr4Uez/CxUe+4md6P83mVL4JsHk/gv5hvjzteD9NDG++hB94P5wPfL7qRnc/7oOEvndjdj8++oq+NnV1P3Vqkb4wfHQ/TNSXvnF4cz96N56+A2pyP7eTpL70UHE/vOiqvk8tcD9BNrG+If9uPwF8t752xm0/tLm9vl6DbD8V78O+5zVrP94byr4e3mk/yT/QvhJ8aD+SWta+1A9nP/Nr3L50mWU/qnPivgEZZD9xcei+jY5iPwdl7r4o+mA/J070vuZbXz+QLPq+17NdPwAAAL8PAlw/G+QCv6BGWj93wgW/noFYP/aaCL8ds1Y/d20LvzHbVD/aOQ6/7/lSPwAAEb9sD1E/yr8Tv70bTz8YeRa/+B5NP80rGb80GUs/ytcbv4gKST/xfB6/CvNGPyQbIb/R0kQ/RrIjv/epQj86Qia/k3hAP+PKKL+9Pj4/JUwrv4/8Oz/jxS2/IrI5PwE4ML+QXzc/ZaIyv/MENT/zBDW/ZaIyP5BfN78BODA/IrI5v+PFLT+P/Du/JUwrP70+Pr/jyig/k3hAvzpCJj/3qUK/RrIjP9HSRL8kGyE/CvNGv/F8Hj+ICkm/ytcbPzQZS7/NKxk/+B5Nvxh5Fj+9G0+/yr8TP2wPUb8AABE/7/lSv9o5Dj8x21S/d20LPx2zVr/2mgg/noFYv3fCBT+gRlq/G+QCPw8CXL8AAAA/17Ndv5As+j7mW1+/J070Pij6YL8HZe4+jY5iv3Fx6D4BGWS/qnPiPnSZZb/za9w+1A9nv5Ja1j4SfGi/yT/QPh7eab/eG8o+5zVrvxXvwz5eg2y/tLm9PnbGbb8BfLc+If9uv0E2sT5PLXC/vOiqPvRQcb+3k6Q+A2pyv3o3nj5xeHO/TNSXPjB8dL91apE+NnV1vz76ij53Y3a/7oOEPupGd7+cD3w+hB94v00Mbz487Xi/gv5hPgmweb/N5lQ+4md6v8LFRz6+FHu/85s6Ppi2e7/1aS0+Z018v1wwID4l2Xy/u+8SPstZfb+oqAU+Vc99v3O38D28OX6/BBPWPf2Yfr8zZbs9Eu1+vyqvoD35NX+/E/KFPa9zf786XlY9L6Z/v+fOID15zX+/CnHWPIvpf7+/dVY8Y/p/vwAwjSQAAIC/v3VWvGP6f78Kcda8i+l/v+fOIL15zX+/Ol5WvS+mf78T8oW9r3N/vyqvoL35NX+/M2W7vRLtfr8EE9a9/Zh+v3O38L28OX6/qKgFvlXPfb+77xK+y1l9v1wwIL4l2Xy/9WktvmdNfL/zmzq+mLZ7v8LFR76+FHu/zeZUvuJner+C/mG+CbB5v00Mb7487Xi/nA98voQfeL/ug4S+6kZ3vz76ir53Y3a/dWqRvjZ1db9M1Je+MHx0v3o3nr5xeHO/t5OkvgNqcr+86Kq+9FBxv0E2sb5PLXC/AXy3viH/br+0ub2+dsZtvxXvw75eg2y/3hvKvuc1a7/JP9C+Ht5pv5Ja1r4SfGi/82vcvtQPZ7+qc+K+dJllv3Fx6L4BGWS/B2Xuvo2OYr8nTvS+KPpgv5As+r7mW1+/AAAAv9ezXb8b5AK/DwJcv3fCBb+gRlq/9poIv56BWL93bQu/HbNWv9o5Dr8x21S/AAARv+/5Ur/KvxO/bA9Rvxh5Fr+9G0+/zSsZv/geTb/K1xu/NBlLv/F8Hr+ICkm/JBshvwrzRr9GsiO/0dJEvzpCJr/3qUK/48oov5N4QL8lTCu/vT4+v+PFLb+P/Du/ATgwvyKyOb9lojK/kF83v/MENb/zBDW/kF83v2WiMr8isjm/ATgwv4/8O7/jxS2/vT4+vyVMK7+TeEC/48oov/epQr86Qia/0dJEv0ayI78K80a/JBshv4gKSb/xfB6/NBlLv8rXG7/4Hk2/zSsZv70bT78YeRa/bA9Rv8q/E7/v+VK/AAARvzHbVL/aOQ6/HbNWv3dtC7+egVi/9poIv6BGWr93wgW/DwJcvxvkAr/Xs12/AAAAv+ZbX7+QLPq+KPpgvydO9L6NjmK/B2XuvgEZZL9xcei+dJllv6pz4r7UD2e/82vcvhJ8aL+SWta+Ht5pv8k/0L7nNWu/3hvKvl6DbL8V78O+dsZtv7S5vb4h/26/AXy3vk8tcL9BNrG+9FBxv7zoqr4DanK/t5OkvnF4c796N56+MHx0v0zUl742dXW/dWqRvndjdr8++oq+6kZ3v+6DhL6EH3i/nA98vjzteL9NDG++CbB5v4L+Yb7iZ3q/zeZUvr4Ue7/CxUe+mLZ7v/ObOr5nTXy/9WktviXZfL9cMCC+y1l9v7vvEr5Vz32/qKgFvrw5fr9zt/C9/Zh+vwQT1r0S7X6/M2W7vfk1f78qr6C9r3N/vxPyhb0vpn+/Ol5WvXnNf7/nziC9i+l/vwpx1rxj+n+/v3VWvAAAgL8AMA2lY/p/v791VjyL6X+/CnHWPHnNf7/nziA9L6Z/vzpeVj2vc3+/E/KFPfk1f78qr6A9Eu1+vzNluz39mH6/BBPWPbw5fr9zt/A9Vc99v6ioBT7LWX2/u+8SPiXZfL9cMCA+Z018v/VpLT6Ytnu/85s6Pr4Ue7/CxUc+4md6v83mVD4JsHm/gv5hPjzteL9NDG8+hB94v5wPfD7qRne/7oOEPndjdr8++oo+NnV1v3VqkT4wfHS/TNSXPnF4c796N54+A2pyv7eTpD70UHG/vOiqPk8tcL9BNrE+If9uvwF8tz52xm2/tLm9Pl6DbL8V78M+5zVrv94byj4e3mm/yT/QPhJ8aL+SWtY+1A9nv/Nr3D50mWW/qnPiPgEZZL9xceg+jY5ivwdl7j4o+mC/J070PuZbX7+QLPo+17NdvwAAAD8PAly/G+QCP6BGWr93wgU/noFYv/aaCD8ds1a/d20LPzHbVL/aOQ4/7/lSvwAAET9sD1G/yr8TP70bT78YeRY/+B5Nv80rGT80GUu/ytcbP4gKSb/xfB4/CvNGvyQbIT/R0kS/RrIjP/epQr86QiY/k3hAv+PKKD+9Pj6/JUwrP4/8O7/jxS0/IrI5vwE4MD+QXze/ZaIyP/MENb/zBDU/ZaIyv5BfNz8BODC/IrI5P+PFLb+P/Ds/JUwrv70+Pj/jyii/k3hAPzpCJr/3qUI/RrIjv9HSRD8kGyG/CvNGP/F8Hr+ICkk/ytcbvzQZSz/NKxm/+B5NPxh5Fr+9G08/yr8Tv2wPUT8AABG/7/lSP9o5Dr8x21Q/d20Lvx2zVj/2mgi/noFYP3fCBb+gRlo/G+QCvw8CXD8AAAC/17NdP5As+r7mW18/J070vij6YD8HZe6+jY5iP3Fx6L4BGWQ/qnPivnSZZT/za9y+1A9nP5Ja1r4SfGg/yT/Qvh7eaT/eG8q+5zVrPxXvw75eg2w/tLm9vnbGbT8BfLe+If9uP0E2sb5PLXA/vOiqvvRQcT+3k6S+A2pyP3o3nr5xeHM/TNSXvjB8dD91apG+NnV1Pz76ir53Y3Y/7oOEvupGdz+cD3y+hB94P00Mb7487Xg/gv5hvgmweT/N5lS+4md6P8LFR76+FHs/85s6vpi2ez/1aS2+Z018P1wwIL4l2Xw/u+8SvstZfT+oqAW+Vc99P3O38L28OX4/BBPWvf2Yfj8zZbu9Eu1+PyqvoL35NX8/E/KFva9zfz86Xla9L6Z/P+fOIL15zX8/CnHWvIvpfz+/dVa8Y/p/PwDIU6UAAIA/v3VWPGP6fz8KcdY8i+l/P+fOID15zX8/Ol5WPS+mfz8T8oU9r3N/PyqvoD35NX8/M2W7PRLtfj8EE9Y9/Zh+P3O38D28OX4/qKgFPlXPfT+77xI+y1l9P1wwID4l2Xw/9WktPmdNfD/zmzo+mLZ7P8LFRz6+FHs/zeZUPuJnej+C/mE+CbB5P00Mbz487Xg/nA98PoQfeD/ug4Q+6kZ3Pz76ij53Y3Y/dWqRPjZ1dT9M1Jc+MHx0P3o3nj5xeHM/t5OkPgNqcj+86Ko+9FBxP0E2sT5PLXA/AXy3PiH/bj+0ub0+dsZtPxXvwz5eg2w/3hvKPuc1az/JP9A+Ht5pP5Ja1j4SfGg/82vcPtQPZz+qc+I+dJllP3Fx6D4BGWQ/B2XuPo2OYj8nTvQ+KPpgP5As+j7mW18/AAAAP9ezXT8b5AI/DwJcP3fCBT+gRlo/9poIP56BWD93bQs/HbNWP9o5Dj8x21Q/AAARP+/5Uj/KvxM/bA9RPxh5Fj+9G08/zSsZP/geTT/K1xs/NBlLP/F8Hj+ICkk/JBshPwrzRj9GsiM/0dJEPzpCJj/3qUI/48ooP5N4QD8lTCs/vT4+P+PFLT+P/Ds/ATgwPyKyOT9lojI/kF83P/MENT/zBDU/kF83P2WiMj8isjk/ATgwP4/8Oz/jxS0/vT4+PyVMKz+TeEA/48ooP/epQj86QiY/0dJEP0ayIz8K80Y/JBshP4gKST/xfB4/NBlLP8rXGz/4Hk0/zSsZP70bTz8YeRY/bA9RP8q/Ez/v+VI/AAARPzHbVD/aOQ4/HbNWP3dtCz+egVg/9poIP6BGWj93wgU/DwJcPxvkAj/Xs10/AAAAP+ZbXz+QLPo+KPpgPydO9D6NjmI/B2XuPgEZZD9xceg+dJllP6pz4j7UD2c/82vcPhJ8aD+SWtY+Ht5pP8k/0D7nNWs/3hvKPl6DbD8V78M+dsZtP7S5vT4h/24/AXy3Pk8tcD9BNrE+9FBxP7zoqj4DanI/t5OkPnF4cz96N54+MHx0P0zUlz42dXU/dWqRPndjdj8++oo+6kZ3P+6DhD6EH3g/nA98PjzteD9NDG8+CbB5P4L+YT7iZ3o/zeZUPr4Uez/CxUc+mLZ7P/ObOj5nTXw/9WktPiXZfD9cMCA+y1l9P7vvEj5Vz30/qKgFPrw5fj9zt/A9/Zh+PwQT1j0S7X4/M2W7Pfk1fz8qr6A9r3N/PxPyhT0vpn8/Ol5WPXnNfz/nziA9i+l/Pwpx1jxj+n8/v3VWPAAAGAAwAEgAYAAIACAAOABQAGgAEAAoAEAAWABwAAQAHAA0AEwAZAAMACQAPABUAGwAFAAsAEQAXAB0AAEAGQAxAEkAYQAJACEAOQBRAGkAEQApAEEAWQBxAAUAHQA1AE0AZQANACUAPQBVAG0AFQAtAEUAXQB1AAIAGgAyAEoAYgAKACIAOgBSAGoAEgAqAEIAWgByAAYAHgA2AE4AZgAOACYAPgBWAG4AFgAuAEYAXgB2AAMAGwAzAEsAYwALACMAOwBTAGsAEwArAEMAWwBzAAcAHwA3AE8AZwAPACcAPwBXAG8AFwAvAEcAXwB3AAAAMABgAJAAwAAQAEAAcACgANAAIABQAIAAsADgAAQANABkAJQAxAAUAEQAdACkANQAJABUAIQAtADkAAgAOABoAJgAyAAYAEgAeACoANgAKABYAIgAuADoAAwAPABsAJwAzAAcAEwAfACsANwALABcAIwAvADsAAEAMQBhAJEAwQARAEEAcQChANEAIQBRAIEAsQDhAAUANQBlAJUAxQAVAEUAdQClANUAJQBVAIUAtQDlAAkAOQBpAJkAyQAZAEkAeQCpANkAKQBZAIkAuQDpAA0APQBtAJ0AzQAdAE0AfQCtAN0ALQBdAI0AvQDtAAIAMgBiAJIAwgASAEIAcgCiANIAIgBSAIIAsgDiAAYANgBmAJYAxgAWAEYAdgCmANYAJgBWAIYAtgDmAAoAOgBqAJoAygAaAEoAegCqANoAKgBaAIoAugDqAA4APgBuAJ4AzgAeAE4AfgCuAN4ALgBeAI4AvgDuAAMAMwBjAJMAwwATAEMAcwCjANMAIwBTAIMAswDjAAcANwBnAJcAxwAXAEcAdwCnANcAJwBXAIcAtwDnAAsAOwBrAJsAywAbAEsAewCrANsAKwBbAIsAuwDrAA8APwBvAJ8AzwAfAE8AfwCvAN8ALwBfAI8AvwDvAAAAYADAACABgAEgAIAA4ABAAaABQACgAAABYAHAAQgAaADIACgBiAEoAIgA6ABIAagBSACoAAgBaAHIARAAcADQADABkAEwAJAA8ABQAbABUACwABABcAHQARgAeADYADgBmAE4AJgA+ABYAbgBWAC4ABgBeAHYAQQAZADEACQBhAEkAIQA5ABEAaQBRACkAAQBZAHEAQwAbADMACwBjAEsAIwA7ABMAawBTACsAAwBbAHMARQAdADUADQBlAE0AJQA9ABUAbQBVAC0ABQBdAHUARwAfADcADwBnAE8AJwA/ABcAbwBXAC8ABwBfAHcAQEAYQDBACEBgQEhAIEA4QBBAaEBQQChAAEBYQHBAQkAaQDJACkBiQEpAIkA6QBJAakBSQCpAAkBaQHJAREAcQDRADEBkQExAJEA8QBRAbEBUQCxABEBcQHRARkAeQDZADkBmQE5AJkA+QBZAbkBWQC5ABkBeQHZAQUAZQDFACUBhQElAIUA5QBFAaUBRQClAAUBZQHFAQ0AbQDNAC0BjQEtAI0A7QBNAa0BTQCtAA0BbQHNARUAdQDVADUBlQE1AJUA9QBVAbUBVQC1ABUBdQHVAR0AfQDdAD0BnQE9AJ0A/QBdAb0BXQC9AB0BfQHdAQIAYgDCACIBggEiAIIA4gBCAaIBQgCiAAIBYgHCAQoAagDKACoBigEqAIoA6gBKAaoBSgCqAAoBagHKARIAcgDSADIBkgEyAJIA8gBSAbIBUgCyABIBcgHSARoAegDaADoBmgE6AJoA+gBaAboBWgC6ABoBegHaAQYAZgDGACYBhgEmAIYA5gBGAaYBRgCmAAYBZgHGAQ4AbgDOAC4BjgEuAI4A7gBOAa4BTgCuAA4BbgHOARYAdgDWADYBlgE2AJYA9gBWAbYBVgC2ABYBdgHWAR4AfgDeAD4BngE+AJ4A/gBeAb4BXgC+AB4BfgHeAQMAYwDDACMBgwEjAIMA4wBDAaMBQwCjAAMBYwHDAQsAawDLACsBiwErAIsA6wBLAasBSwCrAAsBawHLARMAcwDTADMBkwEzAJMA8wBTAbMBUwCzABMBcwHTARsAewDbADsBmwE7AJsA+wBbAbsBWwC7ABsBewHbAQcAZwDHACcB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";var tempDoublePtr=STATICTOP;STATICTOP+=16;var _llvm_cos_f64=Math_cos;var _llvm_exp_f64=Math_exp;var _llvm_fabs_f32=Math_abs;var _llvm_floor_f32=Math_floor;var _llvm_floor_f64=Math_floor;var _llvm_sqrt_f32=Math_sqrt;var _llvm_sqrt_f64=Math_sqrt;function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);stackRestore(ret)}function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(stackSave());return self.LLVM_SAVEDSTACKS.length-1}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;var ASSERTIONS=false;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:(function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output});function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==="boolean"&&ENVIRONMENT_IS_NODE){var buf;try{buf=Buffer.from(s,"base64")}catch(_){buf=new Buffer(s,"base64")}return new Uint8Array(buf.buffer,buf.byteOffset,buf.byteLength)}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error("Converting base64 string to bytes failed.")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"___setErrNo":___setErrNo,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_llvm_cos_f64":_llvm_cos_f64,"_llvm_exp_f64":_llvm_exp_f64,"_llvm_fabs_f32":_llvm_fabs_f32,"_llvm_floor_f32":_llvm_floor_f32,"_llvm_floor_f64":_llvm_floor_f64,"_llvm_sqrt_f32":_llvm_sqrt_f32,"_llvm_sqrt_f64":_llvm_sqrt_f64,"_llvm_stackrestore":_llvm_stackrestore,"_llvm_stacksave":_llvm_stacksave,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};// EMSCRIPTEN_START_ASM
var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0;var y=0;var z=global.Math.floor;var A=global.Math.abs;var B=global.Math.sqrt;var C=global.Math.pow;var D=global.Math.cos;var E=global.Math.sin;var F=global.Math.tan;var G=global.Math.acos;var H=global.Math.asin;var I=global.Math.atan;var J=global.Math.atan2;var K=global.Math.exp;var L=global.Math.log;var M=global.Math.ceil;var N=global.Math.imul;var O=global.Math.min;var P=global.Math.max;var Q=global.Math.clz32;var R=env.abort;var S=env.assert;var T=env.enlargeMemory;var U=env.getTotalMemory;var V=env.abortOnCannotGrowMemory;var W=env.___setErrNo;var X=env._emscripten_memcpy_big;var Y=env._llvm_cos_f64;var Z=env._llvm_exp_f64;var _=env._llvm_fabs_f32;var $=env._llvm_floor_f32;var aa=env._llvm_floor_f64;var ba=env._llvm_sqrt_f32;var ca=env._llvm_sqrt_f64;var da=env._llvm_stackrestore;var ea=env._llvm_stacksave;var fa=0.0;
// EMSCRIPTEN_START_FUNCS
function ga(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function ha(){return l|0}function ia(a){a=a|0;l=a}function ja(a,b){a=a|0;b=b|0;l=a;m=b}function ka(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function la(a){a=a|0;y=a}function ma(){return y|0}function na(a){a=a|0;return (N(a,1664525)|0)+1013904223|0}function oa(a,c,d,e,f,h,i,j,k,l){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0.0,n=0,o=0,p=0,q=0;q=N(c,j)|0;c=N(b[a+(i<<1)>>1]|0,j)|0;if((k|0)!=1){p=(q|0)/(k|0)|0;c=(c|0)<(p|0)?c:p}o=(l|0)==0;p=o?i:0;n=o?h:0;o=o?c:0;i=a+(n<<1)|0;h=b[i>>1]|0;l=N(h<<16>>16,j)|0;k=e;c=0;while(1){if((c|0)>=(N(h<<16>>16,j)|0))break;g[k>>2]=0.0;k=k+4|0;c=c+1|0;h=b[i>>1]|0}d=d+(l<<2)|0;c=n;while(1){if((c|0)>=(p|0))break;i=N(b[a+(c<<1)>>1]|0,j)|0;l=c+1|0;h=N(b[a+(l<<1)>>1]|0,j)|0;m=+K(+((+g[f+(c<<2)>>2]+ +g[19920+(c<<2)>>2])*.6931471805599453));c=d;do{d=c;c=c+4|0;n=k;k=k+4|0;g[n>>2]=+g[d>>2]*m;i=i+1|0}while((i|0)<(h|0));d=c;c=l}ne(e+(o<<2)|0,0,q-o<<2|0)|0;return}function pa(a,e,f,h,i,j,k,l,m,n,o,p,q){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,C=0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,L=0;J=a+32|0;F=a+8|0;G=(i|0)==1;H=(h|0)==3;I=1<<h;while(1){if((k|0)>=(l|0))break;z=c[J>>2]|0;y=k+1|0;z=(b[z+(y<<1)>>1]|0)-(b[z+(k<<1)>>1]|0)|0;A=+K(+(+((qa((c[p+(k<<2)>>2]|0)+1|0,z)|0)>>>h|0)*-.125*.6931471805599453))*.5;C=z<<h;D=1.0/+B(+(+(C|0)));E=N(k,i)|0;x=0;do{a=c[F>>2]|0;u=(N(x,a)|0)+k|0;r=+g[n+(u<<2)>>2];t=+g[o+(u<<2)>>2];if(G){w=a+k|0;s=+g[n+(w<<2)>>2];r=r>s?r:s;s=+g[o+(w<<2)>>2];if(t>s)s=t}else s=t;r=+g[m+(u<<2)>>2]-(r<s?r:s);r=+K(+(-(r<0.0?0.0:r)*.6931471805599453))*2.0;r=H?r*1.4142135381698608:r;r=(A<r?A:r)*D;v=e+((N(x,j)|0)<<2)|0;v=v+(b[(c[J>>2]|0)+(k<<1)>>1]<<h<<2)|0;w=f+(E+x)|0;s=-r;a=0;u=0;while(1){if((u|0)>=(I|0))break;a:do if(!(1<<u&d[w>>0])){a=0;while(1){if((a|0)>=(z|0)){a=1;break a}L=na(q)|0;g[v+((a<<h)+u<<2)>>2]=(L&32768|0)==0?s:r;a=a+1|0;q=L}}while(0);u=u+1|0}if(a|0)ic(v,C,1.0);x=x+1|0}while((x|0)<(i|0));k=y}return}function qa(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function ra(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0;e=b>>1;f=c<<1;d=0;while(1){if((d|0)>=(c|0))break;b=0;while(1){if((b|0)>=(e|0))break;k=a+((N(f,b)|0)+d<<2)|0;j=+g[k>>2]*.7071067690849304;h=a+((N(b<<1|1,c)|0)+d<<2)|0;i=+g[h>>2]*.7071067690849304;g[k>>2]=j+i;g[h>>2]=j-i;b=b+1|0}d=d+1|0}return}function sa(e,f,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;var z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;ia=l;l=l+48|0;ca=ia;da=c[e+32>>2]|0;ea=(j|0)==0;fa=ea?1:2;ba=(n|0)==0?1:1<<v;X=da+(f<<1)|0;Y=b[X>>1]<<v;z=b[da+((c[e+8>>2]|0)+-1<<1)>>1]<<v;_=(N(fa,z-Y|0)|0)<<2;Z=l;l=l+((1*_|0)+15&-16)|0;_=0-Y|0;$=Z+(z<<2)+(_<<2)|0;c[ca+32>>2]=0;c[ca+24>>2]=u;c[ca>>2]=0;c[ca+12>>2]=q;c[ca+4>>2]=e;aa=ca+36|0;c[aa>>2]=c[x>>2];c[ca+16>>2]=o;c[ca+40>>2]=y;U=ca+8|0;V=h+-1|0;T=u+20|0;Q=u+28|0;R=ca+28|0;S=ca+20|0;O=e+12|0;P=(1<<ba)+-1|0;L=(o|0)!=3;M=(ba|0)>1;o=1;u=0;z=i+(z<<2)|0;H=f;while(1){if((H|0)>=(h|0))break;c[U>>2]=H;D=(H|0)==(V|0);E=da+(H<<1)|0;J=b[E>>1]<<v;y=i+(J<<2)|0;e=ea?0:j+(J<<2)|0;I=H+1|0;J=(b[da+(I<<1)>>1]<<v)-J|0;K=eb(c[T>>2]|0,c[Q>>2]|0)|0;G=t-((H|0)==(f|0)?0:K)|0;n=s-K|0;c[R>>2]=n+-1;if((H|0)<(w|0)?(ga=w-H|0,ga=ta(G,(ga|0)<3?ga:3)|0,ga=(c[m+(H<<2)>>2]|0)+ga|0,ha=(n|0)<(ga|0),!(((ha?n:ga)|0)<16384&((ha?n:ga)|0)<0)):0)F=((ha?n:ga)|0)>16383?16383:ha?n:ga;else F=0;if(((b[E>>1]<<v)-J|0)>=(b[X>>1]<<v|0))u=(o|0)!=0|(u|0)==0?H:u;A=c[r+(H<<2)>>2]|0;c[S>>2]=A;t=(H|0)<(c[O>>2]|0);B=t?y:Z;C=t?e:ea?0:Z;z=D?0:t?z:0;if((u|0)!=0?L|M|(A|0)<0:0){t=(b[da+(u<<1)>>1]<<v)-Y|0;t=(t|0)<(J|0)?0:t-J|0;y=t+Y|0;n=u;do n=n+-1|0;while((b[da+(n<<1)>>1]<<v|0)>(y|0));y=y+J|0;o=u+-1|0;while(1){e=o+1|0;if((b[da+(e<<1)>>1]<<v|0)>=(y|0))break;o=e}e=0;y=0;while(1){A=N(n,fa)|0;y=y|d[k+A>>0];e=e|d[k+(A+fa+-1)>>0];if((n|0)<(o|0))n=n+1|0;else{A=e;e=y;break}}}else{t=-1;A=P;e=P}a:do if(!p)W=27;else{if((H|0)==(q|0)){y=da+(q<<1)|0;n=0;while(1){if((n|0)>=((b[y>>1]<<v)-Y|0)){W=27;break a}W=Z+(n<<2)|0;g[W>>2]=(+g[W>>2]+ +g[$+(n<<2)>>2])*.5;n=n+1|0}}o=(F|0)/2|0;y=(t|0)==-1;n=y?0:Z+(t<<2)|0;if(D){n=ua(ca,B,J,o,ba,n,v,0,1.0,z,e)|0;e=0;y=y?0:$+(t<<2)|0}else{n=ua(ca,B,J,o,ba,n,v,Z+(b[E>>1]<<v<<2)+(_<<2)|0,1.0,z,e)|0;e=$+(b[E>>1]<<v<<2)+(_<<2)|0;y=y?0:$+(t<<2)|0}y=ua(ca,C,J,o,ba,y,v,e,1.0,z,A)|0}while(0);do if((W|0)==27){W=0;y=(t|0)==-1?0:Z+(t<<2)|0;if(!C){if(D)n=0;else n=Z+(b[E>>1]<<v<<2)+(_<<2)|0;n=ua(ca,B,J,F,ba,y,v,n,1.0,z,e|A)|0;p=0;y=n;break}else{if(D)n=0;else n=Z+(b[E>>1]<<v<<2)+(_<<2)|0;n=va(ca,B,C,J,F,ba,y,v,n,z,e|A)|0;p=0;y=n;break}}while(0);o=N(H,fa)|0;a[k+o>>0]=n;a[k+(o+fa+-1)>>0]=y;o=(F|0)>(J<<3|0)&1;t=G+((c[m+(H<<2)>>2]|0)+K)|0;H=I}c[x>>2]=c[aa>>2];l=ia;return}function ta(a,b){a=a|0;b=b|0;return (a|0)/(b|0)|0|0}function ua(b,e,f,h,i,j,k,l,m,n,o){b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=+m;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=(c[b>>2]|0)==0;q=c[b+20>>2]|0;u=(i|0)==1&1;p=qa(f,i)|0;if((f|0)==1){wa(b,e,0,h,l);l=1;return l|0}v=(q|0)>0?q:0;do if(n)if(!j)n=0;else{if((q|0)<1?!((p&1|0)==0&(q|0)!=0|(i|0)>1):0){n=j;break}le(n|0,j|0,f<<2|0)|0}else n=j;while(0);r=(n|0)==0;j=0;while(1){if(j>>>0>=v>>>0)break;if(!t)ra(e,f>>j,1<<j);if(!r)ra(n,f>>j,1<<j);o=(d[16+(o>>4)>>0]|0)<<2|(d[16+(o&15)>>0]|0);j=j+1|0}s=0;j=p<<v;p=i>>v;while(1){if(!((j&1|0)==0&(q|0)<0))break;if(!t)ra(e,j,p);if(!r)ra(n,j,p);i=o|o<<p;s=s+1|0;j=j>>1;q=q+1|0;p=p<<1;o=i}q=(p|0)>1;if(q){if(!t)xa(e,j>>v,p<<v,u);if(!r)xa(n,j>>v,p<<v,u)}o=ya(b,e,f,h,p,n,k,m,o)|0;if(!t){l=o;return l|0}if(q)za(e,j>>v,p<<v,u);n=0;while(1){if((n|0)==(s|0))break;u=p>>1;t=j<<1;ra(e,t,u);o=o|o>>>u;n=n+1|0;j=t;p=u}j=0;while(1){if(j>>>0>=v>>>0)break;u=a[32+o>>0]|0;ra(e,f>>j,1<<j);o=u&255;j=j+1|0}n=p<<v;a:do if(l|0){m=+B(+(+(f|0)));j=0;while(1){if((j|0)>=(f|0))break a;g[l+(j<<2)>>2]=+g[e+(j<<2)>>2]*m;j=j+1|0}}while(0);l=o&(1<<n)+-1;return l|0}function va(a,b,d,e,f,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0,z=0,A=0,B=0.0;A=l;l=l+32|0;o=A+28|0;s=A+24|0;p=A;c[o>>2]=f;c[s>>2]=n;y=(c[a>>2]|0)==0;t=c[a+24>>2]|0;if((e|0)==1){wa(a,b,d,f,k);e=1;l=A;return e|0}Aa(a,p,b,d,e,o,h,h,j,1,s);z=c[p>>2]|0;v=c[p+16>>2]|0;u=c[p+20>>2]|0;x=+(c[p+4>>2]|0)*.000030517578125;w=+(c[p+8>>2]|0)*.000030517578125;do if((e|0)==2){f=c[o>>2]|0;if((v|0)<16384)switch(v|0){case 0:{r=0;break}default:q=5}else switch(v|0){case 16384:{r=0;break}default:q=5}if((q|0)==5)r=8;q=f-r|0;p=(v|0)>8192;o=a+28|0;c[o>>2]=(c[o>>2]|0)-(u+r);o=p?d:b;p=p?b:d;do if(r)if(y){f=pb(t,1)|0;break}else{f=+g[o>>2]*+g[p+4>>2]-+g[o+4>>2]*+g[p>>2]<0.0&1;yb(t,f,1);break}else f=0;while(0);v=1-(f<<1)|0;f=ua(a,o,2,q,h,i,j,k,1.0,m,n)|0;g[p>>2]=+g[o+4>>2]*+(0-v|0);g[p+4>>2]=+g[o>>2]*+(v|0);if(y){g[b>>2]=x*+g[b>>2];m=b+4|0;g[m>>2]=x*+g[m>>2];B=w*+g[d>>2];g[d>>2]=B;y=d+4|0;g[y>>2]=w*+g[y>>2];x=+g[b>>2];g[b>>2]=x-B;g[d>>2]=x+ +g[d>>2];x=+g[m>>2];g[m>>2]=x-+g[y>>2];g[y>>2]=x+ +g[y>>2];break}else{e=f;l=A;return e|0}}else{q=c[o>>2]|0;p=(q-(c[p+12>>2]|0)|0)/2|0;r=(q|0)<(p|0);p=((r?q:p)|0)<0?0:r?q:p;q=q-p|0;r=a+28|0;o=(c[r>>2]|0)-u|0;c[r>>2]=o;f=c[s>>2]|0;if((p|0)<(q|0)){u=ua(a,d,e,q,h,0,j,0,w,0,f>>h)|0;n=q+((c[r>>2]|0)-o)|0;f=u|(ua(a,b,e,p+((n|0)<25|(v|0)==16384?0:n+-24|0)|0,h,i,j,k,1.0,m,f)|0)}else{k=ua(a,b,e,p,h,i,j,k,1.0,m,f)|0;m=p+((c[r>>2]|0)-o)|0;f=k|(ua(a,d,e,q+((m|0)<25|(v|0)==0?0:m+-24|0)|0,h,0,j,0,w,0,f>>h)|0)}if(y){Ja(b,d,x,e);break}else{e=f;l=A;return e|0}}while(0);if(!z){e=f;l=A;return e|0}o=0;while(1){if((o|0)>=(e|0))break;z=d+(o<<2)|0;g[z>>2]=-+g[z>>2];o=o+1|0}l=A;return f|0}function wa(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0;k=(c[a>>2]|0)==0;l=c[a+24>>2]|0;h=(d|0)==0;i=a+28|0;j=h?1:2;if((c[i>>2]|0)>7){if(k)e=pb(l,1)|0;else{e=+g[b>>2]<0.0&1;yb(l,e,1)}c[i>>2]=(c[i>>2]|0)+-8}else e=0;if(k)g[b>>2]=(e|0)==0?1.0:-1.0;if(!h){a=1;do{if((c[i>>2]|0)>7){if(k)e=pb(l,1)|0;else{e=+g[d>>2]<0.0&1;yb(l,e,1)}c[i>>2]=(c[i>>2]|0)+-8}else e=0;if(k)g[d>>2]=(e|0)==0?1.0:-1.0;a=a+1|0}while(a>>>0<j>>>0)}if(!f)return;c[f>>2]=c[b>>2];return}function xa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;k=l;i=N(b,d)|0;j=l;l=l+((1*(i<<2)|0)+15&-16)|0;if(!e){f=0;while(1){if((f|0)>=(d|0))break;g=N(f,b)|0;e=0;while(1){if((e|0)>=(b|0))break;c[j+(g+e<<2)>>2]=c[a+((N(e,d)|0)+f<<2)>>2];e=e+1|0}f=f+1|0}i=i<<2;le(a|0,j|0,i|0)|0;l=k;return}else{h=48+(d<<2)+-8|0;f=0;while(1){if((f|0)>=(d|0))break;g=h+(f<<2)|0;e=0;while(1){if((e|0)>=(b|0))break;m=c[a+((N(e,d)|0)+f<<2)>>2]|0;c[j+((N(c[g>>2]|0,b)|0)+e<<2)>>2]=m;e=e+1|0}f=f+1|0}m=i<<2;le(a|0,j|0,m|0)|0;l=k;return}}function ya(a,e,f,h,i,j,k,m,n){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=+m;n=n|0;var o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=l;l=l+32|0;z=B+28|0;A=B+24|0;y=B;c[z>>2]=h;c[A>>2]=n;u=(c[a>>2]|0)==0;r=c[a+4>>2]|0;t=c[a+8>>2]|0;w=c[a+16>>2]|0;x=c[a+24>>2]|0;o=c[r+100>>2]|0;p=c[r+96>>2]|0;q=c[r+8>>2]|0;C=o+(b[p+((N(k+1|0,q)|0)+t<<1)>>1]|0)|0;if((k|0)!=-1?((f|0)>2?((d[C+(d[C>>0]|0)>>0]|0)+12|0)<(h|0):0):0){w=f>>1;x=e+(w<<2)|0;f=k+-1|0;if((i|0)==1)c[A>>2]=n&1|n<<1;t=i+1>>1;Aa(a,y,e,x,w,z,t,i,f,0,A);o=c[y+12>>2]|0;u=c[y+16>>2]|0;p=c[y+20>>2]|0;v=+(c[y+4>>2]|0)*.000030517578125;s=+(c[y+8>>2]|0)*.000030517578125;do if(!((i|0)<2|(u&16383|0)==0))if((u|0)>8192){o=o-(o>>5-k)|0;break}else{o=o+(w<<3>>6-k)|0;o=(o|0)<0?o:0;break}while(0);h=c[z>>2]|0;q=(h-o|0)/2|0;r=(h|0)<(q|0);q=((r?h:q)|0)<0?0:r?h:q;h=h-q|0;r=a+28|0;o=(c[r>>2]|0)-p|0;c[r>>2]=o;p=(j|0)==0?0:j+(w<<2)|0;if((q|0)<(h|0)){C=c[A>>2]|0;i=(ya(a,x,w,h,t,p,f,s*m,C>>t)|0)<<(i>>1);A=h+((c[r>>2]|0)-o)|0;C=i|(ya(a,e,w,q+((A|0)<25|(u|0)==16384?0:A+-24|0)|0,t,j,f,v*m,C)|0);l=B;return C|0}else{C=c[A>>2]|0;j=ya(a,e,w,q,t,j,f,v*m,C)|0;e=q+((c[r>>2]|0)-o)|0;C=j|(ya(a,x,w,h+((e|0)<25|(u|0)==0?0:e+-24|0)|0,t,p,f,s*m,C>>t)|0)<<(i>>1);l=B;return C|0}}o=Ba(q,p,o,t,k,h)|0;h=Ca(r,t,k,o)|0;q=a+28|0;p=h;h=(c[q>>2]|0)-h|0;while(1){c[q>>2]=h;if(!((h|0)<0&(o|0)>0))break;z=h+p|0;c[q>>2]=z;y=o+-1|0;C=Ca(r,t,k,y)|0;o=y;p=C;h=z-C|0}if(o|0){o=Da(o)|0;if(u){C=gc(e,f,o,w,i,x,m)|0;l=B;return C|0}else{C=bc(e,f,o,w,i,x)|0;l=B;return C|0}}if(!u){C=0;l=B;return C|0}o=(1<<i)+-1|0;p=o&n;c[A>>2]=p;if(!p){ne(e|0,0,f<<2|0)|0;C=0;l=B;return C|0}q=a+36|0;a:do if(!j){p=0;while(1){if((p|0)>=(f|0))break a;C=na(c[q>>2]|0)|0;c[q>>2]=C;g[e+(p<<2)>>2]=+(C>>20|0);p=p+1|0}}else{o=0;while(1){if((o|0)>=(f|0)){o=p;break a}C=na(c[q>>2]|0)|0;c[q>>2]=C;g[e+(o<<2)>>2]=+g[j+(o<<2)>>2]+((C&32768|0)==0?-.00390625:.00390625);o=o+1|0}}while(0);ic(e,f,m);C=o;l=B;return C|0}function za(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;i=N(b,d)|0;j=l;l=l+((1*(i<<2)|0)+15&-16)|0;if(!e){f=0;while(1){if((f|0)>=(d|0))break;g=N(f,b)|0;e=0;while(1){if((e|0)>=(b|0))break;c[j+((N(e,d)|0)+f<<2)>>2]=c[a+(g+e<<2)>>2];e=e+1|0}f=f+1|0}i=i<<2;le(a|0,j|0,i|0)|0;l=k;return}else{h=48+(d<<2)+-8|0;f=0;while(1){if((f|0)>=(d|0))break;g=h+(f<<2)|0;e=0;while(1){if((e|0)>=(b|0))break;c[j+((N(e,d)|0)+f<<2)>>2]=c[a+((N(c[g>>2]|0,b)|0)+e<<2)>>2];e=e+1|0}f=f+1|0}i=i<<2;le(a|0,j|0,i|0)|0;l=k;return}}function Aa(a,d,e,f,h,i,j,k,l,m,n){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|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,w=0,x=0,y=0,z=0;t=c[a>>2]|0;q=c[a+4>>2]|0;r=c[a+8>>2]|0;z=c[a+12>>2]|0;w=c[a+24>>2]|0;s=c[a+32>>2]|0;v=(l<<3)+(b[(c[q+56>>2]|0)+(r<<1)>>1]|0)|0;p=(m|0)==0;o=c[i>>2]|0;v=Ea(h,o,(v>>1)-((h|0)==2&(p^1)?16:4)|0,v,m)|0;v=p|(r|0)<(z|0)?v:1;t=(t|0)==0;if(t)m=0;else m=kc(e,f,m,h)|0;x=w+20|0;y=w+28|0;z=eb(c[x>>2]|0,c[y>>2]|0)|0;a:do if((v|0)==1)if(!p){if(t){l=0;m=o}else{v=(m|0)>8192;l=v&1;b:do if(v){m=0;while(1){if((m|0)>=(h|0))break b;v=f+(m<<2)|0;g[v>>2]=-+g[v>>2];m=m+1|0}}while(0);Fa(c[q+8>>2]|0,e,f,s,r,h);m=c[i>>2]|0}if((m|0)>16?(c[a+28>>2]|0)>16:0)if(t){l=mb(w,2)|0;u=48;break}else{wb(w,l,2);u=48;break}else{l=0;u=48}}else{o=0;u=49}else{if(!t)m=(N(m,v)|0)+8192>>14;do if(!((h|0)>2&(p^1))){if((k|0)>1|p^1){l=v+1|0;if(!t){xb(w,m,l);m=qa(m<<14,v)|0;if(p){o=0;u=49;break a}else break}else{l=ob(w,l)|0;u=31;break}}o=v>>1;k=o+1|0;p=N(k,k)|0;if(t){l=ib(w,p)|0;if((l|0)<((N(o,k)|0)>>1|0)){l=((Hb(l<<3|1)|0)+-1|0)>>>1;o=l+1|0;m=(N(l,o)|0)>>>1}else{l=((v<<1)+2-(Hb((p-l<<3)+-7|0)|0)|0)>>>1;o=v+1-l|0;m=p-((N(o,v+2-l|0)|0)>>1)|0}lb(w,m,m+o|0,p);u=31;break}else{o=(m|0)>(o|0);if(o)l=p-((N(v+1-m|0,v+2-m|0)|0)>>1)|0;else l=(N(m,m+1|0)|0)>>1;rb(w,l,l+(o?v+1-m|0:m+1|0)|0,p);o=0;m=qa(m<<14,v)|0;u=49;break a}}else{k=(v|0)/2|0;p=(k*3|0)+3|0;a=p+k|0;if(!t){l=(m|0)>(k|0);if(l)o=m+-1-k+p|0;else o=m*3|0;rb(w,o,l?m-k+p|0:(m*3|0)+3|0,a);m=qa(m<<14,v)|0;break}l=ib(w,a)|0;if((l|0)<(p|0))l=(l|0)/3|0;else l=k+1+(l-p)|0;m=(l|0)>(k|0);if(m)o=l+-1-k+p|0;else o=l*3|0;lb(w,o,m?l-k+p|0:(l*3|0)+3|0,a);u=31}while(0);if((u|0)==31){o=0;m=qa(l<<14,v)|0;u=49;break}if(!m){Fa(c[q+8>>2]|0,e,f,s,r,h);l=0;u=48;break}else{Ga(e,f,h);o=0;u=49;break}}while(0);c:do if((u|0)==48){h=(eb(c[x>>2]|0,c[y>>2]|0)|0)-z|0;c[i>>2]=(c[i>>2]|0)-h;o=l;m=0;l=h}else if((u|0)==49){l=(eb(c[x>>2]|0,c[y>>2]|0)|0)-z|0;c[i>>2]=(c[i>>2]|0)-l;d:do if((m|0)<16384)switch(m|0){case 0:break c;default:{}}else{switch(m|0){case 16384:break;default:break d}c[n>>2]=c[n>>2]&(1<<j)+-1<<j;h=16384;z=32767;y=0;j=o;i=m;n=l;c[d>>2]=j;j=d+4|0;c[j>>2]=y;j=d+8|0;c[j>>2]=z;j=d+12|0;c[j>>2]=h;j=d+16|0;c[j>>2]=i;j=d+20|0;c[j>>2]=n;return}while(0);y=(Ha(m&65535)|0)<<16>>16;z=(Ha(16384-m&65535)|0)<<16>>16;h=(N((h<<23)+-8388608>>16,(Ia(z,y)|0)<<16>>16)|0)+16384>>15;j=o;i=m;n=l;c[d>>2]=j;j=d+4|0;c[j>>2]=y;j=d+8|0;c[j>>2]=z;j=d+12|0;c[j>>2]=h;j=d+16|0;c[j>>2]=i;j=d+20|0;c[j>>2]=n;return}while(0);c[n>>2]=c[n>>2]&(1<<j)+-1;h=-16384;z=0;y=32767;j=o;i=m;n=l;c[d>>2]=j;j=d+4|0;c[j>>2]=y;j=d+8|0;c[j>>2]=z;j=d+12|0;c[j>>2]=h;j=d+16|0;c[j>>2]=i;j=d+20|0;c[j>>2]=n;return}function Ba(a,c,e,f,g,h){a=a|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;g=e+(b[c+((N(g+1|0,a)|0)+f<<1)>>1]|0)|0;f=h+-1|0;e=d[g>>0]|0;a=0;c=0;while(1){if((c|0)==6)break;h=a+e+1>>1;i=(f|0)>(d[g+h>>0]|0);e=i?e:h;a=i?h:a;c=c+1|0}if(!a)c=-1;else c=d[g+a>>0]|0;return ((f-c|0)>((d[g+e>>0]|0)-f|0)?e:a)|0}function Ca(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;if(!g){g=0;return g|0}g=(d[(c[a+100>>2]|0)+(b[(c[a+96>>2]|0)+((N(f+1|0,c[a+8>>2]|0)|0)+e<<1)>>1]|0)+g>>0]|0)+1|0;return g|0}function Da(a){a=a|0;if((a|0)<8)return a|0;a=(a&7|8)<<(a>>3)+-1;return a|0}function Ea(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;a=(a<<1)+((f|0)!=0&(a|0)==2?-2:-1)|0;a=ta((N(a,d)|0)+c|0,a)|0;f=c-e+-32|0;a=(f|0)<(a|0)?f:a;if((a|0)<=64){if((a|0)<4){f=1;return f|0}}else a=64;f=(b[176+((a&7)<<1)>>1]>>14-(a>>3))+1&-2;return f|0}function Fa(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0.0;h=+g[d+(e<<2)>>2];j=+g[d+(a+e<<2)>>2];i=+B(+(h*h+1.0000000036274937e-15+j*j))+1.0000000036274937e-15;h=h/i;i=j/i;a=0;while(1){if((a|0)>=(f|0))break;e=b+(a<<2)|0;g[e>>2]=h*+g[e>>2]+i*+g[c+(a<<2)>>2];a=a+1|0}return}function Ga(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0,h=0.0,i=0;d=0;while(1){if((d|0)>=(c|0))break;i=a+(d<<2)|0;f=+g[i>>2]*.7071067690849304;e=b+(d<<2)|0;h=+g[e>>2]*.7071067690849304;g[i>>2]=f+h;g[e>>2]=h-f;d=d+1|0}return}function Ha(a){a=a|0;var b=0;b=a<<16>>16;b=((N(b,b)|0)+4096|0)>>>13;a=b<<16>>16;return 32767-b+(((N(a,(((N(a,((N(a,-626)|0)+16384>>15)+8277|0)|0)+16384|0)>>>15<<16)+-501415936>>16)|0)+16384|0)>>>15)+1&65535|0}function Ia(a,b){a=a|0;b=b|0;var c=0,d=0;c=32-(Q(b|0)|0)|0;d=32-(Q(a|0)|0)|0;a=a<<15-d<<16>>16;b=b<<15-c<<16>>16;return (d-c<<11)+((N(a,((N(a,-2597)|0)+16384>>15)+7932|0)|0)+16384>>15)-((N(b,((N(b,-2597)|0)+16384>>15)+7932|0)|0)+16384>>15)|0}function Ja(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0.0,f=0,h=0.0,i=0.0,j=0,k=0,m=0.0,n=0;j=l;l=l+16|0;k=j+4|0;f=j;g[k>>2]=0.0;g[f>>2]=0.0;Ka(b,a,b,d,k,f);h=+g[k>>2]*c;g[k>>2]=h;i=c*c+ +g[f>>2];h=h*2.0;e=i-h;h=i+h;if(h<6.000000284984708e-04|e<6.000000284984708e-04){le(b|0,a|0,d<<2|0)|0;l=j;return}i=1.0/+B(+e);e=1.0/+B(+h);f=0;while(1){if((f|0)>=(d|0))break;n=a+(f<<2)|0;m=+g[n>>2]*c;k=b+(f<<2)|0;h=+g[k>>2];g[n>>2]=i*(m-h);g[k>>2]=e*(m+h);f=f+1|0}l=j;return}function Ka(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0,k=0.0;h=0.0;i=0.0;j=0;while(1){if((j|0)>=(d|0))break;k=+g[a+(j<<2)>>2];h=h+k*+g[c+(j<<2)>>2];i=i+k*+g[b+(j<<2)>>2];j=j+1|0}g[e>>2]=i;g[f>>2]=h;return}function La(a){a=a|0;var b=0;a:do if((a|0)<16e3)if((a|0)<12e3){switch(a|0){case 8e3:break;default:{b=6;break a}}a=6;break}else{switch(a|0){case 12e3:break;default:{b=6;break a}}a=4;break}else{if((a|0)<24e3){switch(a|0){case 16e3:break;default:{b=6;break a}}a=3;break}if((a|0)>=48e3)switch(a|0){case 48e3:{a=1;break a}default:{b=6;break a}}switch(a|0){case 24e3:break;default:{b=6;break a}}a=2}while(0);if((b|0)==6)a=0;return a|0}function Ma(a,b,c,d,e,f,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;h=+h;i=i|0;j=j|0;k=k|0;l=l|0;var 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;if(f==0.0&h==0.0){if((b|0)==(a|0))return;me(a|0,b|0,e<<2|0)|0;return}p=+g[224+(i*12|0)>>2]*f;q=+g[224+(i*12|0)+4>>2]*f;r=+g[224+(i*12|0)+8>>2]*f;s=+g[224+(j*12|0)>>2]*h;t=+g[224+(j*12|0)+4>>2]*h;u=+g[224+(j*12|0)+8>>2]*h;i=f==h&(c|0)==(d|0)&(i|0)==(j|0)?0:l;f=+g[b+(-2-d<<2)>>2];m=+g[b+(~d<<2)>>2];n=+g[b+(0-d<<2)>>2];o=+g[b+(1-d<<2)>>2];l=0;while(1){if((l|0)>=(i|0))break;y=+g[b+(l-d+2<<2)>>2];x=+g[k+(l<<2)>>2];x=x*x;w=1.0-x;j=l-c|0;g[a+(l<<2)>>2]=+g[b+(l<<2)>>2]+w*p*+g[b+(j<<2)>>2]+w*q*(+g[b+(j+1<<2)>>2]+ +g[b+(j+-1<<2)>>2])+w*r*(+g[b+(j+2<<2)>>2]+ +g[b+(j+-2<<2)>>2])+x*s*n+x*t*(o+m)+x*u*(y+f);x=o;w=n;v=m;o=y;l=l+1|0;n=x;m=w;f=v}if(!(h==0.0)){Na(a+(l<<2)|0,b+(l<<2)|0,d,e-l|0,s,t,u);return}if((b|0)==(a|0))return;me(a+(i<<2)|0,b+(i<<2)|0,e-i<<2|0)|0;return}function Na(a,b,c,d,e,f,h){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;h=+h;var 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;i=0;j=+g[b+(-2-c<<2)>>2];k=+g[b+(~c<<2)>>2];l=+g[b+(0-c<<2)>>2];m=+g[b+(1-c<<2)>>2];while(1){if((i|0)>=(d|0))break;q=+g[b+(i-c+2<<2)>>2];g[a+(i<<2)>>2]=+g[b+(i<<2)>>2]+l*e+(m+k)*f+(q+j)*h;p=m;o=l;n=k;i=i+1|0;m=q;l=p;k=o;j=n}return}function Oa(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=a+8|0;l=a+32|0;i=a+104|0;j=(f<<1)+g+-1|0;a=0;while(1){h=c[k>>2]|0;if((a|0)>=(h|0))break;n=c[l>>2]|0;m=a+1|0;c[e+(a<<2)>>2]=(N(N((d[(c[i>>2]|0)+((N(h,j)|0)+a)>>0]|0)+64|0,g)|0,(b[n+(m<<1)>>1]|0)-(b[n+(a<<1)>>1]|0)<<f)|0)>>2;a=m}return}function Pa(a){a=a|0;var b=0;b=Jb()|0;return Qa(c[b+4>>2]|0,c[b+8>>2]|0,a)|0}function Qa(a,b,c){a=a|0;b=b|0;c=c|0;return ((N(a+2048|0,c)|0)<<2)+84+(c*96|0)+(b<<5)|0}function Ra(a,b,d){a=a|0;b=b|0;d=d|0;d=Sa(a,Jb()|0,d)|0;if(!d){b=La(b)|0;c[a+16>>2]=b;return ((b|0)==0)<<31>>31|0}else return d|0;return 0}function Sa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;if(d>>>0>2){d=-1;l=e;return d|0}if(!a){d=-7;l=e;return d|0}f=b+4|0;ne(a|0,0,Qa(c[f>>2]|0,c[b+8>>2]|0,d)|0)|0;c[a>>2]=b;c[a+4>>2]=c[f>>2];c[a+8>>2]=d;c[a+12>>2]=d;c[a+16>>2]=1;c[a+20>>2]=0;c[a+24>>2]=c[b+12>>2];c[a+28>>2]=1;c[a+32>>2]=0;c[a+48>>2]=0;Ta(a,4028,e);d=0;l=e;return d|0}function Ta(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0;h=l;l=l+16|0;e=h;c[e>>2]=d;a:do switch(b|0){case 10010:{f=(c[e>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[e>>2]=f+4;if((b|0)>=0?(b|0)<(c[(c[a>>2]|0)+8>>2]|0):0){c[a+20>>2]=b;b=24}else b=25;break}case 10012:{f=(c[e>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[e>>2]=f+4;if((b|0)>=1?(b|0)<=(c[(c[a>>2]|0)+8>>2]|0):0){c[a+24>>2]=b;b=24}else b=25;break}case 10008:{f=(c[e>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[e>>2]=f+4;if((b+-1|0)>>>0>1)b=25;else{c[a+12>>2]=b;b=24}break}case 10007:{f=(c[e>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[e>>2]=f+4;if(!b)b=25;else{a=a+40|0;c[b>>2]=c[a>>2];c[a>>2]=0;b=24}break}case 4027:{f=(c[e>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[e>>2]=f+4;if(!b)b=25;else{c[b>>2]=(c[a+4>>2]|0)/(c[a+16>>2]|0)|0;b=24}break}case 4028:{b=c[a+8>>2]|0;d=a+84+((N((c[a+4>>2]|0)+2048|0,b)|0)<<2)+(b*24<<2)|0;i=c[a>>2]|0;f=c[i+8>>2]|0;e=f<<1;d=d+(e<<2)|0;e=d+(e<<2)|0;ne(a+36|0,0,(Qa(c[i+4>>2]|0,f,b)|0)+-36|0)|0;b=0;while(1){if((b|0)>=(f<<1|0)){b=24;break a}g[e+(b<<2)>>2]=-28.0;g[d+(b<<2)>>2]=-28.0;b=b+1|0;f=c[(c[a>>2]|0)+8>>2]|0}}case 4033:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if(!b)b=25;else{c[b>>2]=c[a+52>>2];b=24}break}case 10015:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if(!b)b=25;else{c[b>>2]=c[a>>2];b=24}break}case 10016:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;c[a+28>>2]=b;b=24;break}case 4031:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if(!b)b=25;else{c[b>>2]=c[a+36>>2];b=24}break}default:{l=h;return}}while(0);if((b|0)==24){l=h;return}else if((b|0)==25){l=h;return}}function Ua(a,d,e,f,h,i){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0.0,la=0.0;ja=l;l=l+80|0;o=ja+32|0;H=ja+24|0;ia=ja+16|0;M=ja+8|0;K=ja+4|0;L=ja;ca=c[a+8>>2]|0;c[M>>2]=0;c[K>>2]=0;O=c[a+12>>2]|0;fa=c[a>>2]|0;ga=c[fa+8>>2]|0;V=c[fa+4>>2]|0;E=c[fa+32>>2]|0;Z=c[a+20>>2]|0;j=c[a+24>>2]|0;ha=a+16|0;_=N(c[ha>>2]|0,h)|0;n=V+2048|0;$=a+84+((N(n,ca)|0)<<2)+(ca*24<<2)|0;X=ga<<1;aa=$+(X<<2)|0;ba=aa+(X<<2)|0;W=ba+(X<<2)|0;U=fa+44|0;h=c[fa+36>>2]|0;J=0;while(1){if((J|0)>(h|0)){j=-1;p=84;break}if((c[U>>2]<<J|0)==(_|0))break;J=J+1|0}if((p|0)==84){l=ja;return j|0}S=1<<J;if(e>>>0>1275|(f|0)==0){ia=-1;l=ja;return ia|0}Y=c[U>>2]<<J;m=0-Y|0;h=0;do{T=a+84+((N(h,n)|0)<<2)|0;c[H+(h<<2)>>2]=T;c[ia+(h<<2)>>2]=T+8192+(m<<2);h=h+1|0}while((h|0)<(ca|0));I=c[fa+12>>2]|0;I=(j|0)>(I|0)?I:j;if((d|0)==0|(e|0)<2){Va(a,Y,J);Wa(ia,f,Y,ca,c[ha>>2]|0,+g[fa+16>>2],a+76|0);ia=(_|0)/(c[ha>>2]|0)|0;l=ja;return ia|0}if(!i){fb(o,d,e);i=o}P=(O|0)==1;a:do if(P){h=0;while(1){if((h|0)>=(ga|0))break a;T=$+(h<<2)|0;ka=+g[T>>2];k=+g[$+(ga+h<<2)>>2];g[T>>2]=ka>k?ka:k;h=h+1|0}}while(0);T=e<<3;Q=i+20|0;h=c[Q>>2]|0;R=i+28|0;n=Xa(h,c[R>>2]|0)|0;if((n|0)<(T|0))if((n|0)==1){m=mb(i,15)|0;if(!m){h=1;m=0}else{n=c[Q>>2]|0;h=n;n=Xa(n,c[R>>2]|0)|0;p=20}}else{h=n;m=0}else{m=1;p=20}if((p|0)==20){c[Q>>2]=h+(T-n);h=T}if((Z|0)!=0|(h+16|0)>(T|0)){k=0.0;n=0;d=0}else{if(!(mb(i,1)|0)){k=0.0;n=0;d=0}else{n=ob(i,6)|0;n=(16<<n)+(pb(i,n+4|0)|0)+-1|0;h=pb(i,3)|0;if(((Xa(c[Q>>2]|0,c[R>>2]|0)|0)+2|0)>(T|0))d=0;else d=nb(i,25190,2)|0;k=+(h+1|0)*.09375}h=Xa(c[Q>>2]|0,c[R>>2]|0)|0}F=(J|0)==0;if(!(F|(h+3|0)>(T|0))){o=mb(i,3)|0;h=Xa(c[Q>>2]|0,c[R>>2]|0)|0;if(!o)p=29;else D=S}else p=29;if((p|0)==29){D=0;o=0}if((h+3|0)>(T|0))h=0;else h=mb(i,3)|0;Xb(fa,Z,j,$,h,i,O,J);G=ea()|0;C=l;l=l+((1*(ga<<2)|0)+15&-16)|0;Ya(Z,j,o,C,J,i);if(((Xa(c[Q>>2]|0,c[R>>2]|0)|0)+4|0)>(T|0))B=2;else B=nb(i,25193,5)|0;y=l;l=l+((1*(ga<<2)|0)+15&-16)|0;Oa(fa,y,J,O);z=l;l=l+((1*(ga<<2)|0)+15&-16)|0;A=e<<6;x=c[Q>>2]|0;q=c[R>>2]|0;e=6;r=A;p=x;h=q;w=Z;q=eb(x,q)|0;while(1){if((w|0)>=(j|0))break;x=w+1|0;t=(N(O,(b[E+(x<<1)>>1]|0)-(b[E+(w<<1)>>1]|0)|0)|0)<<J;v=t<<3;u=(t|0)<48;t=(v|0)<((u?48:t)|0)?v:u?48:t;u=y+(w<<2)|0;v=0;s=e;while(1){if((q+(s<<3)|0)>=(r|0))break;if((v|0)>=(c[u>>2]|0))break;s=mb(i,s)|0;p=c[Q>>2]|0;h=c[R>>2]|0;q=eb(p,h)|0;if(!s)break;v=v+t|0;s=1;r=r-t|0}c[z+(w<<2)>>2]=v;if((v|0)>0)e=(e|0)<3?2:e+-1|0;w=x}v=l;l=l+((1*(ga<<2)|0)+15&-16)|0;if((q+48|0)>(r|0))e=5;else{e=nb(i,25197,7)|0;p=c[Q>>2]|0;h=c[R>>2]|0}h=A-(eb(p,h)|0)+-1|0;w=(o|0)==0;if(J>>>0>1&(w^1)){u=(h|0)<((J<<3)+16|0);r=u?0:8;u=u^1}else{r=0;u=0}s=l;l=l+((1*(ga<<2)|0)+15&-16)|0;t=l;l=l+((1*(ga<<2)|0)+15&-16)|0;q=_b(fa,Z,j,z,y,e,M,K,h-r|0,L,s,v,t,O,J,i)|0;Yb(fa,Z,j,$,v,i,O);p=2048-Y+((V|0)/2|0)<<2;h=0;do{E=c[H+(h<<2)>>2]|0;me(E|0,E+(Y<<2)|0,p|0)|0;h=h+1|0}while((h|0)<(ca|0));p=N(O,ga)|0;h=l;l=l+((1*p|0)+15&-16)|0;x=(N(O,Y)|0)<<2;e=l;l=l+((1*x|0)+15&-16)|0;x=a+36|0;sa(fa,Z,j,e,(O|0)==2?e+(Y<<2)|0:0,h,s,D,B,c[K>>2]|0,c[M>>2]|0,C,A-r|0,c[L>>2]|0,i,J,q,x,c[a+32>>2]|0);if(u){M=(pb(i,1)|0)==0;Zb(fa,Z,j,$,v,t,T-(Xa(c[Q>>2]|0,c[R>>2]|0)|0)|0,i,O);if(!M)pa(fa,e,h,J,O,Y,Z,j,$,aa,ba,s,c[x>>2]|0)}else Zb(fa,Z,j,$,v,t,T-(Xa(c[Q>>2]|0,c[R>>2]|0)|0)|0,i,O);b:do if(m|0){h=0;while(1){if((h|0)>=(p|0))break b;g[$+(h<<2)>>2]=-28.0;h=h+1|0}}while(0);Za(fa,e,ia,$,Z,I,O,ca,o,J,c[ha>>2]|0,m);m=a+52|0;o=a+56|0;p=a+64|0;e=a+60|0;q=a+72|0;r=a+68|0;s=fa+60|0;h=0;do{O=c[m>>2]|0;O=(O|0)>15?O:15;c[m>>2]=O;M=c[o>>2]|0;M=(M|0)>15?M:15;c[o>>2]=M;t=c[ia+(h<<2)>>2]|0;Ma(t,t,M,O,c[U>>2]|0,+g[p>>2],+g[e>>2],c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,V);if(!F){O=c[U>>2]|0;M=t+(O<<2)|0;Ma(M,M,c[m>>2]|0,n,Y-O|0,+g[e>>2],k,c[r>>2]|0,d,c[s>>2]|0,V)}h=h+1|0}while((h|0)<(ca|0));c[o>>2]=c[m>>2];c[p>>2]=c[e>>2];c[q>>2]=c[r>>2];c[m>>2]=n;g[e>>2]=k;c[r>>2]=d;if(!F){c[o>>2]=n;g[p>>2]=k;c[q>>2]=d}if(P)le($+(ga<<2)|0,$|0,ga<<2|0)|0;c:do if(w){h=ga<<3;le(ba|0,aa|0,h|0)|0;le(aa|0,$|0,h|0)|0;k=(c[a+48>>2]|0)<10?+(S|0)*1.0000000474974513e-03:1.0;h=0;while(1){if((h|0)>=(X|0))break c;V=W+(h<<2)|0;la=+g[V>>2]+k;ka=+g[$+(h<<2)>>2];g[V>>2]=la<ka?la:ka;h=h+1|0}}else{h=0;while(1){if((h|0)>=(X|0))break c;W=aa+(h<<2)|0;ka=+g[W>>2];la=+g[$+(h<<2)>>2];g[W>>2]=ka<la?ka:la;h=h+1|0}}while(0);h=0;while(1){if((h|0)>=(Z|0))break;g[$+(h<<2)>>2]=0.0;g[ba+(h<<2)>>2]=-28.0;g[aa+(h<<2)>>2]=-28.0;h=h+1|0}h=j;while(1){if((h|0)>=(ga|0))break;g[$+(h<<2)>>2]=0.0;g[ba+(h<<2)>>2]=-28.0;g[aa+(h<<2)>>2]=-28.0;h=h+1|0}h=0;while(1){if((h|0)>=(Z|0))break;X=ga+h|0;g[$+(X<<2)>>2]=0.0;g[ba+(X<<2)>>2]=-28.0;g[aa+(X<<2)>>2]=-28.0;h=h+1|0}while(1){if((j|0)>=(ga|0))break;Z=ga+j|0;g[$+(Z<<2)>>2]=0.0;g[ba+(Z<<2)>>2]=-28.0;g[aa+(Z<<2)>>2]=-28.0;j=j+1|0}c[x>>2]=c[R>>2];Wa(ia,f,Y,ca,c[ha>>2]|0,+g[fa+16>>2],a+76|0);c[a+48>>2]=0;if((Xa(c[Q>>2]|0,c[R>>2]|0)|0)>(T|0))j=-3;else{if(_a(c[i+44>>2]|0)|0)c[a+40>>2]=1;j=(_|0)/(c[ha>>2]|0)|0}da(G|0);ia=j;l=ja;return ia|0}function Va(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0.0,_=0.0;Y=l;l=l+4416|0;X=Y+4408|0;y=Y+4400|0;P=Y+304|0;Q=Y+192|0;R=Y+96|0;S=Y;W=c[a+8>>2]|0;z=c[a>>2]|0;n=c[z+8>>2]|0;T=c[z+4>>2]|0;u=c[z+32>>2]|0;h=T+2048|0;O=0-d|0;f=0;do{V=a+84+((N(f,h)|0)<<2)|0;c[X+(f<<2)>>2]=V;c[y+(f<<2)>>2]=V+8192+(O<<2);f=f+1|0}while((f|0)<(W|0));M=a+84+((N(h,W)|0)<<2)|0;v=M+(W*24<<2)|0;m=n<<1;m=v+(m<<2)+(m<<2)+(m<<2)|0;U=a+48|0;V=c[U>>2]|0;w=c[a+20>>2]|0;if(!((V|0)<5&(w|0)==0)){i=c[a+24>>2]|0;q=c[z+12>>2]|0;h=(i|0)<(q|0);q=(w|0)>((h?i:q)|0)?w:h?i:q;h=N(W,d)|0;r=ea()|0;s=l;l=l+((1*(h<<2)|0)+15&-16)|0;j=(V|0)==0?1.5:.5;h=0;do{k=N(h,n)|0;f=w;while(1){if((f|0)>=(i|0))break;S=k+f|0;x=+g[m+(S<<2)>>2];S=v+(S<<2)|0;I=+g[S>>2]-j;g[S>>2]=x>I?x:I;f=f+1|0}h=h+1|0}while((h|0)<(W|0));o=a+36|0;f=c[o>>2]|0;n=0;while(1){if((n|0)>=(W|0))break;p=N(n,d)|0;h=w;while(1){if((h|0)>=(q|0))break;k=b[u+(h<<1)>>1]|0;m=p+(k<<e)|0;h=h+1|0;k=(b[u+(h<<1)>>1]|0)-k<<e;i=0;while(1){if((i|0)>=(k|0))break;S=na(f)|0;g[s+(m+i<<2)>>2]=+(S>>20|0);i=i+1|0;f=S}ic(s+(m<<2)|0,k,1.0)}n=n+1|0}c[o>>2]=f;h=2048-d+(T>>>1)<<2;f=0;do{T=c[X+(f<<2)>>2]|0;me(T|0,T+(d<<2)|0,h|0)|0;f=f+1|0}while((f|0)<(W|0));Za(z,s,y,v,w,q,W,W,0,e,c[a+16>>2]|0,0);da(r|0);X=V+1|0;c[U>>2]=X;l=Y;return}J=(V|0)==0;if(J){H=$a(X,W)|0;c[a+44>>2]=H;I=1.0}else{H=c[a+44>>2]|0;I=.800000011920929}K=ea()|0;L=l;l=l+((1*(T<<2)|0)+15&-16)|0;u=c[z+60>>2]|0;v=(H|0)<512;w=H<<1;e=P+4096|0;y=8192-(d<<2)|0;z=1024-H|0;A=T+d|0;C=2048-d|0;D=1024-d+z|0;E=C+-1|0;F=a+52|0;G=a+60|0;p=a+68|0;q=(T|0)/2|0;r=T+-1|0;o=0;do{s=c[X+(o<<2)>>2]|0;f=0;while(1){if((f|0)==1024)break;c[P+(f<<2)>>2]=c[s+(f+1024<<2)>>2];f=f+1|0}if(J){Vb(P,Q,u,T,24,1024);g[Q>>2]=+g[Q>>2]*1.000100016593933;f=1;while(1){if((f|0)==25)break;a=Q+(f<<2)|0;t=+g[a>>2];x=+(f|0);g[a>>2]=t-t*6.400000711437315e-05*x*x;f=f+1|0}Rb(M+(o*24<<2)|0,Q,24)}i=v?w:1024;h=2048-i+-1|0;f=0;while(1){if((f|0)==24)break;c[R+(f<<2)>>2]=c[s+(h-f<<2)>>2];f=f+1|0}k=e+(0-i<<2)|0;n=M+(o*24<<2)|0;Sb(k,n,k,i,R);k=i>>1;m=1024-k|0;h=1024-i|0;j=1.0;t=1.0;f=0;while(1){if((f|0)>=(k|0))break;x=+g[P+(m+f<<2)>>2];Z=+g[P+(h+f<<2)>>2];j=j+Z*Z;t=t+x*x;f=f+1|0}t=+B(+((t<j?t:j)/j));me(s|0,s+(d<<2)|0,y|0)|0;x=0.0;j=I*t;f=0;h=0;while(1){if((h|0)>=(A|0))break;a=(f|0)<(H|0);Z=a?j:j*t;a=f-(a?0:H)|0;g[s+(C+h<<2)>>2]=Z*+g[P+(z+a<<2)>>2];_=+g[s+(D+a<<2)>>2];x=x+_*_;j=Z;f=a+1|0;h=h+1|0}f=0;while(1){if((f|0)==24)break;c[S+(f<<2)>>2]=c[s+(E-f<<2)>>2];f=f+1|0}h=s+8192|0;f=h+(O<<2)|0;Ub(f,n,f,A,S);j=0.0;f=0;while(1){if((f|0)>=(A|0))break;_=+g[s+(C+f<<2)>>2];j=j+_*_;f=f+1|0}a:do if(x>j*.20000000298023224){if(x<j){t=+B(+((x+1.0)/(j+1.0)));j=1.0-t;f=0;while(1){if((f|0)>=(T|0))break;a=s+(C+f<<2)|0;g[a>>2]=(1.0-+g[u+(f<<2)>>2]*j)*+g[a>>2];f=f+1|0}f=T;while(1){if((f|0)>=(A|0))break a;a=s+(C+f<<2)|0;g[a>>2]=t*+g[a>>2];f=f+1|0}}}else{f=0;while(1){if((f|0)>=(A|0))break a;g[s+(C+f<<2)>>2]=0.0;f=f+1|0}}while(0);a=c[F>>2]|0;_=-+g[G>>2];f=c[p>>2]|0;Ma(L,h,a,a,T,_,_,f,f,0,0);f=0;while(1){if((f|0)>=(q|0))break;g[s+(f+2048<<2)>>2]=+g[u+(f<<2)>>2]*+g[L+(r-f<<2)>>2]+ +g[u+(T-f+-1<<2)>>2]*+g[L+(f<<2)>>2];f=f+1|0}o=o+1|0}while((o|0)<(W|0));da(K|0);X=V+1|0;c[U>>2]=X;l=Y;return}function Wa(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=+h;i=i|0;var j=0,k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;v=l;s=l;l=l+((1*(d<<2)|0)+15&-16)|0;t=(d|0)/(f|0)|0;u=(f|0)>1;j=0;r=0;do{o=i+(r<<2)|0;m=+g[o>>2];n=c[a+(r<<2)>>2]|0;q=b+(r<<2)|0;if(!u){k=0;while(1){if((k|0)>=(d|0))break;w=+g[n+(k<<2)>>2]+m+1.0000000031710769e-30;g[q+((N(k,e)|0)<<2)>>2]=w*.000030517578125;m=w*h;k=k+1|0}g[o>>2]=m;if(!j)j=0;else p=11}else{j=0;while(1){if((j|0)>=(d|0))break;w=+g[n+(j<<2)>>2]+m+1.0000000031710769e-30;g[s+(j<<2)>>2]=w;m=w*h;j=j+1|0}g[o>>2]=m;j=1;p=11}a:do if((p|0)==11){p=0;k=0;while(1){if((k|0)>=(t|0))break a;g[q+((N(k,e)|0)<<2)>>2]=+g[s+((N(k,f)|0)<<2)>>2]*.000030517578125;k=k+1|0}}while(0);r=r+1|0}while((r|0)<(e|0));l=v;return}function Xa(a,b){a=a|0;b=b|0;return (Q(b|0)|0)+-32+a|0}function Ya(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=c[h+4>>2]<<3;q=h+20|0;r=h+28|0;k=Xa(c[q>>2]|0,c[r>>2]|0)|0;j=(e|0)==0;l=j?4:2;if((g|0)>0)s=(k+l+1|0)>>>0<=i>>>0&1;else s=0;p=i-s|0;o=j?5:4;m=0;i=0;n=b;while(1){if((n|0)>=(d|0))break;if((k+l|0)>>>0>p>>>0)j=m;else{i=i^(mb(h,l)|0);k=Xa(c[q>>2]|0,c[r>>2]|0)|0;j=m|i}c[f+(n<<2)>>2]=i;l=o;m=j;n=n+1|0}j=e<<2;if((s|0)!=0?(a[j+m+(192+(g<<3))>>0]|0)!=(a[(j|2)+m+(192+(g<<3))>>0]|0):0)i=(mb(h,1)|0)<<1;else i=0;i=j+i|0;while(1){if((b|0)>=(d|0))break;h=f+(b<<2)|0;c[h>>2]=a[i+(c[h>>2]|0)+(192+(g<<3))>>0];b=b+1|0}return}function Za(a,b,d,e,f,h,i,j,k,m,n,o){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;A=c[a+4>>2]|0;t=c[a+8>>2]|0;u=a+44|0;r=c[u>>2]|0;w=r<<m;B=l;l=l+((1*(w<<2)|0)+15&-16)|0;v=1<<m;x=(k|0)==0;z=x?1:v;y=x?w:r;x=(c[a+36>>2]|0)-(x?m:0)|0;switch(j|0){case 2:{if((i|0)==1){oa(c[a+32>>2]|0,r,b,B,e,f,h,v,n,o);q=d+4|0;i=(c[q>>2]|0)+(((A|0)/2|0)<<2)|0;le(i|0,B|0,w<<2|0)|0;p=a+64|0;m=a+60|0;k=0;while(1){if((k|0)>=(z|0))break;w=(c[d>>2]|0)+((N(y,k)|0)<<2)|0;Ib(p,i+(k<<2)|0,w,c[m>>2]|0,A,x,z);k=k+1|0}k=0;while(1){if((k|0)>=(z|0))break;d=(c[q>>2]|0)+((N(y,k)|0)<<2)|0;Ib(p,B+(k<<2)|0,d,c[m>>2]|0,A,x,z);k=k+1|0}l=C;return}break}case 1:{if((i|0)==2){m=(c[d>>2]|0)+(((A|0)/2|0)<<2)|0;k=a+32|0;oa(c[k>>2]|0,r,b,B,e,f,h,v,n,o);oa(c[k>>2]|0,c[u>>2]|0,b+(w<<2)|0,m,e+(t<<2)|0,f,h,v,n,o);k=0;while(1){if((k|0)>=(w|0))break;h=B+(k<<2)|0;g[h>>2]=(+g[h>>2]+ +g[m+(k<<2)>>2])*.5;k=k+1|0}i=a+64|0;m=a+60|0;k=0;while(1){if((k|0)>=(z|0))break;w=(c[d>>2]|0)+((N(y,k)|0)<<2)|0;Ib(i,B+(k<<2)|0,w,c[m>>2]|0,A,x,z);k=k+1|0}l=C;return}break}default:{}}q=a+32|0;s=a+64|0;p=a+60|0;k=0;m=r;while(1){a=b+((N(k,w)|0)<<2)|0;i=e+((N(k,t)|0)<<2)|0;oa(c[q>>2]|0,m,a,B,i,f,h,v,n,o);i=d+(k<<2)|0;m=0;while(1){if((m|0)>=(z|0))break;a=(c[i>>2]|0)+((N(y,m)|0)<<2)|0;Ib(s,B+(m<<2)|0,a,c[p>>2]|0,A,x,z);m=m+1|0}k=k+1|0;if((k|0)>=(j|0))break;m=c[u>>2]|0}l=C;return}function _a(a){a=a|0;return a|0}function $a(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=l;l=l+4112|0;d=e+4096|0;f=e;Kb(a,f,b);Pb(f+1440|0,f,d);l=e;return 720-(c[d>>2]|0)|0}function ab(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=bb(b,a)|0;f=(b|0)>(d|0);a=d+1|0;xb(e,g,(c[(c[272+(((b|0)<(d|0)?b:d)<<2)>>2]|0)+((f?b:d)<<2)>>2]|0)+(c[(c[272+((f?a:b)<<2)>>2]|0)+(((a|0)<(b|0)?b:a)<<2)>>2]|0)|0);return}function bb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=a+-1|0;d=c[b+(g<<2)>>2]|0;f=(d|0)>-1?d:0-d|0;d=d>>>31;do{h=g;g=g+-1|0;e=a-g|0;d=d+(c[(c[272+(((e|0)<(f|0)?e:f)<<2)>>2]|0)+(((e|0)>(f|0)?e:f)<<2)>>2]|0)|0;i=c[b+(g<<2)>>2]|0;f=f+((i|0)>-1?i:0-i|0)|0;if((i|0)<0){i=f+1|0;d=d+(c[(c[272+(((e|0)>(f|0)?i:e)<<2)>>2]|0)+(((e|0)>(i|0)?e:i)<<2)>>2]|0)|0}}while((h|0)>1);return d|0}function cb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=(b|0)>(d|0);f=d+1|0;return +(+db(b,d,ob(e,(c[(c[272+(((b|0)<(d|0)?b:d)<<2)>>2]|0)+((g?b:d)<<2)>>2]|0)+(c[(c[272+((g?f:b)<<2)>>2]|0)+(((f|0)<(b|0)?b:f)<<2)>>2]|0)|0)|0,a))}function db(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0.0,i=0,j=0,k=0.0;h=0.0;j=e;while(1){if((a|0)<=2)break;do if((b|0)<(a|0)){e=c[(c[272+(b<<2)>>2]|0)+(a<<2)>>2]|0;f=c[(c[272+(b+1<<2)>>2]|0)+(a<<2)>>2]|0;if(d>>>0>=e>>>0&d>>>0<f>>>0){c[j>>2]=0;e=d-e|0;break}g=(d>>>0>=f>>>0)<<31>>31;d=d-(f&g)|0;f=b;do{f=f+-1|0;e=c[(c[272+(f<<2)>>2]|0)+(a<<2)>>2]|0}while(d>>>0<e>>>0);b=b-f+g^g;c[j>>2]=b<<16>>16;k=+((b&65535)<<16>>16);h=h+k*k;e=d-e|0;b=f}else{f=c[272+(a<<2)>>2]|0;i=c[f+(b+1<<2)>>2]|0;g=(d>>>0>=i>>>0)<<31>>31;i=d-(i&g)|0;a:do if((c[f+(a<<2)>>2]|0)>>>0>i>>>0){d=a;do{d=d+-1|0;e=c[(c[272+(d<<2)>>2]|0)+(a<<2)>>2]|0}while(e>>>0>i>>>0)}else{d=b;while(1){e=c[f+(d<<2)>>2]|0;if(e>>>0<=i>>>0)break a;d=d+-1|0}}while(0);b=b-d+g^g;c[j>>2]=b<<16>>16;k=+((b&65535)<<16>>16);h=h+k*k;e=i-e|0;b=d}while(0);a=a+-1|0;d=e;j=j+4|0}a=b<<1|1;f=(d>>>0>=a>>>0)<<31>>31;a=d-(a&f)|0;d=a+1|0;e=d>>>1;if(!e){d=a;g=b-e|0;g=g+f|0;f=g^f;g=f&65535;f=f<<16;f=f>>16;i=j+4|0;c[j>>2]=f;k=+(g<<16>>16);k=k*k;h=h+k;g=0-d|0;j=e-d|0;g=j^g;j=g&65535;g=g<<16;g=g>>16;c[i>>2]=g;k=+(j<<16>>16);k=k*k;k=h+k;return +k}d=a-((d&-2)+-1)|0;g=b-e|0;g=g+f|0;f=g^f;g=f&65535;f=f<<16;f=f>>16;i=j+4|0;c[j>>2]=f;k=+(g<<16>>16);k=k*k;h=h+k;g=0-d|0;j=e-d|0;g=j^g;j=g&65535;g=g<<16;g=g>>16;c[i>>2]=g;k=+(j<<16>>16);k=k*k;k=h+k;return +k}function eb(a,b){a=a|0;b=b|0;var d=0,e=0;e=32-(Q(b|0)|0)|0;d=b>>>(e+-16|0);b=(d>>>12)+-8|0;return (a<<3)-((e<<3)+(b+(d>>>0>(c[5424+(b<<2)>>2]|0)>>>0&1)))|0}function fb(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=9;c[a+24>>2]=0;b=a+28|0;c[b>>2]=128;d=gb(a)|0;c[a+40>>2]=d;c[a+32>>2]=(c[b>>2]|0)+-1-(d>>1);c[a+44>>2]=0;hb(a);return}function gb(a){a=a|0;var b=0,e=0;b=a+24|0;e=c[b>>2]|0;if(e>>>0>=(c[a+4>>2]|0)>>>0){e=0;return e|0}a=c[a>>2]|0;c[b>>2]=e+1;e=d[a+e>>0]|0;return e|0}function hb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+28|0;d=a+20|0;e=a+40|0;f=a+32|0;while(1){g=c[b>>2]|0;if(g>>>0>=8388609)break;c[d>>2]=(c[d>>2]|0)+8;c[b>>2]=g<<8;h=c[e>>2]|0;g=gb(a)|0;c[e>>2]=g;c[f>>2]=((h<<8|g)>>>1&255|c[f>>2]<<8&2147483392)^255}return}function ib(a,b){a=a|0;b=b|0;var d=0;d=jb(c[a+28>>2]|0,b)|0;c[a+36>>2]=d;a=(((c[a+32>>2]|0)>>>0)/(d>>>0)|0)+1|0;return b-(a>>>0>b>>>0?b:a)|0}function jb(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function kb(a){a=a|0;var b=0;b=(c[a+28>>2]|0)>>>15;c[a+36>>2]=b;a=((c[a+32>>2]|0)>>>0)/(b>>>0)|0;b=a+1|0;return 32768-(b+(b>>>0>32768?32767-a|0:0))|0}function lb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[a+36>>2]|0;e=N(f,e-d|0)|0;g=a+32|0;c[g>>2]=(c[g>>2]|0)-e;if(!b){f=a+28|0;g=f;f=(c[f>>2]|0)-e|0;c[g>>2]=f;hb(a);return}else{g=a+28|0;f=N(f,d-b|0)|0;c[g>>2]=f;hb(a);return}}function mb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+28|0;d=c[h>>2]|0;e=a+32|0;f=c[e>>2]|0;b=d>>>b;g=f>>>0<b>>>0;if(!g){c[e>>2]=f-b;b=d-b|0}c[h>>2]=b;hb(a);return g&1|0}function nb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=a+28|0;f=c[i>>2]|0;j=a+32|0;k=c[j>>2]|0;h=f>>>e;e=-1;while(1){e=e+1|0;g=N(h,d[b+e>>0]|0)|0;if(k>>>0>=g>>>0)break;else f=g}c[j>>2]=k-g;c[i>>2]=f-g;hb(a);return e|0}function ob(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=b+-1|0;d=32-(Q(e|0)|0)|0;if((d|0)<=8){e=ib(a,b)|0;lb(a,e,e+1|0,b);return e|0}b=d+-8|0;f=(e>>>b)+1|0;d=ib(a,f)|0;lb(a,d,d+1|0,f);b=d<<b|(pb(a,b)|0);if(b>>>0<=e>>>0){f=b;return f|0}c[a+44>>2]=1;f=e;return f|0}function pb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=a+12|0;d=c[g>>2]|0;h=a+16|0;e=c[h>>2]|0;if(e>>>0<b>>>0){f=e+(((e|0)>17?e:17)+7-e&-8)|0;while(1){d=d|(qb(a)|0)<<e;if((e|0)>=17)break;else e=e+8|0}e=f+8|0}c[g>>2]=d>>>b;c[h>>2]=e-b;h=a+20|0;c[h>>2]=(c[h>>2]|0)+b;return d&(1<<b)+-1|0}function qb(a){a=a|0;var b=0,e=0,f=0;b=a+8|0;e=c[b>>2]|0;f=c[a+4>>2]|0;if(e>>>0>=f>>>0){f=0;return f|0}a=c[a>>2]|0;e=e+1|0;c[b>>2]=e;f=d[a+(f-e)>>0]|0;return f|0}function rb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=a+28|0;g=c[f>>2]|0;h=sb(g,e)|0;if(!b){h=g-(N(h,e-d|0)|0)|0;c[f>>2]=h;tb(a);return}else{e=g-(N(h,e-b|0)|0)|0;g=a+32|0;c[g>>2]=(c[g>>2]|0)+e;h=N(h,d-b|0)|0;c[f>>2]=h;tb(a);return}}function sb(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function tb(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+28|0;d=a+32|0;e=a+20|0;f=c[b>>2]|0;while(1){if(f>>>0>=8388609)break;ub(a,(c[d>>2]|0)>>>23);c[d>>2]=c[d>>2]<<8&2147483392;f=c[b>>2]<<8;c[b>>2]=f;c[e>>2]=(c[e>>2]|0)+8}return}function ub(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if((b|0)==255){g=a+36|0;c[g>>2]=(c[g>>2]|0)+1;return}e=b>>8;g=a+40|0;d=c[g>>2]|0;if((d|0)>-1){d=vb(a,d+e|0)|0;f=a+44|0;c[f>>2]=c[f>>2]|d}f=a+36|0;if(c[f>>2]|0){d=e+255&255;e=a+44|0;do{h=vb(a,d)|0;c[e>>2]=c[e>>2]|h;h=(c[f>>2]|0)+-1|0;c[f>>2]=h}while((h|0)!=0)}c[g>>2]=b&255;return}function vb(b,d){b=b|0;d=d|0;var e=0,f=0;e=b+24|0;f=c[e>>2]|0;if((f+(c[b+8>>2]|0)|0)>>>0>=(c[b+4>>2]|0)>>>0){f=-1;return f|0}b=c[b>>2]|0;c[e>>2]=f+1;a[b+f>>0]=d;f=0;return f|0}function wb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=a+28|0;e=c[f>>2]|0;d=e>>>d;e=e-d|0;if(!b)d=e;else{b=a+32|0;c[b>>2]=(c[b>>2]|0)+e}c[f>>2]=d;tb(a);return}function xb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=c+-1|0;e=32-(Q(d|0)|0)|0;if((e|0)>8){e=e+-8|0;c=b>>>e;rb(a,c,c+1|0,(d>>>e)+1|0);yb(a,(1<<e)+-1&b,e);return}else{rb(a,b,b+1|0,c);return}}function yb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=a+12|0;f=c[j>>2]|0;k=a+16|0;g=c[k>>2]|0;e=g+d|0;if(e>>>0>32){i=a+44|0;h=~g;h=g+((h|0)>-16?h:-16)+8&-8;e=g;while(1){l=zb(a,f&255)|0;c[i>>2]=c[i>>2]|l;f=f>>>8;if((e|0)<=15)break;else e=e+-8|0}e=g+-8-h|0;g=e;e=e+d|0}c[j>>2]=f|b<<g;c[k>>2]=e;l=a+20|0;c[l>>2]=(c[l>>2]|0)+d;return}function zb(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=b+8|0;f=c[e>>2]|0;g=c[b+4>>2]|0;if(((c[b+24>>2]|0)+f|0)>>>0>=g>>>0){g=-1;return g|0}b=c[b>>2]|0;f=f+1|0;c[e>>2]=f;a[b+(g-f)>>0]=d;g=0;return g|0}function Ab(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;j=m;k=c[a+8>>2]|0;k=(k|0)>0?k:0;c[j>>2]=1;f=0;e=1;while(1){g=f<<1;i=b[a+12+((g|1)<<1)>>1]|0;e=N(e,b[a+12+(g<<1)>>1]|0)|0;g=f+1|0;c[j+(g<<2)>>2]=e;if(i<<16>>16==1)break;f=g}i=a+48|0;g=b[a+12+((g<<1)+-1<<1)>>1]|0;while(1){if((f|0)<=-1)break;h=f<<1;if(!f)e=1;else e=b[a+12+(h+-1<<1)>>1]|0;switch(b[a+12+(h<<1)>>1]|0){case 2:{Bb(d,c[j+(f<<2)>>2]|0);break}case 4:{h=c[j+(f<<2)>>2]|0;Cb(d,h<<k,a,g,h,e);break}case 3:{h=c[j+(f<<2)>>2]|0;Db(d,h<<k,a,g,h,e);break}case 5:{h=c[j+(f<<2)>>2]|0;Eb(d,h<<k,c[i>>2]|0,g,h,e);break}default:{}}f=f+-1|0;g=e}l=m;return}function Bb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0,f=0.0,h=0,i=0.0,j=0.0,k=0;c=0;while(1){if((c|0)>=(b|0))break;h=a+32|0;f=+g[h>>2];d=a+36|0;i=+g[d>>2];j=+g[a>>2];g[h>>2]=j-f;h=a+4|0;e=+g[h>>2];g[d>>2]=e-i;g[a>>2]=j+f;g[h>>2]=e+i;h=a+40|0;i=+g[h>>2];d=a+44|0;e=+g[d>>2];f=(i+e)*.7071067690849304;i=(e-i)*.7071067690849304;k=a+8|0;e=+g[k>>2];g[h>>2]=e-f;h=a+12|0;j=+g[h>>2];g[d>>2]=j-i;g[k>>2]=e+f;g[h>>2]=j+i;h=a+52|0;i=+g[h>>2];k=a+48|0;j=+g[k>>2];d=a+16|0;f=+g[d>>2];g[k>>2]=f-i;k=a+20|0;e=+g[k>>2];g[h>>2]=e+j;g[d>>2]=f+i;g[k>>2]=e-j;k=a+60|0;j=+g[k>>2];d=a+56|0;e=+g[d>>2];i=(j-e)*.7071067690849304;e=(-j-e)*.7071067690849304;h=a+24|0;j=+g[h>>2];g[d>>2]=j-i;d=a+28|0;f=+g[d>>2];g[k>>2]=f-e;g[h>>2]=j+i;g[d>>2]=f+e;a=a+64|0;c=c+1|0}return}function Cb(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;if((e|0)==1){d=0;while(1){if((d|0)>=(f|0))break;s=+g[a>>2];o=a+16|0;B=+g[o>>2];v=s-B;b=a+4|0;x=+g[b>>2];p=a+20|0;z=+g[p>>2];t=x-z;B=s+B;z=x+z;e=a+8|0;x=+g[e>>2];r=a+24|0;s=+g[r>>2];A=x+s;q=a+12|0;w=+g[q>>2];h=a+28|0;u=+g[h>>2];y=w+u;g[o>>2]=B-A;g[p>>2]=z-y;g[a>>2]=B+A;g[b>>2]=z+y;s=x-s;u=w-u;g[e>>2]=v+u;g[q>>2]=t-s;g[r>>2]=v-u;g[h>>2]=t+s;a=a+32|0;d=d+1|0}return}q=e<<1;r=e*3|0;n=d+48|0;o=b<<1;p=b*3|0;m=0;while(1){if((m|0)>=(f|0))break;l=a+((N(m,h)|0)<<3)|0;j=c[n>>2]|0;d=j;i=j;k=0;while(1){if((k|0)>=(e|0))break;F=l+(e<<3)|0;w=+g[F>>2];t=+g[j>>2];E=l+(e<<3)+4|0;x=+g[E>>2];v=+g[j+4>>2];s=w*t-x*v;t=w*v+x*t;I=l+(q<<3)|0;x=+g[I>>2];v=+g[i>>2];H=l+(q<<3)+4|0;w=+g[H>>2];z=+g[i+4>>2];u=x*v-w*z;v=x*z+w*v;D=l+(r<<3)|0;w=+g[D>>2];z=+g[d>>2];C=l+(r<<3)+4|0;x=+g[C>>2];y=+g[d+4>>2];B=w*z-x*y;z=w*y+x*z;x=+g[l>>2];y=x-u;G=l+4|0;w=+g[G>>2];A=w-v;u=x+u;g[l>>2]=u;v=w+v;g[G>>2]=v;w=s+B;x=t+z;B=s-B;z=t-z;g[I>>2]=u-w;g[H>>2]=v-x;g[l>>2]=+g[l>>2]+w;g[G>>2]=+g[G>>2]+x;g[F>>2]=y+z;g[E>>2]=A-B;g[D>>2]=y-z;g[C>>2]=A+B;d=d+(p<<3)|0;i=i+(o<<3)|0;j=j+(b<<3)|0;k=k+1|0;l=l+8|0}m=m+1|0}return}function Db(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0.0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;p=e<<1;o=d+48|0;m=+g[(c[o>>2]|0)+((N(b,e)|0)<<3)+4>>2];n=b<<1;l=0;while(1){if((l|0)>=(f|0))break;d=a+((N(l,h)|0)<<3)|0;j=c[o>>2]|0;i=j;k=e;while(1){s=d+(e<<3)|0;y=+g[s>>2];z=+g[j>>2];q=d+(e<<3)+4|0;B=+g[q>>2];t=+g[j+4>>2];A=y*z-B*t;z=y*t+B*z;v=d+(p<<3)|0;B=+g[v>>2];t=+g[i>>2];u=d+(p<<3)+4|0;y=+g[u>>2];x=+g[i+4>>2];r=B*t-y*x;t=B*x+y*t;y=A+r;x=z+t;g[s>>2]=+g[d>>2]-y*.5;w=d+4|0;g[q>>2]=+g[w>>2]-x*.5;r=(A-r)*m;t=(z-t)*m;g[d>>2]=+g[d>>2]+y;g[w>>2]=+g[w>>2]+x;g[v>>2]=+g[s>>2]+t;g[u>>2]=+g[q>>2]-r;g[s>>2]=+g[s>>2]-t;g[q>>2]=+g[q>>2]+r;k=k+-1|0;if(!k)break;else{d=d+8|0;i=i+(n<<3)|0;j=j+(b<<3)|0}}l=l+1|0}return}function Eb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0.0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0,I=0.0,J=0.0,K=0.0,L=0.0,M=0,O=0,P=0;q=N(b,d)|0;t=+g[c+(q<<3)>>2];u=+g[c+(q<<3)+4>>2];q=N(b<<1,d)|0;o=+g[c+(q<<3)>>2];p=+g[c+(q<<3)+4>>2];q=d<<1;r=d*3|0;s=d<<2;i=0;while(1){if((i|0)>=(e|0))break;n=a+((N(i,f)|0)<<3)|0;h=0;j=n+(s<<3)|0;k=n+(r<<3)|0;l=n+(q<<3)|0;m=n;n=n+(d<<3)|0;while(1){if((h|0)>=(d|0))break;G=+g[m>>2];O=m+4|0;E=+g[O>>2];F=+g[n>>2];P=N(h,b)|0;z=+g[c+(P<<3)>>2];M=n+4|0;K=+g[M>>2];L=+g[c+(P<<3)+4>>2];x=F*z-K*L;z=F*L+K*z;K=+g[l>>2];P=N(h<<1,b)|0;L=+g[c+(P<<3)>>2];A=l+4|0;F=+g[A>>2];C=+g[c+(P<<3)+4>>2];J=K*L-F*C;L=K*C+F*L;F=+g[k>>2];P=N(h*3|0,b)|0;C=+g[c+(P<<3)>>2];v=k+4|0;K=+g[v>>2];y=+g[c+(P<<3)+4>>2];w=F*C-K*y;C=F*y+K*C;K=+g[j>>2];P=N(h<<2,b)|0;y=+g[c+(P<<3)>>2];H=j+4|0;F=+g[H>>2];D=+g[c+(P<<3)+4>>2];B=K*y-F*D;y=K*D+F*y;F=x+B;D=z+y;B=x-B;y=z-y;z=J+w;x=L+C;w=J-w;C=L-C;g[m>>2]=G+(F+z);g[O>>2]=E+(D+x);L=G+F*t+z*o;J=E+D*t+x*o;K=y*u+C*p;I=-(B*u)-w*p;g[n>>2]=L-K;g[M>>2]=J-I;g[j>>2]=L+K;g[H>>2]=J+I;z=G+F*o+z*t;x=E+D*o+x*t;y=C*u-y*p;w=B*p-w*u;g[l>>2]=z+y;g[A>>2]=x+w;g[k>>2]=z-y;g[v>>2]=x-w;h=h+1|0;j=j+8|0;k=k+8|0;l=l+8|0;m=m+8|0;n=n+8|0}i=i+1|0}return}function Fb(a,b){a=a|0;b=b|0;return (N(32736-a|0,16384-b|0)|0)>>>15|0}function Gb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=kb(a)|0;if(h>>>0<b>>>0){e=0;d=0}else{g=b;d=Fb(b,c)|0;f=1;while(1){b=d+1|0;if(b>>>0<=1){i=6;break}d=b<<1;e=g+d|0;if(h>>>0<e>>>0){d=g;break}g=e;d=(N(d+-2|0,c)|0)>>>15;f=f+1|0}if((i|0)==6){i=h-g|0;d=g+(i&-2)|0;f=f+(i>>>1)|0}e=d+b|0;i=h>>>0<e>>>0;e=i?d:e;d=i?0-f|0:f}i=e+b|0;lb(a,e,i>>>0<32768?i:32768,32768);return d|0}function Hb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;d=32-(Q(a|0)|0)+-1>>1;b=1<<d;c=0;while(1){e=(c<<1)+b<<d;f=a>>>0<e>>>0;c=c+(f?0:b)|0;if((d|0)<=0)break;else{a=a-(f?0:e)|0;b=b>>>1;d=d+-1|0}}return c|0}function Ib(a,d,e,f,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|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.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;q=c[a+24>>2]|0;k=0;l=c[a>>2]|0;while(1){r=l>>1;if((k|0)>=(i|0))break;q=q+(r<<2)|0;k=k+1|0;l=r}p=l>>2;s=d+((N(r+-1|0,j)|0)<<2)|0;o=e+(h>>1<<2)|0;n=c[a+8+(i<<2)>>2]|0;j=j<<1;m=0-j|0;k=d;l=c[n+44>>2]|0;a=s;i=0;while(1){if((i|0)>=(p|0))break;u=+g[a>>2];v=+g[q+(i<<2)>>2];w=+g[k>>2];t=+g[q+(p+i<<2)>>2];s=b[l>>1]<<1;g[o+((s|1)<<2)>>2]=u*v+w*t;g[o+(s<<2)>>2]=w*v-u*t;k=k+(j<<2)|0;l=l+2|0;a=a+(m<<2)|0;i=i+1|0}Ab(n,o);j=p+1>>1;a=o;i=0;l=o+(r<<2)|0;while(1){k=l+-8|0;if((i|0)>=(j|0))break;s=a+4|0;y=+g[s>>2];u=+g[a>>2];w=+g[q+(i<<2)>>2];x=+g[q+(p+i<<2)>>2];o=l+-4|0;t=+g[o>>2];v=+g[k>>2];g[a>>2]=y*w+u*x;g[o>>2]=y*x-u*w;w=+g[q+(p-i+-1<<2)>>2];u=+g[q+(r-i+-1<<2)>>2];g[k>>2]=t*w+v*u;g[s>>2]=t*u-v*w;a=a+8|0;i=i+1|0;l=k}m=(h|0)/2|0;a=f;i=e;j=0;k=e+(h<<2)|0;l=f+(h<<2)|0;while(1){l=l+-4|0;k=k+-4|0;if((j|0)>=(m|0))break;y=+g[k>>2];w=+g[i>>2];x=+g[l>>2];v=+g[a>>2];g[i>>2]=x*w-v*y;g[k>>2]=v*w+x*y;a=a+4|0;i=i+4|0;j=j+1|0}return}function Jb(){return 24704}function Kb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0.0;n=l;l=l+112|0;i=n+80|0;j=n+64|0;k=n+32|0;m=n;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;f=1;while(1){h=c[a>>2]|0;if((f|0)==1024)break;o=f<<1;g[b+(f<<2)>>2]=((+g[h+(o+-1<<2)>>2]+ +g[h+((o|1)<<2)>>2])*.5+ +g[h+(o<<2)>>2])*.5;f=f+1|0}g[b>>2]=(+g[h+4>>2]*.5+ +g[h>>2])*.5;if((d|0)==2){a=a+4|0;f=1;while(1){d=c[a>>2]|0;if((f|0)==1024)break;h=f<<1;o=b+(f<<2)|0;g[o>>2]=+g[o>>2]+((+g[d+(h+-1<<2)>>2]+ +g[d+((h|1)<<2)>>2])*.5+ +g[d+(h<<2)>>2])*.5;f=f+1|0}g[b>>2]=+g[b>>2]+(+g[d+4>>2]*.5+ +g[d>>2])*.5}Vb(b,i,0,0,4,1024);g[i>>2]=+g[i>>2]*1.000100016593933;f=1;while(1){if((f|0)==5)break;o=i+(f<<2)|0;p=+g[o>>2];e=+(f|0)*.00800000037997961;g[o>>2]=p-p*e*e;f=f+1|0}Rb(j,i,4);e=1.0;f=0;while(1){if((f|0)==4)break;p=e*.8999999761581421;o=j+(f<<2)|0;g[o>>2]=+g[o>>2]*p;e=p;f=f+1|0}e=+g[j>>2];g[m>>2]=e+.800000011920929;p=+g[j+4>>2];g[m+4>>2]=p+e*.800000011920929;e=+g[j+8>>2];g[m+8>>2]=e+p*.800000011920929;p=+g[j+12>>2];g[m+12>>2]=p+e*.800000011920929;g[m+16>>2]=p*.800000011920929;Lb(b,m,b,1024,k);l=n;return}function Lb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.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;r=+g[b>>2];s=+g[b+4>>2];t=+g[b+8>>2];q=+g[b+12>>2];l=+g[b+16>>2];m=e+4|0;n=e+8|0;o=e+12|0;p=e+16|0;f=+g[p>>2];h=+g[o>>2];i=+g[n>>2];j=+g[m>>2];k=+g[e>>2];b=0;while(1){if((b|0)>=(d|0))break;y=+g[a+(b<<2)>>2];g[c+(b<<2)>>2]=y+r*k+s*j+t*i+q*h+l*f;x=k;w=j;v=i;u=h;k=y;b=b+1|0;j=x;i=w;h=v;f=u}g[e>>2]=k;g[m>>2]=j;g[n>>2]=i;g[o>>2]=h;g[p>>2]=f;return}function Mb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0;p=l;l=l+16|0;j=p;k=f+-3|0;m=j+4|0;n=j+8|0;o=j+12|0;h=((k|0)>0?k:0)+3&-4;i=0;while(1){if((i|0)>=(k|0))break;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;Nb(a,b+(i<<2)|0,j,e);c[d+(i<<2)>>2]=c[j>>2];c[d+((i|1)<<2)>>2]=c[m>>2];c[d+((i|2)<<2)>>2]=c[n>>2];c[d+((i|3)<<2)>>2]=c[o>>2];i=i+4|0}while(1){if((h|0)>=(f|0))break;g[d+(h<<2)>>2]=+Ob(a,b+(h<<2)|0,e);h=h+1|0}l=p;return}function Nb(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,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=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;l=d+-3|0;p=c+4|0;q=c+8|0;r=c+12|0;e=((l|0)>0?l:0)+3|0;m=e&-4;e=b+((e|3)<<2)|0;i=a;j=b+12|0;n=+g[b+4>>2];h=0.0;o=+g[b+8>>2];k=0;f=+g[b>>2];while(1){if((k|0)>=(l|0))break;w=+g[i>>2];h=+g[j>>2];z=+g[c>>2]+w*f;g[c>>2]=z;y=+g[p>>2]+w*n;g[p>>2]=y;x=+g[q>>2]+w*o;g[q>>2]=x;w=+g[r>>2]+w*h;g[r>>2]=w;v=+g[i+4>>2];s=+g[j+4>>2];z=z+v*n;g[c>>2]=z;y=y+v*o;g[p>>2]=y;x=x+v*h;g[q>>2]=x;v=w+v*s;g[r>>2]=v;w=+g[i+8>>2];u=+g[j+8>>2];z=z+w*o;g[c>>2]=z;y=y+w*h;g[p>>2]=y;x=x+w*s;g[q>>2]=x;w=v+w*u;g[r>>2]=w;v=+g[i+12>>2];t=+g[j+12>>2];g[c>>2]=z+v*h;g[p>>2]=y+v*s;g[q>>2]=x+v*u;g[r>>2]=w+v*t;i=i+16|0;j=j+16|0;n=u;o=t;k=k+4|0;f=s}b=a+(m<<2)|0;i=m|1;if((m|0)<(d|0)){z=+g[b>>2];h=+g[e>>2];g[c>>2]=+g[c>>2]+z*f;g[p>>2]=+g[p>>2]+z*n;g[q>>2]=+g[q>>2]+z*o;g[r>>2]=+g[r>>2]+z*h;b=b+4|0;e=e+4|0}if((i|0)<(d|0)){z=+g[b>>2];f=+g[e>>2];g[c>>2]=+g[c>>2]+z*n;g[p>>2]=+g[p>>2]+z*o;g[q>>2]=+g[q>>2]+z*h;g[r>>2]=+g[r>>2]+z*f;b=b+4|0;e=e+4|0}if((i+1|0)>=(d|0))return;y=+g[b>>2];z=+g[e>>2];g[c>>2]=+g[c>>2]+y*o;g[p>>2]=+g[p>>2]+y*h;g[q>>2]=+g[q>>2]+y*f;g[r>>2]=+g[r>>2]+y*z;return}function Ob(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;d=0.0;e=0;while(1){if((e|0)>=(c|0))break;d=d+ +g[a+(e<<2)>>2]*+g[b+(e<<2)>>2];e=e+1|0}return +d}function Pb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0.0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+4544|0;n=p+4528|0;j=n;c[j>>2]=0;c[j+4>>2]=0;j=p+3200|0;k=p+1248|0;o=p;f=0;while(1){if((f|0)==332)break;c[j+(f<<2)>>2]=c[a+(f<<1<<2)>>2];f=f+1|0}f=0;while(1){if((f|0)==487)break;c[k+(f<<2)>>2]=c[b+(f<<1<<2)>>2];f=f+1|0}Mb(j,k,o,332,155);Qb(o,k,332,155,n);j=c[n>>2]<<1;k=c[n+4>>2]<<1;f=0;while(1){if((f|0)==310)break;m=o+(f<<2)|0;g[m>>2]=0.0;q=f-j|0;if(!((((q|0)>-1?q:0-q|0)|0)>2?(q=f-k|0,(((q|0)>-1?q:0-q|0)|0)>2):0)){i=+Ob(a,b+(f<<2)|0,664);g[m>>2]=i<-1.0?-1.0:i}f=f+1|0}Qb(o,b,664,310,n);f=c[n>>2]|0;if((f+-1|0)>>>0>=308){q=0;o=f<<1;q=o-q|0;c[d>>2]=q;l=p;return}h=+g[o+(f+-1<<2)>>2];i=+g[o+(f<<2)>>2];e=+g[o+(f+1<<2)>>2];if(e-h>(i-h)*.699999988079071){q=1;o=f<<1;q=o-q|0;c[d>>2]=q;l=p;return}if(h-e>(i-e)*.699999988079071){q=-1;o=f<<1;q=o-q|0;c[d>>2]=q;l=p;return}q=0;o=f<<1;q=o-q|0;c[d>>2]=q;l=p;return}function Qb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=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,r=0.0,s=0,t=0.0;c[f>>2]=0;s=f+4|0;c[s>>2]=1;i=1.0;h=0;while(1){if((h|0)>=(d|0))break;p=+g[b+(h<<2)>>2];i=i+p*p;h=h+1|0}q=0;p=0.0;n=-1.0;k=0.0;m=-1.0;h=0;l=-1.0;o=0.0;while(1){if((q|0)>=(e|0))break;j=+g[a+(q<<2)>>2];do if(j>0.0?(r=j*9.999999960041972e-13,r=r*r,r*p>n*i):0)if(r*k>m*i){c[s>>2]=h;c[f>>2]=q;h=q;n=l;l=r;m=r;j=o;o=i;k=i;break}else{c[s>>2]=q;n=r;j=i;break}else j=p;while(0);t=+g[b+(q+d<<2)>>2];p=+g[b+(q<<2)>>2];p=i+(t*t-p*p);q=q+1|0;i=p<1.0?1.0:p;p=j}return}function Rb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,h=0,i=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0;e=+g[b>>2];d=0;while(1){if((d|0)>=(c|0))break;g[a+(d<<2)>>2]=0.0;d=d+1|0}if(!(+g[b>>2]!=0.0))return;h=0;l=1;while(1){k=l>>>1;if((h|0)>=(c|0)){d=15;break}f=0.0;d=0;while(1){if((h|0)==(d|0))break;f=f+ +g[a+(d<<2)>>2]*+g[b+(h-d<<2)>>2];d=d+1|0}j=h+1|0;f=(f+ +g[b+(j<<2)>>2])/e;i=-f;g[a+(h<<2)>>2]=i;h=h+-1|0;d=0;while(1){if((d|0)==(k|0))break;p=a+(d<<2)|0;n=+g[p>>2];m=a+(h-d<<2)|0;o=+g[m>>2];g[p>>2]=n+o*i;g[m>>2]=o+n*i;d=d+1|0}e=e-f*f*e;if(e<+g[b>>2]*1.0000000474974513e-03){d=15;break}h=j;l=l+1|0}if((d|0)==15)return}function Sb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+112|0;n=q+96|0;o=q;p=l;l=l+((1*(e+24<<2)|0)+15&-16)|0;i=0;while(1){if((i|0)==24)break;c[o+(i<<2)>>2]=c[b+(24-i+-1<<2)>>2];i=i+1|0}i=0;while(1){if((i|0)==24)break;c[p+(i<<2)>>2]=c[f+(24-i+-1<<2)>>2];i=i+1|0}i=0;while(1){if((i|0)>=(e|0))break;c[p+(i+24<<2)>>2]=c[a+(i<<2)>>2];i=i+1|0}i=0;while(1){if((i|0)==24)break;c[f+(i<<2)>>2]=c[a+(e-i+-1<<2)>>2];i=i+1|0}f=e+-3|0;j=n+4|0;k=n+8|0;m=n+12|0;b=((f|0)>0?f:0)+3&-4;i=0;while(1){if((i|0)>=(f|0))break;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;Tb(o,p+(i<<2)|0,n,24);g[d+(i<<2)>>2]=+g[a+(i<<2)>>2]+ +g[n>>2];r=i|1;g[d+(r<<2)>>2]=+g[a+(r<<2)>>2]+ +g[j>>2];r=i|2;g[d+(r<<2)>>2]=+g[a+(r<<2)>>2]+ +g[k>>2];r=i|3;g[d+(r<<2)>>2]=+g[a+(r<<2)>>2]+ +g[m>>2];i=i+4|0}while(1){if((b|0)>=(e|0))break;h=0.0;i=0;while(1){if((i|0)==24)break;h=h+ +g[o+(i<<2)>>2]*+g[p+(b+i<<2)>>2];i=i+1|0}g[d+(b<<2)>>2]=+g[a+(b<<2)>>2]+h;b=b+1|0}l=q;return}function Tb(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,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=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;l=d+-3|0;p=c+4|0;q=c+8|0;r=c+12|0;e=((l|0)>0?l:0)+3|0;m=e&-4;e=b+((e|3)<<2)|0;i=a;j=b+12|0;n=+g[b+4>>2];h=0.0;o=+g[b+8>>2];k=0;f=+g[b>>2];while(1){if((k|0)>=(l|0))break;w=+g[i>>2];h=+g[j>>2];z=+g[c>>2]+w*f;g[c>>2]=z;y=+g[p>>2]+w*n;g[p>>2]=y;x=+g[q>>2]+w*o;g[q>>2]=x;w=+g[r>>2]+w*h;g[r>>2]=w;v=+g[i+4>>2];s=+g[j+4>>2];z=z+v*n;g[c>>2]=z;y=y+v*o;g[p>>2]=y;x=x+v*h;g[q>>2]=x;v=w+v*s;g[r>>2]=v;w=+g[i+8>>2];u=+g[j+8>>2];z=z+w*o;g[c>>2]=z;y=y+w*h;g[p>>2]=y;x=x+w*s;g[q>>2]=x;w=v+w*u;g[r>>2]=w;v=+g[i+12>>2];t=+g[j+12>>2];g[c>>2]=z+v*h;g[p>>2]=y+v*s;g[q>>2]=x+v*u;g[r>>2]=w+v*t;i=i+16|0;j=j+16|0;n=u;o=t;k=k+4|0;f=s}b=a+(m<<2)|0;i=m|1;if((m|0)<(d|0)){z=+g[b>>2];h=+g[e>>2];g[c>>2]=+g[c>>2]+z*f;g[p>>2]=+g[p>>2]+z*n;g[q>>2]=+g[q>>2]+z*o;g[r>>2]=+g[r>>2]+z*h;b=b+4|0;e=e+4|0}if((i|0)<(d|0)){z=+g[b>>2];f=+g[e>>2];g[c>>2]=+g[c>>2]+z*n;g[p>>2]=+g[p>>2]+z*o;g[q>>2]=+g[q>>2]+z*h;g[r>>2]=+g[r>>2]+z*f;b=b+4|0;e=e+4|0}if((i+1|0)>=(d|0))return;y=+g[b>>2];z=+g[e>>2];g[c>>2]=+g[c>>2]+y*o;g[p>>2]=+g[p>>2]+y*h;g[q>>2]=+g[q>>2]+y*f;g[r>>2]=+g[r>>2]+y*z;return}function Ub(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0,z=0.0,A=0;u=l;l=l+112|0;r=u+96|0;s=u;j=e+24|0;t=l;l=l+((1*(j<<2)|0)+15&-16)|0;h=0;while(1){if((h|0)==24)break;c[s+(h<<2)>>2]=c[b+(24-h+-1<<2)>>2];h=h+1|0}h=0;while(1){if((h|0)==24)break;g[t+(h<<2)>>2]=-+g[f+(24-h+-1<<2)>>2];h=h+1|0}h=24;while(1){if((h|0)>=(j|0))break;g[t+(h<<2)>>2]=0.0;h=h+1|0}k=e+-3|0;m=r+4|0;n=r+8|0;o=r+12|0;p=b+4|0;q=b+8|0;j=((k|0)>0?k:0)+3&-4;h=0;while(1){if((h|0)>=(k|0))break;c[r>>2]=c[a+(h<<2)>>2];A=h|1;c[m>>2]=c[a+(A<<2)>>2];y=h|2;c[n>>2]=c[a+(y<<2)>>2];v=h|3;c[o>>2]=c[a+(v<<2)>>2];Tb(s,t+(h<<2)|0,r,24);z=+g[r>>2];i=-z;g[t+(h+24<<2)>>2]=i;g[d+(h<<2)>>2]=z;z=+g[m>>2]+ +g[b>>2]*i;g[m>>2]=z;w=-z;g[t+(h+25<<2)>>2]=w;g[d+(A<<2)>>2]=z;z=+g[n>>2]+ +g[b>>2]*w+ +g[p>>2]*i;g[n>>2]=z;x=-z;g[t+(h+26<<2)>>2]=x;g[d+(y<<2)>>2]=z;i=+g[o>>2]+ +g[b>>2]*x+ +g[p>>2]*w+ +g[q>>2]*i;g[o>>2]=i;g[t+(h+27<<2)>>2]=-i;g[d+(v<<2)>>2]=i;h=h+4|0}while(1){if((j|0)>=(e|0))break;i=+g[a+(j<<2)>>2];h=0;while(1){if((h|0)==24)break;i=i-+g[s+(h<<2)>>2]*+g[t+(j+h<<2)>>2];h=h+1|0}g[t+(j+24<<2)>>2]=i;g[d+(j<<2)>>2]=i;j=j+1|0}h=0;while(1){if((h|0)==24)break;c[f+(h<<2)>>2]=c[d+(e-h+-1<<2)>>2];h=h+1|0}l=u;return}function Vb(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0.0,k=0,m=0,n=0,o=0;n=l;m=h-f|0;k=l;l=l+((1*(h<<2)|0)+15&-16)|0;a:do if(e){i=0;while(1){if((i|0)>=(h|0))break;c[k+(i<<2)>>2]=c[a+(i<<2)>>2];i=i+1|0}i=0;while(1){if((i|0)>=(e|0)){a=k;break a}j=+g[d+(i<<2)>>2];g[k+(i<<2)>>2]=+g[a+(i<<2)>>2]*j;o=h-i+-1|0;g[k+(o<<2)>>2]=+g[a+(o<<2)>>2]*j;i=i+1|0}}while(0);Mb(a,a,b,m,f+1|0);i=0;while(1){if((i|0)>(f|0))break;j=0.0;d=i+m|0;while(1){if((d|0)>=(h|0))break;j=j+ +g[a+(d<<2)>>2]*+g[a+(d-i<<2)>>2];d=d+1|0}o=b+(i<<2)|0;g[o>>2]=+g[o>>2]+j;i=i+1|0}l=n;return}function Wb(a,b){a=a|0;b=b|0;return (Q(b|0)|0)+-32+a|0}function Xb(a,b,e,f,h,i,j,k){a=a|0;b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0;w=l;l=l+16|0;v=w;u=v;c[u>>2]=0;c[u+4>>2]=0;if(!h){q=+g[20384+(k<<2)>>2];r=+g[20368+(k<<2)>>2]}else{q=.149993896484375;r=0.0}u=c[i+4>>2]<<3;s=i+20|0;t=i+28|0;p=a+8|0;while(1){if((b|0)>=(e|0))break;o=(b|0)<20;n=0;do{a=Wb(c[s>>2]|0,c[t>>2]|0)|0;m=u-a|0;do if((m|0)<=14){if((m|0)>1){a=nb(i,25208,2)|0;a=a>>1^0-(a&1);break}if((u|0)>(a|0))a=0-(mb(i,1)|0)|0;else a=-1}else{a=(o?b:20)<<1;a=Gb(i,(d[20032+(k*84|0)+(h*42|0)+a>>0]|0)<<7,(d[(a|1)+(20032+(k*84|0)+(h*42|0))>>0]|0)<<6)|0}while(0);x=+(a|0);a=f+(b+(N(n,c[p>>2]|0)|0)<<2)|0;y=+g[a>>2];g[a>>2]=y<-9.0?-9.0:y;a=f+(b+(N(n,c[p>>2]|0)|0)<<2)|0;m=v+(n<<2)|0;y=+g[m>>2];g[a>>2]=r*+g[a>>2]+y+x;g[m>>2]=y+x-q*x;n=n+1|0}while((n|0)<(j|0));b=b+1|0}l=w;return}function Yb(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0.0;l=a+8|0;while(1){if((b|0)>=(d|0))break;k=f+(b<<2)|0;j=c[k>>2]|0;a:do if((j|0)>=1){a=0;while(1){m=+(pb(h,j)|0)+.5;j=e+(b+(N(a,c[l>>2]|0)|0)<<2)|0;g[j>>2]=+g[j>>2]+(m*+(1<<14-(c[k>>2]|0)|0)*.00006103515625+-.5);a=a+1|0;if((a|0)>=(i|0))break a;j=c[k>>2]|0}}while(0);b=b+1|0}return}function Zb(a,b,d,e,f,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0.0;o=a+8|0;n=0;a=i;while(1){if((n|0)==2)break;m=b;while(1){if(!((m|0)<(d|0)&(a|0)>=(k|0)))break;l=f+(m<<2)|0;if((c[l>>2]|0)<=7?(c[h+(m<<2)>>2]|0)==(n|0):0){i=0;do{q=+(pb(j,1)|0)+-.5;p=e+(m+(N(i,c[o>>2]|0)|0)<<2)|0;g[p>>2]=+g[p>>2]+q*+(1<<14-(c[l>>2]|0)+-1|0)*.00006103515625;a=a+-1|0;i=i+1|0}while((i|0)<(k|0))}m=m+1|0}n=n+1|0}return}function _b(a,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;var u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0;P=l;C=c[a+8>>2]|0;O=(m|0)>7?8:0;m=((m|0)>0?m:0)-O|0;if((r|0)==2?(u=d[20400+(f-e)>>0]|0,(m|0)>=(u|0)):0){m=m-u|0;H=(m|0)>7?8:0;m=m-H|0}else{u=0;H=0}I=l;l=l+((1*(C<<2)|0)+15&-16)|0;J=l;l=l+((1*(C<<2)|0)+15&-16)|0;K=l;l=l+((1*(C<<2)|0)+15&-16)|0;L=l;l=l+((1*(C<<2)|0)+15&-16)|0;B=r<<3;M=a+32|0;v=i+-5-s|0;w=s+3|0;i=e;while(1){if((i|0)>=(f|0))break;F=c[M>>2]|0;G=i+1|0;F=(b[F+(G<<1)>>1]|0)-(b[F+(i<<1)>>1]|0)|0;E=F*3<<s<<3>>4;c[K+(i<<2)>>2]=(B|0)>(E|0)?B:E;E=(N(N(N(F,r)|0,v)|0,f-i+-1|0)|0)<<w>>6;c[L+(i<<2)>>2]=E-((F<<s|0)==1?B:0);i=G}F=c[a+48>>2]|0;G=a+52|0;w=F+-1|0;E=1;do{y=E+w>>1;z=N(y,C)|0;x=0;v=0;i=f;while(1){A=i+-1|0;if((i|0)<=(e|0))break;D=c[M>>2]|0;D=N((b[D+(i<<1)>>1]|0)-(b[D+(A<<1)>>1]|0)|0,r)|0;D=(N(D,d[(c[G>>2]|0)+(z+A)>>0]|0)|0)<<s;i=D>>2;if((D|0)>3){i=i+(c[L+(A<<2)>>2]|0)|0;i=(i|0)>0?i:0}i=i+(c[g+(A<<2)>>2]|0)|0;if((v|0)==0?(i|0)<(c[K+(A<<2)>>2]|0):0){v=0;i=(i|0)<(B|0)?0:B}else{D=c[h+(A<<2)>>2]|0;v=1;i=(i|0)<(D|0)?i:D}x=x+i|0;i=A}D=(x|0)>(m|0);E=D?E:y+1|0;w=D?y+-1|0:w}while((E|0)<=(w|0));D=N(E+-1|0,C)|0;A=N(E,C)|0;B=(E|0)>1;y=e;z=e;while(1){if((z|0)>=(f|0))break;i=c[M>>2]|0;C=z+1|0;i=N((b[i+(C<<1)>>1]|0)-(b[i+(z<<1)>>1]|0)|0,r)|0;w=c[G>>2]|0;x=(N(i,d[w+(D+z)>>0]|0)|0)<<s;v=x>>2;if((E|0)<(F|0))i=(N(i,d[w+(A+z)>>0]|0)|0)<<s>>2;else i=c[h+(z<<2)>>2]|0;if((x|0)>3){v=v+(c[L+(z<<2)>>2]|0)|0;v=(v|0)>0?v:0}if((i|0)>0){i=i+(c[L+(z<<2)>>2]|0)|0;i=(i|0)>0?i:0}x=c[g+(z<<2)>>2]|0;w=v+(B?x:0)|0;v=i+x|0;c[I+(z<<2)>>2]=w;c[J+(z<<2)>>2]=(v|0)<(w|0)?0:v-w|0;y=(x|0)>0?z:y;z=C}n=$b(a,e,f,y,I,J,K,h,m,n,O,j,u,k,H,o,p,q,r,s,t,0,0,0)|0;l=P;return n|0}function $b(a,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;A=A|0;var B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0;Q=v<<3;L=(v|0)>1;R=L&1;E=0;F=64;J=0;while(1){if((E|0)==6)break;H=J+F>>1;D=f;G=0;B=0;while(1){I=D+-1|0;if((D|0)<=(e|0))break;C=(c[h+(I<<2)>>2]|0)+((N(H,c[i+(I<<2)>>2]|0)|0)>>6)|0;if((B|0)==0?(C|0)<(c[j+(I<<2)>>2]|0):0){B=0;C=(C|0)<(Q|0)?0:Q}else{P=c[k+(I<<2)>>2]|0;B=1;C=(C|0)<(P|0)?C:P}D=I;G=G+C|0}P=(G|0)>(l|0);E=E+1|0;F=P?H:F;J=P?J:H}P=w<<3;B=f;C=0;E=0;while(1){D=B+-1|0;if((B|0)<=(e|0))break;B=(c[h+(D<<2)>>2]|0)+((N(J,c[i+(D<<2)>>2]|0)|0)>>6)|0;I=(B|0)<(c[j+(D<<2)>>2]|0);M=(C|0)==0;B=I&M?((B|0)<(Q|0)?0:Q):B;O=c[k+(D<<2)>>2]|0;O=(B|0)<(O|0)?B:O;c[s+(D<<2)>>2]=O;B=D;C=(I&M^1)&1;E=E+O|0}O=a+32|0;J=Q+8|0;h=(y|0)==0;I=e+2|0;M=f;H=p;D=E;while(1){F=M+-1|0;if((F|0)<=(g|0)){K=15;break}y=l-D|0;C=c[O>>2]|0;G=b[C+(M<<1)>>1]|0;E=b[C+(e<<1)>>1]|0;B=G-E|0;p=ac(y,B)|0;B=y-(N(B,p)|0)|0;C=b[C+(F<<1)>>1]|0;E=B+(E-C)|0;C=G-C|0;G=s+(F<<2)|0;B=c[G>>2]|0;E=B+(N(p,C)|0)+((E|0)>0?E:0)|0;p=c[j+(F<<2)>>2]|0;if((E|0)>=(((p|0)>(J|0)?p:J)|0)){if(h){if(mb(x,1)|0)break}else{if((M|0)<=(I|0)){K=20;break}if(!((F|0)>(A|0)?1:(E|0)<=((N((M|0)>(z|0)?9:7,C)|0)<<w<<3>>4|0))){K=20;break}wb(x,0,1)}E=E+-8|0;D=D+8|0;B=c[G>>2]|0}if((H|0)>0)C=d[20400+(F-e)>>0]|0;else C=H;M=(E|0)<(Q|0);D=D-(B+H)+C+(M?0:Q)|0;c[G>>2]=M?0:Q;M=F;H=C}if((K|0)==15)l=l+n|0;else if((K|0)==20)wb(x,1,1);do if((H|0)>0)if(h){B=(ob(x,M+1-e|0)|0)+e|0;c[o>>2]=B;break}else{B=c[o>>2]|0;B=(B|0)<(M|0)?B:M;c[o>>2]=B;xb(x,B-e|0,M+1-e|0);B=c[o>>2]|0;break}else{c[o>>2]=0;B=0}while(0);do if((B|0)>(e|0))if((r|0)>0)if(h){c[q>>2]=mb(x,1)|0;break}else{wb(x,c[q>>2]|0,1);break}else K=38;else{l=l+r|0;K=38}while(0);if((K|0)==38)c[q>>2]=0;B=l-D|0;D=c[O>>2]|0;D=(b[D+(M<<1)>>1]|0)-(b[D+(e<<1)>>1]|0)|0;C=ac(B,D)|0;D=N(D,C)|0;l=e;while(1){if((l|0)>=(M|0))break;r=c[O>>2]|0;K=l+1|0;r=N(C,(b[r+(K<<1)>>1]|0)-(b[r+(l<<1)>>1]|0)|0)|0;x=s+(l<<2)|0;c[x>>2]=(c[x>>2]|0)+r;l=K}l=B-D|0;B=e;while(1){if((B|0)>=(M|0))break;x=c[O>>2]|0;K=B+1|0;x=(b[x+(K<<1)>>1]|0)-(b[x+(B<<1)>>1]|0)|0;x=(l|0)<(x|0)?l:x;r=s+(B<<2)|0;c[r>>2]=(c[r>>2]|0)+x;l=l-x|0;B=K}y=(v|0)==2;i=L?4:3;h=a+56|0;I=0;while(1){if((e|0)>=(M|0))break;E=c[O>>2]|0;J=e+1|0;E=(b[E+(J<<1)>>1]|0)-(b[E+(e<<1)>>1]|0)<<w;H=s+(e<<2)|0;B=(c[H>>2]|0)+I|0;if((E|0)>1){l=c[k+(e<<2)>>2]|0;l=(B|0)>(l|0)?B-l|0:0;F=B-l|0;c[H>>2]=F;B=N(E,v)|0;if(y&(E|0)!=2?(c[q>>2]|0)==0:0)C=(e|0)<(c[o>>2]|0);else C=0;G=B+(C&1)|0;D=N(G,P+(b[(c[h>>2]|0)+(e<<1)>>1]|0)|0)|0;B=(D>>1)+(N(G,-21)|0)|0;if((E|0)==2)B=B+(G<<3>>2)|0;C=F+B|0;if((C|0)>=(G<<4|0))if((C|0)<(G*24|0))E=B+(D>>3)|0;else E=B;else E=B+(D>>2)|0;B=F+E+(G<<2)|0;B=(ac((B|0)>0?B:0,G)|0)>>>3;D=t+(e<<2)|0;c[D>>2]=B;a=N(B,v)|0;C=c[H>>2]|0;if((a|0)>(C>>3|0)){B=C>>R>>3;c[D>>2]=B}a=(B|0)<8?B:8;c[D>>2]=a;a=N(a,G<<3)|0;c[u+(e<<2)>>2]=(a|0)>=((c[H>>2]|0)+E|0)&1;a=(N(c[D>>2]|0,v)|0)<<3;c[H>>2]=(c[H>>2]|0)-a}else{l=(B|0)<(Q|0)?0:B-Q|0;c[H>>2]=B-l;c[t+(e<<2)>>2]=0;c[u+(e<<2)>>2]=1}if(!l)e=l;else{x=l>>>i;L=t+(e<<2)|0;K=c[L>>2]|0;a=8-K|0;a=(x|0)<(a|0)?x:a;c[L>>2]=K+a;a=(N(a,v)|0)<<3;c[u+(e<<2)>>2]=(a|0)>=(l-I|0)&1;e=l-a|0}I=e;e=J}c[m>>2]=I;while(1){if((e|0)>=(f|0))break;k=s+(e<<2)|0;m=t+(e<<2)|0;c[m>>2]=c[k>>2]>>R>>3;c[k>>2]=0;c[u+(e<<2)>>2]=(c[m>>2]|0)<1&1;e=e+1|0}return M|0}function ac(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function bc(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0,k=0.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,w=0;w=l;t=l;l=l+((1*(b<<2)|0)+15&-16)|0;u=l;l=l+((1*(b<<2)|0)+15&-16)|0;v=l;l=l+((1*(b<<2)|0)+15&-16)|0;cc(a,b,1,f,d,e);j=0;do{e=a+(j<<2)|0;i=+g[e>>2];if(i>0.0)i=1.0;else{g[e>>2]=-i;i=-1.0}g[v+(j<<2)>>2]=i;c[u+(j<<2)>>2]=0;g[t+(j<<2)>>2]=0.0;j=j+1|0}while((j|0)<(b|0));if((b>>1|0)<(d|0)){i=0.0;e=0;do{i=i+ +g[a+(e<<2)>>2];e=e+1|0}while((e|0)<(b|0));if(!(i>1.0000000036274937e-15&i<64.0)){g[a>>2]=1.0;e=1;do{g[a+(e<<2)>>2]=0.0;e=e+1|0}while((e|0)<(b|0));i=1.0}m=1.0/i*+(d+-1|0);e=d;i=0.0;k=0.0;j=0;do{p=+g[a+(j<<2)>>2];s=~~+z(+(m*p));c[u+(j<<2)>>2]=s;q=+(s|0);i=i+q*q;k=k+p*q;g[t+(j<<2)>>2]=q*2.0;e=e-s|0;j=j+1|0}while((j|0)<(b|0))}else{e=d;i=0.0;k=0.0}if((e|0)>(b+3|0)){q=+(e|0);i=i+q*q+ +g[t>>2]*q;c[u>>2]=(c[u>>2]|0)+e;e=0}s=0;while(1){if((s|0)>=(e|0))break;o=i+1.0;i=0.0;m=-999999986991104.0;j=0;n=0;while(1){q=k+ +g[a+(n<<2)>>2];p=o+ +g[t+(n<<2)>>2];q=q*q;r=i*q>p*m;j=r?n:j;n=n+1|0;if((n|0)>=(b|0))break;else{i=r?p:i;m=r?q:m}}q=+g[a+(j<<2)>>2];r=t+(j<<2)|0;i=+g[r>>2];g[r>>2]=i+2.0;r=u+(j<<2)|0;c[r>>2]=(c[r>>2]|0)+1;s=s+1|0;k=k+q;i=o+i}e=0;do{q=+g[v+(e<<2)>>2];t=a+(e<<2)|0;g[t>>2]=q*+g[t>>2];if(q<0.0){t=u+(e<<2)|0;c[t>>2]=0-(c[t>>2]|0)}e=e+1|0}while((e|0)<(b|0));ab(u,b,d,h);v=dc(u,b,f)|0;l=w;return v|0}function cc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0;if((f<<1|0)>=(b|0)|(g|0)==0)return;m=+(b|0)/+((N(c[25036+(g+-1<<2)>>2]|0,f)|0)+b|0);m=m*m*.5;l=+D(+(m*1.5707963705062866));m=+D(+((1.0-m)*1.5707963705062866));a:do if((e<<3|0)>(b|0))f=0;else{g=e>>2;f=1;while(1){if(((N((N(f,f)|0)+f|0,e)|0)+g|0)>=(b|0))break a;f=f+1|0}}while(0);k=ec(b,e)|0;d=(d|0)<0;h=(f|0)==0;i=-m;j=-l;g=0;while(1){if((g|0)>=(e|0))break;b=a+((N(g,k)|0)<<2)|0;if(!d){fc(b,k,1,l,i);if(!h)fc(b,k,f,m,j)}else{if(!h)fc(b,k,f,m,l);fc(b,k,1,l,m)}g=g+1|0}return}function dc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if((d|0)<2){d=1;return d|0}i=ec(b,d)|0;h=0;b=0;do{g=N(h,i)|0;e=0;f=0;do{e=e|c[a+(g+f<<2)>>2];f=f+1|0}while((f|0)<(i|0));b=b|((e|0)!=0&1)<<h;h=h+1|0}while((h|0)!=(d|0));return b|0}function ec(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function fc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=+e;var f=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0;j=-e;i=b-c|0;f=a;h=0;while(1){if((h|0)>=(i|0))break;l=+g[f>>2];m=f+(c<<2)|0;k=+g[m>>2];g[m>>2]=k*d+l*e;g[f>>2]=l*d+k*j;f=f+4|0;h=h+1|0}h=b-(c<<1)|0;f=a+(h+-1<<2)|0;while(1){if((h|0)<=0)break;k=+g[f>>2];m=f+(c<<2)|0;l=+g[m>>2];g[m>>2]=l*d+k*e;g[f>>2]=k*d+l*j;f=f+-4|0;h=h+-1|0}return}function gc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;var h=0,i=0;h=l;i=l;l=l+((1*(b<<2)|0)+15&-16)|0;hc(i,a,b,+cb(i,b,c,f),g);cc(a,b,-1,e,c,d);f=dc(i,b,e)|0;l=h;return f|0}function hc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var h=0;e=1.0/+B(+e)*f;h=0;do{g[b+(h<<2)>>2]=e*+(c[a+(h<<2)>>2]|0);h=h+1|0}while((h|0)<(d|0));return}function ic(a,b,c){a=a|0;b=b|0;c=+c;var d=0;c=1.0/+B(+(+jc(a,a,b)+1.0000000036274937e-15))*c;d=0;while(1){if((d|0)>=(b|0))break;g[a>>2]=c*+g[a>>2];a=a+4|0;d=d+1|0}return}function jc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;d=0.0;e=0;while(1){if((e|0)>=(c|0))break;d=d+ +g[a+(e<<2)>>2]*+g[b+(e<<2)>>2];e=e+1|0}return +d}function kc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;a:do if(!c){e=+jc(a,a,d)+1.0000000036274937e-15;f=+jc(b,b,d)+1.0000000036274937e-15}else{f=1.0000000036274937e-15;e=1.0000000036274937e-15;c=0;while(1){if((c|0)>=(d|0))break a;j=+g[a+(c<<2)>>2];i=+g[b+(c<<2)>>2];h=j+i;i=j-i;f=f+i*i;e=e+h*h;c=c+1|0}}while(0);return ~~+z(+(+J(+(+B(+f)),+(+B(+e)))*10430.3818359375+.5))|0}function lc(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;f=c[a+2340>>2]|0;g=32767/(f+1|0)|0;d=0;e=0;while(1){if((e|0)>=(f|0))break;h=d+g|0;b[a+4052+(e<<1)>>1]=h;d=h;e=e+1|0}c[a+4148>>2]=0;c[a+4152>>2]=3176576;return}function mc(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=l;l=l+32|0;B=C;n=a+2772|0;g=a+2316|0;h=a+4156|0;if((c[g>>2]|0)!=(c[h>>2]|0)){lc(a);c[h>>2]=c[g>>2]}m=a+4160|0;do if(!(c[m>>2]|0)){if(!(c[a+4164>>2]|0)){h=c[a+2340>>2]|0;g=0;while(1){if((g|0)>=(h|0))break;y=b[a+2344+(g<<1)>>1]|0;A=a+4052+(g<<1)|0;x=b[A>>1]|0;z=x&65535;b[A>>1]=(((y<<16>>16)-(x<<16>>16)>>16)*16348|0)+((((y&65535)-z&65535)*16348|0)>>>16)+z;g=g+1|0}k=a+2324|0;j=c[k>>2]|0;g=0;h=0;i=0;while(1){if((i|0)>=(j|0))break;z=c[d+16+(i<<2)>>2]|0;A=(z|0)>(g|0);g=A?z:g;h=A?i:h;i=i+1|0}i=a+2332|0;g=c[i>>2]|0;me(a+2772+(g<<2)|0,n|0,(N(j+-1|0,g)|0)<<2|0)|0;i=c[i>>2]|0;le(n|0,a+4+((N(h,i)|0)<<2)|0,i<<2|0)|0;i=a+4148|0;h=c[k>>2]|0;g=0;while(1){if((g|0)>=(h|0))break;z=c[i>>2]|0;A=(c[d+16+(g<<2)>>2]|0)-z|0;c[i>>2]=z+(((A>>16)*4634|0)+(((A&65535)*4634|0)>>>16));g=g+1|0}if(c[m>>2]|0)break}ne(a+4084|0,0,c[a+2340>>2]<<2|0)|0;l=C;return}while(0);z=ea()|0;A=l;l=l+((1*(f+16<<2)|0)+15&-16)|0;i=b[a+4224>>1]|0;h=i<<16>>16;g=c[a+4244>>2]|0;y=g<<16>>16;h=(N(h>>16,y)|0)+((N(y,i&65535)|0)>>16)+(N((g>>15)+1>>1,h)|0)|0;g=c[a+4148>>2]|0;i=h>>16;if((h|0)>2097151|(g|0)>8388608){g=g>>16;g=(nc((N(g,g)|0)-((N(i,i)|0)<<5)|0)|0)<<16}else{y=h<<16>>16;x=g<<16>>16;g=(nc((N(g>>16,x)|0)+((N(g&65535,x)|0)>>16)+(N(g,(g>>15)+1>>1)|0)-((N(i,y)|0)+((N(h&65535,y)|0)>>16)+(N(h,(h>>15)+1>>1)|0)<<5)|0)|0)<<8}oc(A+64|0,n,g,f,a+4152|0);y=a+2340|0;qd(B,a+4052|0,c[y>>2]|0);x=a+4084|0;g=A;h=x;i=g+64|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));j=b[B>>1]|0;k=b[B+2>>1]|0;m=b[B+4>>1]|0;d=b[B+6>>1]|0;n=b[B+8>>1]|0;a=b[B+10>>1]|0;o=b[B+12>>1]|0;p=b[B+14>>1]|0;q=b[B+16>>1]|0;r=b[B+18>>1]|0;s=b[B+20>>1]|0;t=b[B+22>>1]|0;u=b[B+24>>1]|0;v=b[B+26>>1]|0;w=b[B+28>>1]|0;i=b[B+30>>1]|0;h=0;while(1){if((h|0)>=(f|0))break;B=c[A+(h+15<<2)>>2]|0;B=(c[y>>2]>>1)+((N(B>>16,j)|0)+((N(B&65535,j)|0)>>16))|0;g=c[A+(h+14<<2)>>2]|0;g=B+((N(g>>16,k)|0)+((N(g&65535,k)|0)>>16))|0;B=c[A+(h+13<<2)>>2]|0;B=g+((N(B>>16,m)|0)+((N(B&65535,m)|0)>>16))|0;g=c[A+(h+12<<2)>>2]|0;g=B+((N(g>>16,d)|0)+((N(g&65535,d)|0)>>16))|0;B=c[A+(h+11<<2)>>2]|0;B=g+((N(B>>16,n)|0)+((N(B&65535,n)|0)>>16))|0;g=c[A+(h+10<<2)>>2]|0;g=B+((N(g>>16,a)|0)+((N(g&65535,a)|0)>>16))|0;B=c[A+(h+9<<2)>>2]|0;B=g+((N(B>>16,o)|0)+((N(B&65535,o)|0)>>16))|0;g=c[A+(h+8<<2)>>2]|0;g=B+((N(g>>16,p)|0)+((N(g&65535,p)|0)>>16))|0;B=c[A+(h+7<<2)>>2]|0;B=g+((N(B>>16,q)|0)+((N(B&65535,q)|0)>>16))|0;g=c[A+(h+6<<2)>>2]|0;g=B+((N(g>>16,r)|0)+((N(g&65535,r)|0)>>16))|0;if((c[y>>2]|0)==16){B=c[A+(h+5<<2)>>2]|0;B=g+((N(B>>16,s)|0)+((N(B&65535,s)|0)>>16))|0;g=c[A+(h+4<<2)>>2]|0;g=B+((N(g>>16,t)|0)+((N(g&65535,t)|0)>>16))|0;B=c[A+(h+3<<2)>>2]|0;B=g+((N(B>>16,u)|0)+((N(B&65535,u)|0)>>16))|0;g=c[A+(h+2<<2)>>2]|0;g=B+((N(g>>16,v)|0)+((N(g&65535,v)|0)>>16))|0;B=c[A+(h+1<<2)>>2]|0;B=g+((N(B>>16,w)|0)+((N(B&65535,w)|0)>>16))|0;g=c[A+(h<<2)>>2]|0;g=B+((N(g>>16,i)|0)+((N(g&65535,i)|0)>>16))|0}B=A+(h+16<<2)|0;g=(c[B>>2]|0)+(g<<4)|0;c[B>>2]=g;B=e+(h<<1)|0;g=((g>>9)+1>>1)+(b[B>>1]|0)|0;g=(g|0)>-32768?g:-32768;b[B>>1]=(g|0)<32767?g:32767;h=h+1|0}g=x;h=A+(f<<2)|0;i=g+64|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));da(z|0);l=C;return}function nc(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;if((a|0)<1){d=0;l=e;return d|0}pc(a,b,d);b=c[b>>2]|0;b=((b&1|0)==0?46214:32768)>>>(b>>1);d=(N(c[d>>2]<<16>>16,13959168)|0)>>16;d=b+((N(b>>16,d)|0)+((N(b&65535,d)|0)>>16))|0;l=e;return d|0}function oc(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;i=255;while(1){if((i|0)<=(e|0))break;i=i>>1}j=d<<12>>16;h=(d>>19)+1>>1;d=0;g=c[f>>2]|0;while(1){if((d|0)>=(e|0))break;k=(N(g,196314165)|0)+907633515|0;l=c[b+((k>>24&i)<<2)>>2]|0;l=(N(l>>16,j)|0)+((N(l&65535,j)|0)>>16)+(N(l,h)|0)|0;l=(l|0)>-32768?l:-32768;c[a+(d<<2)>>2]=((l|0)<32767?l:32767)<<16>>16;d=d+1|0;g=k}c[f>>2]=g;return}function pc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=qc(a)|0;c[b>>2]=e;c[d>>2]=(rc(a,24-e|0)|0)&127;return}function qc(a){a=a|0;return Q(a|0)|0}function rc(a,b){a=a|0;b=b|0;if(!b){b=a;return b|0}if((b|0)<0){b=a<<0-b|a>>>(b+32|0);return b|0}else{b=a<<32-b|a>>>b;return b|0}return 0}function sc(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0;n=l;l=l+16|0;m=n;a[m+1>>0]=0;k=23760+(((g<<1)+h<<16>>16)*7|0)|0;j=f+8>>4;f=0;while(1){if((f|0)>=(j|0))break;g=c[i+(f<<2)>>2]|0;a:do if((g|0)>0){a[m>>0]=a[k+((g&30)>>>0<6?g&31:6)>>0]|0;g=0;while(1){if((g|0)==16)break a;h=e+(g<<1)|0;if((b[h>>1]|0)>0){o=((nb(d,m,8)|0)<<1)+-1|0;b[h>>1]=N(o,b[h>>1]|0)|0}g=g+1|0}}while(0);e=e+32|0;f=f+1|0}l=n;return}function tc(a){a=a|0;ne(a+4|0,0,4256)|0;c[a+2376>>2]=1;c[a>>2]=65536;lc(a);Pc(a);return}function uc(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;ca=l;l=l+32|0;_=ca;$=d+2336|0;V=c[$>>2]|0;aa=l;l=l+((1*(V<<1)|0)+15&-16)|0;p=d+2328|0;i=c[p>>2]|0;U=l;l=l+((1*(V+i<<2)|0)+15&-16)|0;V=d+2332|0;Y=c[V>>2]|0;W=l;l=l+((1*(Y<<2)|0)+15&-16)|0;X=l;l=l+((1*(Y+16<<2)|0)+15&-16)|0;Y=d+2765|0;Z=(a[d+2767>>0]|0)>3;o=b[25176+(a[Y>>0]>>1<<2)+(a[d+2766>>0]<<1)>>1]<<4;h=a[d+2770>>0]|0;n=0;while(1){if((n|0)>=(i|0))break;j=(N(h,196314165)|0)+907633515|0;k=g+(n<<1)|0;i=b[k>>1]|0;h=i<<16>>16<<14;m=d+4+(n<<2)|0;c[m>>2]=h;if(i<<16>>16<=0){if(i<<16>>16<0){h=h|1280;c[m>>2]=h}}else{h=h+-1280|0;c[m>>2]=h}h=h+o|0;c[m>>2]=(j|0)<0?0-h|0:h;h=j+(b[k>>1]|0)|0;n=n+1|0;i=c[p>>2]|0}M=d+1284|0;h=X;i=M;j=h+64|0;do{c[h>>2]=c[i>>2];h=h+4|0;i=i+4|0}while((h|0)<(j|0));O=d+2324|0;P=d+2340|0;Q=d+4160|0;C=_+2|0;J=_+4|0;K=_+6|0;L=_+8|0;x=_+10|0;y=_+12|0;z=_+14|0;A=_+16|0;B=_+18|0;D=_+20|0;E=_+22|0;F=_+24|0;G=_+26|0;H=_+28|0;I=_+30|0;R=d+4164|0;S=e+136|0;T=d+2308|0;u=d+4|0;q=c[$>>2]|0;v=f;w=0;while(1){if((w|0)>=(c[O>>2]|0))break;o=e+32+(w>>>1<<5)|0;le(_|0,o|0,c[P>>2]<<1|0)|0;r=e+96+(w*5<<1)|0;n=a[Y>>0]|0;t=c[e+16+(w<<2)>>2]|0;s=t>>>6;h=vc(t)|0;i=c[d>>2]|0;a:do if((t|0)==(i|0))g=65536;else{j=wc(i,t)|0;k=j>>16;m=j&65535;i=0;while(1){if((i|0)==16){g=j;break a}p=X+(i<<2)|0;g=c[p>>2]|0;da=g<<16>>16;c[p>>2]=(N(k,da)|0)+((N(m,da)|0)>>16)+(N(j,(g>>15)+1>>1)|0);i=i+1|0}}while(0);c[d>>2]=t;if((c[Q>>2]|0)!=0?n<<24>>24!=2&(c[R>>2]|0)==2&w>>>0<2:0){b[r>>1]=0;b[r+2>>1]=0;b[r+4>>1]=0;b[r+6>>1]=0;b[r+8>>1]=0;b[r+4>>1]=4096;p=c[T>>2]|0;c[e+(w<<2)>>2]=p;ba=19}else if(n<<24>>24==2){p=c[e+(w<<2)>>2]|0;ba=19}else{n=u;g=q}b:do if((ba|0)==19){ba=0;m=(w|0)==0;c:do if(!m){if(!((w|0)!=2|Z)){j=c[$>>2]|0;i=j-p-(c[P>>2]|0)+-2|0;le(d+1348+(j<<1)|0,f|0,c[V>>2]<<2|0)|0;j=c[$>>2]|0;k=c[P>>2]|0;ba=23;break}if((g|0)!=65536){i=p+2|0;j=g>>16;k=g&65535;h=0;while(1){if((h|0)>=(i|0))break c;da=U+(q-h+-1<<2)|0;o=c[da>>2]|0;n=o<<16>>16;c[da>>2]=(N(j,n)|0)+((N(k,n)|0)>>16)+(N(g,(o>>15)+1>>1)|0);h=h+1|0}}}else{j=c[$>>2]|0;k=c[P>>2]|0;i=j-p-k+-2|0;ba=23}while(0);d:do if((ba|0)==23){ba=0;ld(aa+(i<<1)|0,d+1348+(i+(N(w,c[V>>2]|0)|0)<<1)|0,o,j-i|0,k);if(m){da=c[S>>2]<<16>>16;h=(N(h>>16,da)|0)+((N(h&65535,da)|0)>>16)<<2}j=p+2|0;k=h>>16;i=h&65535;h=0;while(1){if((h|0)>=(j|0))break d;da=b[aa+((c[$>>2]|0)-h+-1<<1)>>1]|0;c[U+(q-h+-1<<2)>>2]=(N(k,da)|0)+((N(i,da)|0)>>16);h=h+1|0}}while(0);m=r+2|0;n=r+4|0;g=r+6|0;o=r+8|0;k=c[V>>2]|0;i=U+(q-p+2<<2)|0;j=q;h=0;while(1){if((h|0)>=(k|0)){n=W;g=j;break b}q=c[i>>2]|0;da=b[r>>1]|0;da=(N(q>>16,da)|0)+((N(q&65535,da)|0)>>16)+2|0;q=c[i+-4>>2]|0;p=b[m>>1]|0;p=da+((N(q>>16,p)|0)+((N(q&65535,p)|0)>>16))|0;q=c[i+-8>>2]|0;da=b[n>>1]|0;da=p+((N(q>>16,da)|0)+((N(q&65535,da)|0)>>16))|0;q=c[i+-12>>2]|0;p=b[g>>1]|0;p=da+((N(q>>16,p)|0)+((N(q&65535,p)|0)>>16))|0;q=c[i+-16>>2]|0;da=b[o>>1]|0;da=p+((N(q>>16,da)|0)+((N(q&65535,da)|0)>>16))|0;da=(c[u+(h<<2)>>2]|0)+(da<<1)|0;c[W+(h<<2)>>2]=da;c[U+(j<<2)>>2]=da<<1;i=i+4|0;j=j+1|0;h=h+1|0}}while(0);m=s<<16>>16;j=(t>>21)+1>>1;i=0;while(1){k=c[V>>2]|0;if((i|0)>=(k|0))break;da=c[X+(i+15<<2)>>2]|0;t=b[_>>1]|0;t=(c[P>>2]>>1)+((N(da>>16,t)|0)+((N(da&65535,t)|0)>>16))|0;da=c[X+(i+14<<2)>>2]|0;h=b[C>>1]|0;h=t+((N(da>>16,h)|0)+((N(da&65535,h)|0)>>16))|0;da=c[X+(i+13<<2)>>2]|0;t=b[J>>1]|0;t=h+((N(da>>16,t)|0)+((N(da&65535,t)|0)>>16))|0;da=c[X+(i+12<<2)>>2]|0;h=b[K>>1]|0;h=t+((N(da>>16,h)|0)+((N(da&65535,h)|0)>>16))|0;da=c[X+(i+11<<2)>>2]|0;t=b[L>>1]|0;t=h+((N(da>>16,t)|0)+((N(da&65535,t)|0)>>16))|0;da=c[X+(i+10<<2)>>2]|0;h=b[x>>1]|0;h=t+((N(da>>16,h)|0)+((N(da&65535,h)|0)>>16))|0;da=c[X+(i+9<<2)>>2]|0;t=b[y>>1]|0;t=h+((N(da>>16,t)|0)+((N(da&65535,t)|0)>>16))|0;da=c[X+(i+8<<2)>>2]|0;h=b[z>>1]|0;h=t+((N(da>>16,h)|0)+((N(da&65535,h)|0)>>16))|0;da=c[X+(i+7<<2)>>2]|0;t=b[A>>1]|0;t=h+((N(da>>16,t)|0)+((N(da&65535,t)|0)>>16))|0;da=c[X+(i+6<<2)>>2]|0;h=b[B>>1]|0;h=t+((N(da>>16,h)|0)+((N(da&65535,h)|0)>>16))|0;if((c[P>>2]|0)==16){da=c[X+(i+5<<2)>>2]|0;t=b[D>>1]|0;t=h+((N(da>>16,t)|0)+((N(da&65535,t)|0)>>16))|0;da=c[X+(i+4<<2)>>2]|0;h=b[E>>1]|0;h=t+((N(da>>16,h)|0)+((N(da&65535,h)|0)>>16))|0;da=c[X+(i+3<<2)>>2]|0;t=b[F>>1]|0;t=h+((N(da>>16,t)|0)+((N(da&65535,t)|0)>>16))|0;da=c[X+(i+2<<2)>>2]|0;h=b[G>>1]|0;h=t+((N(da>>16,h)|0)+((N(da&65535,h)|0)>>16))|0;da=c[X+(i+1<<2)>>2]|0;t=b[H>>1]|0;t=h+((N(da>>16,t)|0)+((N(da&65535,t)|0)>>16))|0;da=c[X+(i<<2)>>2]|0;h=b[I>>1]|0;h=t+((N(da>>16,h)|0)+((N(da&65535,h)|0)>>16))|0}h=(c[n+(i<<2)>>2]|0)+(h<<4)|0;c[X+(i+16<<2)>>2]=h;h=(N(h>>16,m)|0)+((N(h&65535,m)|0)>>16)+(N(h,j)|0)|0;if((h|0)<=8388479)if((h|0)<-8388736)h=-32768;else h=(h>>7)+1>>1;else h=32767;b[v+(i<<1)>>1]=h;i=i+1|0}h=X;i=X+(k<<2)|0;j=h+64|0;do{c[h>>2]=c[i>>2];h=h+4|0;i=i+4|0}while((h|0)<(j|0));u=u+(k<<2)|0;q=g;v=v+(k<<1)|0;w=w+1|0}h=M;i=X;j=h+64|0;do{c[h>>2]=c[i>>2];h=h+4|0;i=i+4|0}while((h|0)<(j|0));l=ca;return}function vc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;c=xc((a|0)>0?a:0-a|0)|0;d=a<<c+-1;f=d>>16;a=536870911/(f|0)|0;e=a<<16;b=e>>16;d=0-((N(f,b)|0)+((N(d&65535,b)|0)>>16)<<3)|0;d=e+((N(d>>16,b)|0)+((N(d&65528,b)|0)>>16))+(N((a>>15)+1>>1,d)|0)|0;a=62-c|0;if((a|0)>=48)return ((a|0)<79?d>>a+-47:0)|0;a=47-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){f=b;f=f<<a;return f|0}f=(d|0)<(c|0)?c:d;f=f<<a;return f|0}else{if((d|0)>(c|0)){f=c;f=f<<a;return f|0}f=(d|0)<(b|0)?b:d;f=f<<a;return f|0}return 0}function wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=xc((a|0)>0?a:0-a|0)|0;f=a<<c+-1;a=(xc((b|0)>0?b:0-b|0)|0)+-1|0;b=b<<a;d=(536870911/(b>>16|0)|0)<<16>>16;e=(N(f>>16,d)|0)+((N(f&65535,d)|0)>>16)|0;b=he(b|0,((b|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;b=je(b|0,y|0,29)|0;b=f-(b&-8)|0;d=e+((N(b>>16,d)|0)+((N(b&65535,d)|0)>>16))|0;a=c+28-a|0;if((a|0)>=16)return ((a|0)<48?d>>a+-16:0)|0;a=16-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){f=b;f=f<<a;return f|0}f=(d|0)<(c|0)?c:d;f=f<<a;return f|0}else{if((d|0)>(c|0)){f=c;f=f<<a;return f|0}f=(d|0)<(b|0)?b:d;f=f<<a;return f|0}return 0}function xc(a){a=a|0;return Q(a|0)|0}function yc(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0;o=l;l=l+144|0;k=o;m=b+2328|0;n=c[m>>2]|0;c[k+136>>2]=0;switch(g|0){case 0:{i=b+2388|0;j=4;break}case 2:{i=b+2388|0;if((c[b+2420+(c[i>>2]<<2)>>2]|0)==1)j=4;else j=5;break}default:j=5}if((j|0)==4){j=ea()|0;p=l;l=l+((1*((n+15&-16)<<1)|0)+15&-16)|0;Ac(b,d,c[i>>2]|0,g,h);i=b+2765|0;Bc(d,p,a[i>>0]|0,a[b+2766>>0]|0,c[m>>2]|0);zc(b,k,h);uc(b,k,e,p);Qc(b,k,e,0);c[b+4160>>2]=0;c[b+4164>>2]=a[i>>0];c[b+2376>>2]=0;da(j|0);i=k}else if((j|0)==5){Qc(b,k,e,1);i=k}j=c[m>>2]|0;p=(c[b+2336>>2]|0)-j|0;me(b+1348|0,b+1348+(j<<1)|0,p<<1|0)|0;le(b+1348+(p<<1)|0,e|0,c[m>>2]<<1|0)|0;mc(b,i,e,n);$c(b,e,n);c[b+2308>>2]=c[k+((c[b+2324>>2]|0)+-1<<2)>>2];c[f>>2]=n;l=o;return 0}function zc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;p=l;l=l+64|0;n=p+32|0;k=p;o=d+2324|0;Hc(e+16|0,d+2736|0,d+2312|0,(f|0)==2&1,c[o>>2]|0);Jc(n,d+2744|0,c[d+2732>>2]|0);i=e+64|0;j=d+2340|0;qd(i,n,c[j>>2]|0);f=d+2767|0;if((c[d+2376>>2]|0)!=1){g=a[f>>0]|0;if(g<<24>>24<4){h=c[j>>2]|0;f=0;while(1){if((f|0)>=(h|0))break;q=b[d+2344+(f<<1)>>1]|0;b[k+(f<<1)>>1]=((N((b[n+(f<<1)>>1]|0)-(q<<16>>16)|0,g<<24>>24)|0)>>>2)+(q&65535);f=f+1|0}qd(e+32|0,k,h)}else m=8}else{a[f>>0]=4;m=8}if((m|0)==8)le(e+32|0,i|0,c[j>>2]<<1|0)|0;f=c[j>>2]|0;le(d+2344|0,n|0,f<<1|0)|0;if(c[d+4160>>2]|0){id(e+32|0,f,63570);id(i,c[j>>2]|0,63570)}if((a[d+2765>>0]|0)!=2){ne(e|0,0,c[o>>2]<<2|0)|0;ne(e+96|0,0,(c[o>>2]|0)*10|0)|0;a[d+2768>>0]=0;c[e+136>>2]=0;l=p;return}jd(b[d+2762>>1]|0,a[d+2764>>0]|0,e,c[d+2316>>2]|0,c[o>>2]|0);h=c[25072+(a[d+2768>>0]<<2)>>2]|0;f=0;while(1){if((f|0)>=(c[o>>2]|0))break;i=(a[d+2740+f>>0]|0)*5|0;j=f*5|0;g=0;while(1){if((g|0)==5)break;b[e+96+(j+g<<1)>>1]=a[h+(i+g)>>0]<<7;g=g+1|0}f=f+1|0}c[e+136>>2]=b[25184+(a[d+2769>>0]<<1)>>1];l=p;return}function Ac(f,g,h,i,j){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;o=s+16|0;m=s;if((i|0)==0?(c[f+2404+(h<<2)>>2]|0)==0:0)h=nb(g,25243,8)|0;else h=(nb(g,25239,8)|0)+2|0;i=h>>>1;r=f+2765|0;a[r>>0]=i;a[f+2766>>0]=h&1;n=(j|0)==2;if(n)a[f+2736>>0]=nb(g,20464,8)|0;else{p=f+2736|0;a[p>>0]=(nb(g,20432+(i<<24>>24<<3)|0,8)|0)<<3;k=nb(g,25268,8)|0;a[p>>0]=k+(d[p>>0]|0)}p=f+2324|0;h=1;while(1){if((h|0)>=(c[p>>2]|0))break;a[f+2736+h>>0]=nb(g,20464,8)|0;h=h+1|0}k=f+2732|0;i=c[k>>2]|0;i=nb(g,(c[i+12>>2]|0)+(N(a[r>>0]>>1,b[i>>1]|0)|0)|0,8)|0;a[f+2744>>0]=i;fd(o,m,c[k>>2]|0,i<<24>>24);i=0;while(1){h=c[k>>2]|0;if((i|0)>=(b[h+2>>1]|0))break;h=nb(g,(c[h+24>>2]|0)+(b[o+(i<<1)>>1]|0)|0,8)|0;switch(h|0){case 0:{h=0-(nb(g,25276,8)|0)|0;break}case 8:{h=(nb(g,25276,8)|0)+8|0;break}default:{}}m=i+1|0;a[f+2744+m>>0]=h+252;i=m}if((c[p>>2]|0)==4)h=(nb(g,25245,8)|0)&255;else h=4;a[f+2767>>0]=h;if((a[r>>0]|0)!=2){r=a[r>>0]|0;r=r<<24>>24;j=f+2396|0;c[j>>2]=r;g=nb(g,25253,8)|0;g=g&255;j=f+2770|0;a[j>>0]=g;l=s;return}if((n?(c[f+2396>>2]|0)==2:0)?(q=nb(g,22784,8)|0,(q<<16|0)>0):0){h=f+2400|0;i=q+65527+(e[h>>1]|0)&65535;b[f+2762>>1]=i}else{i=(nb(g,22752,8)|0)<<16>>16;h=f+2762|0;b[h>>1]=N(i,c[f+2316>>2]>>1)|0;i=nb(g,c[f+2380>>2]|0,8)|0;i=i+(e[h>>1]|0)&65535;b[h>>1]=i;h=f+2400|0}b[h>>1]=i;a[f+2764>>0]=nb(g,c[f+2384>>2]|0,8)|0;i=f+2768|0;a[i>>0]=nb(g,25211,8)|0;h=0;while(1){if((h|0)>=(c[p>>2]|0))break;a[f+2740+h>>0]=nb(g,c[25060+(a[i>>0]<<2)>>2]|0,8)|0;h=h+1|0}if(!j){a[f+2769>>0]=nb(g,25236,8)|0;r=a[r>>0]|0;r=r<<24>>24;j=f+2396|0;c[j>>2]=r;g=nb(g,25253,8)|0;g=g&255;j=f+2770|0;a[j>>0]=g;l=s;return}else{a[f+2769>>0]=0;r=a[r>>0]|0;r=r<<24>>24;j=f+2396|0;c[j>>2]=r;g=nb(g,25253,8)|0;g=g&255;j=f+2770|0;a[j>>0]=g;l=s;return}}function Bc(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+160|0;p=s+80|0;q=s;r=(g>>4)+((g&-16|0)<(g|0)&1)|0;i=22864+((nb(a,23056+((e>>1)*9|0)|0,8)|0)*18|0)|0;h=0;while(1){if((h|0)>=(r|0))break;j=q+(h<<2)|0;c[j>>2]=0;m=nb(a,i,8)|0;k=p+(h<<2)|0;c[k>>2]=m;n=0;while(1){if((m|0)!=17)break;o=n+1|0;c[j>>2]=o;m=nb(a,23026+((o|0)==10&1)|0,8)|0;n=o}c[k>>2]=m;h=h+1|0}j=0;while(1){if((j|0)>=(r|0))break;h=c[p+(j<<2)>>2]|0;i=d+(j<<16>>12<<1)|0;if((h|0)>0)dd(i,a,h);else{h=i+32|0;do{b[i>>1]=0;i=i+2|0}while((i|0)<(h|0))}j=j+1|0}k=0;while(1){if((k|0)>=(r|0))break;m=c[q+(k<<2)>>2]|0;if((m|0)>0){n=d+(k<<16>>12<<1)|0;i=0;while(1){if((i|0)==16)break;o=n+(i<<1)|0;h=b[o>>1]|0;j=0;while(1){if((j|0)==(m|0))break;h=(h<<1)+(nb(a,25234,8)|0)|0;j=j+1|0}b[o>>1]=h;i=i+1|0}o=p+(k<<2)|0;c[o>>2]=c[o>>2]|m<<5}k=k+1|0}sc(a,d,g,e,f,p);l=s;return}function Cc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=d<<16>>16;c[b+2332>>2]=l*5;h=b+2324|0;j=N(c[h>>2]<<16>>16,l*327680>>16)|0;k=b+2316|0;g=b+2320|0;if((c[k>>2]|0)==(d|0)?(c[g>>2]|0)==(e|0):0){f=0;g=1;m=4}else{f=yd(b+2432|0,l*1e3|0,e)|0;c[g>>2]=e;g=(c[k>>2]|0)==(d|0);if(g)m=4}if((m|0)==4)if((j|0)==(c[b+2328>>2]|0)){m=f;return m|0}i=(d|0)==8;e=(c[h>>2]|0)==4;h=b+2384|0;do if(i)if(e){c[h>>2]=25283;break}else{c[h>>2]=25306;break}else if(e){c[h>>2]=22816;break}else{c[h>>2]=25294;break}while(0);if(!g){c[b+2336>>2]=l*20;switch(d|0){case 8:case 12:{c[b+2340>>2]=10;c[b+2732>>2]=25084;if((d|0)==12)c[b+2380>>2]=25262;else m=18;break}default:{c[b+2340>>2]=16;c[b+2732>>2]=25120;if((d|0)==16)c[b+2380>>2]=25268;else m=18}}if((m|0)==18?i:0)c[b+2380>>2]=25253;c[b+2376>>2]=1;c[b+2308>>2]=100;a[b+2312>>0]=10;c[b+4164>>2]=0;ne(b+1284|0,0,1024)|0}c[k>>2]=d;c[b+2328>>2]=j;m=f;return m|0}function Dc(a){a=a|0;c[a>>2]=8544;return 0}function Ec(a){a=a|0;var b=0;b=0;while(1){if((b|0)==2)break;tc(a+(b*4260|0)|0);b=b+1|0}b=a+8520|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[a+8540>>2]=0;return 0}function Fc(d,f,g,h,i,j,k){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=l;l=l+672|0;G=H+660|0;A=H+656|0;E=H+648|0;z=H+640|0;t=H;c[G>>2]=0;D=z;c[D>>2]=0;c[D+4>>2]=0;D=f+4|0;a:do if(!h)m=c[D>>2]|0;else{h=0;while(1){m=c[D>>2]|0;if((h|0)>=(m|0))break a;c[d+(h*4260|0)+2388>>2]=0;h=h+1|0}}while(0);F=d+8536|0;if((m|0)>(c[F>>2]|0)){tc(d+4260|0);m=c[D>>2]|0}if((m|0)==1?(c[F>>2]|0)==2:0)C=(c[f+12>>2]|0)==((c[d+2316>>2]|0)*1e3|0);else C=0;y=d+2388|0;b:do if(!(c[y>>2]|0)){p=f+16|0;q=f+12|0;r=f+8|0;n=0;o=0;c:while(1){if((o|0)>=(m|0)){u=n;break b}switch(c[p>>2]|0){case 0:{c[d+(o*4260|0)+2392>>2]=1;c[d+(o*4260|0)+2324>>2]=2;break}case 10:{c[d+(o*4260|0)+2392>>2]=1;c[d+(o*4260|0)+2324>>2]=2;break}case 20:{c[d+(o*4260|0)+2392>>2]=1;c[d+(o*4260|0)+2324>>2]=4;break}case 40:{c[d+(o*4260|0)+2392>>2]=2;c[d+(o*4260|0)+2324>>2]=4;break}case 60:{c[d+(o*4260|0)+2392>>2]=3;c[d+(o*4260|0)+2324>>2]=4;break}default:{h=-203;n=125;break c}}h=c[q>>2]>>10;switch(h|0){case 15:case 11:case 7:break;default:{h=-200;n=125;break c}}m=n+(Cc(d+(o*4260|0)|0,h+1|0,c[r>>2]|0)|0)|0;n=m;o=o+1|0;m=c[D>>2]|0}if((n|0)==125){l=H;return h|0}}else u=0;while(0);h=c[f>>2]|0;do if((h|0)==2)if((m|0)==2){if((c[d+8532>>2]|0)!=1?(c[F>>2]|0)!=1:0){h=2;break}c[d+8520>>2]=0;c[d+8528>>2]=0;le(d+6692|0,d+2432|0,300)|0;h=c[f>>2]|0}else h=2;while(0);c[d+8532>>2]=h;c[F>>2]=c[D>>2];x=f+8|0;if(((c[x>>2]|0)+-8e3|0)>>>0>4e4){d=-200;l=H;return d|0}B=(g|0)==1;d:do if(!B?(c[y>>2]|0)==0:0){o=0;while(1){h=c[D>>2]|0;if((o|0)>=(h|0))break;m=d+(o*4260|0)+2392|0;h=0;while(1){w=(h|0)<(c[m>>2]|0);n=mb(i,1)|0;if(!w)break;c[d+(o*4260|0)+2404+(h<<2)>>2]=n;h=h+1|0}c[d+(o*4260|0)+2416>>2]=n;o=o+1|0}p=0;while(1){if((p|0)>=(h|0))break;m=d+(p*4260|0)+2420|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;e:do if(c[d+(p*4260|0)+2416>>2]|0){n=d+(p*4260|0)+2392|0;h=c[n>>2]|0;if((h|0)==1){c[m>>2]=1;break}o=(nb(i,c[25156+(h+-2<<2)>>2]|0,8)|0)+1|0;m=c[n>>2]|0;h=0;while(1){if((h|0)>=(m|0))break e;c[d+(p*4260|0)+2420+(h<<2)>>2]=o>>>h&1;h=h+1|0}}while(0);p=p+1|0;h=c[D>>2]|0}if(!g){r=d+2392|0;s=d+6680|0;q=0;while(1){if((q|0)>=(c[r>>2]|0))break d;n=(q|0)==0;o=s+(q<<2)|0;p=q+-1|0;m=0;while(1){if((m|0)>=(h|0))break;if(c[d+(m*4260|0)+2420+(q<<2)>>2]|0){if((h|0)==2&(m|0)==0?(Jd(i,z),(c[o>>2]|0)==0):0)Kd(i,G);if(!n?(c[d+(m*4260|0)+2420+(p<<2)>>2]|0)!=0:0)h=2;else h=0;Ac(d+(m*4260|0)|0,i,q,1,h);Bc(i,t,a[d+(m*4260|0)+2765>>0]|0,a[d+(m*4260|0)+2766>>0]|0,c[d+(m*4260|0)+2328>>2]|0);h=c[D>>2]|0}m=m+1|0}q=q+1|0}}}while(0);h=c[D>>2]|0;if((h|0)==2){switch(g|0){case 0:{Jd(i,z);if(!(c[d+6664+(c[y>>2]<<2)>>2]|0))n=65;else n=66;break}case 2:{if((c[d+2420+(c[y>>2]<<2)>>2]|0)==1){Jd(i,z);if(!(c[d+6680+(c[y>>2]<<2)>>2]|0))n=65;else n=66}else n=67;break}default:n=67}f:do if((n|0)==65)Kd(i,G);else if((n|0)==66)c[G>>2]=0;else if((n|0)==67){m=d+8520|0;h=0;while(1){if((h|0)==2)break f;c[z+(h<<2)>>2]=b[m+(h<<1)>>1];h=h+1|0}}while(0);h=c[D>>2]|0;if((h|0)==2)if((c[G>>2]|0)==0?(c[d+8540>>2]|0)==1:0){ne(d+5544|0,0,1024)|0;c[d+6568>>2]=100;a[d+6572>>0]=10;c[d+8424>>2]=0;c[d+6636>>2]=1;h=c[D>>2]|0}else h=2}t=N(c[f+12>>2]|0,h)|0;t=(t|0)<(N(c[x>>2]|0,c[f>>2]|0)|0);if(t){w=ea()|0;h=j+(c[d+2328>>2]<<1)|0;o=j}else{v=d+2328|0;h=N(h,(c[v>>2]|0)+2|0)|0;w=ea()|0;o=l;l=l+((1*(h<<1)|0)+15&-16)|0;h=o+(c[v>>2]<<1)|0}r=h+4|0;c[E>>2]=o;s=E+4|0;c[s>>2]=r;if(g){h=d+8540|0;if(c[h>>2]|0)if((c[D>>2]|0)==2&(g|0)==2){q=(c[d+6680+(c[d+6648>>2]<<2)>>2]|0)==1;v=h}else{q=0;v=h}else{q=1;v=h}}else{q=(c[G>>2]|0)==0;v=d+8540|0}p=(g|0)==2;n=0;while(1){h=c[D>>2]|0;if((n|0)>=(h|0))break;h=(n|0)==0;if(h|q){m=(c[y>>2]|0)-n|0;do if((m|0)<1)h=0;else{if(p){h=(c[d+(n*4260|0)+2420+(m+-1<<2)>>2]|0)==0?0:2;break}if(!h?c[v>>2]|0:0){h=1;break}h=2}while(0);h=u+(yc(d+(n*4260|0)|0,i,(c[E+(n<<2)>>2]|0)+4|0,A,g,h)|0)|0}else{ne((c[E+(n<<2)>>2]|0)+4|0,0,c[A>>2]<<1|0)|0;h=u}u=d+(n*4260|0)+2388|0;c[u>>2]=(c[u>>2]|0)+1;u=h;n=n+1|0}if((c[f>>2]|0)==2&(h|0)==2){i=d+2316|0;q=c[A>>2]|0;gd(d+8520|0,o,r,z,c[i>>2]|0,q);r=i}else{r=d+8524|0;q=e[r>>1]|e[r+2>>1]<<16;b[o>>1]=q;b[o+2>>1]=q>>>16;q=c[A>>2]|0;A=o+(q<<1)|0;A=e[A>>1]|e[A+2>>1]<<16;b[r>>1]=A;b[r+2>>1]=A>>>16;r=d+2316|0}m=N(q,c[x>>2]|0)|0;m=(m|0)/((c[r>>2]<<16>>16)*1e3|0)|0;c[k>>2]=m;h=c[f>>2]|0;if((h|0)==2){p=l;l=l+((1*(m<<1)|0)+15&-16)|0}else p=j;if(t){A=c[d+2328>>2]|0;i=N(c[D>>2]|0,A+2|0)|0;o=l;l=l+((1*(i<<1)|0)+15&-16)|0;le(o|0,j|0,i<<1|0)|0;c[E>>2]=o;c[s>>2]=o+(A<<1)+4}n=0;while(1){m=c[D>>2]|0;if((n|0)>=(((h|0)<(m|0)?h:m)|0))break;zd(d+(n*4260|0)+2432|0,p,(c[E+(n<<2)>>2]|0)+2|0,q);h=c[f>>2]|0;if((h|0)==2){h=0;while(1){if((h|0)>=(c[k>>2]|0))break;b[j+(n+(h<<1)<<1)>>1]=b[p+(h<<1)>>1]|0;h=h+1|0}h=c[f>>2]|0}n=n+1|0}g:do if((h|0)==2&(m|0)==1)if(C){zd(d+6692|0,p,o+2|0,q);h=0;while(1){if((h|0)>=(c[k>>2]|0))break g;b[j+((h<<1|1)<<1)>>1]=b[p+(h<<1)>>1]|0;h=h+1|0}}else{h=0;while(1){if((h|0)>=(c[k>>2]|0))break g;E=h<<1;b[j+((E|1)<<1)>>1]=b[j+(E<<1)>>1]|0;h=h+1|0}}while(0);if((c[d+4164>>2]|0)==2)h=N(c[d+2308>>2]|0,c[25048+((c[r>>2]|0)+-8>>2<<2)>>2]|0)|0;else h=0;c[f+20>>2]=h;h:do if(B){h=0;while(1){if((h|0)>=(c[F>>2]|0))break h;a[d+(h*4260|0)+2312>>0]=10;h=h+1|0}}else c[v>>2]=c[G>>2];while(0);da(w|0);d=u;l=H;return d|0}function Gc(a){a=a|0;return ((a|0)<3967?a:3967)|0}function Hc(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;l=0;while(1){if((l|0)>=(g|0))break;do if(l|f){h=(a[d+l>>0]|0)+-4|0;i=a[e>>0]|0;j=i<<24>>24;k=j+8|0;if((h|0)>(k|0)){i=(h<<1)-k+j|0;break}else{i=h+(i&255)|0;break}}else i=Ic(a[d>>0]|0,(a[e>>0]|0)+-16|0)|0;while(0);h=i&255;a[e>>0]=h;if((i<<24|0)<=1056964608)if(h<<24>>24<0)h=0;else h=i<<24>>24;else h=63;a[e>>0]=h;c[b+(l<<2)>>2]=kd(Gc((h*29|0)+(h*7281>>16)+2090|0)|0)|0;l=l+1|0}return}function Ic(a,b){a=a|0;b=b|0;return ((a|0)>(b|0)?a:b)|0}function Jc(f,g,h){f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+112|0;m=r+96|0;n=r+64|0;p=r+32|0;q=r;o=h+2|0;k=b[o>>1]|0;j=(c[h+8>>2]|0)+(N(a[g>>0]|0,k<<16>>16)|0)|0;i=0;while(1){if((i|0)>=(k<<16>>16|0))break;b[f+(i<<1)>>1]=d[j+i>>0]<<7;i=i+1|0;k=b[o>>1]|0}fd(n,m,h,a[g>>0]|0);Kc(p,g+1|0,m,b[h+4>>1]|0,b[o>>1]|0);vd(q,f,b[o>>1]|0);i=0;while(1){g=b[o>>1]|0;if((i|0)>=(g|0))break;m=Lc(e[q+(i<<1)>>1]<<16)|0;n=f+(i<<1)|0;m=((b[p+(i<<1)>>1]<<14|0)/(m|0)|0)+(b[n>>1]|0)|0;m=(m|0)>0?m:0;b[n>>1]=(m|0)<32767?m:32767;i=i+1|0}sd(f,c[h+32>>2]|0,g);l=r;return}function Kc(c,e,f,g,h){c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;k=g<<16>>16;i=0;g=h<<16>>16;while(1){j=g+-1|0;if((g|0)<=0)break;i=(N(i<<16>>16,d[f+j>>0]|0)|0)>>8;g=a[e+j>>0]|0;h=g<<24>>24<<10;if(g<<24>>24>0)g=h+-102|0;else g=g<<24>>24==0?h:h|102;i=i+((N(g>>16,k)|0)+((N(g&65535,k)|0)>>16))|0;b[c+(j<<1)>>1]=i;g=j}return}function Lc(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;if((a|0)<1){d=0;l=e;return d|0}Mc(a,b,d);b=c[b>>2]|0;b=((b&1|0)==0?46214:32768)>>>(b>>1);d=(N(c[d>>2]<<16>>16,13959168)|0)>>16;d=b+((N(b>>16,d)|0)+((N(b&65535,d)|0)>>16))|0;l=e;return d|0}function Mc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Nc(a)|0;c[b>>2]=e;c[d>>2]=(Oc(a,24-e|0)|0)&127;return}function Nc(a){a=a|0;return Q(a|0)|0}function Oc(a,b){a=a|0;b=b|0;if(!b){b=a;return b|0}if((b|0)<0){b=a<<0-b|a>>>(b+32|0);return b|0}else{b=a<<32-b|a>>>b;return b|0}return 0}function Pc(a){a=a|0;c[a+4168>>2]=c[a+2328>>2]<<7;c[a+4240>>2]=65536;c[a+4244>>2]=65536;c[a+4256>>2]=20;c[a+4252>>2]=2;return}function Qc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=a+2316|0;g=a+4248|0;if((c[f>>2]|0)!=(c[g>>2]|0)){Pc(a);c[g>>2]=c[f>>2]}if(!e){Sc(a,b);return}else{Rc(a,b,d);g=a+4160|0;c[g>>2]=(c[g>>2]|0)+1;return}}function Rc(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0;P=l;l=l+64|0;h=P+52|0;i=P+48|0;j=P+44|0;k=P+40|0;O=P;g=P+32|0;r=a+2336|0;o=c[r>>2]|0;M=a+2328|0;G=l;l=l+((1*(o+(c[M>>2]|0)<<2)|0)+15&-16)|0;s=l;l=l+((1*(o<<1)|0)+15&-16)|0;c[g>>2]=c[a+4240>>2]>>6;o=a+4244|0;J=c[o>>2]|0;I=J>>6;c[g+4>>2]=I;if(c[a+2376>>2]|0){n=a+4182|0;m=n+32|0;do{b[n>>1]=0;n=n+2|0}while((n|0)<(m|0))}F=a+2332|0;A=a+2324|0;Tc(j,h,k,i,a+4|0,g,c[F>>2]|0,c[A>>2]|0);g=c[a+4252>>2]|0;if((c[j>>2]>>c[i>>2]|0)<(c[k>>2]>>c[h>>2]|0))g=Uc((N(g+-1|0,c[a+4256>>2]|0)|0)+-128|0)|0;else g=Uc((N(g,c[a+4256>>2]|0)|0)+-128|0)|0;C=a+4+(g<<2)|0;D=a+4172|0;L=a+4224|0;h=b[L>>1]|0;i=a+4160|0;g=Vc(c[i>>2]|0)|0;n=b[25164+(g<<1)>>1]|0;j=a+4164|0;if((c[j>>2]|0)==2)k=b[25168+(g<<1)>>1]|0;else k=b[25172+(g<<1)>>1]|0;g=a+4182|0;K=a+2340|0;id(g,c[K>>2]|0,64881);m=c[K>>2]|0;le(O|0,g|0,m<<1|0)|0;do if(!(c[i>>2]|0)){if((c[j>>2]|0)!=2){h=(Yc(4194304,Xc(134217728,md(g,m)|0)|0)|0)<<3;k=(N(h>>16,k)|0)+((N(h&65528,k)|0)>>16)>>14;h=16384;g=c[K>>2]|0;break}g=16384;h=0;while(1){if((h|0)==5)break;g=(g&65535)-(e[a+4172+(h<<1)>>1]|0)&65535;h=h+1|0}h=(Wc(g)|0)<<16>>16;h=(N(h,b[a+4236>>1]|0)|0)>>>14&65535;g=m}else g=m;while(0);H=a+4220|0;q=c[H>>2]|0;z=a+4168|0;m=(c[z>>2]>>7)+1>>1;p=c[r>>2]|0;E=p-m-g+-2|0;ld(s+(E<<1)|0,a+1348+(E<<1)|0,O,p-E|0,g);j=Zc(c[o>>2]|0)|0;j=(j|0)<1073741823?j:1073741823;y=c[r>>2]|0;i=j>>16;j=j&65535;g=E+(c[K>>2]|0)|0;while(1){if((g|0)>=(y|0))break;E=b[s+(g<<1)>>1]|0;c[G+(g<<2)>>2]=(N(i,E)|0)+((N(j,E)|0)>>16);g=g+1|0}u=a+4174|0;v=a+4176|0;w=a+4178|0;x=a+4180|0;s=n<<16>>16;t=a+2316|0;r=k<<16>>16;o=c[A>>2]|0;n=0;E=m;i=p;B=q;while(1){if((n|0)>=(o|0))break;m=h<<16>>16;k=c[F>>2]|0;h=G+(i-E+2<<2)|0;j=B;g=0;while(1){if((g|0)>=(k|0))break;E=c[h>>2]|0;A=b[D>>1]|0;A=(N(E>>16,A)|0)+((N(E&65535,A)|0)>>16)+2|0;E=c[h+-4>>2]|0;B=b[u>>1]|0;B=A+((N(E>>16,B)|0)+((N(E&65535,B)|0)>>16))|0;E=c[h+-8>>2]|0;A=b[v>>1]|0;A=B+((N(E>>16,A)|0)+((N(E&65535,A)|0)>>16))|0;E=c[h+-12>>2]|0;B=b[w>>1]|0;B=A+((N(E>>16,B)|0)+((N(E&65535,B)|0)>>16))|0;E=c[h+-16>>2]|0;A=b[x>>1]|0;A=B+((N(E>>16,A)|0)+((N(E&65535,A)|0)>>16))|0;E=(N(j,196314165)|0)+907633515|0;B=c[C+(E>>>25<<2)>>2]|0;c[G+(i<<2)>>2]=A+((N(B>>16,m)|0)+((N(B&65535,m)|0)>>16))<<2;h=h+4|0;i=i+1|0;j=E;g=g+1|0}g=0;while(1){if((g|0)==5)break;E=a+4172+(g<<1)|0;b[E>>1]=(N(s,b[E>>1]|0)|0)>>>15;g=g+1|0}E=c[z>>2]|0;E=Xc(E+(((E>>16)*655|0)+(((E&65535)*655|0)>>>16))|0,(c[t>>2]<<16>>16)*4608|0)|0;c[z>>2]=E;n=n+1|0;E=(E>>7)+1>>1;B=j;h=(N(r,m)|0)>>>15&65535}A=G+(y+-16<<2)|0;z=a+1284|0;n=A;g=z;m=n+64|0;do{c[n>>2]=c[g>>2];n=n+4|0;g=g+4|0}while((n|0)<(m|0));p=b[O>>1]|0;q=b[O+2>>1]|0;r=b[O+4>>1]|0;s=b[O+6>>1]|0;t=b[O+8>>1]|0;u=b[O+10>>1]|0;v=b[O+12>>1]|0;w=b[O+14>>1]|0;x=b[O+16>>1]|0;y=b[O+18>>1]|0;o=I<<16>>16;n=(J>>21)+1>>1;m=0;while(1){g=c[M>>2]|0;if((m|0)>=(g|0))break;j=c[A+(m+15<<2)>>2]|0;j=(c[K>>2]>>1)+((N(j>>16,p)|0)+((N(j&65535,p)|0)>>16))|0;g=c[A+(m+14<<2)>>2]|0;g=j+((N(g>>16,q)|0)+((N(g&65535,q)|0)>>16))|0;j=c[A+(m+13<<2)>>2]|0;j=g+((N(j>>16,r)|0)+((N(j&65535,r)|0)>>16))|0;g=c[A+(m+12<<2)>>2]|0;g=j+((N(g>>16,s)|0)+((N(g&65535,s)|0)>>16))|0;j=c[A+(m+11<<2)>>2]|0;j=g+((N(j>>16,t)|0)+((N(j&65535,t)|0)>>16))|0;g=c[A+(m+10<<2)>>2]|0;g=j+((N(g>>16,u)|0)+((N(g&65535,u)|0)>>16))|0;j=c[A+(m+9<<2)>>2]|0;j=g+((N(j>>16,v)|0)+((N(j&65535,v)|0)>>16))|0;g=c[A+(m+8<<2)>>2]|0;g=j+((N(g>>16,w)|0)+((N(g&65535,w)|0)>>16))|0;j=c[A+(m+7<<2)>>2]|0;j=g+((N(j>>16,x)|0)+((N(j&65535,x)|0)>>16))|0;g=c[A+(m+6<<2)>>2]|0;g=j+((N(g>>16,y)|0)+((N(g&65535,y)|0)>>16))|0;j=c[K>>2]|0;k=m+16|0;i=10;while(1){if((i|0)>=(j|0))break;I=c[A+(k-i+-1<<2)>>2]|0;J=b[O+(i<<1)>>1]|0;g=g+((N(I>>16,J)|0)+((N(I&65535,J)|0)>>16))|0;i=i+1|0}J=A+(k<<2)|0;g=(c[J>>2]|0)+(g<<4)|0;c[J>>2]=g;g=(N(g>>16,o)|0)+((N(g&65535,o)|0)>>16)+(N(g,n)|0)|0;if((g|0)<=8388479)if((g|0)<-8388736)g=-32768;else g=(g>>7)+1>>1;else g=32767;b[f+(m<<1)>>1]=g;m=m+1|0}n=z;g=A+(g<<2)|0;m=n+64|0;do{c[n>>2]=c[g>>2];n=n+4|0;g=g+4|0}while((n|0)<(m|0));c[H>>2]=B;b[L>>1]=h;g=0;while(1){if((g|0)==4)break;c[d+(g<<2)>>2]=E;g=g+1|0}l=P;return}function Sc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=d+4168|0;m=a[d+2765>>0]|0;c[d+4164>>2]=m<<24>>24;a:do if(m<<24>>24==2){m=d+4172|0;f=c[d+2332>>2]|0;g=c[d+2324>>2]|0;l=0;h=0;while(1){j=N(l,f)|0;k=g+-1|0;if((l|0)==(g|0)?1:(j|0)>=(c[e+(k<<2)>>2]|0))break;i=0;j=0;while(1){if((i|0)==5)break;o=j+(b[e+96+(((k-l|0)*5|0)+i<<1)>>1]|0)|0;i=i+1|0;j=o}if((j|0)>(h|0)){h=e+96+((g+65535-l<<16>>16)*5<<1)|0;b[m>>1]=b[h>>1]|0;b[m+2>>1]=b[h+2>>1]|0;b[m+4>>1]=b[h+4>>1]|0;b[m+6>>1]=b[h+6>>1]|0;b[m+8>>1]=b[h+8>>1]|0;c[n>>2]=c[e+(k-l<<2)>>2]<<8;h=j}l=l+1|0}c[m>>2]=0;c[m+4>>2]=0;b[m+8>>1]=0;b[d+4176>>1]=h;if((h|0)<11469){i=(11744256/(((h|0)>1?h:1)>>>0)|0)<<16>>16;h=0;while(1){if((h|0)==5)break a;o=d+4172+(h<<1)|0;b[o>>1]=(N(i,b[o>>1]|0)|0)>>>10;h=h+1|0}}if((h|0)>15565){i=(255016960/(h|0)|0)<<16>>16;h=0;while(1){if((h|0)==5)break a;o=d+4172+(h<<1)|0;b[o>>1]=(N(i,b[o>>1]|0)|0)>>>14;h=h+1|0}}}else{c[n>>2]=(c[d+2316>>2]<<16>>16)*4608;g=d+4172|0;c[g>>2]=0;c[g+4>>2]=0;b[g+8>>1]=0;g=c[d+2324>>2]|0;f=c[d+2332>>2]|0}while(0);le(d+4182|0,e+64|0,c[d+2340>>2]<<1|0)|0;b[d+4236>>1]=c[e+136>>2];n=e+16+(g+-2<<2)|0;e=c[n+4>>2]|0;o=d+4240|0;c[o>>2]=c[n>>2];c[o+4>>2]=e;c[d+4256>>2]=f;c[d+4252>>2]=g;return}function Tc(a,d,e,f,g,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=l;r=l;l=l+((1*(i<<1<<1)|0)+15&-16)|0;m=r;n=0;while(1){if((n|0)==2)break;p=N(n+j+-2|0,i)|0;q=h+(n<<2)|0;o=0;while(1){if((o|0)>=(i|0))break;t=c[g+(o+p<<2)>>2]|0;k=c[q>>2]|0;u=k<<16>>16;k=(N(t>>16,u)|0)+((N(t&65535,u)|0)>>16)+(N(t,(k>>15)+1>>1)|0)|0;if((k|0)>8388607)k=32767;else k=(k|0)<-8388608?-32768:k>>8;b[m+(o<<1)>>1]=k;o=o+1|0}m=m+(i<<1)|0;n=n+1|0}Id(a,d,r,i);Id(e,f,r+(i<<1)|0,i);l=s;return}function Uc(a){a=a|0;return ((a|0)>0?a:0)|0}function Vc(a){a=a|0;return ((a|0)<1?a:1)|0}function Wc(a){a=a|0;return (a<<16>>16>3277?a:3277)|0}function Xc(a,b){a=a|0;b=b|0;return ((a|0)<(b|0)?a:b)|0}function Yc(a,b){a=a|0;b=b|0;return ((a|0)>(b|0)?a:b)|0}function Zc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;c=_c((a|0)>0?a:0-a|0)|0;d=a<<c+-1;f=d>>16;a=536870911/(f|0)|0;e=a<<16;b=e>>16;d=0-((N(f,b)|0)+((N(d&65535,b)|0)>>16)<<3)|0;d=e+((N(d>>16,b)|0)+((N(d&65528,b)|0)>>16))+(N((a>>15)+1>>1,d)|0)|0;a=62-c|0;if((a|0)>=47)return ((a|0)<78?d>>a+-46:0)|0;a=46-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){f=b;f=f<<a;return f|0}f=(d|0)<(c|0)?c:d;f=f<<a;return f|0}else{if((d|0)>(c|0)){f=c;f=f<<a;return f|0}f=(d|0)<(b|0)?b:d;f=f<<a;return f|0}return 0}function _c(a){a=a|0;return Q(a|0)|0}function $c(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|0;f=k+4|0;i=k;if(c[a+4160>>2]|0){Id(a+4228|0,a+4232|0,d,e);c[a+4216>>2]=1;l=k;return}j=a+4216|0;a:do if(c[j>>2]|0){Id(i,f,d,e);f=c[f>>2]|0;g=c[a+4232>>2]|0;if((f|0)<=(g|0)){if((f|0)<(g|0))c[i>>2]=c[i>>2]>>g-f}else{h=a+4228|0;c[h>>2]=c[h>>2]>>f-g}h=c[i>>2]|0;f=a+4228|0;g=c[f>>2]|0;if((h|0)>(g|0)){a=_c(g)|0;g=g<<a+-1;c[f>>2]=g;f=h>>(Yc(25-a|0,0)|0);c[i>>2]=f;f=(ad((g|0)/(((f|0)>1?f:1)|0)|0)|0)<<4;h=((65536-f|0)/(e|0)|0)<<2;g=0;while(1){if((g|0)>=(e|0))break a;i=d+(g<<1)|0;a=b[i>>1]|0;b[i>>1]=(N(f>>16,a)|0)+((N(f&65532,a)|0)>>>16);f=f+h|0;if((f|0)>65536)break a;g=g+1|0}}}while(0);c[j>>2]=0;l=k;return}function ad(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;if((a|0)<1){d=0;l=e;return d|0}bd(a,b,d);b=c[b>>2]|0;b=((b&1|0)==0?46214:32768)>>>(b>>1);d=(N(c[d>>2]<<16>>16,13959168)|0)>>16;d=b+((N(b>>16,d)|0)+((N(b&65535,d)|0)>>16))|0;l=e;return d|0}function bd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=_c(a)|0;c[b>>2]=e;c[d>>2]=(cd(a,24-e|0)|0)&127;return}function cd(a,b){a=a|0;b=b|0;if(!b){b=a;return b|0}if((b|0)<0){b=a<<0-b|a>>>(b+32|0);return b|0}else{b=a<<32-b|a>>>b;return b|0}return 0}function dd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+32|0;i=e+24|0;g=e+16|0;h=e;f=i+2|0;ed(i,f,c,d,23568);j=g+2|0;ed(g,j,c,b[i>>1]|0,23408);d=h+2|0;ed(h,d,c,b[g>>1]|0,23248);ed(a,a+2|0,c,b[h>>1]|0,23088);ed(a+4|0,a+6|0,c,b[d>>1]|0,23088);d=h+4|0;i=h+6|0;ed(d,i,c,b[j>>1]|0,23248);ed(a+8|0,a+10|0,c,b[d>>1]|0,23088);ed(a+12|0,a+14|0,c,b[i>>1]|0,23088);i=g+4|0;g=g+6|0;ed(i,g,c,b[f>>1]|0,23408);d=h+8|0;f=h+10|0;ed(d,f,c,b[i>>1]|0,23248);ed(a+16|0,a+18|0,c,b[d>>1]|0,23088);ed(a+20|0,a+22|0,c,b[f>>1]|0,23088);f=h+12|0;d=h+14|0;ed(f,d,c,b[g>>1]|0,23248);ed(a+24|0,a+26|0,c,b[f>>1]|0,23088);ed(a+28|0,a+30|0,c,b[d>>1]|0,23088);l=e;return}function ed(a,c,e,f,g){a=a|0;c=c|0;e=e|0;f=f|0;g=g|0;if((f|0)>0){g=nb(e,g+(d[23728+f>>0]|0)|0,8)|0;b[a>>1]=g;g=f-g&65535;b[c>>1]=g;return}else{b[a>>1]=0;g=0;b[c>>1]=g;return}}function fd(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;j=f+2|0;h=b[j>>1]|0;i=f+16|0;f=(c[f+20>>2]|0)+((N(h<<16>>16,g)|0)/2|0)|0;g=0;while(1){if((g|0)>=(h<<16>>16|0))break;l=a[f>>0]|0;k=l&255;b[d+(g<<1)>>1]=(k>>>1&7)*9;a[e+g>>0]=a[(c[i>>2]|0)+(g+((b[j>>1]|0)+-1&0-(l&1)))>>0]|0;h=g|1;b[d+(h<<1)>>1]=((l&255)>>>5)*9&255;a[e+h>>0]=a[(c[i>>2]|0)+(g+((b[j>>1]|0)+-1&0-(k>>>4&1))+1)>>0]|0;f=f+1|0;g=g+2|0;h=b[j>>1]|0}return}function gd(a,d,f,g,h,i){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|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;r=a+4|0;j=e[r>>1]|e[r+2>>1]<<16;b[d>>1]=j;b[d+2>>1]=j>>>16;j=a+8|0;k=e[j>>1]|e[j+2>>1]<<16;b[f>>1]=k;b[f+2>>1]=k>>>16;k=d+(i<<1)|0;k=e[k>>1]|e[k+2>>1]<<16;b[r>>1]=k;b[r+2>>1]=k>>>16;r=f+(i<<1)|0;r=e[r>>1]|e[r+2>>1]<<16;b[j>>1]=r;b[j+2>>1]=r>>>16;j=b[a>>1]|0;r=a+2|0;k=b[r>>1]|0;h=h<<3;o=(65536/(h|0)|0)<<16>>16;n=((N((c[g>>2]|0)-(j&65535)<<16>>16,o)|0)>>15)+1>>1;q=g+4|0;o=((N((c[q>>2]|0)-(k&65535)<<16>>16,o)|0)>>15)+1>>1;k=k<<16>>16;j=j<<16>>16;l=0;while(1){if((l|0)>=(h|0))break;j=j+n|0;k=k+o|0;p=l+1|0;s=b[d+(p<<1)>>1]|0;u=(b[d+(l<<1)>>1]|0)+(b[d+(l+2<<1)>>1]|0)+(s<<1)|0;m=f+(p<<1)|0;t=j<<16>>16;l=k<<16>>16;l=(b[m>>1]<<8)+((N(u>>7,t)|0)+((N(u<<9&65024,t)|0)>>16))+((N(s>>5,l)|0)+((N(s<<11&63488,l)|0)>>16))|0;if((l|0)<=8388479)if((l|0)<-8388736)l=-32768;else l=(l>>7)+1>>1;else l=32767;b[m>>1]=l;l=p}l=c[g>>2]<<16>>16;m=c[q>>2]<<16>>16;while(1){if((h|0)>=(i|0))break;k=h+1|0;u=b[d+(k<<1)>>1]|0;h=(b[d+(h<<1)>>1]|0)+(b[d+(h+2<<1)>>1]|0)+(u<<1)|0;j=f+(k<<1)|0;h=(b[j>>1]<<8)+((N(h>>7,l)|0)+((N(h<<9&65024,l)|0)>>16))+((N(u>>5,m)|0)+((N(u<<11&63488,m)|0)>>16))|0;if((h|0)<=8388479)if((h|0)<-8388736)h=-32768;else h=(h>>7)+1>>1;else h=32767;b[j>>1]=h;h=k}b[a>>1]=c[g>>2];b[r>>1]=c[q>>2];h=0;while(1){if((h|0)>=(i|0))break;u=h+1|0;g=d+(u<<1)|0;a=b[g>>1]|0;t=f+(u<<1)|0;s=b[t>>1]|0;r=a+s|0;s=a-s|0;r=(r|0)>-32768?r:-32768;b[g>>1]=(r|0)<32767?r:32767;s=(s|0)>-32768?s:-32768;b[t>>1]=(s|0)<32767?s:32767;h=u}return}function hd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=d+-65536|0;f=b+-1|0;e=0;b=d;while(1){d=b>>16;if((e|0)>=(f|0))break;h=a+(e<<2)|0;i=c[h>>2]|0;j=i<<16>>16;c[h>>2]=(N(d,j)|0)+((N(b&65535,j)|0)>>16)+(N(b,(i>>15)+1>>1)|0);e=e+1|0;b=b+(((N(b,g)|0)>>15)+1>>1)|0}j=a+(f<<2)|0;i=c[j>>2]|0;h=i<<16>>16;c[j>>2]=(N(d,h)|0)+((N(b&65535,h)|0)>>16)+(N(b,(i>>15)+1>>1)|0);return}function id(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=d+-65536|0;f=c+-1|0;e=0;c=d;while(1){if((e|0)>=(f|0))break;d=a+(e<<1)|0;b[d>>1]=(((N(c,b[d>>1]|0)|0)>>>15)+1|0)>>>1;e=e+1|0;c=c+(((N(c,g)|0)>>15)+1>>1)|0}g=a+(f<<1)|0;b[g>>1]=(((N(c,b[g>>1]|0)|0)>>>15)+1|0)>>>1;return}function jd(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=(f|0)==8;m=(g|0)==4;n=l?(m?11:3):m?34:12;m=l?(m?24128:25319):m?24176:24096;l=f<<16;k=l>>15;l=(l>>16)*18|0;j=k+(b<<16>>16)|0;d=d<<24>>24;h=(k|0)>(l|0);b=0;while(1){if((b|0)>=(g|0))break;f=j+(a[m+((N(b,n)|0)+d)>>0]|0)|0;i=e+(b<<2)|0;c[i>>2]=f;if(h)if((f|0)>(k|0))f=k;else f=(f|0)<(l|0)?l:f;else if((f|0)>(l|0))f=l;else f=(f|0)<(k|0)?k:f;c[i>>2]=f;b=b+1|0}return}function kd(a){a=a|0;var b=0,c=0,d=0;if((a|0)<0){d=0;return d|0}if((a|0)>3966){d=2147483647;return d|0}b=a>>7;d=1<<b;c=a&127;if((a|0)<2048)a=c+((N(N(c,128-c|0)|0,-174)|0)>>16)<<b>>7;else a=N(d>>7,c+((N(N(c,128-c|0)|0,-174)|0)>>16)|0)|0;d=d+a|0;return d|0}function ld(a,c,d,e,f){a=a|0;c=c|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;k=d+2|0;l=d+4|0;m=d+6|0;n=d+8|0;o=d+10|0;h=f;while(1){if((h|0)>=(e|0))break;j=c+(h+-1<<1)|0;g=N(b[j>>1]|0,b[d>>1]|0)|0;g=g+(N(b[j+-2>>1]|0,b[k>>1]|0)|0)|0;g=g+(N(b[j+-4>>1]|0,b[l>>1]|0)|0)|0;g=g+(N(b[j+-6>>1]|0,b[m>>1]|0)|0)|0;g=g+(N(b[j+-8>>1]|0,b[n>>1]|0)|0)|0;g=g+(N(b[j+-10>>1]|0,b[o>>1]|0)|0)|0;i=6;while(1){if((i|0)>=(f|0))break;p=g+(N(b[j+(0-i<<1)>>1]|0,b[d+(i<<1)>>1]|0)|0)|0;g=p+(N(b[j+(~i<<1)>>1]|0,b[d+((i|1)<<1)>>1]|0)|0)|0;i=i+2|0}p=(b[c+(h<<1)>>1]<<12)-g|0;b[a+(h<<1)>>1]=(p|0)>134215679?32767:(p|0)<-134219776?-32768:((p>>>11)+1|0)>>>1&65535;h=h+1|0}ne(a|0,0,f<<1|0)|0;return}function md(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+128|0;g=i;h=d&1;e=0;f=0;while(1){if((f|0)>=(d|0))break;j=b[a+(f<<1)>>1]|0;c[g+(h<<6)+(f<<2)>>2]=j<<12;e=e+j|0;f=f+1|0}if((e|0)>4095){j=0;l=i;return j|0}j=nd(g,d)|0;l=i;return j|0}function nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=b;o=b&1;e=1073741824;f=0;while(1){n=d+-1|0;if((d|0)<=1)break;b=c[a+(o<<6)+(n<<2)>>2]|0;if((b+16773022|0)>>>0>33546044){b=0;p=13;break}m=0-(b<<7)|0;k=((m|0)<0)<<31>>31;he(m|0,k|0,m|0,k|0)|0;j=1073741824-y|0;i=32-(od((j|0)>0?j:0-j|0)|0)|0;l=pd(j,i+30|0)|0;f=he(e|0,f|0,j|0,((j|0)<0)<<31>>31|0)|0;f=je(f|0,y|0,30)|0;j=n&1;g=(i|0)==1;h=((l|0)<0)<<31>>31;i=i+-1|0;e=0;while(1){if((n|0)<=(e|0))break;d=c[a+(o<<6)+(e<<2)>>2]|0;b=c[a+(o<<6)+(n-e+-1<<2)>>2]|0;b=he(b|0,((b|0)<0)<<31>>31|0,m|0,k|0)|0;b=je(b|0,y|0,30)|0;b=ke(b|0,y|0,1,0)|0;b=je(b|0,y|0,1)|0;b=d-b|0;b=he(b|0,((b|0)<0)<<31>>31|0,l|0,h|0)|0;d=y;if(g){d=je(b|0,d|0,1)|0;b=ke(d|0,y|0,b&1|0,0)|0}else{b=ie(b|0,d|0,i|0)|0;b=ke(b|0,y|0,1,0)|0;b=je(b|0,y|0,1)|0}c[a+(j<<6)+(e<<2)>>2]=b;e=e+1|0}f=f&-4;d=n;o=j;e=f;f=((f|0)<0)<<31>>31}if((p|0)==13)return b|0;b=c[a+(o<<6)>>2]|0;if((b+16773022|0)>>>0>33546044){p=0;return p|0}a=0-(b<<7)|0;p=((a|0)<0)<<31>>31;he(a|0,p|0,a|0,p|0)|0;p=1073741824-y|0;p=he(e|0,f|0,p|0,((p|0)<0)<<31>>31|0)|0;p=je(p|0,y|0,30)|0;p=p&-4;return p|0}function od(a){a=a|0;return Q(a|0)|0}function pd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=od((a|0)>0?a:0-a|0)|0;d=a<<c+-1;g=d>>16;a=536870911/(g|0)|0;f=a<<16;e=f>>16;d=0-((N(g,e)|0)+((N(d&65535,e)|0)>>16)<<3)|0;d=f+((N(d>>16,e)|0)+((N(d&65528,e)|0)>>16))+(N((a>>15)+1>>1,d)|0)|0;a=62-c-b|0;if((a|0)>=1)return ((a|0)<32?d>>a:0)|0;a=0-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){g=b;g=g<<a;return g|0}g=(d|0)<(c|0)?c:d;g=g<<a;return g|0}else{if((d|0)>(c|0)){g=c;g=g<<a;return g|0}g=(d|0)<(b|0)?b:d;g=g<<a;return g|0}return 0}function qd(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0;n=l;l=l+224|0;i=n+160|0;j=n+112|0;k=n+64|0;m=n;h=(f|0)==16?24080:25309;g=0;while(1){if((g|0)>=(f|0))break;o=b[e+(g<<1)>>1]|0;q=o>>8;p=b[23808+(q<<1)>>1]|0;o=((p<<8)+(N((b[23808+(q+1<<1)>>1]|0)-p|0,o&255)|0)>>3)+1>>1;c[i+(d[h+g>>0]<<2)>>2]=o;g=g+1|0}e=f>>1;rd(j,i,e);rd(k,i+4|0,e);g=0;while(1){if((g|0)>=(e|0))break;q=g+1|0;p=(c[j+(q<<2)>>2]|0)+(c[j+(g<<2)>>2]|0)|0;o=(c[k+(q<<2)>>2]|0)-(c[k+(g<<2)>>2]|0)|0;c[m+(g<<2)>>2]=0-o-p;c[m+(f-g+-1<<2)>>2]=o-p;g=q}g=0;i=0;while(1){if(i>>>0>=10)break;h=0;e=0;while(1){if((e|0)>=(f|0))break;p=c[m+(e<<2)>>2]|0;p=(p|0)>0?p:0-p|0;q=(p|0)>(h|0);h=q?p:h;g=q?e:g;e=e+1|0}if((h|0)<=1048559)break;q=(h|0)<5242800?(h>>4)+1>>1:163838;hd(m,f,65470-(((q<<14)+-536854528|0)/((N(q,g+1|0)|0)>>2|0)|0)|0);i=i+1|0}a:do if((i|0)==10){e=0;while(1){if((e|0)>=(f|0))break a;h=m+(e<<2)|0;g=c[h>>2]|0;if((g|0)<=1048559)if((g|0)<-1048592)g=-32768;else g=(g>>4)+1>>1;else g=32767;b[a+(e<<1)>>1]=g;c[h>>2]=g<<16>>11;e=e+1|0}}else{g=0;while(1){if((g|0)>=(f|0))break a;b[a+(g<<1)>>1]=(((c[m+(g<<2)>>2]|0)>>>4)+1|0)>>>1;g=g+1|0}}while(0);g=0;while(1){if(g>>>0>=16){g=31;break}if((md(a,f)|0)>=107374){g=31;break}hd(m,f,65536-(2<<g)|0);e=0;while(1){if((e|0)>=(f|0))break;b[a+(e<<1)>>1]=(((c[m+(e<<2)>>2]|0)>>>4)+1|0)>>>1;e=e+1|0}g=g+1|0}if((g|0)==31){l=n;return}}function rd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c[a>>2]=65536;j=a+4|0;f=1;e=0-(c[b>>2]|0)|0;while(1){c[j>>2]=e;if((f|0)>=(d|0))break;i=c[b+(f<<1<<2)>>2]|0;k=c[a+(f+-1<<2)>>2]|0;g=((i|0)<0)<<31>>31;e=c[a+(f<<2)>>2]|0;e=he(i|0,g|0,e|0,((e|0)<0)<<31>>31|0)|0;e=je(e|0,y|0,15)|0;e=ke(e|0,y|0,1,0)|0;e=je(e|0,y|0,1)|0;h=f+1|0;c[a+(h<<2)>>2]=(k<<1)-e;e=f;f=k;while(1){if((e|0)<=1)break;k=c[a+(e+-2<<2)>>2]|0;m=he(i|0,g|0,f|0,((f|0)<0)<<31>>31|0)|0;m=je(m|0,y|0,15)|0;m=ke(m|0,y|0,1,0)|0;m=je(m|0,y|0,1)|0;l=a+(e<<2)|0;c[l>>2]=(c[l>>2]|0)+(k-m);e=e+-1|0;f=k}f=h;e=(c[j>>2]|0)-i|0}return}function sd(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=a+(d+-1<<1)|0;q=c+(d<<1)|0;n=0;while(1){if(n>>>0>=20)break;h=b[a>>1]|0;j=b[c>>1]|0;i=(h<<16>>16)-(j<<16>>16)|0;f=1;g=0;while(1){if((f|0)>=(d|0))break;m=b[a+(f<<1)>>1]|0;k=(m<<16>>16)-((h<<16>>16)+(b[c+(f<<1)>>1]|0))|0;r=(k|0)<(i|0);l=r?f:g;i=r?k:i;f=f+1|0;g=l;h=m}r=32768-((b[p>>1]|0)+(b[q>>1]|0))|0;l=(r|0)<(i|0);m=l?d:g;if(((l?r:i)|0)>-1){o=31;break}do if(!m)b[a>>1]=j;else{if((m|0)==(d|0)){b[p>>1]=32768-(e[q>>1]|0);break}h=0;f=0;while(1){if((f|0)>=(m|0))break;h=h+(b[c+(f<<1)>>1]|0)|0;f=f+1|0}k=c+(m<<1)|0;l=b[k>>1]>>1;g=32768;f=d;while(1){if((f|0)<=(m|0))break;g=g-(b[c+(f<<1)>>1]|0)|0;f=f+-1|0}f=h+l|0;h=g-l|0;j=a+(m+-1<<1)|0;r=b[j>>1]|0;i=a+(m<<1)|0;g=b[i>>1]|0;g=((r<<16>>16)+(g<<16>>16)>>1)+((r&65535)+(g&65535)&1)|0;if((f|0)>(h|0)){if((g|0)<=(f|0))f=(g|0)<(h|0)?h:g}else if((g|0)>(h|0))f=h;else f=(g|0)<(f|0)?f:g;r=f-l|0;b[j>>1]=r;b[i>>1]=r+(e[k>>1]|0)}while(0);n=n+1|0}if((o|0)==31)return;if((n|0)!=20)return;Hd(a,d);g=td(b[a>>1]|0,b[c>>1]|0)|0;b[a>>1]=g;f=1;while(1){if((f|0)>=(d|0))break;o=a+(f<<1)|0;r=td(b[o>>1]|0,(g<<16>>16)+(b[c+(f<<1)>>1]|0)|0)|0;b[o>>1]=r;f=f+1|0;g=r}g=ud(b[p>>1]|0,32768-(b[q>>1]|0)|0)|0;b[p>>1]=g;f=d+-2|0;while(1){if((f|0)<=-1)break;q=a+(f<<1)|0;r=ud(b[q>>1]|0,(g<<16>>16)-(b[c+(f+1<<1)>>1]|0)|0)|0;b[q>>1]=r;f=f+-1|0;g=r}return}function td(a,b){a=a|0;b=b|0;return ((a|0)>(b|0)?a:b)|0}function ud(a,b){a=a|0;b=b|0;return ((a|0)<(b|0)?a:b)|0}function vd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=b[c>>1]|0;f=131072/(wd(e)|0)|0;e=131072/(wd((b[c+2>>1]|0)-e|0)|0)|0;b[a>>1]=xd(f+e|0)|0;f=d+-1|0;d=e;e=1;while(1){if((e|0)>=(f|0))break;i=e+1|0;h=c+(i<<1)|0;j=131072/(wd((b[h>>1]|0)-(b[c+(e<<1)>>1]|0)|0)|0)|0;b[a+(e<<1)>>1]=xd(j+d|0)|0;g=e+2|0;h=131072/(wd((b[c+(g<<1)>>1]|0)-(b[h>>1]|0)|0)|0)|0;b[a+(i<<1)>>1]=xd(j+h|0)|0;d=h;e=g}b[a+(f<<1)>>1]=xd((131072/(wd(32768-(b[c+(f<<1)>>1]|0)|0)|0)|0)+d|0)|0;return}function wd(a){a=a|0;return ((a|0)>1?a:1)|0}function xd(a){a=a|0;return ((a|0)<32767?a:32767)|0}function yd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;ne(b|0,0,300)|0;a:do if((d|0)>=12e3)if((d|0)<16e3){switch(d|0){case 12e3:break a;default:f=-1}return f|0}else{switch(d|0){case 16e3:break a;default:f=-1}return f|0}else{switch(d|0){case 8e3:break a;default:f=-1}return f|0}while(0);b:do if((e|0)<16e3)if((e|0)<12e3){switch(e|0){case 8e3:break b;default:f=-1}return f|0}else{switch(e|0){case 12e3:break b;default:f=-1}return f|0}else{if((e|0)<24e3){switch(e|0){case 16e3:break b;default:f=-1}return f|0}if((e|0)<48e3){switch(e|0){case 24e3:break b;default:f=-1}return f|0}else{switch(e|0){case 48e3:break b;default:f=-1}return f|0}}while(0);c[b+292>>2]=a[((e>>12)-((e|0)>16e3&1)>>((e|0)>24e3&1))+-1+(25325+((((d>>12)-((d|0)>16e3&1)>>((d|0)>24e3&1))+-1|0)*5|0))>>0];i=(d|0)/1e3|0;c[b+284>>2]=i;c[b+288>>2]=(e|0)/1e3|0;c[b+268>>2]=i*10;do if((e|0)>(d|0)){f=b+264|0;if((d<<1|0)==(e|0)){c[f>>2]=1;f=0;break}else{c[f>>2]=2;f=1;break}}else{f=b+264|0;if((e|0)>=(d|0)){c[f>>2]=0;f=0;break}c[f>>2]=3;f=e<<2;if((f|0)==(d*3|0)){c[b+280>>2]=3;c[b+276>>2]=18;c[b+296>>2]=24320;f=0;break}g=e*3|0;if((g|0)==(d<<1|0)){c[b+280>>2]=2;c[b+276>>2]=18;c[b+296>>2]=24384;f=0;break}if((e<<1|0)==(d|0)){c[b+280>>2]=1;c[b+276>>2]=24;c[b+296>>2]=24432;f=0;break}if((g|0)==(d|0)){c[b+280>>2]=1;c[b+276>>2]=36;c[b+296>>2]=24464;f=0;break}if((f|0)==(d|0)){c[b+280>>2]=1;c[b+276>>2]=36;c[b+296>>2]=24512;f=0;break}if((e*6|0)==(d|0)){c[b+280>>2]=1;c[b+276>>2]=36;c[b+296>>2]=24560;f=0;break}else{d=-1;return d|0}}while(0);g=((d<<(f|14)|0)/(e|0)|0)<<2;h=b+272|0;c[h>>2]=g;i=e<<16>>16;b=(e>>15)+1>>1;f=d<<f;while(1){if(((N(g>>16,i)|0)+((N(g&65535,i)|0)>>16)+(N(g,b)|0)|0)>=(f|0)){f=0;break}d=g+1|0;c[h>>2]=d;g=d}return f|0}function zd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=a+284|0;h=a+292|0;i=c[h>>2]|0;g=(c[f>>2]|0)-i|0;le(a+168+(i<<1)|0,d|0,g<<1|0)|0;switch(c[a+264>>2]|0){case 1:{i=a+168|0;Gd(a,b,i,c[f>>2]|0);Gd(a,b+(c[a+288>>2]<<1)|0,d+(g<<1)|0,e-(c[f>>2]|0)|0);a=i;break}case 2:{i=a+168|0;Dd(a,b,i,c[f>>2]|0);Dd(a,b+(c[a+288>>2]<<1)|0,d+(g<<1)|0,e-(c[f>>2]|0)|0);a=i;break}case 3:{i=a+168|0;Bd(a,b,i,c[f>>2]|0);Bd(a,b+(c[a+288>>2]<<1)|0,d+(g<<1)|0,e-(c[f>>2]|0)|0);a=i;break}default:{i=a+168|0;le(b|0,i|0,c[f>>2]<<1|0)|0;le(b+(c[a+288>>2]<<1)|0,d+(g<<1)|0,e-(c[f>>2]|0)<<1|0)|0;a=i}}i=c[h>>2]|0;le(a|0,d+(e-i<<1)|0,i<<1|0)|0;return}function Ad(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;i=a+4|0;j=f+2|0;h=0;while(1){if((h|0)>=(g|0))break;l=(c[a>>2]|0)+(b[e+(h<<1)>>1]<<8)|0;c[d+(h<<2)>>2]=l;l=l<<2;m=l>>16;k=b[f>>1]|0;l=l&65532;c[a>>2]=(c[i>>2]|0)+((N(m,k)|0)+((N(l,k)|0)>>16));k=b[j>>1]|0;c[i>>2]=(N(m,k)|0)+((N(l,k)|0)>>16);h=h+1|0}return}function Bd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;q=l;n=a+268|0;r=c[n>>2]|0;o=a+276|0;f=c[o>>2]|0;p=l;l=l+((1*(r+f<<2)|0)+15&-16)|0;h=a+24|0;le(p|0,h|0,f<<2|0)|0;i=a+296|0;j=(c[i>>2]|0)+4|0;k=c[a+272>>2]|0;m=a+280|0;g=d;d=r;while(1){d=(e|0)<(d|0)?e:d;Ad(a,p+(f<<2)|0,g,c[i>>2]|0,d);b=Cd(b,p,j,c[o>>2]|0,c[m>>2]|0,d<<16,k)|0;e=e-d|0;if((e|0)<=1)break;f=c[o>>2]|0;le(p|0,p+(d<<2)|0,f<<2|0)|0;g=g+(d<<1)|0;d=c[n>>2]|0}le(h|0,p+(d<<2)|0,c[o>>2]<<2|0)|0;l=q;return}function Cd(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,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;switch(f|0){case 18:{k=g<<16>>16;j=g+-1|0;g=0;while(1){if((g|0)>=(h|0))break;z=d+(g>>16<<2)|0;f=(N(g&65535,k)|0)>>16;y=e+(f*9<<1)|0;x=c[z>>2]|0;v=b[y>>1]|0;v=(N(x>>16,v)|0)+((N(x&65535,v)|0)>>16)|0;x=c[z+4>>2]|0;w=b[y+2>>1]|0;w=v+((N(x>>16,w)|0)+((N(x&65535,w)|0)>>16))|0;x=c[z+8>>2]|0;v=b[y+4>>1]|0;v=w+((N(x>>16,v)|0)+((N(x&65535,v)|0)>>16))|0;x=c[z+12>>2]|0;w=b[y+6>>1]|0;w=v+((N(x>>16,w)|0)+((N(x&65535,w)|0)>>16))|0;x=c[z+16>>2]|0;v=b[y+8>>1]|0;v=w+((N(x>>16,v)|0)+((N(x&65535,v)|0)>>16))|0;x=c[z+20>>2]|0;w=b[y+10>>1]|0;w=v+((N(x>>16,w)|0)+((N(x&65535,w)|0)>>16))|0;x=c[z+24>>2]|0;v=b[y+12>>1]|0;v=w+((N(x>>16,v)|0)+((N(x&65535,v)|0)>>16))|0;x=c[z+28>>2]|0;w=b[y+14>>1]|0;w=v+((N(x>>16,w)|0)+((N(x&65535,w)|0)>>16))|0;x=c[z+32>>2]|0;y=b[y+16>>1]|0;y=w+((N(x>>16,y)|0)+((N(x&65535,y)|0)>>16))|0;f=e+((j-f|0)*9<<1)|0;x=c[z+68>>2]|0;w=b[f>>1]|0;w=y+((N(x>>16,w)|0)+((N(x&65535,w)|0)>>16))|0;x=c[z+64>>2]|0;y=b[f+2>>1]|0;y=w+((N(x>>16,y)|0)+((N(x&65535,y)|0)>>16))|0;x=c[z+60>>2]|0;w=b[f+4>>1]|0;w=y+((N(x>>16,w)|0)+((N(x&65535,w)|0)>>16))|0;x=c[z+56>>2]|0;y=b[f+6>>1]|0;y=w+((N(x>>16,y)|0)+((N(x&65535,y)|0)>>16))|0;x=c[z+52>>2]|0;w=b[f+8>>1]|0;w=y+((N(x>>16,w)|0)+((N(x&65535,w)|0)>>16))|0;x=c[z+48>>2]|0;y=b[f+10>>1]|0;y=w+((N(x>>16,y)|0)+((N(x&65535,y)|0)>>16))|0;x=c[z+44>>2]|0;w=b[f+12>>1]|0;w=y+((N(x>>16,w)|0)+((N(x&65535,w)|0)>>16))|0;x=c[z+40>>2]|0;y=b[f+14>>1]|0;y=w+((N(x>>16,y)|0)+((N(x&65535,y)|0)>>16))|0;z=c[z+36>>2]|0;f=b[f+16>>1]|0;f=y+((N(z>>16,f)|0)+((N(z&65535,f)|0)>>16))|0;if((f|0)<=2097119)if((f|0)<-2097184)f=-32768;else f=(f>>5)+1>>1;else f=32767;b[a>>1]=f;a=a+2|0;g=g+i|0}return a|0}case 24:{j=e+2|0;k=e+4|0;l=e+6|0;m=e+8|0;n=e+10|0;o=e+12|0;p=e+14|0;q=e+16|0;r=e+18|0;s=e+20|0;t=e+22|0;g=0;while(1){if((g|0)>=(h|0))break;z=d+(g>>16<<2)|0;f=(c[z>>2]|0)+(c[z+92>>2]|0)|0;y=b[e>>1]|0;y=(N(f>>16,y)|0)+((N(f&65535,y)|0)>>16)|0;f=(c[z+4>>2]|0)+(c[z+88>>2]|0)|0;x=b[j>>1]|0;x=y+((N(f>>16,x)|0)+((N(f&65535,x)|0)>>16))|0;f=(c[z+8>>2]|0)+(c[z+84>>2]|0)|0;y=b[k>>1]|0;y=x+((N(f>>16,y)|0)+((N(f&65535,y)|0)>>16))|0;f=(c[z+12>>2]|0)+(c[z+80>>2]|0)|0;x=b[l>>1]|0;x=y+((N(f>>16,x)|0)+((N(f&65535,x)|0)>>16))|0;f=(c[z+16>>2]|0)+(c[z+76>>2]|0)|0;y=b[m>>1]|0;y=x+((N(f>>16,y)|0)+((N(f&65535,y)|0)>>16))|0;f=(c[z+20>>2]|0)+(c[z+72>>2]|0)|0;x=b[n>>1]|0;x=y+((N(f>>16,x)|0)+((N(f&65535,x)|0)>>16))|0;f=(c[z+24>>2]|0)+(c[z+68>>2]|0)|0;y=b[o>>1]|0;y=x+((N(f>>16,y)|0)+((N(f&65535,y)|0)>>16))|0;f=(c[z+28>>2]|0)+(c[z+64>>2]|0)|0;x=b[p>>1]|0;x=y+((N(f>>16,x)|0)+((N(f&65535,x)|0)>>16))|0;f=(c[z+32>>2]|0)+(c[z+60>>2]|0)|0;y=b[q>>1]|0;y=x+((N(f>>16,y)|0)+((N(f&65535,y)|0)>>16))|0;f=(c[z+36>>2]|0)+(c[z+56>>2]|0)|0;x=b[r>>1]|0;x=y+((N(f>>16,x)|0)+((N(f&65535,x)|0)>>16))|0;f=(c[z+40>>2]|0)+(c[z+52>>2]|0)|0;y=b[s>>1]|0;y=x+((N(f>>16,y)|0)+((N(f&65535,y)|0)>>16))|0;z=(c[z+44>>2]|0)+(c[z+48>>2]|0)|0;f=b[t>>1]|0;f=y+((N(z>>16,f)|0)+((N(z&65535,f)|0)>>16))|0;if((f|0)<=2097119)if((f|0)<-2097184)f=-32768;else f=(f>>5)+1>>1;else f=32767;b[a>>1]=f;a=a+2|0;g=g+i|0}return a|0}case 36:{j=e+2|0;k=e+4|0;l=e+6|0;m=e+8|0;n=e+10|0;o=e+12|0;p=e+14|0;q=e+16|0;r=e+18|0;s=e+20|0;t=e+22|0;u=e+24|0;v=e+26|0;w=e+28|0;x=e+30|0;y=e+32|0;z=e+34|0;g=0;while(1){if((g|0)>=(h|0))break;A=d+(g>>16<<2)|0;f=(c[A>>2]|0)+(c[A+140>>2]|0)|0;B=b[e>>1]|0;B=(N(f>>16,B)|0)+((N(f&65535,B)|0)>>16)|0;f=(c[A+4>>2]|0)+(c[A+136>>2]|0)|0;C=b[j>>1]|0;C=B+((N(f>>16,C)|0)+((N(f&65535,C)|0)>>16))|0;f=(c[A+8>>2]|0)+(c[A+132>>2]|0)|0;B=b[k>>1]|0;B=C+((N(f>>16,B)|0)+((N(f&65535,B)|0)>>16))|0;f=(c[A+12>>2]|0)+(c[A+128>>2]|0)|0;C=b[l>>1]|0;C=B+((N(f>>16,C)|0)+((N(f&65535,C)|0)>>16))|0;f=(c[A+16>>2]|0)+(c[A+124>>2]|0)|0;B=b[m>>1]|0;B=C+((N(f>>16,B)|0)+((N(f&65535,B)|0)>>16))|0;f=(c[A+20>>2]|0)+(c[A+120>>2]|0)|0;C=b[n>>1]|0;C=B+((N(f>>16,C)|0)+((N(f&65535,C)|0)>>16))|0;f=(c[A+24>>2]|0)+(c[A+116>>2]|0)|0;B=b[o>>1]|0;B=C+((N(f>>16,B)|0)+((N(f&65535,B)|0)>>16))|0;f=(c[A+28>>2]|0)+(c[A+112>>2]|0)|0;C=b[p>>1]|0;C=B+((N(f>>16,C)|0)+((N(f&65535,C)|0)>>16))|0;f=(c[A+32>>2]|0)+(c[A+108>>2]|0)|0;B=b[q>>1]|0;B=C+((N(f>>16,B)|0)+((N(f&65535,B)|0)>>16))|0;f=(c[A+36>>2]|0)+(c[A+104>>2]|0)|0;C=b[r>>1]|0;C=B+((N(f>>16,C)|0)+((N(f&65535,C)|0)>>16))|0;f=(c[A+40>>2]|0)+(c[A+100>>2]|0)|0;B=b[s>>1]|0;B=C+((N(f>>16,B)|0)+((N(f&65535,B)|0)>>16))|0;f=(c[A+44>>2]|0)+(c[A+96>>2]|0)|0;C=b[t>>1]|0;C=B+((N(f>>16,C)|0)+((N(f&65535,C)|0)>>16))|0;f=(c[A+48>>2]|0)+(c[A+92>>2]|0)|0;B=b[u>>1]|0;B=C+((N(f>>16,B)|0)+((N(f&65535,B)|0)>>16))|0;f=(c[A+52>>2]|0)+(c[A+88>>2]|0)|0;C=b[v>>1]|0;C=B+((N(f>>16,C)|0)+((N(f&65535,C)|0)>>16))|0;f=(c[A+56>>2]|0)+(c[A+84>>2]|0)|0;B=b[w>>1]|0;B=C+((N(f>>16,B)|0)+((N(f&65535,B)|0)>>16))|0;f=(c[A+60>>2]|0)+(c[A+80>>2]|0)|0;C=b[x>>1]|0;C=B+((N(f>>16,C)|0)+((N(f&65535,C)|0)>>16))|0;f=(c[A+64>>2]|0)+(c[A+76>>2]|0)|0;B=b[y>>1]|0;B=C+((N(f>>16,B)|0)+((N(f&65535,B)|0)>>16))|0;A=(c[A+68>>2]|0)+(c[A+72>>2]|0)|0;f=b[z>>1]|0;f=B+((N(A>>16,f)|0)+((N(A&65535,f)|0)>>16))|0;if((f|0)<=2097119)if((f|0)<-2097184)f=-32768;else f=(f>>5)+1>>1;else f=32767;b[a>>1]=f;a=a+2|0;g=g+i|0}return a|0}default:{C=a;return C|0}}return 0}function Dd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;j=a+268|0;o=c[j>>2]|0;k=l;l=l+((1*((o<<1)+8<<1)|0)+15&-16)|0;m=a+24|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];h=c[a+272>>2]|0;i=k+16|0;g=e;e=o;while(1){e=(f|0)<(e|0)?f:e;Fd(a,i,g,e);d=Ed(d,k,e<<17,h)|0;f=f-e|0;if((f|0)<=0)break;o=k+(e<<1<<1)|0;c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];g=g+(e<<1)|0;e=c[j>>2]|0}o=k+(e<<1<<1)|0;b[m>>1]=b[o>>1]|0;b[m+2>>1]=b[o+2>>1]|0;b[m+4>>1]=b[o+4>>1]|0;b[m+6>>1]=b[o+6>>1]|0;b[m+8>>1]=b[o+8>>1]|0;b[m+10>>1]=b[o+10>>1]|0;b[m+12>>1]=b[o+12>>1]|0;b[m+14>>1]=b[o+14>>1]|0;l=n;return}function Ed(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=0;while(1){if((g|0)>=(d|0))break;f=((g&65535)*12|0)>>>16;h=c+(g>>16<<1)|0;i=N(b[h>>1]|0,b[24608+(f<<3)>>1]|0)|0;i=i+(N(b[h+2>>1]|0,b[24608+(f<<3)+2>>1]|0)|0)|0;i=i+(N(b[h+4>>1]|0,b[24608+(f<<3)+4>>1]|0)|0)|0;i=i+(N(b[h+6>>1]|0,b[24608+(f<<3)+6>>1]|0)|0)|0;f=11-f|0;i=i+(N(b[h+8>>1]|0,b[24608+(f<<3)+6>>1]|0)|0)|0;i=i+(N(b[h+10>>1]|0,b[24608+(f<<3)+4>>1]|0)|0)|0;i=i+(N(b[h+12>>1]|0,b[24608+(f<<3)+2>>1]|0)|0)|0;f=i+(N(b[h+14>>1]|0,b[24608+(f<<3)>>1]|0)|0)|0;if((f|0)<=1073725439)if((f|0)<-1073758208)f=-32768;else f=(f>>14)+1>>1;else f=32767;b[a>>1]=f;a=a+2|0;g=g+e|0}return a|0}function Fd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=a+4|0;l=a+8|0;m=a+12|0;n=a+16|0;o=a+20|0;j=0;while(1){if((j|0)>=(f|0))break;h=b[e+(j<<1)>>1]<<10;i=c[a>>2]|0;q=h-i|0;q=((q>>16)*1746|0)+(((q&65535)*1746|0)>>>16)|0;i=i+q|0;c[a>>2]=h+q;q=c[k>>2]|0;p=i-q|0;p=((p>>16)*14986|0)+(((p&65535)*14986|0)>>>16)|0;q=q+p|0;c[k>>2]=i+p;p=q-(c[l>>2]|0)|0;i=(N(p>>16,-26453)|0)+((N(p&65535,-26453)|0)>>16)|0;g=q+i|0;c[l>>2]=q+(p+i);if((g|0)<=33553919)if((g|0)<-33554944)g=-32768;else g=(g>>9)+1>>1;else g=32767;i=j<<1;b[d+(i<<1)>>1]=g;q=c[m>>2]|0;p=h-q|0;p=((p>>16)*6854|0)+(((p&65535)*6854|0)>>>16)|0;q=q+p|0;c[m>>2]=h+p;h=c[n>>2]|0;p=q-h|0;p=((p>>16)*25769|0)+(((p&65535)*25769|0)>>>16)|0;h=h+p|0;c[n>>2]=q+p;p=h-(c[o>>2]|0)|0;q=(N(p>>16,-9994)|0)+((N(p&65535,-9994)|0)>>16)|0;g=h+q|0;c[o>>2]=h+(p+q);if((g|0)<=33553919)if((g|0)<-33554944)g=-32768;else g=(g>>9)+1>>1;else g=32767;b[d+((i|1)<<1)>>1]=g;j=j+1|0}return}function Gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Fd(a,b,c,d);return}function Hd(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=1;while(1){if((f|0)>=(c|0))break;g=b[a+(f<<1)>>1]|0;e=f;while(1){d=e+-1|0;if((e|0)<=0)break;h=b[a+(d<<1)>>1]|0;if(g<<16>>16>=h<<16>>16)break;b[a+(e<<1)>>1]=h;e=d}b[a+(e<<1)>>1]=g;f=f+1|0}return}function Id(a,d,e,f){a=a|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;k=f+-1|0;f=0;g=0;while(1){if((g|0)>=(k|0)){h=0;j=g;break}j=b[e+(g<<1)>>1]|0;j=f+(N(j,j)|0)|0;f=b[e+((g|1)<<1)>>1]|0;f=j+(N(f,f)|0)|0;if((f|0)<0){i=4;break}g=g+2|0}if((i|0)==4){h=2;f=f>>>2;j=g+2|0}i=((j|0)>(k|0)?j:k)+1-j&-2;g=j;while(1){if((g|0)>=(k|0))break;m=b[e+(g<<1)>>1]|0;m=N(m,m)|0;l=b[e+(g+1<<1)>>1]|0;l=f+((m+(N(l,l)|0)|0)>>>h)|0;m=(l|0)<0;h=m?h+2|0:h;f=m?l>>>2:l;g=g+2|0}if((j+i|0)!=(k|0)){m=f;k=m>>>0>1073741823;e=m>>>2;l=h+2|0;l=k?l:h;m=k?e:m;c[d>>2]=l;c[a>>2]=m;return}m=b[e+(k<<1)>>1]|0;m=f+((N(m,m)|0)>>>h)|0;k=m>>>0>1073741823;e=m>>>2;l=h+2|0;l=k?l:h;m=k?e:m;c[d>>2]=l;c[a>>2]=m;return}function Jd(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+32|0;f=g;h=nb(a,22720,8)|0;e=(h|0)/5|0;c[f+8>>2]=e;c[f+20>>2]=h+(N(e,-5)|0);e=0;while(1){if((e|0)==2)break;c[f+(e*12|0)>>2]=nb(a,25250,8)|0;c[f+(e*12|0)+4>>2]=nb(a,25257,8)|0;e=e+1|0}e=0;while(1){if((e|0)==2)break;h=f+(e*12|0)|0;a=(c[h>>2]|0)+((c[f+(e*12|0)+8>>2]|0)*3|0)|0;c[h>>2]=a;h=b[22688+(a<<1)>>1]|0;a=b[22688+(a+1<<1)>>1]|0;c[d+(e<<2)>>2]=(N((((a<<16>>16)-h>>16)*6554|0)+((((a&65535)-h&65535)*6554|0)>>>16)|0,c[f+(e*12|0)+4>>2]<<17>>16|1)|0)+h;e=e+1|0}c[d>>2]=(c[d>>2]|0)-(c[d+4>>2]|0);l=g;return}function Kd(a,b){a=a|0;b=b|0;c[b>>2]=nb(a,25222,8)|0;return}function Ld(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0.0,t=0.0;if((c|0)<1|(b|0)<1|(a|0)==0|(d|0)==0)return;f=N(b,c)|0;e=0;while(1){if((e|0)>=(f|0))break;q=a+(e<<2)|0;n=+g[q>>2];p=n>2.0;o=n<-2.0;g[q>>2]=o|p?(o&(p^1)?-2.0:2.0):n;e=e+1|0}p=0;while(1){if((p|0)==(c|0))break;o=a+(p<<2)|0;q=d+(p<<2)|0;h=+g[q>>2];e=0;while(1){if((e|0)>=(b|0))break;f=o+((N(e,c)|0)<<2)|0;i=+g[f>>2];j=i*h;if(j>=0.0)break;g[f>>2]=i+j*i;e=e+1|0}n=+g[o>>2];m=0;while(1){k=m;while(1){if((k|0)>=(b|0))break;j=+g[o+((N(k,c)|0)<<2)>>2];if(j>1.0|j<-1.0)break;k=k+1|0}if((k|0)==(b|0)){h=0.0;break}j=+g[o+((N(k,c)|0)<<2)>>2];h=+A(+j);e=k;while(1){if((e|0)<=0)break;f=e+-1|0;if(!(j*+g[o+((N(f,c)|0)<<2)>>2]>=0.0))break;e=f}l=k;while(1){if((k|0)>=(b|0))break;i=+g[o+((N(k,c)|0)<<2)>>2];if(!(j*i>=0.0))break;i=+A(+i);f=i>h;l=f?k:l;h=f?i:h;k=k+1|0}if(!e)f=j*+g[o>>2]>=0.0;else f=0;h=(h+-1.0)/(h*h);h=j>0.0?-h:h;while(1){if((e|0)>=(k|0))break;r=o+((N(e,c)|0)<<2)|0;j=+g[r>>2];g[r>>2]=j+h*j*j;e=e+1|0}a:do if(f&(l|0)>1){i=n-+g[o>>2];j=i/+(l|0);e=m;while(1){if((e|0)>=(l|0))break a;s=i-j;r=o+((N(e,c)|0)<<2)|0;t=+g[r>>2]+s;g[r>>2]=t;m=t>1.0;f=t<-1.0;g[r>>2]=f|m?(f&(m^1)?-1.0:1.0):t;i=s;e=e+1|0}}while(0);if((k|0)==(b|0))break;m=k}g[q>>2]=h;p=p+1|0}return}function Md(a,b){a=a|0;b=b|0;if(a<<24>>24<0){b=(b<<((a&255)>>>3&3)|0)/400|0;return b|0}if((a&96)==96)if(!(a&8)){b=(b|0)/100|0;return b|0}else{b=(b|0)/50|0;return b|0}else{a=(a&255)>>>3&3;if((a|0)==3){b=(b*60|0)/1e3|0;return b|0}else{b=(b<<a|0)/100|0;return b|0}}return 0}function Nd(d,e,f,g,h,i,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0;if(!h){Q=-1;return Q|0}Q=a[d>>0]|0;l=Md(Q,48e3)|0;p=d+1|0;q=e+-1|0;a:do switch(Q&3){case 0:{A=0;B=1;C=0;y=p;n=q;m=q;r=28;break}case 1:{if(!f)if(!(q&1)){F=(q|0)/2|0;b[h>>1]=F;D=2;E=0;G=p;r=37;break a}else{Q=-4;return Q|0}else{L=1;O=2;P=0;K=p;M=q;H=q;r=29}break}case 2:{l=Od(p,q,h)|0;m=q-l|0;e=b[h>>1]|0;if(e<<16>>16<0){Q=-4;return Q|0}e=e<<16>>16;if((m|0)<(e|0)){Q=-4;return Q|0}else{A=0;B=2;C=0;y=p+l|0;n=m-e|0;r=28;break a}}default:{if((e|0)<2){Q=-4;return Q|0}o=d+2|0;p=a[p>>0]|0;w=p&63;z=w&255;if(w<<24>>24==0|(N(l,z)|0)>5760){Q=-4;return Q|0}e=e+-2|0;if(p&64){l=o;o=0;do{if((e|0)<1){x=-4;r=48;break}v=l;l=l+1|0;v=a[v>>0]|0;w=v<<24>>24==-1;v=w?254:v&255;e=e+-1-v|0;o=o+v|0}while(w);if((r|0)==48)return x|0;if((e|0)<0){Q=-4;return Q|0}else{v=e;s=l}}else{v=e;s=o;o=0}u=(p&255)>>>7^1;w=u&255;if(u<<24>>24){if(f|0){L=w;O=z;P=o;K=s;M=q;H=v;r=29;break a}n=(v|0)/(z|0)|0;if((N(n,z)|0)!=(v|0)){Q=-4;return Q|0}l=z+-1|0;m=n&65535;e=0;while(1){if((e|0)>=(l|0)){A=w;B=z;C=o;y=s;m=v;r=28;break a}b[h+(e<<1)>>1]=m;e=e+1|0}}t=z+-1|0;r=0;u=v;q=v;while(1){if((r|0)>=(t|0)){r=22;break}e=h+(r<<1)|0;l=Od(s,q,e)|0;p=q-l|0;e=b[e>>1]|0;if(e<<16>>16<0){x=-4;r=48;break}e=e<<16>>16;if((p|0)<(e|0)){x=-4;r=48;break}r=r+1|0;u=u-(l+e)|0;s=s+l|0;q=p}if((r|0)==22){if((u|0)<0)x=-4;else{A=w;B=z;C=o;y=s;n=u;m=q;r=28;break a}return x|0}else if((r|0)==48)return x|0}}while(0);if((r|0)==28)if(!f){D=B;E=C;F=n;G=y;r=37}else{L=A;O=B;P=C;K=y;M=n;H=m;r=29}b:do if((r|0)==29){m=Od(K,H,h+(O<<1)+-2|0)|0;l=H-m|0;n=O+-1|0;o=h+(n<<1)|0;k=b[o>>1]|0;if(k<<16>>16<0){Q=-4;return Q|0}e=k<<16>>16;if((l|0)<(e|0)){Q=-4;return Q|0}k=K+m|0;if(!L){if((m+e|0)>(M|0))x=-4;else{I=O;J=P;break}return x|0}if((N(O,e)|0)>(l|0)){Q=-4;return Q|0}e=0;while(1){if((e|0)>=(n|0)){I=O;J=P;break b}b[h+(e<<1)>>1]=b[o>>1]|0;e=e+1|0}}else if((r|0)==37)if((F|0)>1275){Q=-4;return Q|0}else{b[h+(D+-1<<1)>>1]=F;I=D;J=E;k=G;break}while(0);if(i|0)c[i>>2]=k-d;e=0;while(1){if((e|0)==(I|0))break;i=k+(b[h+(e<<1)>>1]|0)|0;e=e+1|0;k=i}if(j|0)c[j>>2]=J+(k-d);if(!g){Q=I;return Q|0}a[g>>0]=Q;Q=I;return Q|0}function Od(c,e,f){c=c|0;e=e|0;f=f|0;var g=0;if((e|0)<1){b[f>>1]=-1;g=-1;return g|0}g=a[c>>0]|0;if((g&255)<252){b[f>>1]=g&255;g=1;return g|0}if((e|0)<2){b[f>>1]=-1;g=-1;return g|0}else{b[f>>1]=((d[c+1>>0]|0)<<2)+(g&255);g=2;return g|0}return 0}function Pd(a){a=a|0;var b=0,d=0,e=0;d=l;l=l+16|0;b=d;if((a+-1|0)>>>0>1){b=0;l=d;return b|0}if(Dc(b)|0){b=0;l=d;return b|0}e=Qd(c[b>>2]|0)|0;c[b>>2]=e;b=Pa(a)|0;b=(Qd(88)|0)+e+b|0;l=d;return b|0}function Qd(a){a=a|0;return a+3&-4|0}function Rd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=l;l=l+16|0;g=i;f=i+4|0;a:do if((b|0)<16e3)if((b|0)<12e3)switch(b|0){case 8e3:{h=2;break a}default:{a=-1;break a}}else switch(b|0){case 12e3:{h=2;break a}default:{a=-1;break a}}else{if((b|0)<24e3)switch(b|0){case 16e3:{h=2;break a}default:{a=-1;break a}}if((b|0)<48e3)switch(b|0){case 24e3:{h=2;break a}default:{a=-1;break a}}else switch(b|0){case 48e3:{h=2;break a}default:{a=-1;break a}}}while(0);if((h|0)==2)if((d+-1|0)>>>0<2){ne(a|0,0,Pd(d)|0)|0;if(((Dc(f)|0)==0?(e=Qd(c[f>>2]|0)|0,c[f>>2]=e,h=Qd(88)|0,c[a+4>>2]=h,e=h+e|0,c[a>>2]=e,e=a+e|0,c[a+8>>2]=d,c[a+48>>2]=d,c[a+12>>2]=b,c[a+24>>2]=b,c[a+16>>2]=d,(Ec(a+h|0)|0)==0):0)?(Ra(e,b,d)|0)==0:0){c[g>>2]=0;Ta(e,10016,g);c[a+60>>2]=0;c[a+64>>2]=(b|0)/400|0;c[a+44>>2]=0;a=0}else a=-3}else a=-1;l=i;return a|0}
function Sd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a:do if((a|0)<16e3)if((a|0)<12e3)switch(a|0){case 8e3:{e=2;break a}default:break a}else switch(a|0){case 12e3:{e=2;break a}default:break a}else{if((a|0)<24e3)switch(a|0){case 16e3:{e=2;break a}default:break a}if((a|0)<48e3)switch(a|0){case 24e3:{e=2;break a}default:break a}else switch(a|0){case 48e3:{e=2;break a}default:break a}}while(0);if((e|0)==2?(b+-1|0)>>>0<2:0){f=Td(Pd(b)|0)|0;if(!f){if(!d){d=0;return d|0}c[d>>2]=-7;d=0;return d|0}e=Rd(f,a,b)|0;if(d|0)c[d>>2]=e;if(!e){d=f;return d|0}Ud(f);d=0;return d|0}if(!d){d=0;return d|0}c[d>>2]=-1;d=0;return d|0}function Td(a){a=a|0;return de(a)|0}function Ud(a){a=a|0;ee(a);return}function Vd(d,e,f,h,i,j,k){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=l;l=l+112|0;o=z+96|0;m=z+100|0;x=z;if(j>>>0>1){i=-1;l=z;return i|0}n=(j|0)==0;if((f|0)==0|n^1|(e|0)==0){if((i|0)%((c[d+12>>2]|0)/400|0|0)|0|0){i=-1;l=z;return i|0}if((f|0)==0|(e|0)==0){f=d+8|0;j=0;do{m=Wd(d,0,0,h+((N(j,c[f>>2]|0)|0)<<2)|0,i-j|0,0)|0;if((m|0)<0){w=m;y=28;break}j=j+m|0}while((j|0)<(i|0));if((y|0)==28){l=z;return w|0}c[d+72>>2]=j;i=j;l=z;return i|0}}if((f|0)<0){i=-1;l=z;return i|0}s=a[e>>0]|0;p=Xd(s)|0;q=Yd(s)|0;r=Md(s,c[d+12>>2]|0)|0;s=Zd(s)|0;t=Nd(e,f,0,m,x,o,0)|0;if((t|0)<0){i=t;l=z;return i|0}j=e+(c[o>>2]|0)|0;if(n){if((N(t,r)|0)>(i|0)){i=-2;l=z;return i|0}c[d+56>>2]=p;c[d+52>>2]=q;c[d+64>>2]=r;c[d+48>>2]=s;o=d+8|0;f=0;m=0;while(1){if((m|0)>=(t|0))break;e=x+(m<<1)|0;n=Wd(d,j,b[e>>1]|0,h+((N(f,c[o>>2]|0)|0)<<2)|0,i-f|0,0)|0;if((n|0)<0){w=n;y=28;break}j=j+(b[e>>1]|0)|0;f=f+n|0;m=m+1|0}if((y|0)==28){l=z;return w|0}c[d+72>>2]=f;if(!k){g[d+80>>2]=0.0;g[d+76>>2]=0.0;i=f;l=z;return i|0}else{Ld(h,f,c[o>>2]|0,d+76|0);i=f;l=z;return i|0}}else{if(!((r|0)>(i|0)|(p|0)==1002)?(u=d+56|0,(c[u>>2]|0)!=1002):0){e=d+72|0;m=c[e>>2]|0;f=i-r|0;if((r|0)!=(i|0)?(v=Vd(d,0,0,h,f,0,k)|0,(v|0)<0):0){c[e>>2]=m;i=v;l=z;return i|0}c[u>>2]=p;c[d+52>>2]=q;c[d+64>>2]=r;c[d+48>>2]=s;j=Wd(d,j,b[x>>1]|0,h+((N(c[d+8>>2]|0,f)|0)<<2)|0,r,1)|0;if((j|0)<0){i=j;l=z;return i|0}c[e>>2]=i;l=z;return i|0}i=Vd(d,0,0,h,i,0,k)|0;l=z;return i|0}return 0}function Wd(a,d,e,f,h,i){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,L=0,M=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;_=l;l=l+160|0;U=_+80|0;T=_+72|0;S=_+64|0;P=_+56|0;I=_+48|0;F=_+40|0;E=_+32|0;D=_+24|0;C=_+16|0;B=_+8|0;A=_;Y=_+96|0;u=_+92|0;Z=_+88|0;H=_+144|0;O=_+84|0;c[Z>>2]=0;t=a+(c[a+4>>2]|0)|0;Q=a+(c[a>>2]|0)|0;W=a+12|0;j=c[W>>2]|0;L=(j|0)/50|0;o=L>>1;V=L>>2;X=L>>3;if((X|0)>(h|0)){a=-2;l=_;return a|0}j=((j|0)/25|0)*3|0;j=(j|0)>(h|0)?h:j;do if((e|0)>=2)if(d){m=c[a+64>>2]|0;k=c[a+56>>2]|0;fb(Y,d,e);h=c[a+60>>2]|0;if((h|0)>0){h=(h|0)==1002;if((k|0)!=1002){if(!h){h=j;G=22;break}x=N(V,c[a+8>>2]|0)|0;z=0;J=d;y=1;M=m;R=ea()|0;break}if(!h?(c[a+68>>2]|0)==0:0){J=N(V,c[a+8>>2]|0)|0;R=ea()|0;z=l;l=l+((1*(J<<2)|0)+15&-16)|0;Wd(a,0,0,z,(V|0)<(m|0)?V:m,0)|0;J=d;k=1002;y=1;x=1;M=m}else{k=1002;h=j;G=22}}else{h=j;G=22}}else G=5;else{G=c[a+64>>2]|0;j=(j|0)<(G|0)?j:G;G=5}while(0);do if((G|0)==5){k=c[a+60>>2]|0;if(!k){d=a+8|0;h=0;while(1){if((h|0)>=(N(j,c[d>>2]|0)|0))break;g[f+(h<<2)>>2]=0.0;h=h+1|0}l=_;return j|0}if((j|0)<=(L|0)){if((j|0)>=(L|0)){d=0;h=j;m=j;G=22;break}if((j|0)>(o|0)){d=0;h=j;m=o;G=22;break}if((k|0)==1e3){d=0;k=1e3;h=j;m=j;G=22;break}d=0;h=j;m=(j|0)>(V|0)&(j|0)<(o|0)?V:j;G=22;break}m=a+8|0;k=j;h=f;while(1){d=Wd(a,0,0,h,(k|0)<(L|0)?k:L,0)|0;if((d|0)<0){j=d;G=108;break}k=k-d|0;h=h+((N(d,c[m>>2]|0)|0)<<2)|0;if((k|0)<=0){G=108;break}}if((G|0)==108){l=_;return j|0}}while(0);if((G|0)==22){z=0;J=d;y=0;j=h;x=1;M=m;R=ea()|0}a:do if((M|0)>(j|0))j=-1;else{if((k|0)==1002){s=l;l=l+16|0;k=1002}else{r=a+8|0;q=(N((o|0)>(M|0)?o:M,c[r>>2]|0)|0)<<1;s=l;l=l+((1*q|0)+15&-16)|0;if((c[a+60>>2]|0)==1002)Ec(t)|0;q=(M*1e3|0)/(c[W>>2]|0)|0;c[a+32>>2]=(q|0)>10?q:10;if(!J)q=1;else{c[a+20>>2]=c[a+48>>2];b:do if((k|0)==1e3)switch(c[a+52>>2]|0){case 1101:{c[a+28>>2]=8e3;break b}case 1102:{c[a+28>>2]=12e3;break b}case 1103:{c[a+28>>2]=16e3;break b}default:{c[a+28>>2]=16e3;break b}}else c[a+28>>2]=16e3;while(0);q=i<<1}o=a+16|0;p=(q|0)==0;d=s;m=0;do{c:do if(!(Fc(t,o,q,(m|0)==0&1,Y,d,u)|0))j=c[r>>2]|0;else{if(p){j=-3;break a}c[u>>2]=M;h=0;while(1){j=c[r>>2]|0;if((h|0)>=(N(M,j)|0))break c;b[d+(h<<1)>>1]=0;h=h+1|0}}while(0);h=c[u>>2]|0;m=m+h|0;d=d+((N(h,j)|0)<<1)|0}while((m|0)<(M|0))}u=(i|0)==0;j=(k|0)==1002;do if(u)if(!j)if((J|0)!=0?(v=Y+20|0,w=Y+28|0,G=(_d(c[v>>2]|0,c[w>>2]|0)|0)+17|0,(G+((c[a+56>>2]|0)==1001?20:0)|0)<=(e<<3|0)):0){if((k|0)==1001){j=mb(Y,12)|0;if(!j){m=0;d=0;h=0;G=57;break}m=mb(Y,1)|0;d=(ob(Y,256)|0)+2|0;h=_d(c[v>>2]|0,c[w>>2]|0)|0}else{m=mb(Y,1)|0;d=_d(c[v>>2]|0,c[w>>2]|0)|0;j=1;h=d;d=e-(d+7>>3)|0}e=e-d|0;h=(e<<3|0)<(h|0);d=h?0:d;G=Y+4|0;c[G>>2]=(c[G>>2]|0)-d;e=h?0:e;h=h?0:j;G=57}else{m=0;d=0;h=0;G=57}else{o=0;w=0;t=0;v=e;h=0}else if(j){o=0;w=0;t=0;v=e;h=0}else{m=0;d=0;h=0;G=57}while(0);if((G|0)==57){o=17;w=m;t=d;v=e}switch(c[a+52>>2]|0){case 1101:{j=13;break}case 1103:case 1102:{j=17;break}case 1104:{j=19;break}default:j=21}c[A>>2]=j;Ta(Q,10012,A);c[B>>2]=c[a+48>>2];Ta(Q,10008,B);i=(h|0)==0;if(!i){B=(N(V,c[a+8>>2]|0)|0)<<2;j=l;l=l+((1*B|0)+15&-16)|0;if(!w){r=z;q=0;p=j}else{c[C>>2]=0;Ta(Q,10010,C);Ua(Q,J+v|0,t,j,V,0)|0;c[D>>2]=Z;Ta(Q,4031,D);r=z;q=0;p=j}}else{j=l;l=l+((1*(x<<2)|0)+15&-16)|0;if((y|0)==0|(k|0)==1002)j=z;else Wd(a,0,0,j,(V|0)<(M|0)?V:M,0)|0;p=l;l=l+16|0;r=j;q=y}c[E>>2]=o;Ta(Q,10010,E);do if((k|0)==1e3){b[H>>1]=-1;h=a+8|0;j=0;while(1){if((j|0)>=(N(M,c[h>>2]|0)|0))break;g[f+(j<<2)>>2]=0.0;j=j+1|0}if((c[a+60>>2]|0)==1001){if(!(i|(w|0)==0)?c[a+68>>2]|0:0){j=0;k=1e3;G=80;break}c[I>>2]=0;Ta(Q,10010,I);Ua(Q,H,2,f,X,0)|0;j=0;k=1e3;G=80}else{j=0;k=1e3;G=80}}else{j=(L|0)<(M|0)?L:M;L=c[a+60>>2]|0;if((k|0)!=(L|0)&(L|0)>0?(c[a+68>>2]|0)==0:0)Ta(Q,4028,F);j=Ua(Q,u?J:0,v,f,j,Y)|0;if((k|0)==1002){o=j;e=k}else G=80}while(0);d:do if((G|0)==80){d=a+8|0;h=0;while(1){if((h|0)>=(N(M,c[d>>2]|0)|0)){o=j;e=k;break d}L=f+(h<<2)|0;g[L>>2]=+g[L>>2]+ +(b[s+(h<<1)>>1]|0)*.000030517578125;h=h+1|0}}while(0);c[P>>2]=O;Ta(Q,10015,P);m=c[(c[O>>2]|0)+60>>2]|0;do if(!i){if(!w){Ta(Q,4028,S);c[T>>2]=0;Ta(Q,10010,T);Ua(Q,J+v|0,t,p,V,0)|0;c[U>>2]=Z;Ta(Q,4031,U);U=c[a+8>>2]|0;T=f+((N(U,M-X|0)|0)<<2)|0;S=p+((N(U,X)|0)<<2)|0;$d(T,S,T,X,U,m,c[W>>2]|0);break}d=a+8|0;h=0;while(1){j=c[d>>2]|0;if((h|0)>=(j|0))break;j=0;while(1){if((j|0)>=(X|0))break;U=(N(c[d>>2]|0,j)|0)+h|0;c[f+(U<<2)>>2]=c[p+(U<<2)>>2];j=j+1|0}h=h+1|0}T=N(j,X)|0;U=f+(T<<2)|0;$d(p+(T<<2)|0,U,U,X,j,m,c[W>>2]|0)}while(0);do if(q|0){k=a+8|0;if((M|0)<(V|0)){$d(r,f,f,X,c[k>>2]|0,m,c[W>>2]|0);break}j=0;while(1){h=c[k>>2]|0;d=N(h,X)|0;if((j|0)>=(d|0))break;c[f+(j<<2)>>2]=c[r+(j<<2)>>2];j=j+1|0}V=f+(d<<2)|0;$d(r+(d<<2)|0,V,V,X,h,m,c[W>>2]|0)}while(0);j=c[a+40>>2]|0;e:do if(j|0){n=+K(+(+(j|0)*6.488140788860619e-04*.6931471805599453));h=a+8|0;j=0;while(1){if((j|0)>=(N(M,c[h>>2]|0)|0))break e;X=f+(j<<2)|0;g[X>>2]=+g[X>>2]*n;j=j+1|0}}while(0);if((v|0)<2)j=0;else j=c[Y+28>>2]^c[Z>>2];c[a+84>>2]=j;c[a+60>>2]=e;c[a+68>>2]=(w|0)==0&(i^1)&1;j=(o|0)<0?o:M}while(0);da(R|0);a=j;l=_;return a|0}function Xd(a){a=a|0;if(a<<24>>24<0)return 1002;else return ((a&96)==96?1001:1e3)|0;return 0}function Yd(a){a=a|0;if(a<<24>>24<0){a=(a&255)>>>5&3;return ((a|0)==0?1101:a+1102|0)|0}if((a&96)==96){a=(a&255)>>>4&1|1104;return a|0}else{a=((a&255)>>>5&3)+1101|0;return a|0}return 0}function Zd(a){a=a|0;return ((a&255)>>>2&1)+1&255|0}function _d(a,b){a=a|0;b=b|0;return (Q(b|0)|0)+-32+a|0}function $d(a,b,c,d,e,f,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0.0;j=48e3/(h|0)|0;h=0;while(1){if((h|0)>=(e|0))break;i=0;while(1){if((i|0)>=(d|0))break;l=+g[f+((N(i,j)|0)<<2)>>2];l=l*l;k=(N(i,e)|0)+h|0;g[c+(k<<2)>>2]=l*+g[b+(k<<2)>>2]+(1.0-l)*+g[a+(k<<2)>>2];i=i+1|0}h=h+1|0}return}function ae(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((e|0)<1){f=-1;return f|0}f=Vd(a,b,c,d,e,f,0)|0;return f|0}function be(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+32|0;f=j+24|0;g=j+16|0;i=j;e=c[a+4>>2]|0;h=a+(c[a>>2]|0)|0;c[i>>2]=d;a:do switch(b|0){case 4009:{h=(c[i>>2]|0)+(4-1)&~(4-1);b=c[h>>2]|0;c[i>>2]=h+4;if(!b)e=20;else{c[b>>2]=c[a+52>>2];b=0;e=19}break}case 4031:{h=(c[i>>2]|0)+(4-1)&~(4-1);b=c[h>>2]|0;c[i>>2]=h+4;if(!b)e=20;else{c[b>>2]=c[a+84>>2];b=0;e=19}break}case 4028:{b=a+e|0;e=a+48|0;d=e;f=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(f|0));Ta(h,4028,g);Ec(b)|0;c[e>>2]=c[a+8>>2];c[a+64>>2]=(c[a+12>>2]|0)/400|0;b=0;e=19;break}case 4029:{h=(c[i>>2]|0)+(4-1)&~(4-1);b=c[h>>2]|0;c[i>>2]=h+4;if(!b)e=20;else{c[b>>2]=c[a+12>>2];b=0;e=19}break}case 4033:{g=(c[i>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[i>>2]=g+4;if(b)if((c[a+60>>2]|0)==1002){c[f>>2]=b;Ta(h,4033,f);b=0;e=19;break a}else{c[b>>2]=c[a+36>>2];b=0;e=19;break a}else e=20;break}case 4045:{h=(c[i>>2]|0)+(4-1)&~(4-1);b=c[h>>2]|0;c[i>>2]=h+4;if(!b)e=20;else{c[b>>2]=c[a+40>>2];b=0;e=19}break}case 4034:{h=(c[i>>2]|0)+(4-1)&~(4-1);b=c[h>>2]|0;c[i>>2]=h+4;if((b+32768|0)>>>0>65535)e=20;else{c[a+40>>2]=b;b=0;e=19}break}case 4039:{h=(c[i>>2]|0)+(4-1)&~(4-1);b=c[h>>2]|0;c[i>>2]=h+4;if(!b)e=20;else{c[b>>2]=c[a+72>>2];b=0;e=19}break}default:{b=-5;e=19}}while(0);if((e|0)==19){a=b;l=j;return a|0}else if((e|0)==20){a=-1;l=j;return a|0}return 0}function ce(a){a=a|0;Ud(a);return}function de(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+16|0;o=u;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;n=c[6336]|0;d=n>>>a;if(d&3|0){b=(d&1^1)+a|0;a=25384+(b<<1<<2)|0;d=a+8|0;e=c[d>>2]|0;f=e+8|0;g=c[f>>2]|0;if((g|0)==(a|0))c[6336]=n&~(1<<b);else{c[g+12>>2]=a;c[d>>2]=g}t=b<<3;c[e+4>>2]=t|3;t=e+t+4|0;c[t>>2]=c[t>>2]|1;t=f;l=u;return t|0}m=c[6338]|0;if(k>>>0>m>>>0){if(d|0){b=2<<a;b=d<<a&(b|0-b);b=(b&0-b)+-1|0;i=b>>>12&16;b=b>>>i;d=b>>>5&8;b=b>>>d;g=b>>>2&4;b=b>>>g;a=b>>>1&2;b=b>>>a;e=b>>>1&1;e=(d|i|g|a|e)+(b>>>e)|0;b=25384+(e<<1<<2)|0;a=b+8|0;g=c[a>>2]|0;i=g+8|0;d=c[i>>2]|0;if((d|0)==(b|0)){a=n&~(1<<e);c[6336]=a}else{c[d+12>>2]=b;c[a>>2]=d;a=n}t=e<<3;h=t-k|0;c[g+4>>2]=k|3;f=g+k|0;c[f+4>>2]=h|1;c[g+t>>2]=h;if(m|0){e=c[6341]|0;b=m>>>3;d=25384+(b<<1<<2)|0;b=1<<b;if(!(a&b)){c[6336]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[6338]=h;c[6341]=f;t=i;l=u;return t|0}g=c[6337]|0;if(g){d=(g&0-g)+-1|0;f=d>>>12&16;d=d>>>f;e=d>>>5&8;d=d>>>e;h=d>>>2&4;d=d>>>h;i=d>>>1&2;d=d>>>i;j=d>>>1&1;j=c[25648+((e|f|h|i|j)+(d>>>j)<<2)>>2]|0;d=j;i=j;j=(c[j+4>>2]&-8)-k|0;while(1){a=c[d+16>>2]|0;if(!a){a=c[d+20>>2]|0;if(!a)break}h=(c[a+4>>2]&-8)-k|0;f=h>>>0<j>>>0;d=a;i=f?a:i;j=f?h:j}h=i+k|0;if(h>>>0>i>>>0){f=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=c[a>>2]|0;if(!b){a=i+16|0;b=c[a>>2]|0;if(!b){d=0;break}}while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[i+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);do if(f|0){b=c[i+28>>2]|0;a=25648+(b<<2)|0;if((i|0)==(c[a>>2]|0)){c[a>>2]=d;if(!d){c[6337]=g&~(1<<b);break}}else{t=f+16|0;c[((c[t>>2]|0)==(i|0)?t:f+20|0)>>2]=d;if(!d)break}c[d+24>>2]=f;b=c[i+16>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}b=c[i+20>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}while(0);if(j>>>0<16){t=j+k|0;c[i+4>>2]=t|3;t=i+t+4|0;c[t>>2]=c[t>>2]|1}else{c[i+4>>2]=k|3;c[h+4>>2]=j|1;c[h+j>>2]=j;if(m|0){e=c[6341]|0;b=m>>>3;d=25384+(b<<1<<2)|0;b=1<<b;if(!(b&n)){c[6336]=b|n;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[6338]=j;c[6341]=h}t=i+8|0;l=u;return t|0}else n=k}else n=k}else n=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=c[6337]|0;if(e){f=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{n=(a+1048320|0)>>>16&8;s=a<<n;i=(s+520192|0)>>>16&4;s=s<<i;j=(s+245760|0)>>>16&2;j=14-(i|n|j)+(s<<j>>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;d=c[25648+(j<<2)>>2]|0;a:do if(!d){d=0;a=0;s=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(c[d+4>>2]&-8)-k|0;if(h>>>0<f>>>0)if(!h){a=d;f=0;s=65;break a}else{a=d;f=h}s=c[d+20>>2]|0;d=c[d+16+(i>>>31<<2)>>2]|0;g=(s|0)==0|(s|0)==(d|0)?g:s;if(!d){d=g;s=61;break}else i=i<<1}}while(0);if((s|0)==61){if((d|0)==0&(a|0)==0){a=2<<j;a=(a|0-a)&e;if(!a){n=k;break}n=(a&0-a)+-1|0;h=n>>>12&16;n=n>>>h;g=n>>>5&8;n=n>>>g;i=n>>>2&4;n=n>>>i;j=n>>>1&2;n=n>>>j;d=n>>>1&1;a=0;d=c[25648+((g|h|i|j|d)+(n>>>d)<<2)>>2]|0}if(!d){i=a;h=f}else s=65}if((s|0)==65){g=d;while(1){n=(c[g+4>>2]&-8)-k|0;d=n>>>0<f>>>0;f=d?n:f;a=d?g:a;d=c[g+16>>2]|0;if(!d)d=c[g+20>>2]|0;if(!d){i=a;h=f;break}else g=d}}if(((i|0)!=0?h>>>0<((c[6338]|0)-k|0)>>>0:0)?(m=i+k|0,m>>>0>i>>>0):0){g=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=c[a>>2]|0;if(!b){a=i+16|0;b=c[a>>2]|0;if(!b){b=0;break}}while(1){f=b+20|0;d=c[f>>2]|0;if(!d){f=b+16|0;d=c[f>>2]|0;if(!d)break;else{b=d;a=f}}else{b=d;a=f}}c[a>>2]=0}else{t=c[i+8>>2]|0;c[t+12>>2]=b;c[b+8>>2]=t}while(0);do if(g){a=c[i+28>>2]|0;d=25648+(a<<2)|0;if((i|0)==(c[d>>2]|0)){c[d>>2]=b;if(!b){e=e&~(1<<a);c[6337]=e;break}}else{t=g+16|0;c[((c[t>>2]|0)==(i|0)?t:g+20|0)>>2]=b;if(!b)break}c[b+24>>2]=g;a=c[i+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[i+20>>2]|0;if(a){c[b+20>>2]=a;c[a+24>>2]=b}}while(0);b:do if(h>>>0<16){t=h+k|0;c[i+4>>2]=t|3;t=i+t+4|0;c[t>>2]=c[t>>2]|1}else{c[i+4>>2]=k|3;c[m+4>>2]=h|1;c[m+h>>2]=h;b=h>>>3;if(h>>>0<256){d=25384+(b<<1<<2)|0;a=c[6336]|0;b=1<<b;if(!(a&b)){c[6336]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=m;c[b+12>>2]=m;c[m+8>>2]=b;c[m+12>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{s=(b+1048320|0)>>>16&8;t=b<<s;r=(t+520192|0)>>>16&4;t=t<<r;d=(t+245760|0)>>>16&2;d=14-(r|s|d)+(t<<d>>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=25648+(d<<2)|0;c[m+28>>2]=d;a=m+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<<d;if(!(e&a)){c[6337]=e|a;c[b>>2]=m;c[m+24>>2]=b;c[m+12>>2]=m;c[m+8>>2]=m;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(h|0)){b=a;break c}else{e=e<<1;b=a}}c[d>>2]=m;c[m+24>>2]=b;c[m+12>>2]=m;c[m+8>>2]=m;break b}while(0);s=b+8|0;t=c[s>>2]|0;c[t+12>>2]=m;c[s>>2]=m;c[m+8>>2]=t;c[m+12>>2]=b;c[m+24>>2]=0}while(0);t=i+8|0;l=u;return t|0}else n=k}else n=k}else n=-1;while(0);d=c[6338]|0;if(d>>>0>=n>>>0){b=d-n|0;a=c[6341]|0;if(b>>>0>15){t=a+n|0;c[6341]=t;c[6338]=b;c[t+4>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=n|3}else{c[6338]=0;c[6341]=0;c[a+4>>2]=d|3;t=a+d+4|0;c[t>>2]=c[t>>2]|1}t=a+8|0;l=u;return t|0}h=c[6339]|0;if(h>>>0>n>>>0){r=h-n|0;c[6339]=r;t=c[6342]|0;s=t+n|0;c[6342]=s;c[s+4>>2]=r|1;c[t+4>>2]=n|3;t=t+8|0;l=u;return t|0}if(!(c[6454]|0)){c[6456]=4096;c[6455]=4096;c[6457]=-1;c[6458]=-1;c[6459]=0;c[6447]=0;c[6454]=o&-16^1431655768;a=4096}else a=c[6456]|0;i=n+48|0;j=n+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=n>>>0){t=0;l=u;return t|0}a=c[6446]|0;if(a|0?(m=c[6444]|0,o=m+k|0,o>>>0<=m>>>0|o>>>0>a>>>0):0){t=0;l=u;return t|0}d:do if(!(c[6447]&4)){e=c[6342]|0;e:do if(e){a=25792;while(1){d=c[a>>2]|0;if(d>>>0<=e>>>0?(r=a+4|0,(d+(c[r>>2]|0)|0)>>>0>e>>>0):0)break;a=c[a+8>>2]|0;if(!a){s=128;break e}}b=g-h&f;if(b>>>0<2147483647){e=oe(b|0)|0;if((e|0)==((c[a>>2]|0)+(c[r>>2]|0)|0)){if((e|0)!=(-1|0))break d}else s=136}else b=0}else s=128;while(0);do if((s|0)==128){a=oe(0)|0;if((a|0)!=(-1|0)?(b=a,p=c[6455]|0,q=p+-1|0,b=((q&b|0)==0?0:(q+b&0-p)-b|0)+k|0,p=c[6444]|0,q=b+p|0,b>>>0>n>>>0&b>>>0<2147483647):0){r=c[6446]|0;if(r|0?q>>>0<=p>>>0|q>>>0>r>>>0:0){b=0;break}e=oe(b|0)|0;if((e|0)==(a|0)){e=a;break d}else s=136}else b=0}while(0);do if((s|0)==136){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else break d;a=c[6456]|0;a=j-b+a&0-a;if(a>>>0>=2147483647)break d;if((oe(a|0)|0)==(-1|0)){oe(d|0)|0;b=0;break}else{b=a+b|0;break d}}while(0);c[6447]=c[6447]|4;s=143}else{b=0;s=143}while(0);if((s|0)==143){if(k>>>0>=2147483647){t=0;l=u;return t|0}e=oe(k|0)|0;r=oe(0)|0;a=r-e|0;d=a>>>0>(n+40|0)>>>0;if((e|0)==(-1|0)|d^1|e>>>0<r>>>0&((e|0)!=(-1|0)&(r|0)!=(-1|0))^1){t=0;l=u;return t|0}else b=d?a:b}a=(c[6444]|0)+b|0;c[6444]=a;if(a>>>0>(c[6445]|0)>>>0)c[6445]=a;j=c[6342]|0;f:do if(j){a=25792;while(1){d=c[a>>2]|0;f=a+4|0;g=c[f>>2]|0;if((e|0)==(d+g|0)){s=154;break}h=c[a+8>>2]|0;if(!h)break;else a=h}if(((s|0)==154?(c[a+12>>2]&8|0)==0:0)?e>>>0>j>>>0&d>>>0<=j>>>0:0){c[f>>2]=g+b;t=(c[6339]|0)+b|0;r=j+8|0;r=(r&7|0)==0?0:0-r&7;s=j+r|0;r=t-r|0;c[6342]=s;c[6339]=r;c[s+4>>2]=r|1;c[j+t+4>>2]=40;c[6343]=c[6458];break}if(e>>>0<(c[6340]|0)>>>0)c[6340]=e;f=e+b|0;a=25792;while(1){if((c[a>>2]|0)==(f|0)){s=162;break}d=c[a+8>>2]|0;if(!d)break;else a=d}if((s|0)==162?(c[a+12>>2]&8|0)==0:0){c[a>>2]=e;m=a+4|0;c[m>>2]=(c[m>>2]|0)+b;m=e+8|0;m=e+((m&7|0)==0?0:0-m&7)|0;b=f+8|0;b=f+((b&7|0)==0?0:0-b&7)|0;k=m+n|0;i=b-m-n|0;c[m+4>>2]=n|3;g:do if((j|0)==(b|0)){t=(c[6339]|0)+i|0;c[6339]=t;c[6342]=k;c[k+4>>2]=t|1}else{if((c[6341]|0)==(b|0)){t=(c[6338]|0)+i|0;c[6338]=t;c[6341]=k;c[k+4>>2]=t|1;c[k+t>>2]=t;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=c[b+8>>2]|0;d=c[b+12>>2]|0;if((d|0)==(a|0)){c[6336]=c[6336]&~(1<<e);break}else{c[a+12>>2]=d;c[d+8>>2]=a;break}}else{g=c[b+24>>2]|0;a=c[b+12>>2]|0;do if((a|0)==(b|0)){d=b+16|0;e=d+4|0;a=c[e>>2]|0;if(!a){a=c[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{t=c[b+8>>2]|0;c[t+12>>2]=a;c[a+8>>2]=t}while(0);if(!g)break;d=c[b+28>>2]|0;e=25648+(d<<2)|0;do if((c[e>>2]|0)!=(b|0)){t=g+16|0;c[((c[t>>2]|0)==(b|0)?t:g+20|0)>>2]=a;if(!a)break h}else{c[e>>2]=a;if(a|0)break;c[6337]=c[6337]&~(1<<d);break h}while(0);c[a+24>>2]=g;d=b+16|0;e=c[d>>2]|0;if(e|0){c[a+16>>2]=e;c[e+24>>2]=a}d=c[d+4>>2]|0;if(!d)break;c[a+20>>2]=d;c[d+24>>2]=a}while(0);b=b+h|0;f=h+i|0}else f=i;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;b=f>>>3;if(f>>>0<256){d=25384+(b<<1<<2)|0;a=c[6336]|0;b=1<<b;if(!(a&b)){c[6336]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=k;c[b+12>>2]=k;c[k+8>>2]=b;c[k+12>>2]=d;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}s=(b+1048320|0)>>>16&8;t=b<<s;r=(t+520192|0)>>>16&4;t=t<<r;e=(t+245760|0)>>>16&2;e=14-(r|s|e)+(t<<e>>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=25648+(e<<2)|0;c[k+28>>2]=e;a=k+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[6337]|0;d=1<<e;if(!(a&d)){c[6337]=a|d;c[b>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break}b=c[b>>2]|0;i:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break i}else{e=e<<1;b=a}}c[d>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break g}while(0);s=b+8|0;t=c[s>>2]|0;c[t+12>>2]=k;c[s>>2]=k;c[k+8>>2]=t;c[k+12>>2]=b;c[k+24>>2]=0}while(0);t=m+8|0;l=u;return t|0}a=25792;while(1){d=c[a>>2]|0;if(d>>>0<=j>>>0?(t=d+(c[a+4>>2]|0)|0,t>>>0>j>>>0):0)break;a=c[a+8>>2]|0}f=t+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0<f>>>0?j:a;s=a+8|0;d=b+-40|0;q=e+8|0;q=(q&7|0)==0?0:0-q&7;r=e+q|0;q=d-q|0;c[6342]=r;c[6339]=q;c[r+4>>2]=q|1;c[e+d+4>>2]=40;c[6343]=c[6458];d=a+4|0;c[d>>2]=27;c[s>>2]=c[6448];c[s+4>>2]=c[6449];c[s+8>>2]=c[6450];c[s+12>>2]=c[6451];c[6448]=e;c[6449]=b;c[6451]=0;c[6450]=s;b=a+24|0;do{s=b;b=b+4|0;c[b>>2]=7}while((s+8|0)>>>0<t>>>0);if((a|0)!=(j|0)){g=a-j|0;c[d>>2]=c[d>>2]&-2;c[j+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=25384+(b<<1<<2)|0;a=c[6336]|0;b=1<<b;if(!(a&b)){c[6336]=a|b;b=d;a=d+8|0}else{a=d+8|0;b=c[a>>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{s=(b+1048320|0)>>>16&8;t=b<<s;r=(t+520192|0)>>>16&4;t=t<<r;e=(t+245760|0)>>>16&2;e=14-(r|s|e)+(t<<e>>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=25648+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[f>>2]=0;b=c[6337]|0;a=1<<e;if(!(b&a)){c[6337]=b|a;c[d>>2]=j;c[j+24>>2]=d;c[j+12>>2]=j;c[j+8>>2]=j;break}b=c[d>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(g|0)){b=a;break j}else{e=e<<1;b=a}}c[d>>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j;break f}while(0);s=b+8|0;t=c[s>>2]|0;c[t+12>>2]=j;c[s>>2]=j;c[j+8>>2]=t;c[j+12>>2]=b;c[j+24>>2]=0}}else{t=c[6340]|0;if((t|0)==0|e>>>0<t>>>0)c[6340]=e;c[6448]=e;c[6449]=b;c[6451]=0;c[6345]=c[6454];c[6344]=-1;c[6349]=25384;c[6348]=25384;c[6351]=25392;c[6350]=25392;c[6353]=25400;c[6352]=25400;c[6355]=25408;c[6354]=25408;c[6357]=25416;c[6356]=25416;c[6359]=25424;c[6358]=25424;c[6361]=25432;c[6360]=25432;c[6363]=25440;c[6362]=25440;c[6365]=25448;c[6364]=25448;c[6367]=25456;c[6366]=25456;c[6369]=25464;c[6368]=25464;c[6371]=25472;c[6370]=25472;c[6373]=25480;c[6372]=25480;c[6375]=25488;c[6374]=25488;c[6377]=25496;c[6376]=25496;c[6379]=25504;c[6378]=25504;c[6381]=25512;c[6380]=25512;c[6383]=25520;c[6382]=25520;c[6385]=25528;c[6384]=25528;c[6387]=25536;c[6386]=25536;c[6389]=25544;c[6388]=25544;c[6391]=25552;c[6390]=25552;c[6393]=25560;c[6392]=25560;c[6395]=25568;c[6394]=25568;c[6397]=25576;c[6396]=25576;c[6399]=25584;c[6398]=25584;c[6401]=25592;c[6400]=25592;c[6403]=25600;c[6402]=25600;c[6405]=25608;c[6404]=25608;c[6407]=25616;c[6406]=25616;c[6409]=25624;c[6408]=25624;c[6411]=25632;c[6410]=25632;t=b+-40|0;r=e+8|0;r=(r&7|0)==0?0:0-r&7;s=e+r|0;r=t-r|0;c[6342]=s;c[6339]=r;c[s+4>>2]=r|1;c[e+t+4>>2]=40;c[6343]=c[6458]}while(0);b=c[6339]|0;if(b>>>0<=n>>>0){t=0;l=u;return t|0}r=b-n|0;c[6339]=r;t=c[6342]|0;s=t+n|0;c[6342]=s;c[s+4>>2]=r|1;c[t+4>>2]=n|3;t=t+8|0;l=u;return t|0}function ee(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=c[6340]|0;a=c[a+-4>>2]|0;b=a&-8;j=d+b|0;do if(!(a&1)){e=c[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+b|0;if(h>>>0<f>>>0)return;if((c[6341]|0)==(h|0)){a=j+4|0;b=c[a>>2]|0;if((b&3|0)!=3){i=h;b=g;break}c[6338]=g;c[a>>2]=b&-2;c[h+4>>2]=g|1;c[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=c[h+8>>2]|0;b=c[h+12>>2]|0;if((b|0)==(a|0)){c[6336]=c[6336]&~(1<<d);i=h;b=g;break}else{c[a+12>>2]=b;c[b+8>>2]=a;i=h;b=g;break}}f=c[h+24>>2]|0;a=c[h+12>>2]|0;do if((a|0)==(h|0)){b=h+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){a=0;break}}else b=d;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0}else{i=c[h+8>>2]|0;c[i+12>>2]=a;c[a+8>>2]=i}while(0);if(f){b=c[h+28>>2]|0;d=25648+(b<<2)|0;if((c[d>>2]|0)==(h|0)){c[d>>2]=a;if(!a){c[6337]=c[6337]&~(1<<b);i=h;b=g;break}}else{i=f+16|0;c[((c[i>>2]|0)==(h|0)?i:f+20|0)>>2]=a;if(!a){i=h;b=g;break}}c[a+24>>2]=f;b=h+16|0;d=c[b>>2]|0;if(d|0){c[a+16>>2]=d;c[d+24>>2]=a}b=c[b+4>>2]|0;if(b){c[a+20>>2]=b;c[b+24>>2]=a;i=h;b=g}else{i=h;b=g}}else{i=h;b=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=c[a>>2]|0;if(!(e&1))return;if(!(e&2)){if((c[6342]|0)==(j|0)){j=(c[6339]|0)+b|0;c[6339]=j;c[6342]=i;c[i+4>>2]=j|1;if((i|0)!=(c[6341]|0))return;c[6341]=0;c[6338]=0;return}if((c[6341]|0)==(j|0)){j=(c[6338]|0)+b|0;c[6338]=j;c[6341]=h;c[i+4>>2]=j|1;c[h+j>>2]=j;return}f=(e&-8)+b|0;d=e>>>3;do if(e>>>0<256){b=c[j+8>>2]|0;a=c[j+12>>2]|0;if((a|0)==(b|0)){c[6336]=c[6336]&~(1<<d);break}else{c[b+12>>2]=a;c[a+8>>2]=b;break}}else{g=c[j+24>>2]|0;a=c[j+12>>2]|0;do if((a|0)==(j|0)){b=j+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){d=0;break}}else b=d;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[j+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(g|0){a=c[j+28>>2]|0;b=25648+(a<<2)|0;if((c[b>>2]|0)==(j|0)){c[b>>2]=d;if(!d){c[6337]=c[6337]&~(1<<a);break}}else{e=g+16|0;c[((c[e>>2]|0)==(j|0)?e:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;a=j+16|0;b=c[a>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}a=c[a+4>>2]|0;if(a|0){c[d+20>>2]=a;c[a+24>>2]=d}}}while(0);c[i+4>>2]=f|1;c[h+f>>2]=f;if((i|0)==(c[6341]|0)){c[6338]=f;return}}else{c[a>>2]=e&-2;c[i+4>>2]=b|1;c[h+b>>2]=b;f=b}a=f>>>3;if(f>>>0<256){d=25384+(a<<1<<2)|0;b=c[6336]|0;a=1<<a;if(!(b&a)){c[6336]=b|a;a=d;b=d+8|0}else{b=d+8|0;a=c[b>>2]|0}c[b>>2]=i;c[a+12>>2]=i;c[i+8>>2]=a;c[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{h=(a+1048320|0)>>>16&8;j=a<<h;g=(j+520192|0)>>>16&4;j=j<<g;e=(j+245760|0)>>>16&2;e=14-(g|h|e)+(j<<e>>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;a=25648+(e<<2)|0;c[i+28>>2]=e;c[i+20>>2]=0;c[i+16>>2]=0;b=c[6337]|0;d=1<<e;a:do if(!(b&d)){c[6337]=b|d;c[a>>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i}else{a=c[a>>2]|0;b:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break b}else{e=e<<1;a=b}}c[d>>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i;break a}while(0);h=a+8|0;j=c[h>>2]|0;c[j+12>>2]=i;c[h>>2]=i;c[i+8>>2]=j;c[i+12>>2]=a;c[i+24>>2]=0}while(0);j=(c[6344]|0)+-1|0;c[6344]=j;if(j|0)return;a=25800;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[6344]=-1;return}function fe(){}function ge(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=N(e,f)|0;d=a>>>16;a=(c>>>16)+(N(e,d)|0)|0;e=b>>>16;b=N(e,f)|0;return (y=(a>>>16)+(N(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function he(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=ge(e,f)|0;a=y;return (y=(N(b,f)|0)+(N(d,e)|0)+a|a&0,c|0|0)|0}function ie(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){y=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}y=(b|0)<0?-1:0;return b>>c-32|0}function je(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){y=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}y=0;return b>>>c-32|0}function ke(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (y=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function le(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return X(b|0,d|0,e|0)|0;h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function me(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 le(b,c,d)|0;return b|0}function ne(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;g=f-64|0;i=d|d<<8|d<<16|d<<24;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function oe(a){a=a|0;var b=0,d=0;d=c[i>>2]|0;b=d+a|0;if((a|0)>0&(b|0)<(d|0)|(b|0)<0){V()|0;W(12);return -1}c[i>>2]=b;if((b|0)>(U()|0)?(T()|0)==0:0){c[i>>2]=d;W(12);return -1}return d|0}
// EMSCRIPTEN_END_FUNCS
return{___muldi3:he,_bitshift64Ashr:ie,_bitshift64Lshr:je,_free:ee,_i64Add:ke,_malloc:de,_memcpy:le,_memmove:me,_memset:ne,_opus_decode_float:ae,_opus_decoder_create:Sd,_opus_decoder_ctl:be,_opus_decoder_destroy:ce,_sbrk:oe,establishStackSpace:ja,getTempRet0:ma,runPostSets:fe,setTempRet0:la,setThrew:ka,stackAlloc:ga,stackRestore:ia,stackSave:ha}})
// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _opus_decode_float=Module["_opus_decode_float"]=asm["_opus_decode_float"];var _opus_decoder_create=Module["_opus_decoder_create"]=asm["_opus_decoder_create"];var _opus_decoder_ctl=Module["_opus_decoder_ctl"]=asm["_opus_decoder_ctl"];var _opus_decoder_destroy=Module["_opus_decoder_destroy"]=asm["_opus_decoder_destroy"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var setThrew=Module["setThrew"]=asm["setThrew"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];Module["asm"]=asm;Module["setValue"]=setValue;Module["getValue"]=getValue;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run();((function(self){var decoder;self.addEventListener("message",(function(e){switch(e.data.type){case"init":decoder=new Decoder(e.data.config.sampleRate,e.data.config.channels);break;case"decode":decoder.decode(e.data.buffer);break;case"destroy":decoder.destroy();break;default:}}));function Decoder(sampleRate,channels){this.channels=channels;var err=Module._malloc(4);this.handle=_opus_decoder_create(sampleRate,this.channels,err);var errNum=Module.getValue(err,"i32");Module._free(err);if(errNum!=0){self.postMessage({type:"error",error:errNum});return}this.frameSize=sampleRate*60/1e3;var bufSize=1275*3+7;var pcmSamples=this.frameSize*this.channels;this.bufPtr=Module._malloc(bufSize);this.pcmPtr=Module._malloc(4*pcmSamples);this.buf=Module.HEAPU8.subarray(this.bufPtr,this.bufPtr+bufSize);this.pcm=Module.HEAPF32.subarray(this.pcmPtr/4,this.pcmPtr/4+pcmSamples)}Decoder.prototype.decode=(function(payload){this.buf.set(new Uint8Array(payload));var ret=_opus_decode_float(this.handle,this.bufPtr,payload.byteLength,this.pcmPtr,this.frameSize,0);if(ret<0){self.postMessage({type:"error",error:ret})}else{self.postMessage({type:"data",payload:new Float32Array(this.pcm.subarray(0,ret*this.channels))})}});Decoder.prototype.destroy=(function(){_opus_decoder_destroy(this.handle);this.handle=null;this.buf=null;this.pcm=null})}))(self)